feature-tracking
Feature Tracking Skill
Track feature implementation status against requirements documents using hierarchical FR codes.
Overview
The feature tracker maintains a JSON file that maps requirements from a source document (e.g., REQUIREMENTS.md) to implementation status. It supports:
- Hierarchical FR codes: FR1, FR2.1, FR2.1.1, etc.
- Phase-based development: Group features by development phase
- PRD integration: Link features to Product Requirements Documents
- Task tracking: Track in-progress and pending tasks (replaces work-overview.md)
- Sync targets: Keep TODO.md in sync
When to Use
Run feature tracking operations when:
- Feature implementation status changes
- New PRD is added or completed
- After major development milestones
- Before generating status reports
- Starting a new development phase
Core Concepts
Feature Status
Each feature has one of five statuses:
complete: Implementation files exist, tests pass, TODO item checkedpartial: Some implementation exists, not all sub-features donein_progress: Active work, files modified recentlynot_started: No implementation files, TODO uncheckedblocked: Missing dependencies or explicitly marked
Hierarchical Structure
Features are organized hierarchically:
FR1 (Game Setup & Configuration)
├── FR1.1 (Window Configuration)
├── FR1.2 (Game Mode Selection)
│ ├── FR1.2.1 (Versus Mode)
│ └── FR1.2.2 (Cooperative Mode)
└── FR1.3 (Scenario Setup)
Phase Organization
Features are grouped by development phase:
phase-0: Foundationphase-1: Core gameplayphase-2: Advanced features- etc.
File Structure
docs/blueprint/
├── feature-tracker.json # Main tracker file (source of truth)
└── schemas/ # Optional: local schema copy
└── feature-tracker.schema.json
The project's TODO.md is a sync target for checkbox states.
Note: As of v1.1.0, feature-tracker.json includes a tasks section that tracks in-progress and pending tasks, replacing the separate work-overview.md file.
Quick Commands
View completion stats
jq '.statistics' docs/blueprint/feature-tracker.json
List incomplete features
jq -r '.. | objects | select(.status == "not_started") | .name' docs/blueprint/feature-tracker.json
Show PRD completion
jq '.prds | to_entries | .[] | "\(.key): \(.value.status)"' docs/blueprint/feature-tracker.json
List features by phase
jq -r '.. | objects | select(.phase == "phase-1") | .name' docs/blueprint/feature-tracker.json
Count features by status
jq '[.. | objects | select(.status?) | .status] | group_by(.) | map({(.[0]): length}) | add' docs/blueprint/feature-tracker.json
Schema
The feature tracker uses a JSON Schema for validation. The schema is bundled with the blueprint-plugin at:
schemas/feature-tracker.schema.json
Key schema features:
- Strict FR code validation:
^FR\d+(\.\d+)*$ - Phase pattern validation:
^phase-\d+$ - Recursive feature definitions for nesting
- PRD naming pattern:
^PRD_[A-Z_]+$
Validate tracker
# Using ajv-cli or similar JSON schema validator
ajv validate -s schemas/feature-tracker.schema.json \
-d docs/blueprint/feature-tracker.json
Integration Points
Manifest Integration
The manifest.json references the feature tracker:
{
"structure": {
"has_feature_tracker": true
},
"feature_tracker": {
"file": "feature-tracker.json",
"source_document": "REQUIREMENTS.md",
"sync_targets": ["TODO.md"]
}
}
PRD Mapping
Features link to PRDs via the prd field:
{
"name": "Terrain Visual Enhancement",
"status": "complete",
"prd": "PRD_TERRAIN_VISUAL_ENHANCEMENT"
}
PRDs track which features they implement:
{
"PRD_TERRAIN_VISUAL_ENHANCEMENT": {
"name": "Terrain Visual Enhancement",
"status": "complete",
"features_implemented": ["FR2.8.1", "FR2.8.2", "FR2.8.3"],
"tests_passing": 107
}
}
Work Order Integration
Work orders can reference specific FR codes. When a work order is completed, update the corresponding feature status in the tracker.
Sync Process
The sync process ensures consistency between:
feature-tracker.json(source of truth for features AND tasks)TODO.md(checkbox-based task list)
Sync Steps
- Load current state from feature-tracker.json (features and tasks)
- Compare with TODO.md checkbox states
- Verify implementation status for each feature
- Recalculate statistics
- Update TODO.md with changes
- Report what was synchronized
Human-Readable Summary
Use --summary flag to generate a markdown overview:
/blueprint:feature-tracker-sync --summary
Status Verification
For each feature, verify:
complete: Files exist, tests pass (if applicable), TODO checkedpartial: Some files exist, not all sub-features completein_progress: Recent commits touch feature filesnot_started: No implementation evidenceblocked: Documented dependency issues
Commands
Related blueprint commands:
/blueprint-feature-tracker-status: Display statistics and completion summary/blueprint-feature-tracker-sync: Synchronize tracker with sync targets
Example: Updating Feature Status
When completing a feature:
-
Update feature status in
feature-tracker.json:{ "name": "Unit Selection", "status": "complete", "phase": "phase-2", "implementation": { "files": ["src/systems/selection.rs"], "notes": "Box selection and click selection", "tests": ["tests/selection_tests.rs"] } } -
Run
/blueprint-feature-tracker-syncto update:- Move task from
tasks.in_progresstotasks.completed - TODO.md checkboxes
- Statistics recalculation
- Move task from
-
Commit all changes together for consistency
Statistics
The tracker maintains aggregate statistics:
{
"statistics": {
"total_features": 42,
"complete": 22,
"partial": 4,
"in_progress": 2,
"not_started": 14,
"blocked": 0,
"completion_percentage": 52.4
}
}
These are recalculated during sync operations.