docs(skills): brainstorm-with-docs — правки по холодному ревью
README перестал объявлять скилл ручным: model-invocation — намеренное текущее состояние (триггер — форма задачи, не область). Жёсткий гейт получил исключение для глоссария (спорил с шагом 4) и стал единственным владельцем запрета на реализацию; дубли правил схлопнуты к владельцам. Отложенные находки (шов self_review, критерий конца интервью, версионные пометки в шаблонах) — в Pending decisions ROADMAP. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e3021ce372
commit
d10ad6981c
3 files changed
+70
-39
No files matched your search
@@ -1,11 +1,11 @@
|
|||||||
# brainstorm-with-docs
|
# brainstorm-with-docs
|
||||||
|
|
||||||
A manually-invoked skill for **brainstorming, design alignment, and durable
|
A skill for **brainstorming, design alignment, and durable documentation** —
|
||||||
documentation** — grounded in a project's existing docs and vocabulary. It takes
|
grounded in a project's existing docs and vocabulary. It takes an ambiguous
|
||||||
an unclear engineering, DevOps, architecture, migration, integration, research,
|
problem — whatever the domain — or a decision fork (развилка) and drives it to
|
||||||
or documentation problem and drives it to shared understanding and a recommended
|
shared understanding and a recommended direction — recorded in the *smallest
|
||||||
direction — recorded in the *smallest useful* durable artifact: a spec, ADR,
|
useful* durable artifact: a spec, ADR, runbook, research note, or `CONTEXT.md`
|
||||||
runbook, research note, or `CONTEXT.md` glossary update.
|
glossary update.
|
||||||
|
|
||||||
It is deliberately **not** an implementation skill. It reads project files and
|
It is deliberately **not** an implementation skill. It reads project files and
|
||||||
proposes documentation, but stops before code, config, or infrastructure changes
|
proposes documentation, but stops before code, config, or infrastructure changes
|
||||||
@@ -36,19 +36,18 @@ to follow that methodology wholesale.
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Invoke manually:
|
Model-invoked: the agent reaches for the skill on its own when it sees an
|
||||||
|
ambiguous problem or a decision fork (развилка) — the trigger is the shape of
|
||||||
|
the task, not its domain. (It started life manual-only; live use showed the
|
||||||
|
whole value is in the agent reaching it unprompted.) You can also invoke it by
|
||||||
|
name:
|
||||||
|
|
||||||
```
|
```
|
||||||
/brainstorm-with-docs <problem-or-topic>
|
/brainstorm-with-docs <problem-or-topic>
|
||||||
```
|
```
|
||||||
|
|
||||||
On **Claude Code** the skill is manual-only (`disable-model-invocation: true`) —
|
A repo can route to it explicitly — e.g. an `AGENTS.md` line sending decision
|
||||||
it never auto-triggers; you always call it. On **Codex** that field is ignored
|
forks here.
|
||||||
(Codex reads only `name` + `description`), so it may auto-trigger on matching
|
|
||||||
design tasks. The negative triggers in the description discourage that, but the
|
|
||||||
description's positive surface is broad (architecture / DevOps / research), so
|
|
||||||
expect it to fire more eagerly on Codex than on Claude. If that gets noisy,
|
|
||||||
narrow the description.
|
|
||||||
|
|
||||||
## Layout
|
## Layout
|
||||||
|
|
||||||
@@ -56,6 +55,7 @@ narrow the description.
|
|||||||
brainstorm-with-docs/
|
brainstorm-with-docs/
|
||||||
├── SKILL.md # the skill: process, rules, grill mechanics
|
├── SKILL.md # the skill: process, rules, grill mechanics
|
||||||
├── README.md # this file
|
├── README.md # this file
|
||||||
|
├── ROADMAP.md # development memory: status, backlog, evidence
|
||||||
└── artifacts/ # output templates — read only the one you need
|
└── artifacts/ # output templates — read only the one you need
|
||||||
├── spec.md # solution design / engineering spec
|
├── spec.md # solution design / engineering spec
|
||||||
├── research-note.md # exploratory, answer not yet known
|
├── research-note.md # exploratory, answer not yet known
|
||||||
@@ -70,18 +70,9 @@ Templates are split per type so the agent loads only what's relevant
|
|||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
|
|
||||||
- **v1:** working hybrid — context inspection, glossary/ADR discipline,
|
Status, backlog, pending decisions, live-test evidence, and rejected ideas live
|
||||||
active grilling, option comparison with an additive framing-challenger, durable
|
in [ROADMAP.md](ROADMAP.md) — the single source of truth. It is development
|
||||||
artifacts, stop-before-implementation.
|
memory and can be removed once the skill stabilises.
|
||||||
- **v2 divergence (current):** step 5 is a diverge-then-converge split — frame
|
|
||||||
restatement, mandatory frame-challenger and null option, fan width tiered by
|
|
||||||
decision weight, an idea-generation toolkit with WHEN-triggers, a diversity
|
|
||||||
self-check, and fork-in-place grilling during the interview (step 4).
|
|
||||||
- **Remaining:** a "design for isolation" lens and fuller multi-context support.
|
|
||||||
|
|
||||||
See [ROADMAP.md](ROADMAP.md) for the full backlog, pending decisions, and what
|
|
||||||
has been considered and rejected. `ROADMAP.md` is development memory and can be
|
|
||||||
removed once the skill stabilises.
|
|
||||||
|
|
||||||
## Attribution
|
## Attribution
|
||||||
|
|
||||||
|
|||||||
@@ -106,6 +106,47 @@ skill router matches it; (b) a repo-side routing line in the project's
|
|||||||
future repos. The third-party grilling skill stays unforked; this skill owns
|
future repos. The third-party grilling skill stays unforked; this skill owns
|
||||||
the fan practice.
|
the fan practice.
|
||||||
|
|
||||||
|
## Landed (2026-08-01, from cold review)
|
||||||
|
|
||||||
|
A fresh-session reviewer (no shared context, writing-great-skills lens) read
|
||||||
|
the skill cold. Applied same day:
|
||||||
|
|
||||||
|
- **README "manual-only" claim was stale** — the worst kind of sediment: a
|
||||||
|
wrong statement about the skill's invocation mode. The skill started life
|
||||||
|
with `disable-model-invocation: true`; the owner deliberately made it
|
||||||
|
model-invoked after live use showed the value is in the agent reaching it
|
||||||
|
unprompted. Usage section rewritten; the Codex-behaviour paragraph (built on
|
||||||
|
the manual-only premise) removed.
|
||||||
|
- **Hard gate contradicted step 4** on inline `CONTEXT.md` capture ("once the
|
||||||
|
user agrees on the direction" vs "as it happens"). The gate now carries an
|
||||||
|
explicit exception for additive glossary capture; step 4 owns the rule.
|
||||||
|
- **Implementation ban deduplicated** — it lived in four places (description,
|
||||||
|
"Do not use" list, twice inside the gate, stop_condition). The gate is the
|
||||||
|
single owner: its two internal lists collapsed into one, stop_condition
|
||||||
|
defers to it. The description keeps its one-line negative trigger and the
|
||||||
|
"Do not use" list stays — those do invocation routing, not run-time
|
||||||
|
restraint.
|
||||||
|
- **Rule/step duplicates collapsed** — minimum-sufficient is owned by the core
|
||||||
|
rule (step 7 defers); "what NOT to do now" is owned by step 5 Converge (core
|
||||||
|
rule removed). Same move as the fan-composition prune.
|
||||||
|
- **README domain list aligned** with the shape-not-domain trigger decision;
|
||||||
|
README Roadmap section reduced to a pointer at this file (it had become a
|
||||||
|
second source of truth).
|
||||||
|
|
||||||
|
## Pending decisions (2026-08-01 cold review, deferred by owner)
|
||||||
|
|
||||||
|
- **Step 7 / self_review seam.** Review runs "before presenting" but after the
|
||||||
|
file is written; unclear what happens to the written artifact if review sends
|
||||||
|
the run back to the interview. Candidate fixes: review the draft before
|
||||||
|
writing, or state honestly "write → review → patch; if a gap opens, back to
|
||||||
|
the interview, then update the artifact".
|
||||||
|
- **Interview stop criterion.** "Clear enough to synthesize" is vague; candidate
|
||||||
|
hardening: problem, constraints, and success criteria named + no open forks
|
||||||
|
left.
|
||||||
|
- **Version notes in templates.** `artifacts/context.md` carries "(Multi-context
|
||||||
|
handling is deliberately light in v1.)" — development history in agent-facing
|
||||||
|
text; belongs here, not there.
|
||||||
|
|
||||||
## v2 — remaining
|
## v2 — remaining
|
||||||
|
|
||||||
Kept from before:
|
Kept from before:
|
||||||
|
|||||||
@@ -14,9 +14,11 @@ documentation — not for implementation.
|
|||||||
|
|
||||||
<hard_gate>
|
<hard_gate>
|
||||||
|
|
||||||
Do NOT write code, change configuration or infrastructure, run state-changing
|
Do NOT change the state of any system until the user has approved a design AND
|
||||||
commands, refactor, run migrations, deploy, or invoke any implementation skill
|
explicitly asked to implement: no code, config, or infrastructure changes; no
|
||||||
until the user has approved a design AND explicitly asked to implement.
|
state-changing commands, refactors, data writes, migrations, or deployments; no
|
||||||
|
invoking an implementation skill; no outward-facing actions other than
|
||||||
|
read-only lookups.
|
||||||
|
|
||||||
Approval of a design direction is NOT approval to implement. The deliverable of
|
Approval of a design direction is NOT approval to implement. The deliverable of
|
||||||
this skill is shared understanding and a recommended direction; the document is
|
this skill is shared understanding and a recommended direction; the document is
|
||||||
@@ -25,10 +27,9 @@ are done, and how to stop, is in `<stop_condition>`.)
|
|||||||
|
|
||||||
The skill may freely investigate — read project files, run read-only inspection
|
The skill may freely investigate — read project files, run read-only inspection
|
||||||
commands, and look up external documentation — and may create or update
|
commands, and look up external documentation — and may create or update
|
||||||
documentation files once the user agrees on the direction. It must NOT change the
|
documentation files once the user agrees on the direction. One documentation
|
||||||
state of any system: no code, config, or infrastructure changes; no data writes
|
move fires earlier: a NEW glossary term is captured in `CONTEXT.md` inline
|
||||||
or migrations; no deployments; and no outward-facing actions other than read-only
|
during the interview (additive; step 4 owns the rule).
|
||||||
lookups.
|
|
||||||
|
|
||||||
If you are unsure whether a command has side effects — especially when querying a
|
If you are unsure whether a command has side effects — especially when querying a
|
||||||
live or production system — state what you intend to run and why, and get a yes,
|
live or production system — state what you intend to run and why, and get a yes,
|
||||||
@@ -72,7 +73,6 @@ If invoked with arguments, treat `$ARGUMENTS` as the initial problem statement.
|
|||||||
of the fan live in step 5.
|
of the fan live in step 5.
|
||||||
* Be direct. Give a real recommendation; don't hide behind "it depends" when the
|
* Be direct. Give a real recommendation; don't hide behind "it depends" when the
|
||||||
context supports a call.
|
context supports a call.
|
||||||
* Explicitly state what should NOT be done now.
|
|
||||||
* Minimum-sufficient artifact: the smallest form that *fully* preserves the
|
* Minimum-sufficient artifact: the smallest form that *fully* preserves the
|
||||||
understanding — and no smaller. Sized to the understanding, not "as small as
|
understanding — and no smaller. Sized to the understanding, not "as small as
|
||||||
possible": a large understanding earns a fuller document, a small one a paragraph.
|
possible": a large understanding earns a fuller document, a small one a paragraph.
|
||||||
@@ -228,8 +228,8 @@ vocabulary.
|
|||||||
## 7. Write the artifact
|
## 7. Write the artifact
|
||||||
|
|
||||||
Once the user agrees, create or update the artifact, following the format in the
|
Once the user agrees, create or update the artifact, following the format in the
|
||||||
matching `artifacts/*.md` file. Choose the minimum-sufficient form — the smallest
|
matching `artifacts/*.md` file, sized by the minimum-sufficient rule from
|
||||||
that fully preserves the understanding, and no smaller.
|
`<core_rules>`.
|
||||||
|
|
||||||
Where it goes: follow the repo's existing documentation layout if there is one.
|
Where it goes: follow the repo's existing documentation layout if there is one.
|
||||||
Otherwise use the conventional homes — `CONTEXT.md` at the repo root, ADRs in
|
Otherwise use the conventional homes — `CONTEXT.md` at the repo root, ADRs in
|
||||||
@@ -276,9 +276,8 @@ interview.
|
|||||||
<stop_condition>
|
<stop_condition>
|
||||||
|
|
||||||
You are done once the understanding is shared and minimally recorded — not when
|
You are done once the understanding is shared and minimally recorded — not when
|
||||||
an artifact has been produced. Then STOP. Do not start coding, change
|
an artifact has been produced. Then STOP — the `<hard_gate>` holds until the
|
||||||
infrastructure, alter configuration, or run state-changing commands unless the
|
user explicitly asks to implement. Offer a small set of next actions, such as:
|
||||||
user explicitly asks. Offer a small set of next actions, such as:
|
|
||||||
|
|
||||||
* refine the spec
|
* refine the spec
|
||||||
* create or update an ADR
|
* create or update an ADR
|
||||||
|
|||||||
Reference in new issue
Block a user