fix(review): answer covered cases on skill prose with the condition, not a patch - #1401
Conversation
…ases with the condition Restructure AGENTS.md's skill guidance into one lifecycle (Working on Skills: authoring, editing an existing skill, reviewing a skill change, acting on review feedback) so review bots and the resolver read the same standard. ce-resolve-pr-feedback's rubric now frames verdicts with the project's review guidance, inverts "default to fixing" for instruction prose, counts review rounds per PR so the loop cap survives babysit re-invocation, and the fixer refuses to add cases to a rule. Records the #1397 experience as a skill-design learning. Claude-Session: https://claude.ai/code/session_015USMWYow4KB4LvG8GmGf91
PR SummaryCursor Bugbot is generating a summary for commit 35e025f. Configure here. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 35e025fcb1
ℹ️ 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".
- second-round restatement is one class item carrying every finding on the block, so the fixer verifies against each path Claude-Session: https://claude.ai/code/session_015USMWYow4KB4LvG8GmGf91
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a2a08ae. Configure here.
- restatement re-verifies against every path the additions served, not only the current round's findings Claude-Session: https://claude.ai/code/session_015USMWYow4KB4LvG8GmGf91
* fix(ce-commit-push-pr): root PR stacks on the parent PR the user named (EveryInc#1365) * fix(ce-babysit-pr): decode gh output as UTF-8 on Windows (EveryInc#1368) * fix(ce-prototype): cover decisions settled by seeing, not just driving (EveryInc#1369) * perf(tests): cut suite wall time by splitting the largest test file (EveryInc#1370) * fix(tests): stop the cross-model routes test reading the working tree (EveryInc#1371) * fix(ce-doc-review): ask only where a real choice exists, batch the rest (EveryInc#1373) * chore(orca): re-pin upstream provenance baseline to 421a337 Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ce-doc-review): align Orca ownership wording with Apply routing Co-authored-by: Cursor <cursoragent@cursor.com> * feat(ce-prototype): add a seeing-mode craft floor and durable storage (EveryInc#1374) * fix(ce-pov): stop the panel guessing the cross-model host argument (EveryInc#1375) * chore(cross-model): pin the Grok peer to 4.6 (EveryInc#1376) * docs(skills): rewrite user skill pages for accuracy and clearer use (EveryInc#1377) * fix(commit): append known plan unit ids to commit subjects (EveryInc#1379) * fix(ce-work): stop sandboxed workers committing in linked worktrees (EveryInc#1382) * fix(ce-doc-review): edit HTML plans in native format (EveryInc#1381) * fix(ce-code-review): cover adversarial after quota or auth no-review (EveryInc#1380) * fix(skills): correct a rejected dispatch instead of spending the fallback (EveryInc#1383) * fix(ce-compound): find Claude sessions started outside the repo root (EveryInc#1378) * ci(windows-native): retry peer-job-runner smoke on ctypes flake (EveryInc#1384) * fix(ce-debug): stop asking at the handoff, stop shipping unoffered work (EveryInc#1385) * docs(solutions): record why skill gates state conditions, not git commands (EveryInc#1386) * fix(skills): drop the residual-findings record file for real sinks (EveryInc#1387) * fix(ce-doc-review): run the cross-model pass when CROSS_MODEL_PEERS is unset (EveryInc#1389) * fix(ce-proof): sync with current Proof v3 contract (EveryInc#1390) * fix(skill-authoring): make goal-first the default when authoring and reviewing skills (EveryInc#1391) * fix(cross-model): let reviews run on Fable and pin model/effort from CE config (EveryInc#1392) * docs(cross-model): point superseded peer benchmarks at the luna/xhigh decision (EveryInc#1393) * fix(cross-model): discover the Codex.app-bundled codex CLI and name the peer-CLI requirement (EveryInc#1395) * feat(cross-model): add cross_model_review_mode checkout egress gate (EveryInc#1396) * fix(ce-compound-refresh): compare knowledge-track learnings against guidance they name (EveryInc#1399) * docs(solutions): capture the named-guidance contradiction-check learning (EveryInc#1400) * fix(ce-compound): prefer the repo's own frontmatter vocabulary over the Rails-era enums (EveryInc#1394) * fix(ce-work): stop asking about branches before starting work (EveryInc#1397) * fix(review): answer covered cases on skill prose with the condition, not a patch (EveryInc#1401) * fix(scratch): fall back to $TMPDIR when /tmp cannot host the scratch root (EveryInc#1398) * feat(ce-skill-work): repo-local skill for authoring, editing, reviewing, and responding to review on skills (EveryInc#1402) * fix(ce-pov): reject non-final peer positions instead of folding them in (EveryInc#1403) * feat(manifest): add Agent Plugins v1.0.0 manifest support (EveryInc#1345) * chore: release main (EveryInc#1354) * fix(ce-work): run cross-model verification on warm checkouts (EveryInc#1404) * fix(orca): reconcile upstream skill contracts * fix(orca): preserve additive Codex session roots --------- Co-authored-by: Trevin Chow <trevin@trevinchow.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

Summary
Follow-up to #1397, which took nine review rounds and 24 bot findings to land a two-condition change. Every finding was valid in isolation; every fix added a case to the previous fix; the block converged only when restated as its conditions. Two guards that should have stopped it existed and did not fire: the AGENTS.md accretion rules live in authoring context read at session start, not in the protocol running when feedback arrives; and the resolver's two-cycle loop cap counted per invocation, which
ce-babysit-prresets every round.This PR puts the rule where both sides of a review read it, and states it for the whole skill lifecycle:
AGENTS.md→## Working on Skills. The former Cross-Model Skill Authoring block and its subsections are restructured into one lifecycle with a shared standard: authoring a new skill (conditions, not procedures; owned mechanisms; prose admission; invocations; loading), editing an existing skill (new: bring the touched block up to the current standard rather than matching the old shape; scope to your change plus what it makes wrong), reviewing a skill change (new, addressed to bots and humans: what a finding is onskills/**, a covered case is not a finding, request a condition or an owning-layer move — never a case), and acting on review feedback (the existing steps, with the covered-case and second-round rules made explicit). Review bots here cite AGENTS.md line-by-line in their findings, so this shapes what gets filed as well as what gets fixed. No net new rules forsrc/,tests/,scripts/.ce-resolve-pr-feedbackrubric. The project's review guidance in context frames the verdict, not just the harm veto. New "instruction prose is not code" section: a case the condition already decides →not-addressingquoting it; fix only the condition or the layer; a second round against the same block → restate, not qualify. Ordinary code keeps the ordinary rubric.blockedrather than add a case.docs/solutions/skill-design/prose-review-is-unbounded-answer-with-the-condition.md.Validation
bun run test: 3128 pass, 0 fail;bun run release:validatein sync. Prose-only change; the behavioral effect is evaluable only by the next skill-file PR review.Security Disclosure
No security-relevant changes.
Agent Disclosure
Claude Code · claude-fable-5