Skip to content

Latest commit

 

History

History
213 lines (188 loc) · 13.9 KB

File metadata and controls

213 lines (188 loc) · 13.9 KB

HoopSense Task Status

This file is a human-readable execution snapshot derived from docs/plan/PLAN_TREE.yaml.

The old chapter-style status model is retired. This file now tracks the current plan frontier and active L-level work only.

Current Frontier

The current highest-priority frontier is:

  • L3.72 extend attributed MVP event emission to shot and rebound evidence once ball-result signals are available
  • L3.66 add bounded multi-hypothesis identity infrastructure for ambiguous short-gap track continuity
  • L3.64 add a minimal ball artifact to Layer 1 review outputs and use it to refine live-play gating
  • L3.63 add explicit playback transport controls and conservative jersey-OCR display gating in the labeller
  • L3.62 add a rule-based live-play/dead-ball gate with per-frame scores, stitched segments, and labeller review support
  • L3.53 add bidirectional short-gap repair for clustered or briefly missed player tracks in Layer 1 artifacts
  • L3.61 add a coarse torso-color appearance cue to further suppress seated spectators and sideline bystanders
  • L3.46 check in canonical MVP stats header and formula templates with provenance rules
  • L3.51 define a HoopSense-native declarative rules layer for stat attribution without reusing Shush implementation
  • L3.47 map each MVP stat to required event primitives and possession fields
  • L3.9 define PossessionContext fields and ledger serialization contract
  • L3.10 track ballhandler_id, dribble_count, and pass_count for one possession slice
  • L3.12 define the first stat-ready event set: pass, catch, dribble, shot_attempt, rebound, turnover
  • L3.48 materialize auditable box-score rows that match the core scorebook columns and formulas
  • L3.49 add scorebook-backed validation fixtures that compare generated stats to trusted totals
  • L3.50 defer shot-profile and advanced report outputs until the core box score is reliable
  • L3.37 decide the first migration target, if any, based on performance, determinism, and implementation risk
  • L3.24 make Docker docs explicitly cloud-oriented and not the native Orin story
  • L3.26 publish separate runbooks for cloud/x86 training and Jetson/ARM64 runtime validation
  • L3.29 define functional-core CI ownership and path triggers
  • L3.30 add a lightweight integration pipeline that depends on selected core workflows
  • L3.31 gate training smoke/evaluation workflows behind ML-specific changes or manual triggers
  • L3.32 define which GCP resources stay on direct gcloud versus move into Terraform
  • L3.33 add initial Terraform layout for shared buckets, registry, and service accounts
  • L3.20 add first slice-based evaluation outputs
  • L3.27 define dataset version lineage and promotion rules across Oracle/synthetic training sets
  • L3.28 define multi-arch or explicitly split cloud-vs-Orin container strategy

L0 Product Goal

  • [>] Trustworthy basketball understanding from video

L1 Workstreams

  • [>] Perception and geometry foundation
  • [>] Action Brain and synthetic Oracle training loop
  • [>] Possession context and game-state reasoning
  • [>] Event attribution and stats generation
  • [>] Deployment, runtime, and operator workflow
  • [>] Collaboration, review, and project control
  • [>] MLOps governance and model lifecycle control
  • [>] DevOps reproducibility and delivery control

L2 Status By Workstream

Perception and Geometry Foundation

  • Multi-source ingestion and deterministic video contracts
  • Court geometry, homography, and camera state
  • [>] Identity fusion, tracking, and temporal continuity
  • [>] Pose estimation and kinematic lifting
  • [>] Perception-and-geometry readiness gate
  • [>] Python-versus-Rust boundary decision for perception and geometry

Action Brain and Synthetic Oracle

  • Stable Action Brain feature contract (features_v2)
  • [>] Oracle MoCap ingestion, FK, and dataset generation
  • [>] Action Brain training, evaluation, and checkpoint lifecycle
  • Sim-to-real fine-tuning and validation loop

Possession Context and Game-State Reasoning

  • [>] Possession context contract in the ledger
  • [>] Ball control, dribble count, and pass-chain tracking
  • [>] Offense zone, transition, and drive semantics
  • Referee-assisted rewind and correction logic

