Grill Me Plus

Branch-aware grilling that balances breadth and depth.

CI MIT License Agent Skill

Grill Me Plus pressure-tests a plan without letting one interesting answer consume the whole interview. It keeps a visible main-question map, labels every answer-driven branch, and uses an LLM clarity gate to decide whether another follow-up is actually useful.

English · 简体中文 · 日本語 · Français

Skill · Design · Compatibility · Behavioral cases

Best fit: Large or evolving proposals that a user and an Agent review together over multiple turns. The stable question map helps that collaboration preserve scope, decisions, and unresolved risks. For a small one-off question, a direct critique is usually faster.

The core innovation

One map, two queues, one clarity gate.

Mechanism What you see Why it matters
Main map Q1, Q2, ... Important dimensions cannot disappear inside a tangent
Traceable branches Q2.F1 · 1/4 Every follow-up shows its source and remaining ceiling
Adaptive stop clear after 1/4 The LLM stops when the decision is clear; unused budget stays unused
User-controlled cap max follow-ups 4 The user—not an invisible loop—sets the maximum depth of interrogation
Coverage checkpoints 3/7 main · 1 parked Breadth, depth, and unresolved risk remain visible

The follow-up cap is a ceiling, never a quota. A branch configured for four follow-ups may need zero, one, or four. The model must justify each additional question with a material ambiguity.

How the interview moves

flowchart TD
    A["Build coverage map Q1..Qn"] --> B["Ask next main question Qk"]
    B --> C["User answers"]
    C --> D{"Material ambiguity remains?"}
    D -- "No" --> E["Mark Qk clear and return to main"]
    D -- "Yes" --> F{"Follow-ups used below user cap?"}
    F -- "Yes" --> G["Ask Qk.Fx and show used/cap"]
    G --> C
    F -- "No" --> H["Park risk and provisional assumption"]
    E --> I{"Unasked main questions remain?"}
    H --> I
    I -- "Yes" --> B
    I -- "No" --> J["Revisit highest-risk queued branches"]
    J --> K["Coverage summary and user confirmation"]
    K --> L["Stop without implementing"]

The clarity gate asks whether two plausible interpretations would change the recommendation, whether a decision is still missing, whether a downstream question is blocked, or whether a high-impact risk is unowned. If none applies, the branch is done.

Example: the cap is not consumed automatically

The user starts with:

$grill-me-plus Stress-test my product launch plan.
Maximum 4 follow-ups per main question. Do not implement it.

The interview reaches scope:

[Main Q2/6 · Scope]
Which workflows are explicitly outside the first release?
Recommended answer: exclude admin and partner onboarding from the pilot.

User: Admin is out. Partner onboarding might still be included.

[Follow-up Q2.F1 · from Q2 · 1/4]
Would including partner onboarding change the launch date or require a second
approval path?
Recommended answer: exclude it from the pilot and validate it separately.

User: Yes. It needs another approval path, so it is out.

Branch Q2: clear after 1/4 follow-ups; returning to main.

[Main Q3/6 · Failure modes]
...

The branch used one of four available follow-ups. The remaining three were not asked because the decision was already clear.

Compared with an unbounded interview

Unbounded depth-first:
Q1 -> Q1.F1 -> Q1.F2 -> Q1.F3 -> ... -> original map disappears

Grill Me Plus:
Q1 -> clarity gate -> Q1.F1 if needed -> clear/park -> Q2 -> Q3 -> coverage

This is not pure breadth-first search. It is bounded, adaptive depth inside a coverage-first loop.

Install

With the Skills CLI:

npx skills add yuexiongHNU/grill-me-plus --skill grill-me-plus -g

Or copy skills/grill-me-plus into the skills directory used by your agent. The distinct name lets it coexist with the original grill-me skill.

Invoke it explicitly:

$grill-me-plus Pressure-test this architecture. Max 3 follow-ups per branch.
Do not implement it yet.

The skill also supports natural-language grilling requests when the host allows implicit skill invocation.

Configure follow-ups

User instruction Effect
max follow-ups 4 Set the session-wide cap per main branch
Q3 max follow-ups 6 Override the cap for one branch
max follow-ups 0 Disable answer-driven follow-ups
go deeper on Q3 Continue Q3 within its remaining cap
return to the main line Park the current branch and resume coverage

Without a user setting, the model selects and announces an initial cap from 1-5, recommending 3 for an ordinary session. The user can change it at any time.

Cross-agent compatibility

Host Explicit invocation Status
Codex $grill-me-plus Contract-tested; behavior remains model-dependent
Claude Code /grill-me-plus Format-compatible; runtime validation pending
Cursor /grill-me-plus Format-compatible; runtime validation pending
WorkBuddy @skill:grill-me-plus Package-format compatible; import and runtime validation pending
Hermes Agent /grill-me-plus Format-compatible; runtime validation pending

The portable contract lives in SKILL.md; agents/openai.yaml is an optional Codex UI extension. See cross-agent compatibility for targeted installation commands, status definitions, and the host-validation checklist. Here, Claude means Claude Code, not the Claude web or desktop app.

Validate

python tests/test_skill_contract.py
python scripts/build_release.py --output dist
python tests/test_release_archive.py

The repository also includes model-agnostic cases in evals/cases.json. Release steps are documented in docs/releasing.md.

Status and compatibility

Grill Me Plus is experimental (0.x). Its Markdown instructions follow the common Agent Skills folder convention. Compatibility claims distinguish portable format support from host-level runtime testing. Behavior still depends on the host agent and model honoring skill instructions.

There is no package publication, telemetry, network service, or runtime dependency in this repository.

Independent derivative

Grill Me Plus is an independent derivative of the MIT-licensed grill-me / grilling workflow in mattpocock/skills. It is not affiliated with or endorsed by the original project. The upstream copyright notice is retained in LICENSE and NOTICE.