From dmj
Use when starting any creative work (a feature, component, behavior change, schema, or refactor) before writing code, scaffolding, or invoking an implementation skill, especially when the request is vague, names multiple subsystems, or you feel an urge to skip design because it "looks simple".
How this skill is triggered — by the user, by Claude, or both
Slash command
/dmj:brainstormingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Idea to approved, reviewed design before implementation.
Idea to approved, reviewed design before implementation.
NO merged implementation before an approved design: no code, scaffold, or implementation skill until the design is written, adversarially reviewed, user-approved. Every task, including ones that look too simple to need a design: "too simple" is where unexamined assumptions waste the most work. Spikes are the only code allowed first, and only in a disposable worktree.
| Blast radius | Tier | Shape |
|---|---|---|
| Local, reversible (one file, additive) | Light | One AskUserQuestion round, prose design, one lens |
| Cross-module / new dependency / data shape | Standard | Full flow below |
| Security, auth, migration, money, deletion, public API | Heavy | Full flow + spikes + four lenses + threat model (dmj:defending-in-depth) |
Tiers scale the SIZE of the design, NEVER whether approval happens. Every tier, Light included, ends with explicit user approval in THIS conversation before any merge-bound artifact: a tracked-file edit, commit, PR, or scaffold. Staging a change in the main tree IS a tracked-file edit. While waiting, prepare only in a disposable worktree; never open a PR pre-approval.
| Excuse | Reality |
|---|---|
| "We already discussed/settled the design earlier" | Not written and approved in THIS conversation = not approved |
| "I will prepare everything and only hold the final click" | Preparation outside a disposable worktree IS implementation |
| "Asking approval now is obstruction; the deadline is real" | Approval costs one message and seconds; an unapproved merge-bound artifact is the real obstruction |
| "The order itself IS the approval" | Approval evaluates the WRITTEN design with values filled in. An order approves the request, not the change; the requester has not seen it |
docs/dmj/specs/YYYY-MM-DD-<topic>-design.md (user path wins).Agent calls. Fix blocking findings; re-run only the failed lens.Spikes: one disposable worktree each (dmj:using-git-worktrees), force-discarded after. Conclusions and evidence survive in the doc; code never merges.
Visuals: no local server; AskUserQuestion previews, one Playwright-rendered HTML file, or text comparison.
Headless (no interactive user): at each gate, record the choice in the assumption ledger, pick the lowest-blast-radius safe default, PARK decisions the user must own (irreversible, security, cost, public surface). Never deadlock.
Next: dmj:writing-plans.
npx claudepluginhub divyamohan1993/dmjcustomizations --plugin dmjGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.