blueprint-feature-tracker-sync

Synchronize the feature tracker JSON with TODO.md and manage task progress.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "blueprint-feature-tracker-sync" with this command: npx skills add laurigates/claude-plugins/laurigates-claude-plugins-blueprint-feature-tracker-sync

Synchronize the feature tracker JSON with TODO.md and manage task progress.

Note: As of v1.1.0, feature-tracker.json is the single source of truth for progress tracking. The tasks section replaces work-overview.md.

Usage: /blueprint:feature-tracker-sync [--summary]

Flags:

Flag Description

--summary

Generate human-readable markdown summary (stdout only, no file)

Mode: Generate Summary (--summary )

When --summary is provided, generate a human-readable progress report without modifying any files:

jq -r ' "# Work Overview: (.project)\n\n" + "## Current Phase: (.current_phase // "Not set")\n\n" + "Progress: (.statistics.complete)/(.statistics.total_features) features ((.statistics.completion_percentage)%)\n\n" + "### In Progress\n" + (if (.tasks.in_progress | length) == 0 then "- (none)\n" else (.tasks.in_progress | map("- (.description) [(.id)]") | join("\n")) + "\n" end) + "\n### Pending\n" + (if (.tasks.pending | length) == 0 then "- (none)\n" else (.tasks.pending | map("- (.description) [(.id)]") | join("\n")) + "\n" end) + "\n### Recently Completed\n" + (if (.tasks.completed | length) == 0 then "- (none)\n" else (.tasks.completed | map("- (.description) [(.id)]") | join("\n")) + "\n" end) + "\n## Phase Status\n" + (.phases | map("- (.name): (.status)") | join("\n")) ' docs/blueprint/feature-tracker.json

Output example:

Work Overview: my-project

Current Phase: phase-1

Progress: 22/42 features (52.4%)

In Progress

  • Implement OAuth integration [FR2.3]
  • Add rate limiting [FR3.1]

Pending

  • Webhook support [FR4.1]
  • Admin dashboard [FR5.1]

Recently Completed

  • User authentication [FR2.1]
  • Session management [FR2.2]

Phase Status

  • Foundation: complete
  • Core Features: in_progress
  • Advanced Features: not_started

Exit after displaying summary.

Mode: Full Sync (Default)

Step 1: Check if feature tracking is enabled

test -f docs/blueprint/feature-tracker.json

If not found, report:

Feature tracking not enabled in this project. Run /blueprint-init and enable feature tracking to get started.

Step 2: Load current state

  • Read docs/blueprint/feature-tracker.json for current feature and task status

  • Read TODO.md for checkbox states (if exists)

  • Read manifest for configuration

Step 3: Analyze each feature

For each feature in the tracker:

a. Verify status consistency:

  • complete : Check TODO.md has [x] (if tracked there)

  • partial : Some checkboxes checked, some not

  • in_progress : Should have entry in tasks.in_progress

  • not_started : Check TODO.md has [ ] , not in completed

  • blocked : Note if blocking reason is documented

b. Check implementation evidence (optional, for thorough sync):

  • Look for files listed in implementation.files

  • Check if tests exist in implementation.tests

  • Verify commits in implementation.commits

Step 4: Detect discrepancies

Look for inconsistencies:

  • Feature marked complete in tracker but unchecked in TODO.md

  • Feature checked in TODO.md but not complete in tracker

  • Feature in tasks.in_progress but tracker says complete

  • PRD status doesn't match feature implementation status

Step 5: Ask user about discrepancies

If discrepancies found (use AskUserQuestion):

question: "Found {N} discrepancies. How should they be resolved?" options:

  • label: "Update tracker from TODO.md" description: "Trust TODO.md, update tracker to match"
  • label: "Update TODO.md from tracker" description: "Trust the tracker, update TODO.md to match"
  • label: "Review each discrepancy" description: "Show each discrepancy and decide individually"
  • label: "Skip - don't resolve discrepancies" description: "Report discrepancies but don't change anything"

Step 6: Recalculate statistics

  • Count features by status across all nested levels

  • Calculate completion percentage: (complete / total) * 100

  • Update phase status based on contained features:

  • complete if all features complete

  • in_progress if any feature in_progress

  • partial if some complete, some not

  • not_started if no features started

