feat(planning): route incumbency-driven plan-review findings to incumbent mode - #878
Conversation
…bent mode
When devils-advocate plan-review mode (Rounds 1-4) surfaces an assumption whose
only support is incumbency ("we already use X"), Round 2's evidence check now
treats it as unverified and the resulting finding's Mitigation names the
follow-up: `/planning:devils-advocate incumbent <target>` — the Alternatives
Sweep on that incumbent. Suggestion only; never auto-run, so scope stays one
mode per invocation. An assumption also backed by a requirement, benchmark, or
doc is verified on that evidence and does not trigger the routing.
Adds eval case 10 covering plan-review (default) mode detecting incumbency-only
support and suggesting — not running — the sweep, distinct from case 6's direct
incumbent-mode invocation. Bumps planning to 0.24.3 with a CHANGELOG entry.
Closes #866
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 41s —— View job PR Review — feat(planning): route incumbency-driven plan-review findings to incumbent modeTasks:
SummaryClean, tightly scoped PR. The logic is sound, placement is correct, the eval exercises the right behavior, and the version bump is appropriately patch-level. No blocking issues. SKILL.md — Round 2 additionThe new paragraph is placed correctly — it extends the definition of "unverified" at the conclusion of Round 2, right after the evidence-check table format, before Round 3 is invoked. Key aspects check out:
The new Suggested Next Steps bullet is a clean pointer-back with no duplication of the rule:
"The finding's Mitigation already names the invocation" correctly defers authority to Round 2/3 rather than restating the invocation syntax here. evals.json — Case 10The three expectations map cleanly to the three behaviors stated in the PR body:
The prompt is well-chosen: "we already use it across the other services, so we'll wire it in here too" is a canonical incumbency-only justification with no requirement, benchmark, or doc attached. It correctly excludes the precision-guard edge case (no mixed evidence to complicate grading). One observation worth noting: the third expectation says "names the exact follow-up Case 10 is correctly distinct from case 6: case 6 tests that CHANGELOG and version bumpThe No blocking issues. Ready to merge. |
|
Claude finished @kyle-sexton's task in 1m 10s —— View job Security Review — PR #878
No security issues found. This PR touches four files: a version bump in
|
Recompose against advanced main: #878 took planning 0.24.3 for the devils-advocate incumbent-routing change. Kept that entry at 0.24.3 and moved the interview session-config reframe (Fixed) up to 0.24.4; bumped plugin.json to match.
recheck-against-upstream vs mattpocock/skills HEAD 068b6e0: inventory map verified intact (35 skills, mappings confirmed), no new release; unreleased drift noted (invocation-reach invariant hardened via #878/ #880, diagnosing-bugs post-mortem step removed) for lane-6 bookkeeping. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LiiQ2eJ6mHqTPsNfTGJzCG
What
In
devils-advocateplan-review mode (Rounds 1–4), when Round 2's evidence check finds an assumption whose only support is incumbency ("we already use X"), the finding now names the follow-up —/planning:devils-advocate incumbent <target>, the Alternatives Sweep on that incumbent — instead of leaving it as prose. Suggestion only: it is never auto-run, so scope stays one mode per invocation.Deferred enhancement recorded in #823 (the
incumbentmode itself).Why this placement
Incumbency is not evidence (the skill's Purpose already says "we already use it is evidence of what is, never proof it still fits"). So an incumbency-only assumption fails the Round 2 evidence check → becomes an unverified assumption → flows to a Round 3 finding whose Mitigation names the sweep. That ties the suggestion to finding output, per the acceptance. The authoritative rule (command + "suggest, never auto-run, one mode per invocation" + trigger precision) lives once in Round 2; Suggested Next Steps carries a bare pointer.
Trigger precision: an assumption also backed by a requirement, benchmark, or doc is verified on that evidence and does not trigger the routing.
Eval
Adds case 10 (
plan-review-incumbency-assumption-suggests-incumbent-mode): a plain plan-review prompt whose plan leans on an in-house encoder justified only by "we already use it." Expectations verify it (a) stays in plan-review mode and does NOT run the sweep, (b) flags the choice as incumbency-only/unverified, (c) names the exact/planning:devils-advocate incumbent <target>follow-up as a suggestion. Distinct from case 6 (directincumbent-mode invocation).Version
Bumps
planningto 0.24.3 with a CHANGELOG entry (same diff, changelog-parity gate).Gates run (all green locally)
skill-qualitycheck-skill: PASS (0 errors; pre-existing WARNs only)evals.schema.jsoncheck-changelog-parity.sh--checkand--check-bump origin/main: passvalidate-plugins.sh: all manifests + catalog passRelated
incumbentmode (the mode this PR routes to); the deferred enhancement implemented here was recorded there. Not closed by this PR.Closes #866