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.
The current highest-priority frontier is:
L3.72extend attributed MVP event emission to shot and rebound evidence once ball-result signals are availableL3.66add bounded multi-hypothesis identity infrastructure for ambiguous short-gap track continuityL3.64add a minimal ball artifact to Layer 1 review outputs and use it to refine live-play gatingL3.63add explicit playback transport controls and conservative jersey-OCR display gating in the labellerL3.62add a rule-based live-play/dead-ball gate with per-frame scores, stitched segments, and labeller review supportL3.53add bidirectional short-gap repair for clustered or briefly missed player tracks in Layer 1 artifactsL3.61add a coarse torso-color appearance cue to further suppress seated spectators and sideline bystandersL3.46check in canonical MVP stats header and formula templates with provenance rulesL3.51define a HoopSense-native declarative rules layer for stat attribution without reusing Shush implementationL3.47map each MVP stat to required event primitives and possession fieldsL3.9definePossessionContextfields and ledger serialization contractL3.10trackballhandler_id,dribble_count, andpass_countfor one possession sliceL3.12define the first stat-ready event set:pass,catch,dribble,shot_attempt,rebound,turnoverL3.48materialize auditable box-score rows that match the core scorebook columns and formulasL3.49add scorebook-backed validation fixtures that compare generated stats to trusted totalsL3.50defer shot-profile and advanced report outputs until the core box score is reliableL3.37decide the first migration target, if any, based on performance, determinism, and implementation riskL3.24make Docker docs explicitly cloud-oriented and not the native Orin storyL3.26publish separate runbooks for cloud/x86 training and Jetson/ARM64 runtime validationL3.29define functional-core CI ownership and path triggersL3.30add a lightweight integration pipeline that depends on selected core workflowsL3.31gate training smoke/evaluation workflows behind ML-specific changes or manual triggersL3.32define which GCP resources stay on directgcloudversus move into TerraformL3.33add initial Terraform layout for shared buckets, registry, and service accountsL3.20add first slice-based evaluation outputsL3.27define dataset version lineage and promotion rules across Oracle/synthetic training setsL3.28define multi-arch or explicitly split cloud-vs-Orin container strategy
- [>] Trustworthy basketball understanding from video
- [>] 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
- 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
- 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 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 rules combining motion, ball, and possession state
- [>] Stat ledger and box-score generation
- Shot chart, defensive metrics, and report outputs
- [>] Native Orin environment and ARM64 runtime validation
- [>] Cloud/x86 training environment and artifact parity
- Real-time inference pipeline and model optimization
- Gemini/Codex collaboration bridge and review workflow
- Plan-driven execution and task synchronization
- [>] Documentation and task-status alignment
- [>] 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
- [>] 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
- 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_dnainto 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
PossessionContextfields and ledger serialization contract - Track
ballhandler_id,dribble_count, andpass_countfor 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)
- 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
PossessionContextfields and ledger serialization contract - Track
ballhandler_id,dribble_count, andpass_countfor 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
What is currently true:
- the Action Brain is a narrow local-motion classifier
features_v2remains 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
- 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