Event Attribution and Stats Generation

  • [>] Event attribution rules combining motion, ball, and possession state
  • [>] Stat ledger and box-score generation
  • Shot chart, defensive metrics, and report outputs

Deployment, Runtime, and Operator Workflow

  • [>] Native Orin environment and ARM64 runtime validation
  • [>] Cloud/x86 training environment and artifact parity
  • Real-time inference pipeline and model optimization

Collaboration, Review, and Project Control

  • Gemini/Codex collaboration bridge and review workflow
  • Plan-driven execution and task synchronization
  • [>] Documentation and task-status alignment

MLOps Governance and Model Lifecycle Control

  • [>] Dataset manifests, lineage, and validation policy
  • [>] Training run lineage and checkpoint lifecycle
  • Slice-based evaluation and drift monitoring
  • Deployment compatibility reporting across cloud and edge targets

DevOps Reproducibility and Delivery Control

  • [>] Guix-first development and environment reproducibility
  • [>] Docker fallback packaging and cloud image discipline
  • [>] CI quality gates for code, contracts, and docs
  • Cloud and edge delivery guidance with explicit target boundaries
  • Multi-pipeline CI architecture by functional core
  • Terraform adoption for stable shared GCP infrastructure

Key L3 Execution Slices

Completed

  • Preserve the Oracle MVP parser/FK path for one fixture motion
  • Maintain a reproducible GPU training smoke test and checkpoint write path
  • Require plan-tree updates before substantial architecture or implementation changes
  • Define measurable readiness checks for ingestion, tracking, pose, geometry, and lifting
  • Add a perception-quality report artifact for representative clips
  • Materialize one real Layer 1 annotation artifact from GPU-backed Ultralytics inference on a representative 5-second clip
  • Render real detection, track, and pose overlays in the labeller from a persisted annotation artifact
  • Verify the Orin GPU container command used for representative Layer 1 artifact generation
  • Add coarse light-versus-dark uniform bucket estimation to representative Layer 1 perception artifacts
  • Add active-player scoring to suppress spectators and bench-side false positives in Layer 1 artifacts
  • Add a rule-based live-play/dead-ball gate with per-frame scores, stitched segments, and labeller review support
  • Refactor extract_game_dna into focused inference pipeline classes without changing output contract
  • Add video discontinuity detection and continuity segments to Layer 1 artifacts before stronger identity repair
  • Check in an explicit Layer 1 identity-policy contract and machine-readable rules file
  • Check in machine-readable MVP event-evidence rules and a loader for deterministic stat attribution
  • Make the first deterministic event-attribution path consume the checked-in MVP event rules
  • Emit first attributed MVP event payloads in the shape required by the deterministic event-rule engine
  • Add a minimal ball artifact to Layer 1 review outputs and use it to refine live-play gating
  • Add bounded multi-hypothesis identity infrastructure for ambiguous short-gap track continuity
  • Add explicit playback transport controls and conservative jersey-OCR display gating in the labeller
  • Add bidirectional short-gap repair for clustered or briefly missed player tracks in Layer 1 artifacts
  • Attach jersey-number evidence and consensus fields to persistent player identity without rewriting raw tracker IDs
  • Add a coarse torso-color appearance cue to further suppress seated spectators and sideline bystanders
  • Add Kalman-smoothed track state and motion-aware scoring to Layer 1 artifacts
  • Support typed partial-court calibration landmarks and solver flow in the labeller without depending on visible corners
  • Add an explicit general-note save path in the labeller so freeform perception review notes are not silently lost
  • Replace named-point calibration clicks with primitive-based line and arc sampling in the labeller
  • Normalize labeller feedback into a categorized regression fixture for Layer 1 tracking and postprocess work
  • Add a regression-audit report over reviewed Layer 1 failure cases to guide tracking changes without clip-specific overfitting
  • Add a structured perception-feedback workflow for false positives, misses, merges, and track errors in the labeller
  • Verify actual CUDA acceleration in the Orin validation path and publish a repeatable probe artifact
  • Publish a mobile-friendly external HoopSense demo page with one representative clip, overlay, and feedback prompt
  • Publish a normalized MVP stats contract for a sellable scorebook-style output
  • Scale Oracle ingestion to Subject 124 while preserving features_v2
  • Define PossessionContext fields and ledger serialization contract
  • Track ballhandler_id, dribble_count, and pass_count for one possession slice
  • Define the first stat-ready event set: pass, catch, dribble, shot_attempt, rebound, turnover
  • Generate MVP box-score rows from attributed events
  • Check in canonical MVP stats header and formula templates with provenance rules
  • Define a HoopSense-native declarative rules layer for stat attribution without reusing Shush implementation
  • Map each MVP stat to required event primitives and possession fields
  • Materialize auditable box-score rows that match the core scorebook columns and formulas
  • Add scorebook-backed validation fixtures that compare generated stats to trusted totals
  • Defer shot-profile and advanced report outputs until the core box score is reliable
  • Implement offense zone and transition flag derivation in the possession context
  • Document candidate Python-versus-Rust ownership split for the perception layer
  • Implement first-pass dataset manifests with SHA-256 hashing
  • Integrate training lineage recording (git commit + data hash) into training loop
  • Establish initial CI plumbing (.github/workflows/ci.yml)
  • Implement dynamic perception audit script (scripts/run_perception_audit.sh)

