paritylint

command
v1.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Command paritylint checks the gopherstack-anjf invariant: fix status for every services/<svc>/PARITY.md lives in exactly one place, items_still_open:. See .claude/memories/parity-principles.md rule 6.

It fails when:

(a) an open-item entry (items_still_open:, or a not-yet-migrated legacy
    gaps:/residual_gaps:) names an op/field a LATER dated part of the
    same file already marks fixed (checkResolvedElsewhere)
(b) a body paragraph uses this corpus's "not fixed"/"disclosed"/
    "deferred" phrasing for a named item absent from items_still_open,
    with no evidence anywhere else in the file that it was resolved
    (checkUndisclosedOpenItem)
(c) items_still_open: is missing entirely (checkMissingItemsStillOpen)

(a) and (b) reuse the same token/marker heuristic cmd/paritymigrate's own migration used. All three checks run and are always printed, but ONLY (c) -- missing-items-still-open -- affects the exit code. Hand-checking every (a) and (b) finding across the real corpus (this migration's own report, filed alongside gopherstack-anjf) measured both too imprecise to gate a build on: of the 13 (a) candidates found immediately after migration, 8 were confirmed false positives (a "fixed" citation for an incidental comparison token, never the item's actual subject) after hand-reading each one -- a ~62% false-positive rate on this corpus. (b) fared far worse: 1250 findings, because this corpus's body prose is dense with the same "not fixed"/"disclosed" vocabulary describing history, sub-details already covered by a differently-worded items_still_open entry, or comparisons to other operations. Gating on either would make this check impossible to keep green without either weakening the heuristic (hiding real hits) or forcing bulk suppressions -- the same failure mode this tool exists to prevent, just moved one level up. (c) is 100% mechanical with no false positives observed, so it alone gates. (a)/(b) remain printed so a human can triage and file follow-ups (cmd/staleclaims remains the standing tool for that -- this is not a replacement for it).

Usage:

go run ./cmd/paritylint                # report to stdout
go run ./cmd/paritylint -json out.json # also write full finding detail as JSON

Exit codes: 0 no missing-items-still-open finding, 1 a run error, 2 at least one missing-items-still-open finding. (a)/(b) findings are always printed but never change the exit code -- see the false-positive rates above.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL