brainstorming
Use before any feature work — explores intent, requirements, and design. Produces HOTL contracts (intent, verification, governance) before implement…
它会碰到什么
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
HOTL Brainstorming
Overview
Turn ideas into designs with explicit HOTL contracts. Ask questions one at a time. Present design for approval before any implementation.
<HARD-GATE>
Do NOT write any implementation code until the design is approved and writing-plans has generated the executable workflow.
</HARD-GATE>
Process
- Explore context (cheap preflight first)
Phase 1 — Cheap preflight (Glob only, current project directory):
- If user's message references a doc path → read it
- Check for canonical design docs in
docs/designs/*.md - Check for legacy design docs in
docs/plans/*.md - Check for source code, config manifests, or project-specific config files
- "Relevant context" means: design docs, source code, configuration manifests, or project-specific config. Files like
README.md,.gitignore,LICENSE, and scaffolding boilerplate do not count.
Phase 2 — Branch on result:
- Relevant local context found: Read the most recent 1-2 design docs from canonical or legacy locations, inspect only relevant in-project files, and optionally review recent commits (only if the directory is a git repo).
- No relevant local context found: State: "This appears to be a greenfield or effectively empty project, so I'm skipping deep context scanning and moving to clarifying questions." Proceed directly to step 2.
Hard rule: Never scan parent directories, sibling folders, or workspace-wide paths unless the user explicitly provides a path.
- Determine scope — decide between
feature,phase, orinitiativebefore the clarifying-questions loop. Scope shapes every downstream step: output path, contract structure, depth of inquiry.
Scope choices:
feature— one feature, one bug fix, one refactor. Output:docs/designs/YYYY-MM-DD-<slug>-design.md(dated, tactical).phase— one slice of a multi-phase initiative. Same output family as feature:docs/designs/YYYY-MM-DD-phase-N-<slug>-design.md.initiative— a multi-phase project (v1/v2, platform migration, enterprise rebuild). Output:docs/designs/<topic>.md(undated, durable, strategic).
Default: feature. If the user's initial message clearly describes a feature, proceed with feature scope without blocking for input. Optionally acknowledge in one line ("Treating as feature scope; say so if this should be a phase or initiative"). Do not pause the flow.
Ask the scope question explicitly when the request is ambiguous or multi-phase (e.g., "migrate v1 to v2", "platform rebuild", "rework across services"). Present the three choices with feature as the pre-filled default and wait for the user's answer before continuing.
For initiative scope, load the strategic-design template once at session start. Resolve adapters/strategic-design.template.md in this order (same pattern used for document-lint.sh and hotl-config.sh — see skills/document-review/SKILL.md):
- If you are working in the
hotl-pluginrepo itself, useadapters/strategic-design.template.md - Codex native-skills install:
~/.codex/hotl/adapters/strategic-design.template.md - Codex plugin install:
~/.codex/plugins/hotl-source/adapters/strategic-design.template.md - Codex plugin cache fallback:
~/.codex/plugins/cache/codex-plugins/hotl/*/adapters/strategic-design.template.md - Cline install fallback:
~/.cline/hotl/adapters/strategic-design.template.md - Claude Code plugin fallback:
~/.claude/plugins/hotl/adapters/strategic-design.template.md
Read the resolved template once at session start — its section structure (problem, vision, non-goals, stakeholders, architecture, phase breakdown, risks) becomes the skeleton of the design doc you produce. Do not assume adapters/strategic-design.template.md exists in the repo being worked on.
For initiative scope, resolve the output directory via hotl-config-resolve.sh:
bash <resolved-hotl-config-resolve.sh> get designs_dir --default=docs/designs
Resolve hotl-config-resolve.sh via the same six-location order. The default is docs/designs when no .hotl/config.yml is present; opted-in projects may override via that config.
- Ask clarifying questions — one at a time, understand purpose/constraints/success criteria. Prefer multiple-choice when the likely answer space is known (e.g., "Which constraints apply? (a) Must not break existing API (b) Backward-compatible (c) Performance-sensitive (d) Other"). Fall back to open-ended only when the problem is unusual or exploratory.
- Propose 2-3 approaches — with trade-offs and recommendation
- Present design in sections — get approval after each section
- Define HOTL contracts — always include all three:
Intent Contract
intent: [one sentence goal]
constraints: [what must not change/break]
success_criteria: [how we know it's done]
risk_level: low | medium | high
Verification Contract
verify_steps:
- run tests: [test command]
- check: [what to inspect]
- confirm: [success signal]
Governance Contract
approval_gates: [list of steps requiring human review]
rollback: [how to undo if something goes wrong]
ownership: [who is accountable]
- Write design doc — path depends on scope:
featurescope: save todocs/designs/YYYY-MM-DD-<slug>-design.md(dated, tactical).phasescope: save todocs/designs/YYYY-MM-DD-phase-N-<slug>-design.md(dated, tactical).initiativescope: save to<designs_dir>/<topic>.md(undated, durable).<designs_dir>is the value returned by the step-2 resolver (defaultdocs/designs). Follow the section structure of the strategic template loaded in step 2.
Always write YAML frontmatter with the HOTL marker. Every saved design doc MUST start with frontmatter declaring at minimum:
---
design_type: <feature|phase|initiative> # match the scope chosen in step 2
created_at: YYYY-MM-DD
---
The design_type field is the deterministic signal that opts the doc into HOTL strict lint (document-lint.sh SKIPs unmarked docs). Without it, the doc is treated as non-HOTL and routes through generic AI review only.
- Self-check the design doc — before presenting for human approval, review the saved design doc for: missing constraints, vague success criteria, contract mismatches (do verification steps actually test the intent?), risk_level appropriateness, and scope creep. Fix any issues found. Lightweight: 1-2 passes by default, max 3 only if real issues are found. Do not ask the user to review — this is an internal quality pass.
Run document-lint on the saved design doc as part of this self-check. Resolve scripts/document-lint.sh via the standard six-location order, then:
bash <resolved-document-lint.sh> <saved-design-path>
The lint emits two stable warning shapes for feature/phase docs:
category=structure severity=warning design_type=<resolved>
message="missing required section: ## <name>"
category=implementation-leakage severity=warning design_type=<resolved> line=<n>
message="<short description>"
Apply the 5-step self-check behavior to surfaced warnings:
- Run
document-lint.shon the saved design doc. - Surface warnings to the user before asking for approval.
- Fix warnings that clearly violate the design/plan boundary.
- Justify a warning only when the flagged content sits inside a clearly delimited example block — a Markdown blockquote (
> Example: ...) or a section whose heading includes the wordExample. All other findings must be fixed. - Do not block approval unless the user decides the warnings are blocking.
Loop bound: This 5-step procedure runs at most once per self-check pass; the parent self-check (step 8) caps the total at 3 passes before stopping.
Lint exits 0 even when these warnings are emitted (warning-only contract this pass). Initiative / architecture / contract / reference docs receive neither check; the lint emits no category=structure or category=implementation-leakage lines for them.
- Invoke writing-plans — transition to implementation planning (feature/phase scope only; initiative designs decompose into child phase plans that each go through their own brainstorming → writing-plans cycle).
Doc-discipline rules
For design_type ∈ {feature, phase} docs, write the body using these seven required sections in fixed order. Phase 1 lint enforces presence only; out-of-order or extra sections are not flagged this pass but the prose order below is the canonical convention:
## Intent Contract## Verification Contract## Governance Contract## Scope(in / out, table form preferred)## Decisions(# / decision / choice / rejected alternatives, table form preferred)## Surface(APIs / storage / components / files-touched, paragraph each)## Risks & Open Questions
Initiative / architecture / contract / reference docs are durable references; they may legitimately include deeper technical shape. The lint defers any rules for them this pass.
Implementation-leakage anti-patterns
A design doc says shape; the workflow file and the code say exact bytes. The following patterns belong in writing-plans output (or in code itself), not in the design — the lint warns when they appear in feature/phase design bodies:
| Pattern | Example | Why it doesn't belong in design |
|---|---|---|
| File:line references | cli.py:16, auth.ts:204 | Line numbers rot the moment code moves; pin to workflow steps instead. |
| Long fenced code blocks (>10 content lines) | a 30-line Python snippet | Design shows shape; full implementation goes in workflow tasks or code. |
| Dense flag lines (≥6 -- tokens) | docker run --network=none --cap-drop=ALL --read-only --tmpfs /tmp ... | Argv assertions go in workflow steps and tests, not design surface. |
When a design doc must reference one of these (e.g., as an illustrative example), the warning is acceptable and the agent should justify it during the self-check (step 8) rather than rewrite the design.
Doc-type detection
- Frontmatter is the deterministic signal. A doc is HOTL-managed only when its frontmatter declares
design_type:(one offeature | phase | initiative | architecture | contract | reference) orhotl_managed: true. The brainstorming skill always writes the marker; ad-hoc docs indocs/designs/are treated as non-HOTL by default. - Filename pattern is a hint, not a classifier. Dated
YYYY-MM-DD-*-design.mdis the conventional pattern for HOTL-authored docs, but the lint still requires a frontmatter marker before applying HOTL rules. Without a marker,document-lint.shSKIPs cleanly with a clear message and exits 0. - Unmarked design-folder docs route to AI review.
hotl:document-reviewruns a generic-rubric AI review on them;document-lint.shskips them. To opt a hand-authored doc into HOTL strict review, adddesign_type: <recognized-value>orhotl_managed: trueto its frontmatter.
Key Principles
- One question at a time — prefer multiple-choice when practical
- YAGNI ruthlessly — remove unnecessary features
- Always propose alternatives before settling
risk_level: high= security, auth, privacy, billing (always human-gated)
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
plugins/yimwoo/hotl-plugin/skills/brainstorming/SKILL.md同一个仓库里的其他技能
同名技能的其他版本
有 5 个不同仓库或目录里都有叫 brainstorming 的技能。它们内容并不相同,别混用:
- hashgraph-online/awesome-codex-plugins — >
- hashgraph-online/awesome-codex-plugins — |
- hashgraph-online/awesome-codex-plugins — Use when defining ambiguous or high-complexity new features, product behavior, UI/componen
- hashgraph-online/awesome-codex-plugins — Use when the user wants to do brainstorming, choose an approach, design something or clari