fix(grilling): collapse family to one skill — behavioral test evidence

RED (2026-08-12, clean pi -p subprocesses): user phrases «прогриль мой план»,
«grill my plan», «хватит, точи план», «прогриль с доками» all resolved to
grilling, NOT grill-me/grill-with-docs. Root cause (verified in pi docs
skills.md): disable-model-invocation: true hides a skill from the system
prompt — the thin user-wrapper split (mattpocock's slash-command model) is
structurally unreachable in pi's natural-language matching.

GREEN: single grilling v0.2.0 with integrated Docs mode (trigger «с доками» /
«зафиксируй» → decision record to .wiki/concepts/<topic>-decision.md or
.brainstorm/ append). Re-run: 5/5 positive → grilling, 4/4 negative clean.

Removed grill-me + grill-with-docs (invisible in pi, dead weight); README
table updated; lint 0/0; ~/.claude/skills = 39; dist pruned+rebuilt.
This commit is contained in:
2026-08-12 15:52:43 +03:00
parent 9832bd3c25
commit ff68762516
11 changed files with 41 additions and 68 deletions

View File

@@ -113,7 +113,7 @@ an explicit `adapted-from` marker in its frontmatter.
|---|---| |---|---|
| `caveman`, `caveman-commit`, `caveman-compress`, `caveman-help`, `caveman-review` | `adapted-from: JuliusBrussee/caveman` (MIT) — vendored copy, upstream pin TBD | | `caveman`, `caveman-commit`, `caveman-compress`, `caveman-help`, `caveman-review` | `adapted-from: JuliusBrussee/caveman` (MIT) — vendored copy, upstream pin TBD |
| `find-skills` | `adapted-from: vercel-labs/skills` (MIT) — vendored copy, upstream pin TBD | | `find-skills` | `adapted-from: vercel-labs/skills` (MIT) — vendored copy, upstream pin TBD |
| `grilling`, `grill-me`, `grill-with-docs` | `adapted-from: mattpocock/skills @ 84fdeffd` (MIT) | | `grilling` | `adapted-from: mattpocock/skills @ 84fdeffd` (MIT) — family collapsed to one skill (pi hides `disable-model-invocation` wrappers) |
| all other `skills/*` | `author: ours` | | all other `skills/*` | `author: ours` |
Adaptation policy: a clone is rewritten to our conventions (`.tasks/` boards, Adaptation policy: a clone is rewritten to our conventions (`.tasks/` boards,

View File

@@ -83,7 +83,7 @@ bash scripts/build.sh caveman # один
|---|---| |---|---|
| `caveman`, `caveman-commit`, `caveman-compress`, `caveman-help`, `caveman-review` | `adapted-from: JuliusBrussee/caveman` (MIT) — вендорная копия, пин апстрима TBD | | `caveman`, `caveman-commit`, `caveman-compress`, `caveman-help`, `caveman-review` | `adapted-from: JuliusBrussee/caveman` (MIT) — вендорная копия, пин апстрима TBD |
| `find-skills` | `adapted-from: vercel-labs/skills` (MIT) — вендорная копия, пин апстрима TBD | | `find-skills` | `adapted-from: vercel-labs/skills` (MIT) — вендорная копия, пин апстрима TBD |
| `grilling`, `grill-me`, `grill-with-docs` | `adapted-from: mattpocock/skills @ 84fdeffd` (MIT) | | `grilling` | `adapted-from: mattpocock/skills @ 84fdeffd` (MIT) — семейство схлопнуто в один скил (pi прячет `disable-model-invocation` обёртки) |
| остальные `skills/*` | `author: ours` | | остальные `skills/*` | `author: ours` |
Политика адаптации: клон переписывается под наши конвенции (доски `.tasks/`, Политика адаптации: клон переписывается под наши конвенции (доски `.tasks/`,

BIN
dist/grill-me.skill vendored

Binary file not shown.

Binary file not shown.

BIN
dist/grilling.skill vendored

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,21 +0,0 @@
---
name: grill-me
adapted-from: mattpocock/skills @ 84fdeffd12f2ee307994d1eb6feb48173b6e0502 (MIT)
version: 0.1.0
description: >
A relentless interview to sharpen a plan or design — the convergent phase
after a brainstorm. Thin user-invoked wrapper over the grilling skill: the
user says «прогриль меня», «grill me», «хватит, точи план», «stress-test my
plan», «прогони идею по фронтиру» — and the agent runs a full grilling
session (design tree, rounds, frontier, numbered questions with recommended
answers). Works in any project, including .workshop before promotion.
Invoked only by the user — the agent never starts it on its own.
disable-model-invocation: true
---
Run a `grilling` session.
Convergent phase after the divergent brainstorm: the user says «хватит, к
промоушену» / "enough, sharpen it" — then run the interview machine until the
frontier is empty and the plan is sharp enough to promote or implement without
open questions.

View File

@@ -1,34 +0,0 @@
---
name: grill-with-docs
adapted-from: mattpocock/skills @ 84fdeffd12f2ee307994d1eb6feb48173b6e0502 (MIT)
version: 0.1.0
description: >
A relentless interview to sharpen a plan or design that also writes the
decision record as it goes — grill session + docs byproduct. Use when the
user says «прогриль с доками», «grill with docs», «хватит, точи и зафиксируй»,
«прогриль и запиши решение». After the frontier is empty: write context,
numbered decisions with rationale, and a glossary to
`.wiki/concepts/<topic>-decision.md` (project-discipline rule 1) — or append
the Q&A to the `.brainstorm/<topic>.md` running record in the workshop zone.
User-invoked only.
disable-model-invocation: true
---
Run a `grilling` session. When the frontier is empty and the user confirms
shared understanding, write the decision record as the byproduct:
- **Context** — what we set out to decide, in one paragraph.
- **Decisions** — the numbered Q&A from the session: each decision, the options
considered, the chosen one, one-line rationale.
- **Glossary** — domain terms that came up, defined so a fresh agent (or the
promotion pipeline) reads the record without asking.
Target (per project-discipline Rule 1):
- regular project → `.wiki/concepts/<topic>-decision.md`
- workshop zone → append the Q&A to `.brainstorm/<topic>.md` (running record),
then the promotion pipeline takes over (workshop-promote-brainstorm)
The record is the sharpened input for promotion/implementation — it should be
readable by a fresh agent with no open questions, mirroring the grilling
done-when-frontier-empty criterion.

View File

@@ -1,16 +1,17 @@
--- ---
name: grilling name: grilling
adapted-from: mattpocock/skills @ 84fdeffd12f2ee307994d1eb6feb48173b6e0502 (MIT) adapted-from: mattpocock/skills @ 84fdeffd12f2ee307994d1eb6feb48173b6e0502 (MIT)
version: 0.1.0 version: 0.2.0
description: > description: >
Interview the user relentlessly about a plan, decision, or idea until you reach Interview the user relentlessly about a plan, decision, or idea until you reach
shared understanding — the convergent phase after a brainstorm. Works a design shared understanding — the convergent phase after a brainstorm. The interview
tree in rounds: every round asks the whole "frontier" (questions whose machine: design tree, frontier, rounds of numbered questions with recommended
prerequisites are settled), each question numbered with a recommended answer. answers. Trigger (user): «прогриль», «grill my plan», «хватит, точи план»,
Use when the user wants to stress-test their thinking, sharpen a plan before «хватит, к промоушену», "stress-test my plan". Docs mode (trigger: «с доками»,
promotion/implementation, or uses any 'grill' trigger: «прогриль», «grill my «зафиксируй», "with docs"): after the frontier is empty, also write the
plan», «хватит, точи план», «прогони по фронтиру», "stress-test this". decision record (context / numbered decisions with rationale / glossary) to
Pair with grill-me (user wrapper) and grill-with-docs (writes the decision record). `.wiki/concepts/<topic>-decision.md` or append to the `.brainstorm/` running
record in the workshop zone.
--- ---
# Grilling # Grilling
@@ -18,6 +19,11 @@ description: >
Interview the user relentlessly until you reach a shared understanding. Map this Interview the user relentlessly until you reach a shared understanding. Map this
as a **design tree**: every decision branches into the decisions that hang off it. as a **design tree**: every decision branches into the decisions that hang off it.
This is the convergent phase after the divergent brainstorm: the user says
«хватит, к промоушену» / "enough, sharpen it" — then run the interview machine
until the frontier is empty and the plan is sharp enough to promote or
implement without open questions.
Work the tree in **rounds**. The **frontier** is every decision whose Work the tree in **rounds**. The **frontier** is every decision whose
prerequisites are already settled — the questions you can ask _now_ without prerequisites are already settled — the questions you can ask _now_ without
guessing at answers you haven't heard yet. Ask the whole frontier in one round: guessing at answers you haven't heard yet. Ask the whole frontier in one round:
@@ -49,6 +55,28 @@ The session is done when the frontier is empty: every branch of the design tree
visited, nothing left silently assumed. Do not act on it until the user confirms visited, nothing left silently assumed. Do not act on it until the user confirms
you have reached a shared understanding. you have reached a shared understanding.
## Docs mode
If the user asked for docs («с доками», «зафиксируй», "with docs"), write the
decision record as the byproduct once the frontier is empty and the user
confirms shared understanding:
- **Context** — what we set out to decide, in one paragraph.
- **Decisions** — the numbered Q&A from the session: each decision, the options
considered, the chosen one, one-line rationale.
- **Glossary** — domain terms that came up, defined so a fresh agent (or the
promotion pipeline) reads the record without asking.
Target (per project-discipline Rule 1):
- regular project → `.wiki/concepts/<topic>-decision.md`
- workshop zone → append the Q&A to `.brainstorm/<topic>.md` (running record),
then the promotion pipeline takes over (workshop-promote-brainstorm)
The record is the sharpened input for promotion/implementation — readable by a
fresh agent with no open questions, mirroring the done-when-frontier-empty
criterion.
## Cross-agent applicability ## Cross-agent applicability
Pure interview methodology — no harness-specific tool references. Works on pi, Pure interview methodology — no harness-specific tool references. Works on pi,
@@ -57,7 +85,7 @@ above; without sub-agent support the agent looks facts up directly.
## Out of scope ## Out of scope
- Does NOT write any artifact — that's `grill-with-docs` (decision record) and - Does NOT write any artifact unless the user asked for docs mode («с доками»,
the promotion pipeline (wiki/tasks). «зафиксируй") — then it writes the decision record (see Docs mode).
- Does NOT run the divergent brainstorm — that's the brainstorming phase before - Does NOT run the divergent brainstorm — that's the brainstorming phase before
this skill ("хватит, к промоушену" is the switch). this skill («хватит, к промоушену» is the switch).