feat(grill-family): adapt grilling/grill-me/grill-with-docs from mattpocock @84fdeffd (MIT)

Convergent phase of the brainstorm flow: user says «хватит, к промоушену» →
grill session (design tree, rounds, frontier, numbered Q's with recommended
answers) → decision record. Adaptations to our conventions:
- grill-with-docs writes .wiki/concepts/<topic>-decision.md (project-discipline
  Rule 1) or appends to .brainstorm/ running record in the workshop zone
- grilling sub-agent line made cross-agent honest (look up facts directly
  when no subagent spawning)
- disable-model-invocation: true on both user wrappers
Provenance pinned to real commit 84fdeffd (not TBD). README table updated.
lint: 0/0; ~/.claude/skills now 41.
This commit is contained in:
2026-08-12 15:46:18 +03:00
parent 0d67624bd3
commit 6204e8ca90
5 changed files with 120 additions and 0 deletions

View File

@@ -113,6 +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 |
| `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) |
| all other `skills/*` | `author: ours` |
Adaptation policy: a clone is rewritten to our conventions (`.tasks/` boards,

View File

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

21
skills/grill-me/SKILL.md Normal file
View File

@@ -0,0 +1,21 @@
---
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

@@ -0,0 +1,34 @@
---
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.

63
skills/grilling/SKILL.md Normal file
View File

@@ -0,0 +1,63 @@
---
name: grilling
adapted-from: mattpocock/skills @ 84fdeffd12f2ee307994d1eb6feb48173b6e0502 (MIT)
version: 0.1.0
description: >
Interview the user relentlessly about a plan, decision, or idea until you reach
shared understanding — the convergent phase after a brainstorm. Works a design
tree in rounds: every round asks the whole "frontier" (questions whose
prerequisites are settled), each question numbered with a recommended answer.
Use when the user wants to stress-test their thinking, sharpen a plan before
promotion/implementation, or uses any 'grill' trigger: «прогриль», «grill my
plan», «хватит, точи план», «прогони по фронтиру», "stress-test this".
Pair with grill-me (user wrapper) and grill-with-docs (writes the decision record).
---
# Grilling
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.
Work the tree in **rounds**. The **frontier** is every decision whose
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:
number each question and give your recommended answer. Then wait for the user's
answers before the next round.
Each question should be formatted like so:
```
❓ **Q1** - **<question title>**: <question body, might be multiple paragraphs, including multiple choices>
➡️ <your recommended answer>
```
Each round the user answers reshapes the tree — settled decisions push the
frontier outward and unblock questions that depended on them. Recompute the
frontier and ask the next round. A question whose answer depends on another
question still open in this round belongs to a _later_ round, not this one.
Finding _facts_ is your job, never the user's. When a frontier question needs a
fact from the environment (filesystem, tools, docs), look it up yourself — or
dispatch a clean-context sub-agent where your harness supports it. Don't ask the
user for anything you could look up yourself. Don't block on it: a running
exploration is an unsettled prerequisite, so only the questions downstream of it
wait — ask the rest of the frontier now. The _decisions_ are the user's — put
each to them and wait.
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
you have reached a shared understanding.
## Cross-agent applicability
Pure interview methodology — no harness-specific tool references. Works on pi,
Claude, or any agent. The only harness-dependent line is the sub-agent note
above; without sub-agent support the agent looks facts up directly.
## Out of scope
- Does NOT write any artifact — that's `grill-with-docs` (decision record) and
the promotion pipeline (wiki/tasks).
- Does NOT run the divergent brainstorm — that's the brainstorming phase before
this skill ("хватит, к промоушену" is the switch).