Design
A curated collection of autonomous AI agent skills powered by Vercel's `skills` npm cli package. Specialized tools for productivity, document management, and custom LLM workflows.
npx -y skills add arendon1/agent-skills --skill designAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Architecture design pass. Turn a PRD into an ARD: components, interfaces, invariants, data flow, error handling. Propose 2-3 structural approaches with trade-offs. Recommend one. Behavior preserved. Use when the objective is non-trivial or high-blast-radius, after grill and before spec, or when the user says "design this", "architecture", "how should we structure this".
SKILL.md
5.0 KB, as published. Nobody here has run it
design — PRD into ARD
Architecture design pass. Reads PRD.md, proposes 2-3 structural approaches,
recommends one, lands the choice in ARD.md as components, interfaces,
invariants, data flow, and error handling.
A design pass is for non-trivial or high-blast-radius work. For a one-line fix or
a small obvious feature, skip straight to spec or plan (§11 right-size).
OWNERSHIP
Owns: ARD.md in the active plan folder.
Reads: PRD.md (from grill), CONTEXT.md, the codebase.
Hands off to: spec (→ SPEC.md).
MUST NOT write PRD.md, SPEC.md, PLAN.md, or LESSONS.md.
MAY propose new CONTEXT.md terms (via the domain-modeling discipline).
WHEN (user-invoked)
- After
grillproduced aPRD.md, on non-trivial or high-blast-radius work. - User says "design this", "architecture", "how should we structure this".
- The PRD names a structural decision that has more than one viable answer.
STEP 0 — READ EXISTING STATE
- Resolve the active plan per §6. If none, ask the user to run
grillfirst (design needs a PRD to design from). - Read
PRD.md. If absent, stop and recommendgrill. - Read
CONTEXT.md— use canonical terms throughout the ARD. - Read the relevant code: what exists, what seams already exist, what ADRs hold.
STEP 1 — FRAME THE DESIGN DECISIONS
From the PRD, extract the load-bearing design decisions — the ones with more than one viable answer. Examples: where the state lives, what is sync vs async, what owns a transaction boundary, where validation happens, what is a process vs a library. These are the decisions the ARD must resolve.
State each decision in one line. A decision the PRD already locked is not a design decision — it is a constraint.
STEP 2 — PROPOSE 2-3 STRUCTURAL APPROACHES
For each load-bearing decision, draft 2-3 approaches. Each approach names:
- Structure — the components and their boundaries.
- Trade-off — what this makes easy, what this makes hard.
- Cost — blast radius, new dependencies, migration effort.
- Risk — what could be wrong about this.
Favor approaches that reuse existing seams over inventing new ones. The fewer seams across the codebase, the better — the ideal number is one.
STEP 3 — RECOMMEND ONE
Pick one approach per decision and justify it against the PRD's constraints and the trade-offs. Be willing to say "approach B is safer because the PRD's out-of-scope already forecloses approach A's main benefit."
Present the recommendation to the user. Wait for agreement before writing the ARD.
STEP 4 — WRITE ARD.md
Write ARD.md using caveman compression. Template:
# ARD — <slug>
## §D DECISIONS
D1: <decision> -> <chosen approach>
- alt: <approach B> (trade-off)
- rec: <why this one>
## §C COMPONENTS
- <component>: <responsibility> (deep module: small interface, hides a decision)
## §I INTERFACES
api: POST /x -> 200 {id}
cmd: `foo bar <arg>` -> stdout JSON
env: FOO_KEY MUST be set
## §V INVARIANTS
V1: MUST <testable rule>
V2: <condition> => <outcome>
## §F DATA FLOW
<one paragraph or ascii diagram: input -> component -> store -> output>
## §E ERROR HANDLING
- <failure mode> -> <recovery>
- NEVER <forbidden recovery>
## §R RISKS
- <risk> SHOULD <mitigation>
Deep-module vocabulary
Borrow from the deepen discipline's vocabulary when describing components. A
deep module hides a lot behind a small interface; a shallow one's
interface costs as much to use as writing the code yourself. Note any component
that risks shallowness as a §R risk so deepen can address it later.
Terminology
Every new component/interface name goes into CONTEXT.md immediately (or invoke
the domain-modeling discipline). ARD terms MUST match the glossary.
WHEN TO STOP
Done when:
- Every load-bearing decision from step 1 has a chosen approach + justification.
- Components, interfaces, invariants, data flow, and error handling are written.
- The user agreed to the recommendation.
- New terms are in
CONTEXT.md.
HANDOFF
Tell the user the next step:
- Detailed behavior needed before tasks →
spec(producesSPEC.md). - The ARD is detailed enough →
plan(producesPLAN.md).
BOUNDARIES
- MUST NOT rewrite
PRD.md. If requirements are wrong, route back togrill. - MUST NOT write
SPEC.md,PLAN.md, orLESSONS.md. - MUST propose alternatives before recommending — no single-option "design".
- MUST read
CONTEXT.mdand use canonical terms throughout. - MUST NOT change behavior. Design proposes structure;
buildimplements.