ums: diff-range selection, and verifying a reviewer's proposed fix - #733
Conversation
Two learnings from driving Morrison-Lab/gha#318 (heredoc-unwrap fix) through three review rounds to merge. memories/git.md: a new section on picking the diff range when self-checking a PR. Both wrong choices hit in one session -- `origin/main..HEAD` (two dots) rendered a sibling PR's already-merged file as a deletion by this PR, nearly reported as a finding; and `origin/main...HEAD` reported an em-dash scan clean because the edits were still uncommitted. Cross-references the existing diff-scoped-no-op section rather than restating it, and adds the worktree-comparing `git diff origin/main` as a second fix for the by-hand case. shared/workflow/address-every-comment.md: extends the verify-the-suggestion bullet to a fix a reviewer describes in prose. A finding that ships a repro case has handed you a test fixture -- run the proposed fix against that case before adopting it. On #318 the suggested regex anchor was directionally right but still truncated the reviewer's own cited example. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K6RX6sDPcTTfRMBfY3ZSHo
|
Claude finished @d-morrison's task in 2m 20s —— View job Review
Verdict: Ready for mergeNo findings. Both additions are factually accurate, internally consistent, and follow the repo's conventions.
The three-form description is technically correct:
The bash heredoc termination claim ("space-indented closing line real bash rejects") is accurate: bash terminates a heredoc only on a line that exactly matches the delimiter ( The fix principle ("matching whole lines against the tag — how bash itself ends a heredoc") is correct and eliminates the failure mode cleanly. ✓ The new paragraph appropriately generalizes the existing No em-dashes, curly quotes, or other non-ASCII punctuation found. Semantic line breaks look clean.
|
|
Clean on the first round — no findings, so nothing to Address, Rebut, or Defer. Confirming the state after CI finished, since the verdict posted about a minute before its own gate job did (
One caveat worth stating rather than papering over, per Ready for merge — leaving the merge to you. Generated by Claude Code |
UMS from driving
d-morrison/gha#318(theclaude-code-reviewheredoc-unwrap fix) through three review rounds to merge. Two learnings, both from mistakes or near-misses in that session.1.
memories/git.md— picking the diff range when self-checking a PRNew section. Both wrong choices hit in the same session:
git diff origin/main..HEAD(two dots) compares tips, so a branch that is behindmainrenders main's newer commits as deletions. On docs(memories): migrate local-only general memories into ai-config #318 this made a sibling PR's changelog fragment look deleted by the PR under review — it was one step from being reported to the user as a finding, until...showed the real four-file diff.git diff origin/main...HEAD(three dots) sees only committed work. A non-ASCII/em-dash self-check run this way printed clean while the em-dashes sat uncommitted in the working tree.The section names what each of the three forms actually answers, and adds the worktree-comparing
git diff origin/mainas a second fix for the by-hand case — the existing "diff-scoped check no-ops on an uncommitted diff" section's fix is "commit first," which isn't always what you want mid-edit. It cross-references that section rather than restating it, and notes the trap that mergingmainin makes all three forms agree, which is exactly when it stops feeling worth thinking about.2.
shared/workflow/address-every-comment.md— verify a proposed fix, not just a suggestion blockThe existing bullet covers a wrong literal inside a
```suggestionblock. This extends it to a fix a reviewer describes in prose, where the sharpest test is the reviewer's own example: a finding that ships a repro case has handed you a test fixture, so run the proposed fix against that case before adopting it.On #318 the review correctly found that a heredoc-terminator regex lacked an end-of-line anchor and suggested adding one. Tested against the reviewer's own indented-
EOFexample, the suggested anchor still truncated the body — the terminator's leading[ \t]*accepted a space-indented closing line real bash rejects. Adopting it verbatim would have converted a partial diagnosis into a shipped bug while the thread read as settled. The fix that shipped matches whole lines against the tag, the way bash itself ends a heredoc, removing the failure mode rather than narrowing it.Checks
check-new-line-breaks(diff-scoped, run after committing),check-links,validate-skills,check-memory-file-size,check-vendored-driftall clean;sync-codex-skill-wrappers.pyregenerates no changes. No non-ASCII punctuation in any added line.Generated by Claude Code