Loading...
Loading...
Design-driven development methodology. The design/ directory is the single source of architectural truth — read it before coding, stay within its boundaries, and when the system's shape needs to change, update the design first. Use this skill whenever starting any development work on this project. Also use when the user asks to: create or update architecture docs, add a new module or feature that might cross existing boundaries, refactor system structure, or understand the codebase architecture. Trigger on phrases like "design first", "update the design", "does this change the architecture", "write a design for", "what's the current design", or when onboarding to understand a codebase's shape. Supports arguments: `/design-driven init` to configure a project for design-driven development, `/design-driven bootstrap` to generate design from an existing codebase.
npx skill4agent add lidessen/skills design-driven/design-driven initcommands/init.md/design-driven bootstrapcommands/bootstrap.mddesign/project/
├── design/ ← Permanent skeleton
│ ├── DESIGN.md ← System shape
│ ├── DESIGN-<aspect>.md ← Complex mechanisms (optional)
│ └── decisions/
│ ├── 001-outbox-over-direct-push.md ← adopted
│ └── 002-split-memory-tiers.md ← rejected
│
└── blueprints/ ← Implementation records
├── add-semantic-memory-search.md ← done (clean, no TODO)
└── refactor-agent-delegation.md ← in-progress (has TODO)design/blueprints/ ┌───────────────────────────────┐
│ Read design/DESIGN.md │ ← Always start here
│ Understand the skeleton │
└────────────┬──────────────────┘
│
┌───────▼────────┐
│ Does this task │
│ change the │
│ system's shape? │
└───┬─────────┬───┘
│ │
NO YES
│ │
│ ┌────▼───────────────────┐
│ │ Write proposal in │
│ │ design/decisions/ │ ← Context + proposal + alternatives
│ └────┬───────────────────┘
│ │
│ ┌────▼───────────────────┐
│ │ Human reviews │ ← Wait. Don't code until approved.
│ └────┬───────────────────┘
│ │
│ ┌────▼───────────────────┐
│ │ Update design/DESIGN.md│ ← Commit design change separately
│ └────┬───────────────────┘
│ │
┌───▼─────────▼───┐
│ Plan │ ← Draw the blueprint, set up scaffolding
├──────────────────┤
│ Build │ ← Code freely, track progress on scaffolding
├──────────────────┤
│ Verify │ ← Check against blueprint, tear down scaffolding
└──────────────────┘blueprints/<task-name>.mdreferences/templates.mddonedesign/ "The system has a memory layer with shared facts and
per-conversation short-term context"
blueprint "Add semantic search to memory: integrate embedding model,
build index on startup, query during context assembly.
Reuse existing IMemoryManager interface."
code The actual embedder, vector store, query functions, testsdesign/decisions/NNN-title.mdtemplates.md/design-driven bootstrapreferences/templates.mdreferences/writing-guide.md