Repository navigation
fix(pr-recap): clarify refresh rules and sketch setup - #312
Conversation
A recap comment that names a bot review's URL must stay open for triage. The test builds that comment from the block template, so a changed start marker in the template fails it.
The check that clears a review-findings blocker matches the URL anywhere in a comment, code spans included, so the skill now says never include the URL instead of never link it. A threads-only fix push refreshes the recap like any push. An operator's hold wins over a pending refresh.
Bun 1.3.14 and older fail on bun.lock with Unknown lockfile version and the sketch exits 2. Bun 1.4.0 reads it. The Setup section now says so and names the older-Bun fallback, so a harness skips the sketch or runs it through npx [email protected] instead of improvising.
The skill is installed on its own, so a link to a poteto-mode reference can dangle.
|
Verdict: FAIL Root verdict from a full swarm at this head. Two lanes ran things (sonnet@high), and one audit lane (opus@xhigh) read the code. None of them took the PR body as fact. Gate and live lane: PASS.
Agent-behavior lane: PASS. I ran 16 fresh sonnet and codex samples on three scenarios: bot review URL, a threads-only fix push, an operator hold. Every head sample answered as designed. Trunk scored the same, so the PR states these rules outright without changing any outcome. Findings sent back. Each is in scope, and a real caller reaches it.
Notes, not blocking:
|
…for babysit The fallback now passes --allow-scripts=bun, because npm 12 skips Bun's install script and the old wording failed there. Setup names 1.4.0 as the minimum without claiming a version range, and the skip rule applies only after the fallback fails. PORTING.md lists the threads-only sentence in Babysit step 1 next to the trigger line.
|
A recap that linked a bot review could clear that review's blocker, and no test tied the recap marker in Not covered. The gate's live validation was inconclusive. No run shows an agent leaving out a bot review URL, refreshing after a Details for reviewersRisk. Low. One new test reads a template file, and the rest is wording in skill text that agents read. Base Start here. Then.
Proof. lint run and skill-checks run on the head. Changing the marker in These pointers are a start, not the review. Read the whole diff, because a defect can sit in a file this recap ranks low. |
|
Verdict: PASS+NOTES Root verdict for round 2. A single trail reviewer (opus@xhigh) ran it, because the round changed only wording:
Notes, filed as #317:
|

Why
Issue #301 left three gaps in the PR recap rules. Nothing tied the recap start marker in
review-bodies.tsto the marker the pr-recap template writes. The skill said "never link" a bot review, which a code span or bare URL slips past. Two refresh edges and the Bun minimum were unwritten.What changed
review-bodies.test.tstest that builds a recap comment fromskills/pr-recap/references/block.md, adds a bot review URL, and requires the review to stay unacknowledged. It does not exportRECAP_START.task-triggers.mdandbabysit.md: athreads-onlyfix push refreshes the recap, and an operator's hold or zero-writes order wins, so the refresh is reported pending.npx --allow-scripts=bun [email protected] ...as the fallback for an older Bun, and replace the "untested on Hermes" line. The skip-the-sketch rule now applies only after that fallback fails, andPORTING.mdlists the newthreads-onlysentence in Babysit step 1.Scope
Refs #301. The issue stays open because Hermes work remains. Bun releases before 1.4.0 cannot read
bun.lock: most fail withUnknown lockfile version(checked on 1.1.39, 1.1.45, 1.2.0, and 1.3.14) and 1.1.38 ignores it. Bun 1.4.0 is the first version that reads it, found by testing 1.3.1 through 1.4.2.pr-recap ran end to end through Hermes v0.22.4 in a throwaway container with a container-local HERMES_HOME. The sketch exited 0, the PNG was viewed with vision_analyze, and the recap follows block.md. The post steps did not run because the container had no gh or token.
Tradeoffs
This PR leaves out the renderer lever for the Codex plain-word gap. The lever made the render fail while a drawn label shared words with a phrase the reader flagged. I measured it with two
codex execruns per arm on PR 293. The lever never fired, because Codex rewrote the flagged glosses on its own. An independent reader flagged 6 phrases in both arms. I dropped it. Add it back only after a larger measurement.Blast Radius
Agents that refresh recaps or draw sketches read these edits. The test is the only code change, and it reads a template file. A wrong reading of the hold rule could leave a recap stale.
Verification
tsc --strictpasses.block.mdmakes the new test fail. Restoring it makes the file pass, 53 of 53.tools/gate-check.sh lintandskill-ci checkpass. CI is green on the head.npx --allow-scripts=bun [email protected] "<skill>/scripts/sketch/sketch.mjs" scene.json sketch.pngrendersflow.jsonwith exit 0 and no problems on npm 11.19.0 and 12.2.1. The oldnpx [email protected]wording exits 1 on npm 12.2.1 with "Bun's postinstall script was not run".threads-onlypush, and a deferred refresh during a hold. The gate's live validation was inconclusive, 4 of 6 scenarios, and its Test finding was approved.✅ Low: The change is wording edits plus one behavioral test. I checked all five intent items against the diff and found no contradictions or defects.
Updates from git push no-mistakes