Produces the technical design with architecture decisions, data flow, and a file change plan.
Triggers: /sdd-design <change-name>, technical design, change architecture, sdd design
Purpose
The design defines HOW to implement what the specs say the system MUST do. It is the bridge between requirements and code. It documents technical decisions and their justification.
Skill resolution
When the orchestrator launches this sub-agent, it resolves the skill path using, project-local → global, in order:
1. .claude/skills/sdd-design/SKILL.md (project-local — highest priority)
2. ~/.claude/skills/sdd-design/SKILL.md (global catalog — fallback)
Project-local skills override the global catalog. See docs/SKILL-RESOLUTION.md for the full algorithm.
Claude execution wiring
These notes bind the tool-neutral logic above to the Claude Code harness. They are the EXECUTION layer that does not port to other tools.
- Step 0 preload — follow
skills/_shared/sdd-phase-common.mdSection F (Project Context Load) and Section G (Spec Context Preload). Non-blocking. - Artifact reads — use the harness
Read("docs/sdd/{change-name}/<artifact>.md")tool for the proposal and spec. If a disk file is absent (legacy change), fall back tomem_search(query: "sdd/{change-name}/<artifact>")→mem_get_observation(id). If neither exists and Engram is not reachable, the content is passed inline from the orchestrator. - Skills Registry cross-reference — the neutral "the project's technology
guidance" resolves to the global catalog under
~/.claude/skills/plus any project-local.claude/skills/. Mark catalog skills not registered in the project as[optional — not registered in project; add via /skill-create <name>]. - Design persistence — write the artifact via the harness
Write("docs/sdd/{change-name}/design.md", <full design markdown>)FIRST, thenmem_savea pointer + summary withtopic_key: sdd/{change-name}/design,type: architecture,project: {project}, content ="path: docs/sdd/{change-name}/design.md\n\n{1-3 sentence summary}". If Engram MCP is not reachable, still write the disk artifact; skip the engram pointer only. - ADR generation (Step 4) — perform the copy/edit via harness file tools
(
Read/Write/Edit); non-blocking, any failure is a warning only. - Orchestrator output — return the neutral Output Contract as the JSON block
the orchestrator expects; the artifacts list uses the engram pointer
engram:sdd/{change-name}/designalongside the disk path, and the manual next step is/sdd-tasks <change-name>.