From librarian
Manage planning documents (ADRs, FDPs, action plans, reports). Use when creating, archiving, or listing planning docs. Enforces proper numbering and structure.
How this skill is triggered — by the user, by Claude, or both
Slash command
/librarian:librarianThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manage planning documents with proper structure, numbering, and lifecycle.
scripts/append.pyscripts/archive.pyscripts/config.pyscripts/edit.pyscripts/frontmatter.pyscripts/init-roadmap.pyscripts/list.pyscripts/new.pyscripts/relate.pyscripts/review.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 |
This workspace has planning documents in multiple locations. Infer the correct --project-dir from conversational context.
| Location | Contents | When to use |
|---|---|---|
docs/planning/ (workspace root) | Cross-cutting ADRs, FDPs, APs, RPTs | Library architecture, shared infrastructure, DSP widgets |
sbl-apps/docs/planning/ | App-level FDPs, APs, product briefs | Davis family, app-specific designs |
sbl-apps/davis-jr/docs/planning/ | Product-specific reports | Davis Jr. tuning, gain staging |
tools/plugins/vibe-hacker/docs/planning/ | Tool ADRs, FDPs, APs | vibe-hacker plugin development |
Heuristics:
sbl-apps/tools/plugins/vibe-hacker/Pass the target via --project-dir:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/librarian/scripts/new.py fdp "Title" --project-dir /absolute/path/to/sbl-apps
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.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 |
Use the librarian scripts when:
Do NOT manually create or renumber planning documents. Always use the scripts.
All scripts are in ${CLAUDE_PLUGIN_ROOT}/skills/librarian/scripts/.
python3 ${CLAUDE_PLUGIN_ROOT}/skills/librarian/scripts/new.py <type> "<title>" [--project-dir PATH]
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"
python3 scripts/new.py fdp "Davis Mixer" --project-dir /path/to/sbl-apps
Add notes or updates to any document, even locked ones:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/librarian/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/librarian/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/librarian/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/librarian/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/librarian/scripts/archive.py <doc-id> [--project-dir PATH]
Archiving moves the document to archive/ and generates an ARCHIVE.md index in the type directory listing all archived documents.
Examples:
python3 scripts/archive.py ADR-001
python3 scripts/archive.py FDP-002
To rebuild the archive index without archiving a document:
python3 scripts/archive.py --regenerate-index [--type TYPE] [--project-dir PATH]
python3 ${CLAUDE_PLUGIN_ROOT}/skills/librarian/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.
Show all planning documents not in a terminal state, with brief summaries. Use this to audit what's still open and decide what to archive, advance, or abandon.
python3 ${CLAUDE_PLUGIN_ROOT}/skills/librarian/scripts/review.py [--type TYPE] [--project-dir PATH]
Examples:
python3 scripts/review.py # Review all open documents
python3 scripts/review.py --type fdp # Review open FDPs only
python3 scripts/review.py --project-dir /path/to/sbl-apps # Review app-level plans
Terminal statuses (excluded from review):
Documents with non-standard statuses (e.g., "Complete" instead of "Implemented") will show up — that's intentional, as it surfaces docs that need status cleanup.
python3 ${CLAUDE_PLUGIN_ROOT}/skills/librarian/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/librarian/scripts/vibe-doc.py status
python3 ${CLAUDE_PLUGIN_ROOT}/skills/librarian/scripts/vibe-doc.py upgrade --dry-run
python3 ${CLAUDE_PLUGIN_ROOT}/skills/librarian/scripts/vibe-doc.py upgrade
python3 ${CLAUDE_PLUGIN_ROOT}/skills/librarian/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/librarian/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/librarian/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.
npx claudepluginhub soundbytelabs/vibe-hacker --plugin librarianAnalyzes feature requests, maintains PRDs, and decomposes into tracks with work breakdowns and execution order. For new feature planning, architecture changes, requirements analysis, or plan adjustments.
Manages PRD lifecycle: applies naming conventions, maintains directory structure, enforces status transitions, links PRDs to tasks, runs quality checks, and automates archiving.
Multi-project Manus-style planning with coordinator pattern. Supports project switching, separate planning/source paths, and cross-machine sync via git. Creates task_plan.md, findings.md, and progress.md.