Skip to content

docs(scripts): the dangling-citation detector's header claimed no workflow runs it - #611

Open
wshallwshall wants to merge 3 commits into
mainfrom
claude/cleaner-f98e03
Open

docs(scripts): the dangling-citation detector's header claimed no workflow runs it#611
wshallwshall wants to merge 3 commits into
mainfrom
claude/cleaner-f98e03

Conversation

@wshallwshall

Copy link
Copy Markdown
Collaborator

PR 560 (b47c9fd) added tests/test_dangling_citation_check.py to ci.yml's DOC_GUARDS, and left
the module docstring asserting the opposite. Measured at origin/main: the path now occurs once
under .github/, where the header said ZERO, with controls in the same pass (backlog_status_check
3, ledger_check 2, scan_forbidden 3, an invented path 0).

Three things the old text got wrong, not one:

  • the count is stale -- it is 1, not 0
  • the wiring claim is incomplete -- the test now reaches CI by the docs lane as well as the tooling
    leg, and the sole .github hit is the TEST, not the script
  • the grep warning has inverted. It told a reader to grep the full name because a bare
    citation_check hits a workflow belonging to the sibling. A test filename contains its subject's
    name, so the full name now hits ci.yml too. The discriminator is script versus test, not full
    name versus bare.

Also corrects a stale in-header measurement (26 of 32 -> 41 of 50, floor 1352, re-run against the
tree) and records that the tooling leg IS pinned -- by a glob over tests/test_*.py in
test_tooling_partition.py, not by name, so grepping for this module finds no guard and the leg
reads as unpinned when it is not.

Docstring only: the module AST with the docstring removed is byte-identical before and after,
verified with a control that detects a mutated function name. ruff/mypy strict clean. The full
suite's 29 failures are identical with and without this change, compared as sets rather than counts.

The item citation is omitted from the subject deliberately: BACKLOG #1235's claim is held by a
worktree that no longer exists, and whether this change closes that row is left to Dispatcher's
disposition rather than presumed here.

Built by Cleaner, verified and opened by Lander.

🤖 Generated with Claude Code

wshallwshall and others added 2 commits August 25, 2026 19:01
…kflow runs it

PR 560 (b47c9fd) added tests/test_dangling_citation_check.py to ci.yml's
DOC_GUARDS, and left the module docstring asserting the opposite. Measured at
origin/main: the path now occurs once under .github/, where the header says
ZERO, with controls in the same pass (backlog_status_check 3, ledger_check 2,
scan_forbidden 3, an invented path 0).

Three things the old text got wrong, not one:

  the count is stale -- it is 1, not 0;
  the WIRING claim is incomplete -- the test now reaches CI by the docs lane as
    well as the tooling leg, and the sole .github hit is the TEST, not the script;
  the grep warning has INVERTED. It told a reader to grep the FULL name because a
    bare `citation_check` hits a workflow belonging to the sibling. A test filename
    contains its subject's name, so the full name now hits ci.yml too. The
    discriminator is SCRIPT versus TEST, not full name versus bare.

Also corrects a stale in-header measurement (26 of 32 -> 41 of 50, floor 1352,
re-run against the tree) and records that the tooling leg IS pinned -- by a glob
over tests/test_*.py in test_tooling_partition.py, not by name, so grepping for
this module finds no guard and the leg reads as unpinned when it is not.

Docstring only: the module AST with the docstring removed is byte-identical
before and after, verified with a control that detects a mutated function name.
ruff check and ruff format --check clean, mypy strict clean over 267 files, the
module's own 45 tests pass. The full suite's 29 failures are identical with and
without this change, compared as SETS rather than counts.

The item citation is omitted from the subject deliberately and not to evade the
claim gate: BACKLOG #1235's claim is held by a worktree that no longer exists,
and whether this change closes that row is the Dispatcher's disposition call, as
the claim note itself records.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@wshallwshall
wshallwshall enabled auto-merge (squash) August 26, 2026 14:28
@wshallwshall

Copy link
Copy Markdown
Collaborator Author

Update since this PR's commit body was written: #1235 has confirmed CLOSED (parse_items at origin/main, verified by Cleaner and independently consistent with my own PR 587 closure earlier tonight). The commit's "whether this change closes that row is the Dispatcher's disposition call" line describes a question that's since been settled -- leaving the commit as-is (not amending a pushed sha for a stale deferral) but noting the resolution here for anyone reading this PR.

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