Skip to content

docs: capture #2547's investigation/verification lessons - #2621

Merged
squid-protocol merged 1 commit into
mainfrom
docs/issue-workflow-lessons-2547
Aug 31, 2026
Merged

docs: capture #2547's investigation/verification lessons#2621
squid-protocol merged 1 commit into
mainfrom
docs/issue-workflow-lessons-2547

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Summary

Two documentation gaps found while fixing #2547, distinct from #2620's crucible_check.py env-drift hardening (that came out of a different issue, #2518):

  1. No documented technique for empirically inspecting what detector.py extracted. Root-causing orphan census counts non-function shapes on non-call-graph languages, making orphan→api conversion unauditable #2547 required tracing _slice_by_keywords/_slice_by_terminator cold before realizing galaxyscope --debug + grepping the [WORKER-TRACE] extracted functions for log line shows the exact satellite/function names directly. Added as its own CLAUDE.md section, cross-linked from the ci-push-checklist skill.

  2. CLAUDE.md's Differential Scan section pointed at the wrong entry point first. It told a reader to regenerate golden masters via python tests/tools/update_golden_master.py directly — technically correct, but that only updates whichever ONE fixture matches whatever's importable in the current shell, with none of crucible_check.py's venv/PATH automation. The better path (crucible_check.py --update --yes, handles both modes automatically) was already documented 10 lines below in the same section — just never cross-referenced. I read the first instruction, ran it, and paid for a full manual venv-wrangling cycle (discovered via --help, hand-exported PATH, hand-ran pip install -e . --no-deps) before finding the better path. Verified the fix empirically: crucible_check.py --update --yes --mode both on a clean tree handles both venvs with zero manual bookkeeping (confirmed "No drift detected" for both modes with no PATH/pip commands from me).

Also noted in ci-push-checklist: Claude Code's Auto Mode classifier blocks blessing a golden master by default, even via --yes on a no-op clean tree — worth expecting up front.

Docs only, no code or fixture changes.

🤖 Generated with Claude Code

… + ci-push-checklist

Two friction points from fixing #2547 that cost real time/tokens, distinct from #2620's
crucible_check.py env-drift hardening (a different issue, #2518):

1. No documented technique for empirically inspecting what detector.py actually extracted
   for a given file -- root-causing the #2547 bug required reading _slice_by_keywords/
   _slice_by_terminator cold before realizing `galaxyscope --debug` + grepping the
   WORKER-TRACE log line is far cheaper. Added as its own CLAUDE.md section, cross-linked
   from the ci-push-checklist skill's "Local & Unit Validation" step.

2. CLAUDE.md's Differential Scan section told a reader to regenerate golden masters via
   `python tests/tools/update_golden_master.py` directly -- technically correct (it's the
   sanctioned mechanism) but misleading: it silently updates only whichever ONE fixture
   matches whatever's importable in the current shell, with none of crucible_check.py's
   venv/PATH automation. The better path (`crucible_check.py --update --yes`, which handles
   both modes through properly-scoped venvs) was already documented 10 lines below in the
   same section, just never cross-referenced -- reading the first instruction and stopping
   there (as I did) cost a full manual venv-wrangling cycle. Reordered so the automated
   entry point is what a reader hits first, with update_golden_master.py explained as the
   underlying single-mode script it wraps.

Also noted (ci-push-checklist): Claude Code's Auto Mode classifier blocks blessing a golden
master by default, even via --yes on a no-op clean tree -- worth expecting up front rather
than hitting it as a surprise mid-task.

Docs only, no code/fixture changes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

@squid-protocol
squid-protocol merged commit f4001b4 into main Aug 31, 2026
28 checks passed
@squid-protocol
squid-protocol deleted the docs/issue-workflow-lessons-2547 branch August 31, 2026 22:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant