Archive milestone
Skill that gives AI coding agents persistent memory and quality enforcement
npx -y skills add mattjaikaran/meridian --skill archive-milestoneAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.4 KB, as published. Nobody here has run it
/meridian:archive-milestone — Archive Milestone
Transition a completed milestone to archived status, marking it as historical record.
Archiving is a one-way operation. Use after completion when the milestone is stable and you want to keep it out of active views.
Prerequisites
- Milestone must already be in
completestatus - Run
/meridian:complete-milestonefirst if not yet complete
Arguments
None. Operates on the most recently completed milestone.
Procedure
Step 1: Identify the milestone to archive
MERIDIAN_HOME="${MERIDIAN_HOME:-.}"
PYTHONPATH="$MERIDIAN_HOME" uv run --project "$MERIDIAN_HOME" python -c "
import json
from scripts.db import connect, get_db_path
from scripts.state import get_status, list_milestones
conn = connect(get_db_path('.'))
milestones = list_milestones(conn)
complete = [m for m in milestones if m['status'] == 'complete']
print(json.dumps(complete, indent=2, default=str))
conn.close()
"
Pick the milestone id to archive. Save as MILESTONE_ID.
Step 2: Archive
PYTHONPATH="$MERIDIAN_HOME" uv run --project "$MERIDIAN_HOME" python -c "
import json
from scripts.db import connect, get_db_path
from scripts.milestone_lifecycle import archive_milestone
conn = connect(get_db_path('.'))
result = archive_milestone(conn, '$MILESTONE_ID')
print(json.dumps(result, indent=2))
conn.close()
"
Step 3: Confirm
PYTHONPATH="$MERIDIAN_HOME" uv run --project "$MERIDIAN_HOME" python -c "
import json
from scripts.db import connect, get_db_path
from scripts.state import get_milestone
conn = connect(get_db_path('.'))
ms = get_milestone(conn, '$MILESTONE_ID')
print(f'Milestone {ms[\"id\"]} status: {ms[\"status\"]}')
conn.close()
"
Expected output: Milestone {id} status: archived
Output Format
# Milestone Archived — {milestone_name}
Milestone ID: {id}
Status: archived
→ Archived milestones are excluded from active views.
→ Summary is preserved at .planning/milestones/{id}-SUMMARY.md
Error Handling
| Error | Cause | Fix |
|---|---|---|
Invalid transition | Milestone not in complete status | Complete it first with /meridian:complete-milestone |
Milestone not found | Wrong ID | List milestones in Step 1 |
Notes for non-Claude LLMs
- Replace
$MILESTONE_IDwith the actual string ID from Step 1 - This is a state transition only — no files are deleted
- The git tag created at completion is unaffected by archival