Manage planning documents (ADRs, FDPs, action plans, reports). Use when creating, archiving, or listing planning docs. Enforces proper numbering and structure.
Limited to specific tools
Additional assets for this skill
This skill is limited to using the following tools:
scripts/append.pyscripts/archive.pyscripts/config.pyscripts/edit.pyscripts/frontmatter.pyscripts/init-roadmap.pyscripts/list.pyscripts/new.pyscripts/relate.pyscripts/supersede.pyscripts/update-status.pyscripts/vibe-doc.pytemplates/action-plan.mdtemplates/adr.mdtemplates/fdp.mdtemplates/report.mdtemplates/roadmap.mdManage planning documents with proper structure, numbering, and lifecycle.
| Type | Purpose | ID Format | Default Directory |
|---|---|---|---|
| ADR | Architecture Decision Record | ADR-001 | decisions/ |
| FDP | Feature Design Proposal | FDP-001 | designs/ |
| AP | Action Plan | AP-001 | action-plans/ |
| Report | Reports and analysis | RPT-001 | reports/ |
| Roadmap | Project goals and vision | N/A | roadmap.md |
All documents have YAML frontmatter for structured metadata:
---
type: adr
id: ADR-001
status: proposed
created: 2025-12-13
modified: 2025-12-13
supersedes: null
superseded_by: null
obsoleted_by: null
related: []
---
# ADR-001: Title Here
## Status
Proposed
...content...
---
## Addenda
| Field | Description |
|---|---|
type | Document type (adr, fdp, ap, report) |
id | Display ID (ADR-001, FDP-002, etc.) |
status | Current lifecycle status |
created | ISO date of creation |
modified | ISO date of last modification |
supersedes | ID of document this replaces |
superseded_by | ID of document that replaced this |
obsoleted_by | ID or reason for obsolescence |
related | List of related document IDs |
Documents have an append-only addenda section at the bottom. This allows adding notes, clarifications, and updates to locked documents without modifying the original content.
Configure planning in .claude/vibe-hacker.json:
{
"planning": {
"version": "0.2.0",
"subdirs": {
"adr": "decisions",
"fdp": "designs",
"ap": "action-plans",
"report": "reports"
}
},
"protected_paths": {
"planning_root": "docs/planning"
}
}
| Setting | Default | Description |
|---|---|---|
planning.version | 0.1.0 | Schema version |
planning.subdirs.adr | decisions | Subdirectory for ADRs |
planning.subdirs.fdp | designs | Subdirectory for FDPs |
planning.subdirs.ap | action-plans | Subdirectory for Action Plans |
planning.subdirs.report | reports | Subdirectory for Reports |
protected_paths.planning_root | docs/planning | Root directory for all planning docs |
Use the planning scripts when:
Do NOT manually create or renumber planning documents. Always use the scripts.
All scripts are in ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/.
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/new.py <type> "<title>"
Types: adr, fdp, ap, report
Examples:
python3 scripts/new.py adr "Use PostgreSQL for persistence"
python3 scripts/new.py fdp "User Authentication System"
python3 scripts/new.py ap "Implement login flow"
python3 scripts/new.py report "Q4 Performance Analysis"
Add notes or updates to any document, even locked ones:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/append.py <doc-id> "<title>" [--body "<content>"]
Examples:
python3 scripts/append.py ADR-001 "Performance Clarification"
python3 scripts/append.py ADR-001 "Migration note" --body "Use pg_dump for best results"
Create a new document that supersedes an existing one:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/supersede.py <old-doc-id> "<new-title>"
This will:
Example:
python3 scripts/supersede.py ADR-001 "Revised Database Strategy"
Link documents together:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/relate.py <doc-id> <related-ids...> [--bidirectional]
Examples:
python3 scripts/relate.py ADR-001 FDP-003
python3 scripts/relate.py ADR-001 FDP-003 ADR-002 --bidirectional
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/update-status.py <doc-id> <new-status>
Examples:
python3 scripts/update-status.py ADR-001 accepted
python3 scripts/update-status.py FDP-002 "in progress"
python3 scripts/update-status.py RPT-001 published
Valid statuses by type:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/archive.py <doc-id>
Examples:
python3 scripts/archive.py ADR-001
python3 scripts/archive.py FDP-002
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/edit.py <doc-id> [--force] [--quiet]
Checks if a document can be edited based on its status. Outputs the file path if editable.
Locked statuses (require --force to edit):
Tip: Use append.py to add an addendum instead of force-editing locked documents.
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/list.py [--type TYPE] [--status STATUS] [--include-archived]
Examples:
python3 scripts/list.py
python3 scripts/list.py --type adr
python3 scripts/list.py --type report
python3 scripts/list.py --status proposed
python3 scripts/list.py --include-archived
Upgrade existing documents to the latest format:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/vibe-doc.py status
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/vibe-doc.py upgrade --dry-run
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/vibe-doc.py upgrade
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/vibe-doc.py changelog 0.2.0
Proposed → Accepted → [Superseded | Deprecated]
Proposed → In Progress → [Implemented | Abandoned]
Active → [Completed | Abandoned]
Draft → Published → [Superseded | Obsoleted]
The roadmap is a single markdown file tracking project goals at different time horizons:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/init-roadmap.py
A PreCompact hook reminds you to update the roadmap before context compaction.
Planning documents are configured with protection rules:
readonly tier): Cannot be editedremind tier): Editable with a warning suggesting skill scriptsThe edit.py script provides additional validation based on document status.
Templates are in ${CLAUDE_PLUGIN_ROOT}/skills/planning/templates/:
adr.md - Architecture Decision Recordfdp.md - Feature Design Proposalaction-plan.md - Action Planreport.md - Reportroadmap.md - Project RoadmapAll templates include frontmatter and an addenda section.