brainstorming — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited brainstorming (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Help turn ideas into well-formed designs through natural collaborative dialogue.
Start by understanding the current project context, then ask questions one at a time to refine the idea. Once the design is clear and the user approves, hand off to workbench:writing-spec.
<HARD-GATE> Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity. </HARD-GATE>
Every project goes through this process. A todo list, a single-function utility, a config change: all of them. Simple projects are where unexamined assumptions cause the most wasted work. The design can be short (a few sentences for truly simple projects), but you MUST present it and get approval.
You MUST create a task for each of these items and complete them in order:
workbench:visualizing-options in its own message; the user opts in.Two minds building together share an invisible theory of the system: the design concept (Brooks, The Design of Design). The conversation surfaces it, questions strip away ambiguity, and the artifact at the end is a record of the conversation, not its purpose.
Walk the design tree depth-first.
Treat the design as a tree. The root is "what are we building, and why." Branches resolve to dependent decisions: which approach, which boundaries, which interfaces, which failure modes. Leaves are the decisions themselves. Pick one branch, follow every dependency to a decision, only then return to the next branch. Do not breadth-first a checklist of section headings.
Take an adversarial posture.
Probe for unstated assumptions, latent constraints, and edge cases the user has not considered. When the user gives a short answer, ask the obvious next question even when the answer feels implied. Treat the user as the source of truth about what they want and treat yourself as the source of skeptical pressure on whether they have said it clearly.
Stop only when both are true:
Do not stop at "I have enough to write a spec." A numeric question minimum is not the rule; depth and convergence are.
Scale to scope.
The Anti-Pattern carve-out still applies. A one-line config change might converge in three questions. A new subsystem will not. Trust the design tree to tell you when there is more to ask. In autonomous runs where the user is not present (for example inside workbench:autopilot), substitute the second stop-rule clause with "the self-answered Q&A converges on a ## Decision block whose design concept covers every branch you walked."
digraph brainstorming {
"Explore project context" [shape=box];
"Visual questions ahead?" [shape=diamond];
"Mention workbench:visualizing-options\n(own message)" [shape=box];
"Grill exhaustively (design-tree DFS)" [shape=box];
"Propose 2-3 approaches" [shape=box];
"Present design sections" [shape=box];
"User approves design?" [shape=diamond];
"Recommend workbench:writing-spec" [shape=doublecircle];
"Explore project context" -> "Visual questions ahead?";
"Visual questions ahead?" -> "Mention workbench:visualizing-options\n(own message)" [label="yes"];
"Visual questions ahead?" -> "Grill exhaustively (design-tree DFS)" [label="no"];
"Mention workbench:visualizing-options\n(own message)" -> "Grill exhaustively (design-tree DFS)";
"Grill exhaustively (design-tree DFS)" -> "Propose 2-3 approaches";
"Propose 2-3 approaches" -> "Present design sections";
"Present design sections" -> "User approves design?";
"User approves design?" -> "Present design sections" [label="no, revise"];
"User approves design?" -> "Recommend workbench:writing-spec" [label="yes"];
}Understanding the idea:
Explore agent type, haiku model. Codex: read-only research agent equivalent.) Pass a tight prompt: "Survey this repo. Report under 250 words: primary language, top-level structure, recent commits (last 5), presence of CLAUDE.md/AGENTS.md/README, any docs/ directory worth reading. Don't list every file." Use the returned summary as your starting context.Exploring approaches:
Presenting the design:
Design for isolation and clarity:
Working in existing codebases:
If the conversation will involve visual content (mockups, layouts, diagrams), mention workbench:visualizing-options in its own message before asking the next question. The user opts in by acknowledging. That skill owns the browser companion; this skill stays in the terminal.
The offer message should contain ONLY the pointer; do not combine it with clarifying questions.
Once the user has approved the design, your terminal action is to recommend workbench:writing-spec. Do NOT invoke any implementation skill, do NOT write the spec yourself, and do NOT proceed to planning. The spec writing skill takes over from there, runs its self-review, and gates on user approval before handing off to workbench:writing-plans.
The conversation itself is the handoff payload; the summary file is a record, not the interface between skills.
Default for this artifact: html.
Override resolution order, highest precedence first:
"a markdown brainstorm summary", "in HTML", "as a markdown summary", and equivalents..workbench/config.md ## Output formats entry for Brainstorm summaries:. Schema documented in plugins/workbench/skills/autopilot/references/config-schema.md.Path: .workbench/brainstorms/YYYY-MM-DD-<topic>-brainstorm.<ext> by default, where <ext> resolves from format. Override path via .workbench/config.md ## Output paths Brainstorm summaries:.
When emitting HTML, follow references/brainstorm-summary-template.html in this skill's directory. Read the template lazily.
Once the user has approved the design, record the conversation by writing a brainstorm summary file to the resolved path. The file is a record kept after agreement, not the purpose of the skill. The summary captures:
Announce the file path in the conversation when emitting (for example: "Brainstorm summary written to .workbench/brainstorms/2026-05-08-html-artifacts-brainstorm.html") so the user is not surprised. The recommendation of workbench:writing-spec then follows in the same final message.
For other HTML artifact types not covered by a workbench or research skill, see workbench:crafting-html.
Before emitting HTML, check for an active design system and inline its overrides into the artifact's <style> block:
brand-2026 design system"), then .workbench/config.md ## Design system Name:, then no override..workbench/design-systems/<name>/ (project scope), then ~/.claude/workbench/design-systems/<name>/ (user scope). If a name resolves but no directory is found at either scope, report the missing path to the user and emit with template defaults; do not fabricate a substitute.colors.css (and typography.css if present) after the template's own :root declarations, so the design system's values win the cascade.components/<n>.html markup and scoped style into the artifact body.base64 -w 0 <file>) and inline as data:image/<type>;base64,<payload>. SVG is text and can be inlined directly. Use relative paths only when the artifact and the design system co-exist in the same git tree and the artifact will not travel.To create or edit a design system, see workbench:crafting-design-systems.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.