memory: confirm two documented MCP/gha gotchas recur in Morrison-Lab/psw - #1374
Conversation
Hit the same startup_failure shape this file already documents (a caller under-granting a permission the nested job requests), this time actions: read rather than issues: read/write, in Morrison-Lab/psw's claude-code-review.yml caller. Confirms the pattern isn't d-morrison/qwt-specific and that a plain WebFetch on the run's html_url reliably surfaces the Annotations text.
Hit the already-documented create_or_update_file base64 mistake again on Morrison-Lab/psw#44, this time producing an inflated size (not a truncated one) and a different downstream GitHub Actions symptom (dispatch-time "no workflow_dispatch trigger" plus a generic failure conclusion, rather than startup_failure). Appends to the existing bullet rather than duplicating it.
|
@claude reveiw |
|
@claude review |
|
👀 Picked up by workflow run #31354023902. Setup runs first; Claude itself responds after that. |
|
API Error: Usage credits required for 1M context · turn on usage credits at claude.ai/settings/usage, or use --model to switch to standard context — posted by @claude post-step from workflow run |
|
👀 Picked up by workflow run #31354030943. Setup runs first; Claude itself responds after that. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Review finding: "covered elsewhere in this file" was false --- the permissions-cascade startup_failure shape is documented in the sibling file, memories/gha-reusable-workflow-permissions.md, not in this file. Point at it explicitly, matching this corpus's existing cross-file-link convention.
The previous commit on this branch replaced this file's entire content with a literal placeholder string due to a tool-call construction error --- caught immediately by the response's content.size (21 bytes). This restores the intended content: the base64-corruption case-record addition plus the review-requested cross-file-link fix for the false "covered elsewhere in this file" self-reference.
Optional review suggestion: memories/github-actions.md already documents an identical actions:read omission (same four granted permissions, same error shape) from ai-config#224, in ai-config itself rather than a downstream consumer. Cross-link it so the "confirming this isn't d-morrison/qwt-specific" framing reflects three occurrences, not two.
|
Both addressed in 158d311:
(An earlier commit on this branch briefly replaced github-mcp-tools.md's entire content with a placeholder string due to a tool-call construction slip on my end --- caught immediately via the response's content.size, then fixed. The final diff against main is clean; verified byte-exact via Generated by Claude Code |
… fix This same session's follow-up correction to the two case records above sent a literal placeholder string instead of the intended content --- a plain construction mistake, not an encoding one, caught immediately via content.size. Record it as a third instance of the family, and note the generalizable remedy discovered while recovering from it: a local git clone plus a real `git push` (confirmed working in this session for a non-harness-assigned branch) avoids the whole class of content-parameter mistakes, since the pushed content is exactly what git diff/hash-object show rather than something reconstructed inside a tool-call parameter.
|
@claude review |
|
👀 Picked up by workflow run #31359188671. Setup runs first; Claude itself responds after that. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Review finding: no earlier entry in this file (or anywhere in the corpus) documents the git-clone-with-sparse-checkout technique this parenthetical claimed to point at --- the technique was used earlier in the same debugging session but never actually written down as its own bullet. Drop the dangling reference; the command is self-explanatory.
|
Fixed in 6ac1c6b --- dropped the dangling "(the entry above)" parenthetical. You're right that no such entry exists: the git-clone-with-sparse-checkout technique was used earlier in this debugging session but never actually written into the corpus as its own bullet, so the cross-reference pointed at nothing. The command reads fine on its own without it. Generated by Claude Code |
|
@claude review |
|
👀 Picked up by workflow run #31362985252. Setup runs first; Claude itself responds after that. |
|
Claude finished review — View run Code review: #1374This is a confirming review. I independently re-verified the current PR state (head Both prior rounds' findings are now resolved:
Fresh verification of content added since round 2's review (commits
CI and merge state: No new findings from this round. VerdictReady for merge — both prior rounds' findings (the false "elsewhere in this file" self-reference, and the dangling "(the entry above)" reference) are fixed and independently re-verified against live content. All new content added since the last review round checks out factually. CI is green and the PR is clean/mergeable. |
Summary
While debugging a
startup_failureonMorrison-Lab/psw'sclaude-code-review.yml(Morrison-Lab/psw#43/#44), I hit two failures both already documented in this corpus. Rather than add new bullets (which would duplicate existing coverage), this appends a confirming case + new symptom detail to each existing entry:memories/gha-reusable-workflow-permissions.md--- the permissions-cascadestartup_failureshape recurred withactions: read(notissues: read/writeas in the originald-morrison/qwt#135case), confirming it isn't repo-specific (this exact gap had also already hit ai-config itself, per ai-config#224 --- so three occurrences now, cross-linked), and confirming a plainWebFetchon the run'shtml_urlreliably surfaces the Annotations panel text.memories/github-mcp-tools.md--- thecreate_or_update_filebase64-content mistake recurred with a different downstream symptom: an inflated size (2310 vs 1710 bytes, the base64 expansion ratio) rather than a truncated one, and a GitHub Actions dispatch-time422 Workflow does not have 'workflow_dispatch' triggerrather thanstartup_failure, since the corrupted file parsed as a bare scalar with noon:mapping at all.A review round (thanks!) caught a real error in the first draft: an "elsewhere in this file" self-reference in
github-mcp-tools.mdthat pointed nowhere, since the shape it named actually lives in the sibling file. Fixed.While recovering from a self-inflicted third mistake on this same branch (a
create_or_update_filecall that accidentally sent a placeholder instead of real content --- caught immediately viacontent.size), I confirmedgit pushworks from a local clone in this session for a non-harness-assigned branch, which sidesteps the whole class of content-parameter mistakes. Recorded as a third case + a generalizable recommendation ingithub-mcp-tools.md.Test plan
git hash-objectagainst a local clone for every commit on this branch (including the placeholder-mistake recovery, whose final content matched the precomputed hash exactly).