Repository navigation
perf(session-flow): move handoff WIP-commit mechanics to a reference file - #12869
Conversation
…file The /session-flow:handoff hub loaded the WIP commit's refusal checks, staging steps and record rules, and the /export verification record, on every invocation, though only a pause with wip_commit on needs the first and the second is provenance. Both move verbatim to reference files; the hub keeps when the commit applies, how the setting resolves, and a pointer, plus a reference index with a row per file. Body bytes (frontmatter stripped): 36,785 on main, 34,609 here. No case read the moved WIP-commit text, so ho-wip-commit-on-pause turns wip_commit on in the scaffold and checks for one local commit staged with --pathspec-from-file and no push. Refs: #12657 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6eee881930
ℹ️ 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".
|
The first run on main's skill refused the WIP commit, correctly: the scaffold had no origin/HEAD, and an unknown default branch is a refusal check. The scaffold now points origin/HEAD at main. The graders also matched a Bash call's description field; they now read only its command. Refs: #12657 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
claude-review reviewed Code review (incremental): PR #12869, a449738 → 5d0fbd7Scope. I read every hunk of the 3 files in No new findings. Both findings from round 2 are fixed at this head.
The PR description matches this head again. The head is 5d0fbd7, the commit the description names as the one that fixed the scaffold and graders, so the earlier mismatch note is resolved. Closing issue #12657. The third "Done when" criterion (a paired Verification. I ran nothing. I checked the regex behaviour against the samples by reading them; I did not execute the matchers. Spend. The case spends prepaid API or subscription usage each time it runs. That is not a hold. Prior findings. This is round 3 of a cap of 3; the cap does not apply. Neither round-2 finding is restated, because the code each one pointed at is fixed. |
|
claude-security-review reviewed Security review: PR #12869 (incremental, a449738 → 5d0fbd7)No security issues found. This is an incremental review. I read every hunk of the 3 files in scope. None of them matches a TRUSTED PATHS glob, and none touches a trust control, a merge hold, an instruction surface or a plugin manifest.
Prior findings. This lane's earlier summary, at a449738, reported 0 findings. Nothing in this diff changes that, so nothing is re-posted. critical-findings: 0 |
Closes #12657
Summary
The
/session-flow:handoffhub loaded the WIP commit's refusal checks, staging steps and record rules, and the/exportverification record, on every invocation. Only a pause withwip_commiton needs the first, and the second is provenance. This PR moves both word for word into reference files read on demand. It is the third progressive-disclosure cut under #12243 and follows the #12387 recipe.Fix
reference/wip-commit.mdholds the moved refusal checks, staging, hook-rejection path and record rules. The hub keeps when the commit applies, how the setting resolves (its${CLAUDE_PLUGIN_ROOT}and${user_config.wip_commit}substitutions expand only inSKILL.md), and a pointer.reference/export-verification.mdholds the/exportverification record. The prompt-only checklist bullet that cited it now links the file.ho-wip-commit-on-pausecase turnswip_commiton in its scaffold. It checks for one local commit staged with--pathspec-from-file, and no push.Verification
awkfrontmatter strip piped towc -con both copies printed 36785 and 34609./docs-hygiene:compress compare(freshcompare-labeler, before against after): VERDICT PASS, with no SEMANTIC LOSS and no AMBIGUITY rows. It confirmed that no${CLAUDE_PLUGIN_ROOT}or${user_config.*}substitution moved out ofSKILL.md.Citations: a repo-wide grep found no external citation of the moved text.
reference/config.md:14cites the "WIP commit on an explicit pause" heading, which stays in the hub./evals:validate(validate-cases.py,check-matchers.py) reports no FAIL for the suite.Paired
ho-*eval plus a negative control, preregistered on perf(session-flow): cut the handoff skill body through progressive disclosure #12657 before the first paid run.claude-opus-5-5, subscription login, capped scopes.claude plugin eval <copy> --case <glob> --runs 2 -j 2 --scaffold --ablation none --allow-tools Bash Write Edit --keep-temp.ho-todowrite-renders-listran in its own invocation withCLAUDE_CODE_ENABLE_TASKS=0, as its case requires.skills/handoffswapped in. Degraded is the before copy with the handoffSKILL.mdbody deleted (frontmatter kept). Before and after ran together; a second before run and degraded ran together.ho-wip-commit-on-pauserun had noorigin/HEADin its scaffold, so main's skill correctly refused the commit (unknown default branch). The commit grader also matched a Bashdescriptionfield. Commit 5d0fbd7 fixes the scaffold and anchors the graders to the command. All four arms then reran that case; only the rerun counts.run-validity.py --runs 2 --scaffolded--own-copy-search-warnsnoise-report, after against before at margin 0.05: change +0.00 (interval +0.00 to +0.00), non-inferior.noise-report, degraded against the control-pair before: change -0.51 (interval -0.68 to -0.34), case drops on four of five cases.ho-task-tools-recreate-callsandho-stops-after-resume-prompt. With those cases left out, the mean still falls from 1.00 to 0.50, past the preregistered 0.15. The suite detects a loss, so the cut is measurable.ho-wip-commit-on-pausefalls from 1.00 to 0.67./session-flow:handoffslash command, which loads the skill without aSkilltool call, and no case has a skill-fired grader.Related
🤖 Generated with Claude Code