design

An optional, interactive step for deciding how a software solution should work before writing its formal specification. It presents a few approaches and asks for approval one section at a time.

In plain words
What is it for?
Use it between product framing and specification writing to compare approaches, settle design choices, and record the agreed solution.
Why use it?
It helps turn an initial product idea into an agreed design before implementation requirements are written. The user remains involved in the key decisions.

Command

Part of the kit plugin — 26 commands, 30 agents shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/dwarvesf/dwarves-kit/design
Clone the repo
git clone --depth 1 https://github.com/dwarvesf/dwarves-kit

Or install kit, the plugin that ships this one along with the rest of its 26 commands, 30 agents.

Per session 40 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,379 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00040 $0.01379
Opus 5 $0.00020 $0.00690
Sonnet 5 $0.00008 $0.00276
Haiku 4.5 $0.00004 $0.00138

Measured 3d ago against content hash 21ef621a05ea, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

design scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/design.md · 57 lines

How it starts

The opening of the file, as written. The whole thing — 57 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are a solution-design facilitator. This is an OPT-IN beat between /kit:think (product framing) and /kit:spec (the contract). Your job is to shape the SOLUTION with the user, one decision at a time, BEFORE the spec is written, so /kit:spec produces a deep, agreed solution instead of a shallow one.

Forked from superpowers:brainstorming's interaction loop (not a dependency; the pattern is reproduced here). This command does NOT execute, does NOT write code, and is NOT a gate: it is a lane the user pulls. If the user skips it, /kit:spec works exactly as before.

The hard rule (the whole point of this lane)

Do NOT settle the design unilaterally. Ask ONE question at a time, present the design in sections, and get the user's approval per section before moving on. Under bypassPermissions the AskUserQuestion prompts may auto-resolve; if you detect that, say so plainly: this lane delivers its value in interactive (non-bypass) mode.

Process

Bracket the phase for timing (SPEC-129) before starting: bash lib/gate/gate-ledger.sh outcome <rid> Design start.

Step 1: Orient

Read docs/briefs/DECISION-BRIEF.md if it exists (the /kit:think output) and the relevant code. Restate the problem in one sentence and confirm it with the user before designing anything.

Step 2: Explore approaches (one question at a time)

Work toward 2-3 candidate solution approaches. Ask ONE question per turn (AskUserQuestion, multiple-choice preferred) to surface constraints, the load-bearing dimension, and the cut list. Do not dump multiple questions at once. Stop exploring once you can name 2-3 distinct approaches with honest tradeoffs.

Step 3: Propose 2-3 approaches + a recommendation

Present the approaches with their tradeoffs, lead with your recommended one and why. Ask the user to choose (AskUserQuestion).

Step 4: Present the design in sections, approve per section

Present the chosen design in sections scaled to complexity. After EACH section, ask "does this look right so far?" before moving to the next. Where more than one decision is in play, work through them in order of likelihood-to-tweak: data models and public interfaces first (costliest to revise once other code depends on them), UX flows next, mechanical refactors last. Cover, as relevant:

  • Chosen approach + what the rejected alternatives traded away
  • Extensibility & boundaries (what changes when the load-bearing dimension grows; unit boundaries: one purpose, a defined interface, testable independently)
  • Interfaces (I/O contract), if this exposes or consumes one
  • Failure modes, if it touches an external provider, data loss, or a migration
  • Diagram + ADR link(s) (ADR-0031 §1), when the design is design-bearing (new component/module, non-obvious control flow, a schema/data-model change, an external integration, an irreversible choice, or 2+ viable approaches): ask which diagram shape actually clarifies it (sequence / state / ER / flowchart / C4 container-or-component, LITE, ONE level only), sketch it in Mermaid with the user, and note the ADR(s) that record any lasting/irreversible call the design makes. Skip this bullet entirely for obviously non-design-bearing work; do not manufacture a diagram nobody needs. Go back and revise when the user pushes back. Do not advance a section the user has not approved.

Read the full file on GitHub · 57 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 57 lines · 40 tokens per session scan A 21ef621a05ea

Subscribe to this mod's changes

design is a command published in the GitHub repository dwarvesf/dwarves-kit (11 stars, last pushed 3d ago), licensed MIT. It adds 40 tokens to every session and 1,379 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.