---
name: doc
description: Draft or edit a document — PRD, spec, design doc, technical brief. Use for "/doc project title" to create a new doc or edit existing.
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, TaskCreate, TaskUpdate, TaskList, TaskGet
user-invocable: true
---
# /doc — Document Drafting
Create or edit documents (specs, PRDs, design docs, etc.).
## Context
Today's date: `!date +%Y-%m-%d`
Existing docs: `!ls docs/*/*.md 2>/dev/null | tail -10`
Reference template: @_templates/doc.md
Config: @_core/config.yaml
Processing logic: @_core/PROCESSING.md
## Input
User input: $ARGUMENTS
## Processing Steps
1. **Parse Input**
- Extract project
- Extract title/feature name
2. **Check Existing**
- Search `docs/{project}/*.md` for similar titles (or `docs/general/*.md` if no project)
- If found: Offer to edit or create new
3. **Gather Context**
- Search for related decisions/blockers
4. **Interactive Drafting**
- Prompt for each major section:
- Problem statement
- Goals / Non-goals
- Requirements (P0/P1/P2)
- Technical approach
- Or accept full content at once
5. **Create Doc Note**
- If no project specified: write to `docs/general/{slug}.md`
- If project specified: write to `docs/{project}/{slug}.md`
- Apply template with gathered data
- Status: draft
- Add `## Links` section
6. **Update References**
- Add to project index if exists
7. **Append to Vault Log**
- Append entry to `01-index/_vault-log.md` (see `.claude/rules/vault-log.md`)
- Action: `doc`
- Details: doc title and status
## Output
```
Created: docs/{project}/{slug}.md
Status: draft
Sections: {filled}/{total}
```
## Export (Optional)
Supports `--docx`, `--pdf` flags. See `.claude/rules/export-formats.md` for layout specs and workflow. Complete normal processing first, then generate the formatted file.