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:
@@ -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,
|
||||||
|
|||||||
@@ -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
BIN
dist/grill-me.skill
vendored
Binary file not shown.
BIN
dist/grill-with-docs.skill
vendored
BIN
dist/grill-with-docs.skill
vendored
Binary file not shown.
BIN
dist/grilling.skill
vendored
BIN
dist/grilling.skill
vendored
Binary file not shown.
BIN
dist/project-discipline.skill
vendored
BIN
dist/project-discipline.skill
vendored
Binary file not shown.
BIN
dist/recommend-dont-menu.skill
vendored
BIN
dist/recommend-dont-menu.skill
vendored
Binary file not shown.
BIN
dist/tdd-criteria.skill
vendored
BIN
dist/tdd-criteria.skill
vendored
Binary file not shown.
@@ -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.
|
|
||||||
@@ -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.
|
|
||||||
@@ -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).
|
||||||
|
|||||||
Reference in New Issue
Block a user