fix: doc drift output should point at the per-unit citation rules #121

Closed
jercik wants to merge 2 commits from fix/verify-doc-drift-evidence-contract into main
Owner

Follow-up to review feedback on #119. The "Output" section restated the per-category citation rules. It now points at "The per-unit audit loop", which owns them.

🤖 Generated with Claude Code

Follow-up to review feedback on [#119](https://code.j4k.dev/j4k-oss/agent-skills/pulls/119). The "Output" section restated the per-category citation rules. It now points at "The per-unit audit loop", which owns them. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix: doc drift verification should use the per-unit evidence contract
All checks were successful
commit-msg / commitlint (pull_request) Successful in 22s
Review / Review (pull_request_target) Successful in 50s
Node tests / node:test (pull_request) Successful in 3m3s
854a39a553
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Review 01M4C63DS75NR1BCQHZ1XTKKZK — head c24d8f803a7c489d650bf4b35b89535823c3e51d

Review — j4k-oss/agent-skills @ 7e44783388

Scope: diff against base tree 5c9d57027f01
Status: dispatched — coverage complete (5/5 slots terminal)
Facts: current review-wide projection

Computed under:

{
  "abandonment": "abandonment-v1",
  "anchor_recipe": 1,
  "batch_policy": "batch-v1",
  "coverage": "coverage-v3",
  "dispatch_policy": "dispatch-v2",
  "grounder_version": 1,
  "grounding_read_rule": "grounding-read-v1",
  "promotion_policy": "promotion-v1",
  "report": "report-v4",
  "tally": "tally-v1",
  "triage_settle": "triage-settle-v2"
}

Findings (1)

medium — Frontmatter description restates the four finding categories defined in the body

  • claim: 01M4C65GVQHWCN9ECAM5XZBYKK
  • anchor: skills/verify-doc-drift/SKILL.md (snippet)
Each finding is categorized (incorrect / code-drift / obvious / duplicate)
  • lens: restated-sets · arm: default
  • verdicts: 1 valid / 0 invalid / 0 uncertain
    • pass 01M4C66JY2YWFW4SK1J9QTYEC9 · valid: Grounded exact excerpt confirms the frontmatter description lists '(incorrect / code-drift / obvious / duplicate)'. The body names the source: the '## Finding categories' section of the same SKILL.md, one bullet per category. It lists both sides: source has incorrect, code-drift, obvious and duplicate; the copy has the same four, and no member appears in only one list. That is the comparison the guideline requires, so medium is right, not high. The list names every member, so it restates the set however it is framed. No exception applies. The description is not what the system reads to define categories; the body section is. It is not a dated record or a table of contents. The trigger-time reader exception does not fit either: a model deciding whether to invoke the skill does not need the category names to make that decision, so it does not 'must use the members'. The reviewer raised that gap but it does not change the outcome. The proposed fix drops the parenthetical and keeps the body section as the only list. It restates nothing and loses no triggering information.
  • disposition: none

The description lists the finding categories as '(incorrect / code-drift / obvious / duplicate)'. The body section '## Finding categories' in the same file defines the set, with one bullet per category. Adding, renaming or removing a category there leaves the description stale with no signal. The copy agrees today. Source members: incorrect, code-drift, obvious, duplicate. Copy members: the same four. No member appears in only one list. No exception applies. It is not a table of contents, since the entries carry no per-item coverage. The reader can open the file. It is not a dated record. The diff in this review removed a similar per-category list from the Output section and replaced it with a pointer, so this copy is the same kind of restatement. Correction: drop the parenthetical, e.g. 'Each finding is categorized and adversarially verified against the code...', so the section 'Finding categories' stays the only list. I read SKILL.md in full around lines 3, 20-35 and 82, and grepped the subject for 'code-drift'; no other file restates the set. Open gap: if the harness must show categories at trigger time before the body loads, the description might be argued to be an intended summary.

Other claims

  • grounding-pending (0)
  • ungrounded (0)
  • rejected (0)
  • duplicate-of (0)
  • unadjudicated (0)

Coverage

Coverage pass: 01M4C63WN7C9Y5P4Y35Q8VC8TV
Accounting: complete
Slot health: healthy

lens part arm unit status runs loss
general-bug whole default no-claims 1 no
writing-quality whole default no-claims 1 no
test-trimming whole default no-claims 1 no
restated-sets whole default claims-emitted 1 no
project-docs whole default no-claims 1 no
<!-- review:summary --> **Review** `01M4C63DS75NR1BCQHZ1XTKKZK` — head `c24d8f803a7c489d650bf4b35b89535823c3e51d` # Review — j4k-oss/agent-skills @ 7e44783388a3 Scope: diff against base tree `5c9d57027f01` Status: dispatched — coverage complete (5/5 slots terminal) Facts: current review-wide projection Computed under: ```json { "abandonment": "abandonment-v1", "anchor_recipe": 1, "batch_policy": "batch-v1", "coverage": "coverage-v3", "dispatch_policy": "dispatch-v2", "grounder_version": 1, "grounding_read_rule": "grounding-read-v1", "promotion_policy": "promotion-v1", "report": "report-v4", "tally": "tally-v1", "triage_settle": "triage-settle-v2" } ``` ## Findings (1) ### medium — Frontmatter description restates the four finding categories defined in the body - claim: `01M4C65GVQHWCN9ECAM5XZBYKK` - anchor: `skills/verify-doc-drift/SKILL.md` (snippet) ``` Each finding is categorized (incorrect / code-drift / obvious / duplicate) ``` - lens: restated-sets · arm: default - verdicts: 1 valid / 0 invalid / 0 uncertain - pass `01M4C66JY2YWFW4SK1J9QTYEC9` · valid: Grounded exact excerpt confirms the frontmatter description lists '(incorrect / code-drift / obvious / duplicate)'. The body names the source: the '## Finding categories' section of the same SKILL.md, one bullet per category. It lists both sides: source has incorrect, code-drift, obvious and duplicate; the copy has the same four, and no member appears in only one list. That is the comparison the guideline requires, so medium is right, not high. The list names every member, so it restates the set however it is framed. No exception applies. The description is not what the system reads to define categories; the body section is. It is not a dated record or a table of contents. The trigger-time reader exception does not fit either: a model deciding whether to invoke the skill does not need the category names to make that decision, so it does not 'must use the members'. The reviewer raised that gap but it does not change the outcome. The proposed fix drops the parenthetical and keeps the body section as the only list. It restates nothing and loses no triggering information. - disposition: none > The description lists the finding categories as '(incorrect / code-drift / obvious / duplicate)'. The body section '## Finding categories' in the same file defines the set, with one bullet per category. Adding, renaming or removing a category there leaves the description stale with no signal. The copy agrees today. Source members: incorrect, code-drift, obvious, duplicate. Copy members: the same four. No member appears in only one list. No exception applies. It is not a table of contents, since the entries carry no per-item coverage. The reader can open the file. It is not a dated record. The diff in this review removed a similar per-category list from the Output section and replaced it with a pointer, so this copy is the same kind of restatement. Correction: drop the parenthetical, e.g. 'Each finding is categorized and adversarially verified against the code...', so the section 'Finding categories' stays the only list. I read SKILL.md in full around lines 3, 20-35 and 82, and grepped the subject for 'code-drift'; no other file restates the set. Open gap: if the harness must show categories at trigger time before the body loads, the description might be argued to be an intended summary. ## Other claims - grounding-pending (0) - ungrounded (0) - rejected (0) - duplicate-of (0) - unadjudicated (0) ## Coverage Coverage pass: 01M4C63WN7C9Y5P4Y35Q8VC8TV Accounting: complete Slot health: healthy | lens | part | arm | unit status | runs | loss | | --- | --- | --- | --- | --- | --- | | general-bug | whole | default | no-claims | 1 | no | | writing-quality | whole | default | no-claims | 1 | no | | test-trimming | whole | default | no-claims | 1 | no | | restated-sets | whole | default | claims-emitted | 1 | no | | project-docs | whole | default | no-claims | 1 | no |
jercik changed title from fix: doc drift verification should use the per-unit evidence contract to fix: doc drift output should point at the per-unit citation rules 2026-10-07 22:00:15 +00:00
Merge origin/main into fix/verify-doc-drift-evidence-contract
All checks were successful
commit-msg / commitlint (pull_request) Successful in 25s
Review / Review (pull_request_target) Successful in 2m20s
Node tests / node:test (pull_request) Successful in 3m14s
c24d8f803a
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Author
Owner

Closing as obsolete: main already carries this change, from #124 (7669945).

The PR has one hunk, in skills/verify-doc-drift/SKILL.md, # Output (line 84 on origin/main). It replaces the per-category citation list with a pointer to the per-unit audit loop. Current main reads "its citation (as the per-unit audit loop requires)", which is the same pointer. A trial merge of this branch into main conflicts only on that line, with both sides making the same edit.

The review's one finding (01M4C65GVQHWCN9ECAM5XZBYKK, the category list in the frontmatter description) is outside this PR's diff. PR #119 owns it and is still open. No child PRs target this branch.

Closing as obsolete: `main` already carries this change, from #124 (7669945). The PR has one hunk, in `skills/verify-doc-drift/SKILL.md`, `# Output` (line 84 on `origin/main`). It replaces the per-category citation list with a pointer to the per-unit audit loop. Current `main` reads "its citation (as the per-unit audit loop requires)", which is the same pointer. A trial merge of this branch into `main` conflicts only on that line, with both sides making the same edit. The review's one finding (01M4C65GVQHWCN9ECAM5XZBYKK, the category list in the frontmatter description) is outside this PR's diff. PR #119 owns it and is still open. No child PRs target this branch.
jercik closed this pull request 2026-10-08 08:44:14 +00:00
All checks were successful
commit-msg / commitlint (pull_request) Successful in 25s
Review / Review (pull_request_target) Successful in 2m20s
Node tests / node:test (pull_request) Successful in 3m14s

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
j4k-oss/agent-skills!121
No description provided.