From dstoic
Create OpenSpec design artifacts. Use when: user wants to design a feature before tasking, run a bounded context check, produce design.md, or create C4/ER/flow diagrams for an OpenSpec change. Triggers: design, openspec-design, BC check, bounded context, design.md.
npx claudepluginhub digital-stoic-org/agent-skills --plugin dstoicThis skill uses the workspace's default tool permissions.
BC-first structural design engine. Produces `design.md` — the missing layer between proposal.md and tasks.md.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
BC-first structural design engine. Produces design.md — the missing layer between proposal.md and tasks.md.
Domain-agnostic: Containers are any bounded unit — services, files, skill directories, workflow phases, document sections, process stages. Not limited to software architecture. Choose the zoom level that fits the change.
You are designing: $ARGUMENTS
Analyze proposal → BC check → Minimal Design Kit → write design.md.
Input: $ARGUMENTS = design <change-id>
Workflow:
Read context:
openspec/project.md → execution modeopenspec/changes/{id}/proposal.md → change scopeBC check (mandatory first step — stop if fails):
Design phase (only if BC check passes):
design.md (see §Output Format)maintain) → delta-only, skip full kitWrite: openspec/changes/{id}/design.md
BC split output (stop before design artifacts):
⚠️ Bounded Context boundary crossed
This change appears to span multiple domains:
- BC1: {name} — {what it owns}
- BC2: {name} — {what it owns}
Recommendation: Split into separate OpenSpec changes:
1. openspec-plan create {change-id}-{bc1}: {description}
2. openspec-plan create {change-id}-{bc2}: {description}
Why: 1 change = 1 BC enables isolated testing, clear ownership,
and tractable troubleshooting. Mixing domains creates ambiguous
failures where you can't tell which boundary is broken.
Override: Add ADR to proposal.md documenting why mixed-domain is
intentional, then re-invoke /openspec-design design {id}.
Delta-only design update for an existing design.md.
Input: $ARGUMENTS = maintain <change-id>
Workflow:
openspec/changes/{id}/design.md## Delta section to design.md (do not rewrite existing sections)5 sections — see reference.md §design.md Template for full copy-paste scaffold:
Scan proposal.md for these patterns. Any 2+ signals = recommend split.
| Signal | What to look for |
|---|---|
| Multiple vocabularies | Proposal uses terms from 2+ distinct domains that don't overlap (e.g., "order fulfillment" + "payment processing", or "skill authoring" + "plugin deployment") |
| Independent subgraphs | Containers that never interact — diagram splits into disconnected clusters |
| Independent testability | "Part A works without part B" — if separable, should be separate |
| Multiple ownership | "Who owns this?" yields different answers depending on which part |
| Cognitive load overflow | Single container requires 3+ distinct domains to understand simultaneously |
See reference.md for: