detailed-design
Skill17 starsChanged 3 months agoApache-2.0View on GitHub
Produces the per-feature technical design — the first skill in the construction loop, run once for each vertical slice as it reaches the front of the implementation plan. Reads the feature's spec from the plan, the FR/UC IDs it implements, the architecture's conceptual domain model and ADRs, and the live codebase (contracts and schema earlier features already established), then designs the feature concretely: API contracts (endpoints, request/response shapes, error codes), the physical schema changes (migrations — architecture owns the conceptual model; new entities escalate to an architecture amendment, never local invention), component-level design, acceptance criteria, and an ordered tasks.md breaking the feature into implementable tasks. Use after project-scaffolding, per feature, before ui-design and implementation. Trigger on "design this feature", "detailed design for", "design the API for this feature", "create the technical design", or "design the next feature". Hands contracts to ui-design.
In this repository12 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- acceptance-verificationSkill
- feature-implementationSkill
- implementation-planningSkill
- initial-deploymentSkill
- pipeline-verifySkill
- project-scaffoldingSkill
- requirements-engineeringSkill
- sdlc-orchestratorSkill
- software-architectureSkill
- ui-designSkill
- ux-foundationsSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 2 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 113
If the feature's plan entry is missing touchpoints (a coarse far-future feature that just reached the front), tighten it first: derive the …
- Very specific: line 130
Read references/design-guide.md.
- Very specific: line 150
Read references/tasks-guide.md.
- Very specific: line 159
Read references/verification.md and self-check: every feature FR is covered by acceptance criteria and by tasks.
- Distinctive: line 167
Write both files, do the RTM append, and summarize: the design in a few sentences, the task count and order, any escalations filed, a …
- Distinctive: line 184
Every acceptance criterion cites the FR/UC it verifies.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Detailed Design (per feature)
The first loop skill: it runs once per vertical slice, for the life of the
project, turning a feature's planned intent into a buildable technical design —
the backend/system half of the feature's low-level design (ui-design is the
presentation half, and consumes this skill's contracts).
Three principles govern it:
- The feature's what is fixed upstream; this skill designs the how. The FR/UC IDs the feature implements were assigned and verified in requirements; the plan chose and scoped the feature. This skill never invents or reinterprets requirements — that inheritance-by-ID is exactly what keeps per-feature design consistent at scale.
- The live codebase is an input, not an obstacle. Feature N is designed months after feature 1, in a fresh session, against code that has evolved past the skeleton. Design against reality: the contracts, schema migrations, and conventions earlier features established. A design that conflicts with existing code is wrong even if it matches the documents.
- Depth here, and only here. This is where the pipeline's depth-on-demand promise is kept: full concrete detail for this feature — contracts, columns, components, tasks — and nothing for features that haven't reached the front.
Inputs
Defaults below; user-provided paths win; source-gated citation throughout (cite FR/UC/SCR/ADR IDs only when their documents exist; never fabricate).
- Implementation plan —
docs/implementation-plan.md. Which feature is next (or the user names one), its traced touchpoints: FRs implemented, UCs realized, SCR screens, building blocks/endpoints, data. - SRS —
docs/srs.md. The verbatim FR statements (they become acceptance criteria) and relevant NFRs (they constrain the design — cite them). - Use cases —
docs/use-cases.md. The UC flows the feature realizes — main/alternate/exception paths drive endpoint behavior and error design. - Architecture —
docs/architecture.md. The conceptual domain model (entity ownership, consistency boundaries), the ADRs constraining this feature, cross-cutting concepts (auth, error handling, observability conventions the design must follow). - The live codebase — mandatory read, not optional: existing route/contract
patterns, the current schema and migration history, module boundaries,
shared utilities, conventions in
docs/scaffold-notes.mdand the agent-instructions file. Prior feature designs live indocs/features/. - UX foundations —
docs/ux-foundations.md, light touch: the SCR screens' stated purpose/states, as context for what the contracts must serve.
Outputs
Per feature, into docs/features/FEAT-NNN-<slug>/ — keyed on the
feature's stable FEAT ID from the plan (immutable, so re-sequencing the
plan never invalidates folder names), with the slug from its name for human
readability — e.g., docs/features/FEAT-004-sign-in/:
technical-design.md— the feature's technical design: contracts, schema changes, component design, acceptance criteria, decisions. (Namedtechnical-design.md, notdesign.md, to avoid colliding with the design system atdocs/design.md; its ui-design sibling will sit beside it in the same folder.) Seereferences/design-guide.md.tasks.md— the ordered, implementable task breakdown. Seereferences/tasks-guide.md.
Plus two write-backs:
- RTM (
docs/rtm.md, if present; skip silently otherwise): append the feature's design ref (e.g.,features/FEAT-004-sign-in/technical-design.md) into the Design ref cell of every FR this feature implements — append, never overwrite; Design ref column only, per the RTM ownership contract. - Architecture amendment escalation (when triggered — see design-guide): a needed new entity or changed boundary is not designed locally; it's surfaced as a proposed architecture amendment and the feature design waits on or explicitly notes it.
Workflow
Phase 1 — Locate the feature and ingest
Identify the feature: the user names it (by FEAT ID or name — explicit naming
is the only legitimate off-sequence path), or default to
the next undesigned feature — computed, not stored: plan build-sequence
order minus the FEAT-* folders already in docs/features/. Multiple
candidates is not ambiguity — the sequence resolves it (earliest in build
order wins); never present a menu. Announce the resolution ("FEAT-004 is
next per the plan's build sequence") so the user can redirect before work
starts. Execution status
lives in the artifacts (a folder with a verified technical-design.md =
designed; its tasks.md checkboxes = build progress) — the plan itself is never
written with status; it stays the structural source owned by
implementation-planning. Read the feature's plan entry and pull its full
trace: FR IDs (fetch their verbatim statements and priorities from the SRS),
UC IDs (fetch their flows), SCR IDs, blocks/endpoints, data. Read the
architecture's domain model, the ADRs that touch this feature, and the
cross-cutting concepts.
If the feature's plan entry is missing touchpoints (a coarse far-future feature that just reached the front), tighten it first: derive the missing FR/UC/SCR trace from the documents and confirm with the user — this is the plan's just-in-time elaboration happening on schedule.
Phase 2 — Read the code
Survey the live codebase before designing anything: existing endpoint and
contract conventions (naming, envelope shapes, error format), the current
schema and its migration history, the module the feature lands in and its
boundaries, shared utilities the design should reuse, and prior feature designs
in docs/features/ (especially any this feature depends on). Record what the
design must conform to. Reality wins over documents where they diverge —
and note the divergence.
Phase 3 — Design
Read references/design-guide.md. Produce, concretely:
- API contracts — endpoints with methods, paths, request/response shapes, validation rules, error codes; following the codebase's established conventions. UC exception/alternate flows become error behaviors.
- Physical schema changes — tables/columns/indexes/constraints as migrations, within the entities the architecture's conceptual model already owns. A new entity or ownership/boundary change escalates to an architecture amendment — never invented locally.
- Component design — the modules/services/functions inside the feature's building block: responsibilities, interactions, where the stubbed skeleton code gets replaced.
- Acceptance criteria — testable, derived from the FR statements and UC flows, each citing its FR/UC ID. These are what acceptance verification will later check.
- Design decisions — any real fork gets a short decision note with its driver (mini-ADR discipline; feature-local decisions stay here, architectural ones escalate).
Phase 4 — Break down tasks
Read references/tasks-guide.md. Decompose the design into tasks.md: an
ordered list of implementable tasks, each small enough to complete and verify
in one focused session, each pointing at the design sections and acceptance
criteria it serves, ordered so the feature builds incrementally (schema →
domain → contract → wiring → tests green), with UI tasks referenced but owned
by ui-design's output.
Phase 5 — Verify
Read references/verification.md and self-check: every feature FR is covered by
acceptance criteria and by tasks; every cited ID resolves; the schema stays
inside the conceptual model (or an escalation is filed); contracts don't
collide with existing code; tasks are complete, ordered, and traceable. Fix
failures; flag the unfixable.
Phase 6 — Deliver
Write both files, do the RTM append, and summarize: the design in a few
sentences, the task count and order, any escalations filed, a live-computed
progress line ("FEAT-004 designed — 5 of 14 features now designed", counted
from the plan vs. docs/features/; never stored anywhere), and the handoff —
ui-design now designs the feature's SCR screens against these contracts;
implementation follows tasks.md. Offer to proceed to either.
Scope boundaries
Does not: design screens (ui-design's half — it consumes these contracts); implement anything (tasks.md is the handoff to implementation); change requirements or the plan (amendments belong to their owning skills); invent entities or alter consistency boundaries (architecture amendment); write to any RTM column except appending Design ref.
What good looks like
- Every acceptance criterion cites the FR/UC it verifies; every task points at design sections; nothing in the design lacks a requirement behind it.
- The schema diff is migrations against the actual current schema, not the skeleton's — and it stays inside the conceptual model's entities.
- Contracts read like the codebase already reads — conventions inherited, not reinvented.
- tasks.md could be handed to a fresh session (or a loop agent) and executed top-to-bottom without re-deriving context.
- Escalations were filed, not worked around.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

