Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ jobs:
ruff check src/ tests/
ruff format --check src/ tests/

# Three-valued: 0 clean · 1 a citation drifted (re-anchor it) · 2 the gate
# could not verify (an unregistered unverifiable citation, an absent cited
# source, a stale/over-ratchet citation-baseline.json, or zero citations
# graded). Both 1 and 2 fail the step; the script's report says which.
- name: Protocol-doc citation drift check
run: python scripts/check_protocol_doc_citations.py

Expand Down
21 changes: 21 additions & 0 deletions citation-baseline.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"frozen_count": 2,
"entries": [
{
"doc_line": 179,
"path": "onboard/protocol.py",
"cited_start": 107,
"cited_end": 110,
"finding": "The doc section is 2.5 conversation_start and this line is its **Source (model)** pointer, but src/bonfire/onboard/protocol.py:107-110 covers the blank line before class AllScansComplete plus that class's header and the opening of its docstring. The ConversationStart model the sentence names lives at lines 120-123. Repair = re-point the range at 120-123.",
"reason": "hand-verified 2026-07-28 as genuinely drifted: the doc names the conversation_start model while the cited range covers AllScansComplete. Recorded so the gate can mount now; correcting the doc is owned by the doc. NOT registered as merely unmechanisable - the citation is wrong, and it reaches the unverified bucket only because every backticked hint in its context window is listed in _SKIP_HINTS and the cited line sits at module level, so neither resolution pass fires. Remove this entry when the doc range is repaired; the ratchet then owes a shrink."
},
{
"doc_line": 266,
"path": "onboard/protocol.py",
"cited_start": 175,
"cited_end": 177,
"finding": "The doc sentence above this line reads 'The client-type registry has exactly one entry', but src/bonfire/onboard/protocol.py:175-177 covers the Parsing banner comment, a blank line, and the first line of _SERVER_TYPES - the SERVER registry, which has eight entries. The one-entry client registry, _CLIENT_TYPES, lives at lines 188-190. Repair = re-point the range at 188-190.",
"reason": "hand-verified 2026-07-28 as genuinely drifted: the doc says client while the cited range points at the server registry. Recorded so the gate can mount now; correcting the doc is owned by the doc. NOT registered as merely unmechanisable - the citation is wrong, and it reaches the unverified bucket only because no backticked identifier appears in the five doc lines before it and the cited line sits at module level, so neither resolution pass fires. Remove this entry when the doc range is repaired; the ratchet then owes a shrink."
}
]
}
Loading
Loading