
planning
by mjrskiles
A collection of Claude Code plugins for vibe hacking workflows
SKILL.md
name: planning description: Manage planning documents (ADRs, FDPs, action plans, reports). Use when creating, archiving, or listing planning docs. Enforces proper numbering and structure. allowed-tools: Read, Write, Bash, Glob, Grep
Planning Skill
Manage planning documents with proper structure, numbering, and lifecycle.
Document Types
| 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 |
Document Format (v0.2.1)
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
Frontmatter Fields
| 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 |
Addenda Section
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.
Configuration
Configure planning in .claude/vibe-hacker.json:
{
"planning": {
"version": "0.2.1",
"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 |
When to Use This Skill
Use the planning scripts when:
- Creating a new planning document (ensures proper numbering and frontmatter)
- Updating a document's status (e.g., Proposed → Accepted)
- Adding an addendum to a locked document
- Creating a document that supersedes another
- Archiving a completed or superseded document
- Listing active planning documents
Do NOT manually create or renumber planning documents. Always use the scripts.
Available Scripts
All scripts are in ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/.
Create New Document
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 Addendum
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"
Supersede Document
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:
- Create a new document of the same type
- Link the new document to the old (supersedes field)
- Update the old document (superseded_by field, status)
- Add an addendum to the old document
Example:
python3 scripts/supersede.py ADR-001 "Revised Database Strategy"
Add Related Links
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
Update Status
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:
- ADR: proposed, accepted, deprecated, superseded
- FDP: proposed, in progress, implemented, abandoned
- AP: active, completed, abandoned
- Report: draft, published, superseded, obsoleted
Archive Document
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/archive.py <doc-id>
Examples:
python3 scripts/archive.py ADR-001
python3 scripts/archive.py FDP-002
Check Edit Permission
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):
- ADR: accepted, deprecated, superseded
- FDP: implemented, abandoned
- AP: completed, abandoned
- Report: published, superseded, obsoleted
Tip: Use append.py to add an addendum instead of force-editing locked documents.
List 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
Migration (vibe-doc)
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
Document Lifecycle
ADR Lifecycle
Proposed → Accepted → [Superseded | Deprecated]
- Proposed: Under discussion, can be edited
- Accepted: Decision made, becomes read-only (use addenda for updates)
- Superseded: Replaced by newer ADR, archived
- Deprecated: No longer applicable, archived
FDP Lifecycle
Proposed → In Progress → [Implemented | Abandoned]
- Proposed: Design under review
- In Progress: Actively being implemented
- Implemented: Complete, archived
- Abandoned: Not pursued, archived
Action Plan Lifecycle
Active → [Completed | Abandoned]
- Active: Work in progress
- Completed: All tasks done, archived
- Abandoned: Work stopped, archived
Report Lifecycle
Draft → Published → [Superseded | Obsoleted]
- Draft: Being written, can be edited
- Published: Final, read-only (use addenda for updates)
- Superseded: Replaced by newer report
- Obsoleted: No longer relevant
Roadmap
The roadmap is a single markdown file tracking project goals at different time horizons:
- Immediate (This Week) - Current focus
- Medium Term (This Month) - Coming up next
- Long Term (This Quarter+) - Vision and direction
- Recently Completed - What was just finished
Initialize Roadmap
python3 ${CLAUDE_PLUGIN_ROOT}/skills/planning/scripts/init-roadmap.py
A PreCompact hook reminds you to update the roadmap before context compaction.
Protected Paths
Planning documents are configured with protection rules:
- Archived documents (
readonlytier): Cannot be edited - Active planning documents (
remindtier): Editable with a warning suggesting skill scripts
The edit.py script provides additional validation based on document status.
Templates
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 Roadmap
All templates include frontmatter and an addenda section.
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon