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 checked
-
partial : Some implementation exists, not all sub-features done
-
in_progress : Active work, files modified recently
-
not_started : No implementation files, TODO unchecked
-
blocked : 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 : Foundation
-
phase-1 : Core gameplay
-
phase-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 checked
-
partial : Some files exist, not all sub-features complete
-
in_progress : Recent commits touch feature files
-
not_started : No implementation evidence
-
blocked : 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-sync to update:
-
Move task from tasks.in_progress to tasks.completed
-
TODO.md checkboxes
-
Statistics recalculation
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.