Skip to content

grill-me: gate the anchor behind the LIGHT-end-to-end decline - #79

Merged
JRichlen merged 1 commit into
mainfrom
claude/research-skills-agent-patterns-ihp49w
Aug 29, 2026
Merged

grill-me: gate the anchor behind the LIGHT-end-to-end decline#79
JRichlen merged 1 commit into
mainfrom
claude/research-skills-agent-patterns-ihp49w

Conversation

@JRichlen

Copy link
Copy Markdown
Owner

What

Fixes the grill-me anchor/decline ordering bug surfaced by the demonstration on #75.

Before this change, the "Anchor, then consent to each path" section opened with an unconditional "No branch questioning before the anchor is set." A model faithfully following the skill therefore set up the round-0 anchor (goal / outcome / out-of-scope) before it ever reached the "a plan that triages LIGHT end to end gets a brief 'no session needed'" decline — so a fully-settled or all-two-way-door plan got the anchor ceremony it was supposed to be spared.

The fix

Triage is now the first move, ahead of the anchor.

  • SKILL.md — the anchor section now reads: triage the whole plan first; if every branch is LIGHT end to end, say "no session needed" and stop before any anchor; only otherwise is the anchor set. The literal No branch questioning before the **anchor** requirement and the explore / accept / defer / out-of-scope menu (both asserted by the cheap tier) are preserved.
  • references/path-consent.md — a new "Before the anchor — the decline gate" section states the same precondition, plus a new "Anchor before decline" entry in the failure-modes list.

Budget

SKILL.md was at its 140-line ceiling. The change is line-neutral: the decline line was reclaimed from "When to use", the header description tightened, and the four-route menu kept on a single line so the cheap-tier grep still matches. Final: 140 lines, cheap tier 1294/0.

Demonstration

Per the demonstration discipline, a PR comment shows the skill run on real input before/after, with the misses — posted below.

🤖 Generated with Claude Code

https://claude.ai/code/session_011tuKEs7jU6FawKTbdHMzUU


Generated by Claude Code

Follow-up to the demonstration in #75, which surfaced the ordering bug: the
"Anchor, then consent" section opened with an unconditional "No branch
questioning before the anchor is set," so a faithful run set up the round-0
anchor before ever reaching the "a plan that triages LIGHT end to end gets a
brief 'no session needed'" decline — ceremony on a plan the skill should have
declined outright.

Now triage is the first move. SKILL.md gates the anchor: triage the whole
plan first; if every branch is LIGHT end to end, say "no session needed" and
stop before any anchor; only otherwise is the anchor set. path-consent.md
gains a "Before the anchor — the decline gate" section stating the same
precondition, and a new "Anchor before decline" failure mode. The literal
anchor requirement and the four-route consent menu (both asserted by the
cheap tier) are preserved, and SKILL.md stays at its 140-line budget by
reclaiming the decline line from "When to use" and tightening the header
description. cheap tier 1294/0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011tuKEs7jU6FawKTbdHMzUU
Copilot AI lite review requested due to automatic review settings August 29, 2026 04:20

Copy link
Copy Markdown
Owner Author

Demonstration — the anchor/decline ordering fix

Skill run on real input, before/after visible, with the misses. The input is a real, mostly-settled in-repo plan — docs/examples/PLAN.md, whose Phases 1–4 are marked done and whose only open work is Phase 5 polish (staleness guard, two-way README links, landing-page filters). This is precisely the plan the old ordering mishandled.

Real input

"Here's docs/examples/PLAN.md for the gallery. Grill me before I keep building it out."

