CLAUDE.md: a rendered docs site 403 doesn't mean the source is inaccessible - #180
Conversation
Raw-fetching the .qmd/source behind a 403'd GitHub Pages doc worked where WebFetch on the rendered page didn't (seen confirming ettbc's .lintr.R vs. UCD-SERG/lab-manual's current lms-based config).
|
Claude finished review — View run Review: d-morrison/gha PR #180"CLAUDE.md: a rendered docs site 403 doesn't mean the source is inaccessible" SummarySingle-file, 12-line prose addition to I independently verified the factual claims in the added anecdote against the live repos:
No hallucinated symbols, packages, or URLs. The one substantive problem is a template inconsistency, confirmed independently by all 4 parallel review agents (2 CLAUDE.md-compliance, 2 bug-scan) plus my own manual read of the surrounding file. Finding
https://github.com/d-morrison/gha/blob/7bff9e0288695817d2884a06161e9a419021016c/CLAUDE.md#L179-L186 The new template is: But — a 404. That's the exact failure mode this addition exists to prevent: an agent would hit the broken double-extension URL and could wrongly conclude the source is unreachable after all. Fix: drop the trailing (Minor/optional, not blocking: the parenthetical "(anti-scraping)" as the cause of the 403 is asserted rather than confirmed — the PR body only establishes that the fetch returned 403, not why. Worth softening to something like "(for reasons unclear — possibly anti-scraping)" but this doesn't rise to a blocking issue since it doesn't cause incorrect action.) Since no VerdictNeeds more work — one confirmed, high-confidence correctness bug in the new URL template (double |
<path> already includes its extension per the established convention two paragraphs up; appending .qmd on top produced a broken coding-style.qmd.qmd example. Use a concrete worked example instead of a second, inconsistent template. Also softened the unconfirmed "(anti-scraping)" cause claim.
|
Claude finished review — View run PR #180 Status CheckState: OPEN isDraft: false Review Status: YES, Claude has already reviewed this PR Verdict: Needs more work — one confirmed bug found Claude's Review CommentURL: #180 (comment) Summary: Claude independently verified the factual claims in the added anecdote and found one confirmed, high-confidence correctness bug: The Bug: Line 183 of Since Fix: Drop the trailing Verdict: "Needs more work" — trivial one-line fix required. PR Title & BodyTitle: "CLAUDE.md: a rendered docs site 403 doesn't mean the source is inaccessible" Body:
|
|
@claude review — commit 154d970 fixes the double- Generated by Claude Code |
|
👀 Picked up by workflow run #28612787813. Setup runs first; Claude itself responds after that. |
|
Claude finished review — View run Review: #180Note on posting: This session has no working Process notes
Findings1. [Optional] Anecdote breaks the file's own citation convention
Every other lessons-learned anecdote in this file cites a traceable issue/PR number — 2. [Optional, fact-check] Unverified named-package claim The parenthetical states as fact that Both findings are non-blocking documentation nits on a prose-only file; neither is a correctness defect in the guidance itself. VerdictReady for merge (two optional, non-blocking suggestions noted above — recommend the author quickly confirm the |
- Cite ucdavis/ettbc#12 / #32 per the file's established citation convention (every other anecdote traces to a numbered issue/PR). - Link the actual UCD-SERG/lab-manual/.lintr.R source for the lms package claim so it's independently checkable rather than asserted -- I verified this directly via raw.githubusercontent.com earlier in the ettbc session; the reviewer's own sandbox had no network access to check it, hence flagging it as unconfirmed.
344451e to
b4e0b0e
Compare
|
@claude review — the automatic push-triggered review on b4e0b0e failed to produce a verdict (stub/incomplete run, Generated by Claude Code |
|
👀 Picked up by workflow run #28613677186. Setup runs first; Claude itself responds after that. |
|
Code review Reviewed PR #180 focusing on what changed since the second Claude review (#180 (comment)) — commit One blocking finding, posted inline on The rest of the diff (the Verdict: Needs more work — blocked on fixing or removing the fabricated |
|
Claude finished review — View run The summary comment posted successfully. Both the inline comment and top-level summary are now on the PR. Review summary — PR #180Since the second Claude review (which approved with two optional suggestions), the author's follow-up commit ( Blocking finding (posted inline, Everything else in the diff was already confirmed correct by the prior review and I found no new issues there. Verdict: Needs more work — blocked on fixing or removing the fabricated citation before merge. Posted as inline comment here and summary here. |
The lintr/lms fact-check happened in a chat session working that issue/PR, but was never written into either GitHub thread -- citing them implied a traceability that doesn't exist, confirmed correctly by the reviewer fetching both directly. Drop the citation rather than attach an inaccurate one; keep the independently-verifiable link to the actual UCD-SERG/lab-manual/.lintr.R source.
|
The Content-wise this PR is clean: two genuine completed reviews ran on this diff and both findings raised (the double- Generated by Claude Code |
|
Claude finished review — View run Code Review: #180"CLAUDE.md: a rendered docs site 403 doesn't mean the source is inaccessible" What changed since the last full review roundThe only file touched is Prior findings — status
New observations (non-blocking)
Neither new observation rises to blocking — both are editorial precision nits in a single flavor-text parenthetical, not correctness defects in the guidance being added. VerdictReady for merge. The blocking issue from the prior round (fabricated citation) is confirmed fixed, and the earlier double- No |
…#187) check-review-execution.sh's stub-review guard (gha#172/#176) correctly fails a claude-review run that ends with no verdict, but the root cause of those stub runs was still open (gha#173, tracked further in gha#185): the reviewer's own fact-checking/hallucination-detection instructions can prompt it to attempt a WebFetch/WebSearch call that agent mode's default allowedTools doesn't grant, and on denial the agent sometimes stopped instead of finishing with a verdict. Reproduced 3/3 times on PR #180 with an identical permission_denials_count:1/num_turns:4 fingerprint. Tell the reviewer up front that network-fetch tools aren't available in this sandbox (so it fact-checks from the repo and its own knowledge instead of attempting the fetch) and that a denied tool call is never a reason to stop the review early. Closes #185. Co-authored-by: Claude <noreply@anthropic.com>
What
Extends the existing "Reading repos outside the session's MCP scope" section with a refinement: when a rendered docs site (GitHub Pages / Quarto build) 403s a
WebFetch, that doesn't mean the underlying content is unreachable — the source file behind it is often a plain file in a public repo, fetchable viaraw.githubusercontent.com.Why
Confirmed while working
ucdavis/ettbc(issue #12 / PR #32):WebFetchonhttps://ucd-serg.github.io/lab-manual/coding-style.htmlreturned 403, but the.qmdsource and a referenced.lintr.Rfile in the same repo both fetched cleanly via the raw URL. This let me answer "are we using the lab manual's lintr config" definitively instead of reporting the page as inaccessible.🤖 Generated with Claude Code
Generated by Claude Code