Step 7: Update feature-tracker.json

  • Apply resolved discrepancies

  • Update statistics section

  • Update last_updated to today's date

  • Update PRD status if features changed

  • Update current_phase to first incomplete phase

Step 8: Update TODO.md (if exists)

  • Ensure checkbox states match feature status

  • for complete features

  • for not_started features

  • Note partial completion in task text if needed

Step 9: Output sync report

Feature Tracker Sync Report

Last Updated: {date}

Statistics:

  • Total Features: {total}
  • Complete: {complete} ({percentage}%)
  • Partial: {partial}
  • In Progress: {in_progress}
  • Not Started: {not_started}
  • Blocked: {blocked}

Current Phase: {current_phase}

Phase Status:

  • Phase 0: {status}
  • Phase 1: {status} ...

Active Tasks: {tasks.in_progress | list}

Changes Made: {If changes made:}

  • {feature}: {old_status} -> {new_status}
  • Updated TODO.md: checked {N} items {If no changes:}
  • No changes needed, all in sync

{If discrepancies skipped:} Unresolved Discrepancies:

  • {feature}: tracker says {status}, TODO.md shows {checkbox_state}

Step 10: Update task registry

Update the task registry entry in docs/blueprint/manifest.json :

jq --arg now "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
--arg todo_hash "$(sha256sum TODO.md 2>/dev/null | cut -d' ' -f1)"
--argjson processed "${FEATURES_SYNCED:-0}"
'.task_registry["feature-tracker-sync"].last_completed_at = $now | .task_registry["feature-tracker-sync"].last_result = "success" | .task_registry["feature-tracker-sync"].context.last_todo_hash = $todo_hash | .task_registry["feature-tracker-sync"].stats.runs_total = ((.task_registry["feature-tracker-sync"].stats.runs_total // 0) + 1) | .task_registry["feature-tracker-sync"].stats.items_processed = $processed'
docs/blueprint/manifest.json > tmp.json && mv tmp.json docs/blueprint/manifest.json

Step 11: Prompt for next action

Use AskUserQuestion:

question: "Sync complete. What would you like to do next?" options:

  • label: "View detailed status" description: "Run /blueprint-feature-tracker-status for full breakdown"
  • label: "Continue development" description: "Run /project:continue to work on next task"
  • label: "I'm done" description: "Exit sync"

Task Management

Adding a task to in_progress

When starting work on a feature:

jq '.tasks.in_progress += [{"id": "FR2.3", "description": "Implement OAuth integration", "source": "PRP-002", "added": "2026-02-04"}]'
docs/blueprint/feature-tracker.json > tmp.json && mv tmp.json docs/blueprint/feature-tracker.json

Completing a task

When finishing work:

Move from in_progress to completed (keep last 10)

jq ' .tasks.completed = ([.tasks.in_progress[] | select(.id == "FR2.3") | . + {"completed": "2026-02-04"}] + .tasks.completed)[:10] | .tasks.in_progress = [.tasks.in_progress[] | select(.id != "FR2.3")] ' docs/blueprint/feature-tracker.json > tmp.json && mv tmp.json docs/blueprint/feature-tracker.json

Adding pending tasks

When planning future work:

jq '.tasks.pending += [{"id": "FR4.1", "description": "Webhook support", "source": "PRD-001", "added": "2026-02-04"}]'
docs/blueprint/feature-tracker.json > tmp.json && mv tmp.json docs/blueprint/feature-tracker.json

Example Output

Feature Tracker Sync Report

Last Updated: 2026-02-04

Statistics:

  • Total Features: 42
  • Complete: 22 (52.4%)
  • Partial: 4
  • In Progress: 2
  • Not Started: 14
  • Blocked: 0

Current Phase: phase-2

Phase Status:

  • Phase 0: complete
  • Phase 1: complete
  • Phase 2: in_progress
  • Phase 3-8: not_started

Active Tasks:

  • Implement OAuth integration [FR2.3]
  • Add rate limiting [FR3.1]

Changes Made:

  • FR2.6.1 (Skill Progression): partial -> complete
  • FR2.6.2 (Experience Points): not_started -> complete
  • Updated TODO.md: checked 2 items

All sync targets updated successfully.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ruff linting

No summary provided by upstream source.

Repository SourceNeeds Review
General

imagemagick-conversion

No summary provided by upstream source.

Repository SourceNeeds Review
General

jq json processing

No summary provided by upstream source.

Repository SourceNeeds Review