(docs/examples/PLAN.md: Phase 1 tracer — done; Phase 2 capture→commit loop — done; Phase 3 widen to packed plugins — graded, automatic; Phase 4 the 13 unpacked plugins — done, 13/13; Phase 5 — polish items; plus a stated invariant. The one branch carrying any stakes, Phase 3's "which scenario becomes the published card", already names a firm deterministic rule: the starkest graded divergence, chosen by capture-example.sh, not by hand.)


BEFORE — old prose (merged c791d83)

The section opened with the unconditional "No branch questioning before the anchor is set," so a faithful run does the anchor ceremony first — on a plan that is already built:

Anchor (confirm in one line):
• Goal: publish real, provenanced with-skill/without-skill pairs to Pages beside the docs.
• Outcome: every plugin that warrants a card has a real captured pair with provenance; the gallery never fabricates; page stays in sync.
• Out of scope: adding promptfoo packs for all plugins now.

🧭 Path — Selection policy (which scenario is published) [STANDARD, ~2 q]
➡️ the starkest graded divergence, chosen deterministically by capture-example.sh.
explore / accept / defer / out-of-scope?

It reaches the "a plan that triages LIGHT end to end gets a brief 'no session needed'" line only after setting up the anchor and a consent header — the ceremony the plan didn't need.

AFTER — new prose (this PR)

Triage runs first, ahead of the anchor:

Triaging the whole plan first. Phases 1–4 are marked done; Phase 5 is polish
— staleness guard, two-way README links, landing-page filters — each a
two-way, dev-only change: LIGHT. The one branch with any stakes, Phase 3's
"which scenario is published", already carries a firm deterministic
recommendation in the plan, so it collapses to LIGHT too.

No session needed — this plan is settled enough that grilling it would be
ceremony. Say the word if you want me to confirm the Phase 3 selection rule
in one line; otherwise you're clear to build Phase 5.

The rule that produced the change: path-consent.md"Before the anchor — the decline gate: The anchor is not the first move; triage is… If every branch triages LIGHT end to end, there is no session to run — say so briefly and stop. Do not set an anchor for a plan that has nothing above LIGHT to route." The old run set up an anchor and a header before it was allowed to notice the plan was done; the new run declines with zero anchor ceremony.


The misses (not a sales pitch)

  1. The decline is only as good as the triage feeding it. The whole thing hinges on my calling Phase 3 "collapses to LIGHT because the plan states a firm recommendation." A stricter reader could call which example a user sees published a STANDARD branch and not decline. The fix removes the ordering bug but the skill still gives no crisp test for "recommendation firm enough to collapse a branch" — so the same plan can decline or not decline depending on who triages it.

  2. The gate front-loads a full-plan triage. "Triage the whole plan" before the anchor means stakes-tiering every branch up front — which is most of the structural work the anchor was meant to frame. It's nearly free here (the plan says "done"), but on a genuinely complex plan the decline gate is not a cheap pre-check; it's a real pass.

  3. A wrong decline now ends the whole session, not one branch. The irreversibility exception protects deferring a known DEEP one-way-door branch; it does nothing for a DEEP branch that triage missed and swept into "polish." The decline gate widens the blast radius of a triage miss — previously a mis-tiered branch got under-questioned; now it can get the session ended before it's ever raised. That's the real cost of putting decline ahead of the anchor, and it's the thing to watch if this ever declines a plan it shouldn't.

Net: the ordering bug is fixed and the before/after is real — a settled plan is declined instead of anchored — but the decline inherits all the fragility of the triage, and a bad triage now fails louder (a skipped session) rather than quieter (a shallow question).


Generated by Claude Code

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

SKILL.md appears to violate the plugin’s enforced 140-line budget (and slightly diverges from the stated “literal” anchor requirement wording), which would likely break the cheap-tier checks.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR adjusts the grill-me skill’s ordering so that the plan is fully triaged before any anchor ceremony, allowing an early “no session needed” decline when every branch is LIGHT end-to-end.

Changes:

  • Move the LIGHT-end-to-end decline gate ahead of the anchor in SKILL.md.
  • Add explicit “Before the anchor — the decline gate” guidance and a new failure mode to references/path-consent.md.
File summaries
File Description
plugins/grill-me/skills/grill-me/SKILL.md Reorders the protocol so triage/decline happens before setting the anchor, and tightens the path-consent header wording.
plugins/grill-me/skills/grill-me/references/path-consent.md Documents the pre-anchor decline gate and adds a corresponding failure-mode entry.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +47 to +49
First triage the whole plan: if every branch is LIGHT end to end, there is
no session — say "no session needed" and stop, before any anchor. Otherwise,
no branch questioning before the **anchor** is set: the goal, the outcome
@JRichlen
JRichlen merged commit 7b614af into main Aug 29, 2026
50 of 51 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants