Repository navigation
feat(planning): concise skill text measured by evals, plus outcome cases and probes - #7465
Conversation
…ses and probes Tighter bodies for the eleven model-invoked planning skills, shorter descriptions for audit-answers, brainstorm, design and plan, five new outcome cases, grader fixes with must-pass and must-fail samples across the suite, and frozen trigger-probe sets. setup is unchanged. Refs: #6552 Refs: #6476 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gtv6du4Bzd9KmWtHnjc78i
… 1 pinned The pre-ready review found negation and cross-line leniency in the au, dh, de and dg graders; each now rejects the reviewer's strings, added as must-fail samples, and the four cases were rerun on both versions and models. The restored interview override examples move from the digest-pinned Step 1 back into Purpose, where the base text had them. Refs: #6552 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gtv6du4Bzd9KmWtHnjc78i
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Claude finished @kyle-sexton's task in 1m 25s —— View job Security review complete
Result: no security issues foundReviewed the full diff (
No CRITICAL / IMPORTANT / SUGGESTION findings to report. claude-lane-summary: lane=claude-security-review sha=1c80c65703746989a80b7eb43adde2a03ba3af2d run=38582183582 |
The ready_for_review flip started no review lanes; this empty commit starts a fresh full run on the ready pull request. Refs: #6552 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gtv6du4Bzd9KmWtHnjc78i
|
Claude finished @kyle-sexton's task in 1m 46s —— View job Reviewing PR #7465
|
|
claude-security-review has reviewed this pull request through 6928c39; a later push is reviewed from there. |
|
Claude finished @kyle-sexton's task in 58s —— View job Security review (incremental) — no findings
Scope reviewed (changes since
What changed: grader regex patterns gained more negation forms (
No security issues found in this incremental scope. claude-lane-summary: lane=claude-security-review sha=f9e9ece112cac950d1be92f875ebdadd73b60419 run=38582430591 |
Replace literal em and en dash characters in the character classes with — and – escapes, matching the sibling graders. Regex behavior is unchanged. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 34006388f7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Claude finished @melodic-automation-lanes[bot]'s task in 28s —— View job Security review (incremental) — no findings
Scope reviewed (changes since
What changed: both diffs are a single-line, no-semantic-change edit: the literal em-dash (
No security issues found in this incremental scope. claude-lane-summary: lane=claude-security-review sha=a4dff3332b43c38d7fd170116e2099bd6a89bb88 run=38582830040 |
|
Claude finished @melodic-automation-lanes[bot]'s task in 2m 51s —— View job Code review in progress
|
…n note The interview rewrite's Opus skill mean fell 0.70 to 0.64; no trace tied a miss to the cut, but the cut was about 3% of the words, so the base text ships. The dg session-note grader now needs an effect word on the /clear line and on the resume line, with the reviewer's counterexample as a must-fail sample; the dg case was rerun on both versions and models. Refs: #6552 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Gtv6du4Bzd9KmWtHnjc78i
|
Claude finished @kyle-sexton's task in 2m 4s —— View job Security review (incremental) — no findings
Scope reviewed (changes since
What changed:
I traced the new pattern against all of its own pass/fail samples by hand ( Security assessment:
No security issues found in this incremental scope. claude-lane-summary: lane=claude-security-review sha=6928c39f83d184875aea8196d5202e550b16e400 run=38584170984 |
|
Claude finished @kyle-sexton's task in 4m 48s —— View job Reviewing PR #7465
|
|
Claude finished @kyle-sexton's task in 8m 51s —— View job Reviewing PR #7465
Result: no findingsScope: code-review lane only (correctness, design, conventions, error handling, tests, docs). Security is out of scope here — What I checked:
Author-claimed and not independently reproduced: the before/after eval score table and the 3-run/1-run triggering counts in the PR description — I verified the grader logic is correct, not that re-running the suite produces those exact numbers. No CRITICAL / IMPORTANT / SUGGESTION findings to report. claude-lane-summary: lane=claude-review sha=6928c39f83d184875aea8196d5202e550b16e400 run=38584170948 |
|
claude-review has reviewed this pull request through 6928c39; a later push is reviewed from there. |

Refs: #6552
Refs: #6476
Summary
The
planningslice of the concise-skills rollout, run through the per-plugin runbook (/playbooks:skill-authoring). Protocol: before and after on Opus and Sonnet, outcome cases at 3 runs, held-out triggering at 1 run per query,--ablation none,--max-cost-usd 5on every pass, before and after launched together, Claude Code 2.1.299.interviewships its base text (see Verification). The cuts are rationale that changes no action, restated text, and filler. Every gate, route, stop and report line stays.audit-answers,brainstorm,designandplanare shorter, with every quoted trigger phrase kept. The other seven are unchanged.setupships unchanged. It is user-invoked and no outcome case reaches it. Its rewrite also dropped every trigger phrase from the description.au-,de-,dg-,dh-,qu-) coveraudit-answers,design,draft-goal-condition,design-handoffandquestionnaire. Every one of the eleven skills now has at least one case.probes/, 18 queries each.Fix
Per-skill decision table
Sizes: description characters, then file lines and words. Line counts rise where long paragraphs were wrapped at 100 columns.
Meaning diff
/docs-hygiene:compress compareran two fresh labelers per skill, one on Opus and one on Sonnet, against base text extracted fromorigin/main. Every SEMANTIC LOSS row in the union was restored verbatim before the measured passes:interview: the two example override phrases ("this isn't a code task", "interview me on this decision"). The whole skill later went back to base.—/–; regex behavior is unchanged.brainstorm: the reason no artifact is persisted by default.design-handoff: "a producing model rubber-stamps its own recap", and "Silent gaps are exactly what the binary gate exists to catch".design: the/planning:design moduleargument example, and "criteria changes land in/planning:design-handoffonly" (an ambiguity row on both labelers).draft-goal-condition: "they feed that shape rather than replace it" (ambiguity row).plan: the rationale for pre-drafted flip lines (ambiguity row on both labelers).setup: both labelers flagged the dropped trigger phrases, so the whole skill went back to base.audit-answers,devils-advocate,prd,questionnaire,wayfindandplanpassed on both labelers.Verification
Outcome suite (3 runs per case, frozen graders)
Before freezing, four fresh agents audited every deterministic grader for negations before a name, single matches where several facts are required, shell writes missing redirect,
tee,cp,mv,install,dd,sed -i, pipe-to-shell and interpreter forms, reads graded only through Bash, "no X" substrings, and graders too narrow for the skill's own wording. Each fix landed with a must-pass and a must-fail sample. Three Bash-write guards were added (no-bash-write-back,no-bash-code-write,no-bash-plan-write), and two LLM graders were added where a regex could not express the outcome (plan-next-no-detour,navigator-not-guess). The suite was then frozen (digest recorded) and not edited after the first measured run. No run ended in an error.interviewreverted to base after the review round. The fresh-context judge traced none of its Opus misses to the rewrite (below), but its Opus skill mean fell 0.70 → 0.64, past the margin at skill level, and the rewrite cut only about 3% of its words. Shipping base text removes the question without a remeasure.dgsession-notenow requires an effect word on the/clearline and on the resume line ("See the docs for /clear and resumed sessions." is a must-fail sample); thedgcase was rerun on both versions and both models, and its row above is the rerun.auverdict-per-answerandlimit-challenged,dhverdict-fail,denumbered-recommendations,dgsession-note). Each was fixed with the reviewer's strings as must-fail samples, and those four cases were rerun on both versions and both models; the table and means above use the rerun.interview:final-confirm-active-reply(0.56 → 0.33),quality-bar-asked-bookmark-sync(0.33 → 0.00) andquality-bar-asked-ticket-dashboard(1.00 → 0.67).design-handoffFAIL that routes into a/planning:designround as its unchanged FAIL text says.interview-scope-cut-moscow,wayfind-next-unsure-midflow,interview-recommendation-basis-and-flip,interview-closing-probe-something-else,prd-next-unsure-midflow). They do not separate the versions, and their graders are listed for follow-up below.Triggering (held-out, not committed)
There are 6 queries per skill for the 11 model-invoked skills, 4 that should trigger and 2 that should not. They were written blind from neutral purpose statements and run once per query.
brainstorm(4/6 → 5/6) andplan(5/6 → 4/6) moved by one query on Sonnet, so both were rerun at 3 runs per query on Sonnet:brainstorm13/18 → 14/18 andplan14/18 → 14/18. Neither loses, so both descriptions ship.Static checks
/skill-quality:checkoverplugins/planning/skills: 12 passed, 0 failed./evals:validate: every case loads with 0 FAIL, and every deterministic grader agrees with all of its samples.measure-invocation.sh validate: PASS on all 11 probe files.scripts/check-affected.sh: 7 passed, 1 skipped (no Python). typos, shellcheck, gitleaks, lychee (offline) and the em-dash check are clean.Related
asks-quality-bar(yes/no bar question with tiers as alternatives),asks-confirm-or-numbers("Reply "confirmed", or ... answers to N"),dglength-within-limit("N of M characters"),planasks-to-plan-anyway(window before?),brainstorminvites-reaction(500-character tail),dhnames-no-rationale-thread("no reason written down"),states-flip-condition("breaks any of these"), and the five cases that score the same low value on both versions.🤖 Generated with Claude Code
https://claude.ai/code/session_01Gtv6du4Bzd9KmWtHnjc78i