archive-roadmap
Archive a completed roadmap workspace to openspec/roadmaps/archive/<date>-<id>/
Skill by jankneumann
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/jankneumann-archive-roadmap
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/archive-roadmap
What's inside
- Skill name
archive-roadmap- Description
- Archive a completed roadmap workspace to openspec/roadmaps/archive/<date>-<id>/
- License
- MIT
- Instructions
- 121 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (3)
- SKILL.md
- __init__.py · scripts/
- archive.py · scripts/
SKILL.md (first lines)
# Archive Roadmap
Move a completed roadmap workspace into the archive directory, mirroring the OpenSpec change-archive convention. Preserves the full workspace contents (`proposal.md`, `roadmap.yaml`, `checkpoint.json`, `learnings/`) under a date-prefixed archive entry.
## Arguments
`<roadmap-id>` - The roadmap identifier, matching the workspace directory name under `openspec/roadmaps/`.
Optional flags:
- `--force` - Archive even if items are not in terminal states (`completed` or `skipped`). Useful for abandoned epics.
- `--archive-root <path>` - Override the default archive directory. Defaults to `<workspace>/../archive`.
## Prerequisites
- A roadmap workspace at `openspec/roadmaps/<roadmap-id>/` containing at least `roadmap.yaml`.
- Shared runtime at `<skill-base-dir>/../roadmap-runtime/scripts/`.
## Local CLI Mutation Boundary
Archiving moves roadmap directories and therefore mutates repository files. In
local CLI execution, run inside a managed worktree before moving the workspace:
```bash
CHANGE_ID="archive-roadmap-<roadmap-id>"
eval "$(python3 "<skill-base-dir>/../worktree/scripts/worktree.py" setup "$CHANGE_ID")"
cd "$WORKTREE_PATH"
python3 "<skill-base-dir>/../shared/checkout_policy.py" require-mutation
```
## Steps
### 1. Resolve workspace and load roadmap
```python
from pathlib import Path
import sys
sys.path.insert(0, "<skill-base-dir>/scripts")
from archive import archive_roadmap, IncompleteRoadmapError
workspace = Path("openspec/roadmaps") / roadmap_id
```
### 2. Check completion status
The helper inspects every item's `status` field. Terminal statuses are `completed` and `skipped`. Anything else (`failed`, `blocked`, `replan_required`, `in_progress`, `approved`, `candidate`) means the roadmap is incomplete.
If incomplete and `--force` is not set, the helper raises `IncompleteRoadmapError` with a per-status count. Surface that to the user verbatim and prompt them to either:
- Pass `--force` to archive anyway (e.g., abandoned epic).
- Resolve the unfinished items first via `/autopilot-roadmap` or manual edits, then re-run.
### 3. Generate archive target
The destination is `openspec/roadmaps/archive/<YYYY-MM-DD>-<roadmap-id>/`, where the date is today's date in ISO format. This matches the OpenSpec change-archive naming convention (`openspec/changes/archive/<date>-<change-id>/`).
If the target already exists (multiple archives in one day with the same id, or a re-archive after restoration), the helper raises `FileExistsError`. Resolve manually — rename the existing entry or pick a different date.
### 4. Move workspace to archive
The helper creates the archive root if needed, then moves the workspace directory in place. After move:
- `openspec/roadmaps/<roadmap-id>/` — gone.
- `openspec/roadmaps/archive/<date>-<roadmap-id>/` — full workspace contents preserved.
### 5. Display summary
Print a concise summary:
```
## Archive Complete
**Roadmap:** <roadmap-id>
**Archived to:** openspec/roadmaps/archive/<date>-<roadmap-id>/
**Items:** N completed, M skipped (or counts by status if --force was used)
**Forced:** yes/no
```
## Code Pattern
```python
try:
result = archive_roadmap(workspace, force=force_flag)
except IncompleteRoadmapError as e:
# Surface counts to user and ask how to proceed
print(f"Cannot archive: {e}")
return
except FileExistsError as e:
# Surface collision to user
print(f"Archive collision: {e}")
return
print(f"Archived {result.roadmap_id} to {result.destination}")
```
## Guardrails
- Refuses to overwrite an existing archive entry (collision protection).
- Refuses to archive incomplete roadmaps without `--force` (prevents accidental archival of in-progress work).
- Preserves the entire workspace tree — checkpoint and learnings move with the roadmap so the history is auditable post-archive.
- Never deletes anything. The move operation is reversible by `mv` back to the original location.
## Output Location
```
openspec/roadmaps/
├── <active-roadmap-id>/ # active workspaces
│ ├── proposal.md
│ ├── roadmap.yaml
│ ├── checkpoint.json
│ ├── learnings/
│ └── learning-log.md
└── archive/
└── <YYYY-MM-DD>-<roadmap-id>/ # archived (this skill's output)
└── (same layout, frozen)
```
## Related Skills
- `/plan-roadmap` — produces the workspace this skill archives.
- `/autopilot-roadmap` — drives items to terminal states so this skill can archive them cleanly.
- `/openspec-archive-change` — analogous skill for individual OpenSpec changes; this skill is the roadmap-level counterpart.From jankneumann/agentic-coding-tools, MIT.
More from jankneumann/agentic-coding-tools
- 0.611score
bug-scrub
jankneumann
Comprehensive project health diagnostic — collects signals from CI tools, reports, deferred work, code markers, and open GitHub issues
SkillAFreshness: A★ 4Claude Code +9 - 0.608score
autopilot-roadmap
jankneumann
Execute roadmap items iteratively with policy-aware vendor routing and learning feedback
SkillAFreshness: A★ 4Claude Code +9 - 0.608score
coordination-bridge
jankneumann
HTTP fallback bridge for coordinator when MCP transport is unavailable
SkillAFreshness: A★ 4Claude Code +9 - 0.605score
bao-vault
jankneumann
OpenBao/Vault credential seeding and management scripts
SkillAFreshness: A★ 4Claude Code +9 - 0.599score
autopilot
jankneumann
Orchestrate the full plan-review-implement-validate-PR lifecycle with multi-vendor review convergence
SkillAFreshness: A★ 4Claude Code +9 - 0.571score
collect-transcripts
jankneumann
Ingest raw session transcripts from coding-agent harnesses via vendor-specific adapters, normalize to a common event schema, triage for struggle signals, and…
SkillBFreshness: B★ 4Claude Code +9 - 0.571score
audit-choices
jankneumann
Independent, read-only audit of implementation-time decisions made where the spec was silent, producing a schema-valid choices ledger
SkillBFreshness: B★ 4Claude Code +9 - 0.571score
codebase-atlas
jankneumann
Render the architecture graph as a single self-contained interactive HTML page — foldable structure tree, animated dependency graph, and cross-connection…
SkillBFreshness: B★ 4Claude Code +9 - 0.568score
coordinator-task-status-renderer
jankneumann
Render and seed coordinator-owned task status block in OpenSpec tasks.md
SkillBFreshness: B★ 4Claude Code +9 - 0.566score
agent-ergonomics
jankneumann
Refine a system design or plan to be maximally agent-intuitive, agent-ergonomic, and agent-accretive — grounded in simulated agent journeys and real friction…
SkillBFreshness: B★ 4Claude Code +9 - 0.565score
debugging-and-error-recovery
jankneumann
Guides systematic root-cause debugging with the Stop-the-Line rule and a reproduce → localize → reduce → fix → guard → verify triage checklist.
SkillBFreshness: B★ 4Claude Code +9 - 0.565score
context-engineering
jankneumann
Curates the right context for an agent at the right time.
SkillBFreshness: B★ 4Claude Code +9
Signals
- Stars
- 4
- Forks
- 1
- Open issues
- 129
- Last commit (this folder)
- Aug 16, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from jankneumann
- 0.611score
bug-scrub
jankneumann
Comprehensive project health diagnostic — collects signals from CI tools, reports, deferred work, code markers, and open GitHub issues
SkillAFreshness: A★ 4Claude Code +9 - 0.608score
coordination-bridge
jankneumann
HTTP fallback bridge for coordinator when MCP transport is unavailable
SkillAFreshness: A★ 4Claude Code +9 - 0.608score
autopilot-roadmap
jankneumann
Execute roadmap items iteratively with policy-aware vendor routing and learning feedback
SkillAFreshness: A★ 4Claude Code +9 - 0.605score
bao-vault
jankneumann
OpenBao/Vault credential seeding and management scripts
SkillAFreshness: A★ 4Claude Code +9 - 0.599score
autopilot
jankneumann
Orchestrate the full plan-review-implement-validate-PR lifecycle with multi-vendor review convergence
SkillAFreshness: A★ 4Claude Code +9 - 0.571score
audit-choices
jankneumann
Independent, read-only audit of implementation-time decisions made where the spec was silent, producing a schema-valid choices ledger
SkillBFreshness: B★ 4Claude Code +9
Cite this page
archive-roadmap skill. Agent Mart. https://agentmart.dev/skills/jankneumann-archive-roadmap (last updated 2026-10-24)