Update Milestones
SkillDev toolsSync MILESTONES.md with completed work — scan docs, diff checkboxes, auto-update.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Update Milestones skill
What this skill tells your AI
The instructions your AI receives, as published by neuron-mr-white/unipi in packages/milestone/skills/milestone-update/SKILL.md and read by ahel’s review.
Sync MILESTONES.md with work completed in workflow docs. Detects checkbox changes and updates milestone items.
Boundaries
This skill MAY: read .unipi/docs/, update .unipi/docs/MILESTONES.md, ask user for conflict resolution.
This skill MAY NOT: modify workflow docs, delete files, create new milestones (use /unipi:milestone-onboard).
Phase 1: Scan
Read all workflow docs modified since last milestone update.
- Read
.unipi/docs/MILESTONES.md— if missing, suggest/unipi:milestone-onboard - Record
updateddate from MILESTONES.md frontmatter - Scan
.unipi/docs/{specs,plans,quick-work}/for files modified after theupdateddate - If no modified files found:
"No workflow docs have been modified since the last milestone update."
- List modified files and present to user
Phase 2: Diff
Compare checkbox states between current docs and baseline.
- For each modified file:
- Extract all checkbox items (
- [ ]and- [x]) - Extract task statuses from plans (
completed:)
- Extract all checkbox items (
- Compare against MILESTONES.md items:
- Exact match (normalized): item text matches a milestone item
- No match: item not found in milestones
- Categorize:
- Newly completed: item is
[x]in doc but[ ]in milestones - Already synced: item matches milestone state
- Unmatched: item not in milestones at all
- Newly completed: item is
- Present diff:
"Found 3 changes:
- ✅
Authentication system— completed in spec.md (exact match) - ✅
API routing— completed in plan.md (exact match) - ⚠️
New feature idea— not found in milestones (skipped)"
- ✅
Phase 3: Resolve
Auto-update clear matches, ask user on conflicts.
- Exact matches: Update automatically via
updateItemStatus() - Unmatched completions: Present to user via
ask_user:"Found completed items not in milestones:
New feature idea(from spec.md)
What should I do?"
- Skip (don't update milestones)
- Add to a phase (specify which)
- If user wants to add: ask which phase, then add item and mark as completed
- Log all changes made
Phase 4: Write
Apply resolved changes to MILESTONES.md.
- For each resolved change:
- Call
updateItemStatus(milestonesPath, phase, text, true)for completions - Or modify doc directly for new items
- Call
- Update
updatedfrontmatter date to today - Verify file still parses correctly
Phase 5: Report
Show what changed, what was skipped, suggest next steps.
-
Display summary:
"✅ Milestones updated:
- 2 items marked complete
- 1 item skipped (not in milestones)
Progress: 5/10 items (50%) Current phase: Phase 1: Foundation (3/5 done)
Next steps:
- Continue with remaining items
/unipi:milestone-onboard— restructure milestones"
-
If no changes were made:
"No milestone items needed updating. Everything is in sync."
Validation Checklist
Before completing, verify:
- MILESTONES.md still exists and is valid
- All auto-updated items match their source docs
-
updateddate reflects today - No items were accidentally unchecked
- File parses correctly via
parseMilestones()
Signals
- GitHub stars
- 64
- Forks
- 15
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
milestone-update- Source
- github.com/neuron-mr-white/unipi