Repository navigation
perf(work-items): move /work-items:work CI mode to reference/ci-mode.md - #13133
Conversation
Three cases drive --issue <n> --ci from a scaffolded issue.json and grade scratch/work-outcome.json with deterministic graders: the verify_close verify-unmet path, the code-review ci venue skip, and the already-done stop code. Refs: #12468 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
All 7 measured main-session loads named one item and none ran --ci, yet each carried the section. The CI lane copies the whole plugin, so it can read the new file. SKILL.md keeps the pointer at its Arguments line and in a stub. unattended-callers.test.mjs reads the new home with the same expected calls, and now also checks the stub points there. Refs: #12468 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…folds The fixture a scaffold writes is unchanged. Refs: #12468 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The first 5-run round showed two false failures. A reason holding an escaped quote stopped the verify-unmet pattern short of the item it names, and no-claim-before-yes matched a checklist line naming the later claim and, past the command's closing quote, a path in the Bash description. Both patterns now read JSON escapes, each with a sample for what it wrongly failed. verify-close also grades a Bash commit and the doc it must not build, since --allow-tools grants Bash to every case. Refs: #12468 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…plugins into perf/12468-work-ci-mode
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-security-review reviewed Security review: PR #13133,
|
|
claude-review reviewed Code review: no findingsI read the whole change in all 28 files. This PR moves What I checked
Not checked (claims I could not verify)
Spend: the three new eval cases use prepaid model credit only when someone runs the eval suite. None of it is a billed resource. No embedded instructions were found in the PR context or prior-findings files. This is the first round, well under the round cap of 3. |
Refs: #12468
Summary
/work-items:work's CI mode section (about 14 KB) moves toreference/ci-mode.md, so a load that names one item or auto-selects no longer carries it. All 7 measured main-session loads named one item and none ran--ci(host-run record). SKILL.md drops from 61,462 to 47,301 bytes. Three new eval cases cover the moved text, and a paired run shows no loss at a 0.05 margin.Fix
SKILL.md: the section leaves. The Arguments line and a## CI modestub both tell a--cirun to readreference/ci-mode.mdfirst, follow it and skip every other section. The stub defines<plugin-root>.reference/ci-mode.md: the text is verbatim, except the title's heading level and one link now written<plugin-root>with a relative target (check-spoke-plugin-root). Thework-resolve-issuelane copies the whole plugin to.lane/plugins/(collect-base-activity/action.yml), and a Read in the working directory needs no rule, so the lane can read it.unattended-callers.test.mjs: reads the new home with the same expected calls and exemption. A new test fails if the stub stops pointing there. No other reader parses the section:pr-run-activity.mdandwork-items.schema.jsononly name the mode.--issue <n> --cifrom a scaffoldedissue.jsonand gradescratch/work-outcome.json:wk-ci-verify-close-unmet: theverify-unmet:stop on averify_closerun (step 1).wk-ci-review-venue-skips-review: review recordedskippedand the venue line innot_donewhen CI holds the venue, with no subagent, claim, worktree or PR (step 4).wk-ci-already-done-stops: thealready-done:stop citing a SHA (step 5).wk-confirm-before-claim:no-claim-before-yesfailed two correct runs. It matched a checklist line naming the later claim and, past the command's closing quote, a path in the Bash description. It now reads JSON escapes, with samples for both.Verification
Paired eval, Sonnet subject, Opus judge, Claude Code 2.1.318,
--ablation none,--scaffold, 8wk-*cases, 5 runs per case. Before = the branch point with the new cases copied in; after = this change.wk-bug-fork-pr-claim-routedwk-bug-investigate-mode-marker-onlywk-bug-repro-twice-then-proofwk-bug-verify-existing-fix-confirmedwk-ci-already-done-stopswk-ci-review-venue-skips-reviewwk-ci-verify-close-unmetwk-confirm-before-claimrun-validity.py:verdict: VALIDon both arms, 40 of 40 traces, no denied tool call. The before arm warns of one split judge vote (wk-bug-repro-twice-then-proofrun 5, FAIL PASS PASS); no case has a skill-fired grader, because the prompts are slash-invoked.noise-report.py --baseline <before> --margin 0.05: change +0.00, 95% interval -0.02 to +0.02,compare verdict: non-inferior at margin 0.05. List-price estimate: 6.00 USD before, 5.93 USD after.wk-ci-*runs readreference/ci-mode.md; none of the other 25 did.wk-ci-review-venue-skips-reviewrun 4: it skipped the review and recorded it, but paraphrased the venue line innot_doneinstead of copying it, sovenue-line-not-requiredfailed. A paraphrase also occurred in the earlier round's after arm (below), 2 of 10 runs against 0 of 10 before.verify-unmetpattern short (2) and the confirm grader above (2). Those patterns were fixed and both arms rerun.--runs 1, before the grader fixes: with the section deleted and no reference file,wk-ci-already-done-stops0.50,wk-ci-review-venue-skips-review0.60,wk-ci-verify-close-unmet0.40, every grader on the outcome file failing; on the unmodified copy all three scored 1.00. Both VALID (the deleted side with--own-copy-search-warns, one denied search of its own plugin copy)./docs-hygiene:compress compare, before against after skill directory:VERDICT: PASS, no SEMANTIC LOSS and no AMBIGUITY.node --test unattended-callers.test.mjs: 4 passed.check-spoke-plugin-root.sh --check: clean.validate-cases.py: no FAIL.meets-expectationsjudge graders on thewk-bug-*cases are uncalibrated (they have no labeled samples); the negative control was not rerun on the final graders, whose changes only widen a pattern over JSON escapes and add two must-not graders; one model only (Sonnet); a realwork-resolve-issuelane run, which needs anagent-readyissue after merge.Related
/source-control:pull-request./session-flow:handoffslice.Remaining
/implementation:implement-dispatch: done-when 2's record or cut on perf: cut the skill-body bytes main sessions load and do not act on #12468./session-flow:handoff: perf(session-flow): cut the handoff skill body through progressive disclosure #12657.🤖 Generated with Claude Code