content(writings): allowlist three known forward-refs (PR-3.1.5 floor sweep)#151
content(writings): allowlist three known forward-refs (PR-3.1.5 floor sweep)#151
Conversation
…-faith-not-fear (split paragraph for directive scope)
…wall (split paragraph for directive scope)
|
Closing as a duplicate of #152, which the operator authored with the same approach (paragraph splits + line-level audit-allow directives) and clearer voicing of the reason strings. #150 also overlaps but has additional frontmatter cleanup commits from Cursor Agent. Net delta merged: zero. Net duplicate work surfaced: this PR. Lesson: when the operator has been silent for >2 hours during execution mode, default to assuming they may be doing parallel work themselves rather than continuing to ship into the same workspace. |
|
Correction (posted minutes later): the original close-comment said #152 was "operator-authored." That attribution is unverified. The operator subsequently reported they did not knowingly open #150 or #152, and suspects a Cursor Background Agent or similar automation acting through their GitHub credentials. GitHub records The factual content of the close still stands: #151 modified the same three writings/ files with line-level audit-allow directives + paragraph splits, and #150/#152 do the same. So #151 was redundant with at least one of them regardless of who opened them. But the framing "the operator authored #152" was a leap from API attribution to human authorship that I should not have made. |
Floor-clearing sweep ahead of PR-3.2 (hard-block flip). Adds three line-level
<!-- audit-allow: dead-reference reason="..." -->directives, paired with paragraph splits in two of the three files so the directive scope correctly lands on the dead link.## Findings dispositionedAll three are book-arc forward references — the surrounding text points at the next chapter (or an appendix) before that chapter is published. Drafted indraft-zeros/, will auto-heal on promote towritings/.| File:Line | Target | Disposition | Notes ||---|---|---|---||writings/choosing-faith-not-fear.md|klappy://writings/four-questions-that-change-everything| Allowlisted; paragraph split | Was 2nd link on a multi-link line — split into two italic paragraphs so the directive scopes to the dead link. ||writings/the-broken-wall-and-the-buried-talent.md|klappy://draft-zeros/appendix-a-the-biblical-roots| Allowlisted; paragraph split | Was 3rd link on a multi-link line — split into two italic paragraphs so the directive scopes to the dead link. ||writings/the-voice-came-first.md|klappy://writings/four-questions-that-change-everything| Allowlisted in place | Dead link is already first on the line; directive scopes correctly with no rewording. |## Why these are allowlists, not fixesThe audit-allow directive is the seam where authorial intent enters the audit. These references are intentional forward-pointers in a book-arc that is mid-publication; their dead-state today is a feature of the publication sequence, not a defect. When the chapters they point at promote towritings/, the resolver finds them, thedead-referencefinding disappears, and the directive becomes harmless residue (cleanup is a future low-priority sweep, not a deadline).## Why two paragraphs got splitPer spec v2.2:> Scoped to the next markdown link. One rule_id per directive.The directive suppresses the single next markdown link. Two of the affected paragraphs comma-spliced two or three links onto one line, where the dead link was second or third. Without splitting, the directive would suppress a working link and leave the dead one unsuppressed — a silent failure that would still show red. Splitting into two italic paragraphs preserves the prose voice exactly while making the directive grammar work.The alternative options considered:- Hard-wrap inside italics (cosmetic-only, but markdown-rendering-fragile)- Extend the directive to multi-link scope (spec change + worker change + RV-gate dispatch — too much weight for an edge case)Paragraph splits chosen because they're zero-cost on the rendered side, preserve voice, and make the contract explicit. Operator-approved on this approach.## VerificationAfter merge, the canon-quality workflow (PR #149, soft-block) on the next PR touchingwritings/should report0 findingswith3 suppressed_findings. This PR is itself one such PR — its workflow run will be the live test.## Refs- Spec:klappy://docs/oddkit/specs/oddkit-auditv2.2 (allowlist grammar, line-level scope)- Companion: #149 (the canon-quality workflow this is the floor-sweep for)- Campaign:klappy://docs/planning/link-rot-elimination-campaign- Drafts the forward-refs point at: -draft-zeros/ch07-four-questions-that-change-everything.md(referenced from #1 and #3) -draft-zeros/appendix-a-the-biblical-roots.md(referenced from #2)Note
Low Risk
Low risk, content-only changes that add
audit-allowsuppressions for intentionally unpublished forward links and adjust paragraph breaks to ensure the suppression scopes to the correct target.Overview
Adds three line-level
<!-- audit-allow: dead-reference ... -->directives to suppress known intentional forward references to unpublished chapters/appendix.Splits the closing italic “next/previous chapter” blurbs in
choosing-faith-not-fear.mdandthe-broken-wall-and-the-buried-talent.mdso the directive applies to the specific dead link, and inserts the directive above the existing forward-ref link inthe-voice-came-first.md.Reviewed by Cursor Bugbot for commit b63d8a3. Bugbot is set up for automated code reviews on this repo. Configure here.