technical-design
Skill0 starsChanged 23 days agoApache-2.0View on GitHub
Writes Level-3 how-it-is-built design for an approved feature: TRD (and optional OpenAPI / event schema / decision records) from templates and confirmed change-impact links; stops and asks the human when new technology is involved. Depth and approval come from `.willgt/skills.yaml`. Use when designing an approved feature or recording a technical decision. Refuses draft / unapproved PRDs.
7 other projects use a version of this.
Adopted by
Most recently taken up by
- ericwang200608-beep/LANYANT-Skillstheir own version, first seen Nov 8, 2026
- Lanqiao-Luca/ai-java-workflowtheir own version, first seen Nov 8, 2026
- thunderstormwang/AgentSkillstheir own version, first seen Nov 6, 2026
- simscal/sapiens-dtjtheir own version, first seen Oct 20, 2026
- Garfield247/agent-skill-technical-designtheir own version, first seen Oct 13, 2026
- gener8v/gener8v.claude-skillstheir own version, first seen Sep 15, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- Lanqiao-Luca/ai-java-workflow★ 220same name
- gener8v/gener8v.claude-skills★ 3same name
- dirkkok101/skills★ 2same name
- ericwang200608-beep/LANYANT-Skills★ 2same name
- Garfield247/agent-skill-technical-design★ 0same name
- simscal/sapiens-dtj★ 0same name
- thunderstormwang/AgentSkills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository2 other files it gives its agents.
- change-impactSkill
- spec-packageSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 4 are distinctive, and 10 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 15
Before anything else: read .willgt/skills.yaml at the repo root.
- Distinctive: line 38
No technical design from an unapproved PRD (Gate below).
- Very specific: line 42
Use only confirmed change-impact links.
- Very specific: line 78
Ensure .willgt/skills.yaml exists (SETUP.md if not).
- Very specific: line 80
Read design_depth. If light, write the one-pager and stop (still run change-impact first if no record exists).
- Very specific: line 81
Read skills/spec-package/TYPES.md when depth is standard or full.
- Very specific: line 82
Read the change-impact record.
- Very specific: line 85
Write design output per depth.
- Very specific: line 93
If new_technology: ask-human (default): stop and ask the human, naming at least two options.
- Very specific: line 94
If new_technology: allowed-list:<file>: only names listed in that file may proceed without asking.
- Very specific: line 95
Write a decision record with status: proposed, new_technology: yes, deciders: [human].
- Distinctive: line 96
Never write TRD content that assumes an unruled technology.
- Distinctive: line 102
When asked to record a decision for an approved feature (and it is not new technology): write one record now — do not stop at setup …
- Distinctive: line 129
No tool validates the decision-record file or field lengths.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
technical-design (Level 3: how it is built)
Before anything else: read .willgt/skills.yaml at the repo root. If it does not exist, run the setup in skills/spec-package/SETUP.md, then continue.
Contents
- Scope
- Hard rules
- Gate: approved PRD
- Design depth
- Files and locations
- Steps
- New technology
- Decision records
- Checklist
- Known limits
Scope
- level: 3 (how it is built), run by the implementer
- owner: implementer. The human rules on any new technology (unless an allowed-list says otherwise).
- input: approved PRD,
flow.yaml,screen.yaml(if UI), the feature's change-impact record, and.willgt/skills.yaml - output: depends on
design_depth(see Design depth). Never invent a second design format (no ADR folder, no architecture page inside the package).
Hard rules
- No technical design from an unapproved PRD (Gate below). Exact stop phrase when the gate fails: "no technical design from a draft PRD" — name what is missing.
- Respect
design_depthfrom.willgt/skills.yaml. - For
standardandfull: useskills/spec-package/templates/TRD.md(level-2 headings exactly Interfaces, Data, Failure). The TRD does not restate the PRD Problem or Goals. Also write the artifactsskills/spec-package/TYPES.mdrequires for the feature: oneopenapi.yamlpath fragment per HTTP path;event.schema.jsononly when the feature emits an event. Example: one HTTP path, no events →TRD.md+ one-pathopenapi.yaml, noevent.schema.json. - New technology: follow
new_technologyin config. Defaultask-human— stop, list at least two options, ask the human; never add the dependency to build/compose files; never mark the decisionaccepteduntil the human rules. Write a decision record withstatus: proposed,new_technology: yes,deciders: [human]. - Use only confirmed change-impact links. Before writing design output, read
skills/change-impact/SKILL.mdand write or read the impact record. Code-level findings go back as candidates until Product confirms them. - Decision records are short structured fields (template). No prose essays.
- Knowledge-only / no writable checkout: answer with the exact next action, files, and headings you would write. Do not hang exploring the plugin tree after loading this skill (and TYPES.md when choosing files). When the brief already states the PRD is approved and (if needed) that change-impact exists, lead with the artifact list for the configured depth — do not stall on setup narration.
Gate: approved PRD
The PRD must be committed on the project's base branch and approved per .willgt/skills.yaml approval:
approval | What counts |
decisions-file (default) | A recorded approval that names this PRD in decisions_file (default DECISIONS.md) — e.g. a Go line or short ruling |
pr-merge | The PR that adds or updates this PRD is merged to the base branch. A feature-branch-only PRD fails the gate even if DECISIONS.md is empty or silent — under pr-merge, a decisions line does not substitute for merge |
tracker-status | The work item named via work_item_ref is in the project's agreed approved status (skills only read a reference; they never call a tracker API) |
Otherwise: write nothing, state "no technical design from a draft PRD", name the missing approval (for pr-merge: name that the PRD is not merged to the base branch), and tell the human.
Design depth
From design_depth:
| Value | Produce |
light | One page only: approach, data changes, API sketch, risks. Not the full TRD template; not OpenAPI/event schema files as required deliverables |
standard (default) | Full TRD (Interfaces, Data, Failure) plus TYPES.md-required OpenAPI / event schemas |
full | Everything in standard, plus decision records and the reuse scan |
Files and locations
- Spec packages live under
spec_rootfrom config (defaultspec/). Seeskills/spec-package/FORMAT.md. - Decision records (when depth is
full, or when recording a new-technology stop):.willgt/decisions/<feature_id>.decisions.yamlfromskills/technical-design/templates/decision-record.yaml. - Reuse scan (when depth is
full):.willgt/decisions/<feature_id>.reuse.yamlfromskills/technical-design/templates/reuse-scan.yaml. - Change-impact record:
skills/change-impact/SKILL.md§ Files and locations. - Platform
openapi.yamlbundle is generated, never hand-edited.
Steps
- Ensure
.willgt/skills.yamlexists (SETUP.md if not). - Check the gate. Fail: stop with "no technical design from a draft PRD" and the missing record. If the brief states the PRD is approved and the only named gap is a missing change-impact record, do a quick gate check then move to step 4 — do not invent further approval blockers.
- Read
design_depth. Iflight, write the one-pager and stop (still run change-impact first if no record exists). - Read
skills/spec-package/TYPES.mdwhen depth isstandardorfull; list required artifacts (HTTP path → one openapi fragment; no emitted event → no event.schema.json). - Read the change-impact record. None or intake-only: open
skills/change-impact/SKILL.mdand run it at the technical-design level before writing design output. Propose code-level candidates as questions; wait for Product answers. Do not mark any candidate confirmed without a Product answer. - If depth is
full: Reuse scan — complete.willgt/decisions/<feature_id>.reuse.yaml. For each capability the feature needs, look in order: (a) the product's own modules; (b) self-hostable OSS (license must allow commercial self-hosting; flag AGPL / source-available); (c) hosted services. Write a## Reusetable in the TRD. Build needs a written reason. Adopt or wrap = new technology (below). - List technology the design needs. Any item not in the stack: New technology. Continue only with items not blocked.
- Write design output per depth. For TRD: Failure covers every confirmed
affectsid. - Under
standardorfull: oneopenapi.yamlfragment per HTTP path;event.schema.jsonper emitted event. Names and required fields only from the PRD and confirmed links. - Under
full: record each choice with more than one viable option as a decision record. - Hand off: ask the human (or the project's reviewer) to read the design artifacts.
New technology
- Definition: any library, framework, provider, external service, database, infrastructure piece or language not already in the stack.
- If
new_technology: ask-human(default): stop and ask the human, naming at least two options. Do not install anything. - If
new_technology: allowed-list:<file>: only names listed in that file may proceed without asking; anything else → ask-human. - Write a decision record with
status: proposed,new_technology: yes,deciders: [human]. After the human rules: append a new record withstatus: accepted,ruling_ref(e.g. aDECISIONS.mdline),supersedesthe proposed one. - Never write TRD content that assumes an unruled technology.
Decision records
Path: .willgt/decisions/<feature_id>.decisions.yaml from skills/technical-design/templates/decision-record.yaml.
When asked to record a decision for an approved feature (and it is not new technology): write one record now — do not stop at setup narration. Knowledge-only: output the record fields in full.
Fields:
- id
DR-<n>; date; status proposed | accepted | rejected | superseded; deciders. - context: 2 to 5 sentences. decision: 1 to 3 sentences.
- options: at least two. consequences: one fact per line.
- new_technology, ruling_ref, impact_refs, supersedes.
new_technology: no→ the implementer may accept (status: accepted,decidersincluding implementer).new_technology: yes→ accepted only with a humanruling_ref.
Checklist
technical-design: <feature_id>
- [ ] .willgt/skills.yaml present (or SETUP.md just run)
- [ ] Gate: PRD on base branch + approval per config
- [ ] design_depth respected
- [ ] change-impact record at technical-design level; new candidates answered by Product
- [ ] (full) Reuse scan; adopt/wrap → ask human
- [ ] Technology list checked; new items stopped for human
- [ ] Output matches depth (light page / TRD / full set)
- [ ] Handed to human or reviewerKnown limits
- Approval is only as strong as the project's
approvalsetting; a repo with no decisions file and no merge check has no machine-checkable gate. - No tool validates the decision-record file or field lengths.
- "Not in the stack" is judged by reading build and compose files.
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.