Active or Next

  • Extend attributed MVP event emission to shot and rebound evidence once ball-result signals are available
  • Add bounded multi-hypothesis identity infrastructure for ambiguous short-gap track continuity
  • Add a minimal ball artifact to Layer 1 review outputs and use it to refine live-play gating
  • Add explicit playback transport controls and conservative jersey-OCR display gating in the labeller
  • Add a rule-based live-play/dead-ball gate with per-frame scores, stitched segments, and labeller review support
  • Add bidirectional short-gap repair for clustered or briefly missed player tracks in Layer 1 artifacts
  • Add a coarse torso-color appearance cue to further suppress seated spectators and sideline bystanders
  • Check in canonical MVP stats header and formula templates with provenance rules
  • Define a HoopSense-native declarative rules layer for stat attribution without reusing Shush implementation
  • Map each MVP stat to required event primitives and possession fields
  • Define PossessionContext fields and ledger serialization contract
  • Track ballhandler_id, dribble_count, and pass_count for one possession slice
  • Define the first stat-ready event set: pass, catch, dribble, shot_attempt, rebound, turnover
  • Materialize auditable box-score rows that match the core scorebook columns and formulas
  • Add scorebook-backed validation fixtures that compare generated stats to trusted totals
  • Decide the first migration target based on performance and risk (TrackManager identified)
  • Separate ARM64/Jetson runtime guidance from cloud/x86 Docker guidance
  • Add first slice reports for action class, camera/view, and pose quality

Product Reality Check

What is currently true:

  • the Action Brain is a narrow local-motion classifier
  • features_v2 remains the current frozen neural contract
  • the layered feature architecture is documented
  • the geometry layer has a shared module and readiness report artifact
  • an Orin container logic probe exists
  • basic manifest hashing, training lineage scaffolding, and initial CI plumbing now exist locally
  • possession and stat primitives exist locally in Rust and Python, but need tighter end-to-end verification
  • the MVP product contract is now explicitly captured as a normalized scorebook-style output spec

What is not yet true:

  • Oracle scale-out has not yet been re-materialized and verified as an on-disk dataset artifact
  • the possession context contract is not yet proven end to end in inference output
  • the scorebook-style box-score contract is not yet materialized as headers, formulas, and fixture-backed validation
  • dataset promotion rules are not yet defined
  • the CI architecture is not yet split by functional core
  • no Terraform layer exists yet for shared GCP infrastructure

Quality Gates

  • Rust core logic verified for PossessionContext and box-score changes
  • Python behavior-engine/perception gate tests verified
  • Synthetic Oracle tests passing
  • Tooling review tests passing
  • Documentation updated for layered feature architecture
  • Planning invariant checked into AGENTS.md
  • [>] Orin hardware validation (CUDA/PyTorch)
  • Scorebook-style stat contract materialized as checked-in templates and validation fixtures
  • Oracle dataset manifest validation implemented
  • Checkpoint lineage recording implemented
  • Slice-based evaluation report implemented
  • Geometry readiness report artifact implemented
  • Initial CI workflow implemented
  • Check in an explicit Layer 1 identity-policy contract and machine-readable rules file