Skip to content

docs(cic): govern tools/liveness with a CIC (closes #275)#276

Merged
Polichinel merged 1 commit into
developmentfrom
docs/cic-liveness-275
Jul 21, 2026
Merged

docs(cic): govern tools/liveness with a CIC (closes #275)#276
Polichinel merged 1 commit into
developmentfrom
docs/cic-liveness-275

Conversation

@Polichinel

Copy link
Copy Markdown
Collaborator

Closes #275. Authors docs/CICs/LivenessChecks.md — one subsystem-level CIC for the tools/liveness surface-check layer (6 checks, shared report.py, aggregate runner, 130 tests, epic #238), following the ReconciliationWiring.md multi-class precedent.

What it governs (the shared contract, verified against the code): the per-surface <Surface>Check.run() -> CheckReport + main() -> exit-code shape with classify-before-print (C-101/P7); report.py's EXIT_CODE_BY_VERDICT map + fail-loud exit_code_for; the crash-containing __main__.run_all; and the house rules (injected fetch/DIP, truthful skip C-75, zero import-time side effects C-93). The per-surface verdict catalogue stays in tools/liveness/README.md as the human companion — referenced, not duplicated.

Enforcement: tools/liveness/report.py and tools/liveness/__main__.py are wired into cic_sync_check.yml so a future change to the verdict/exit-code map or the runner forces the CIC to update in the same PR. Per-surface modules are deliberately not mapped (a new URL shouldn't force CIC churn).

Register: C-107 Open -> Mitigated (47 -> 46). A dedicated ADR for the suite remains optional (ADR-017 already leans on it) and is deliberately out of scope.

Docs + CI-config only; no code changes. validate_docs.sh passes. 🤖 Generated with Claude Code

…gated

Author docs/CICs/LivenessChecks.md: one subsystem-level Class Intent Contract
(the ReconciliationWiring.md precedent) for the tools/liveness surface-check
layer — the shared <Surface>Check.run()->CheckReport + main()->exit-code
contract, report.py's verdict->exit-code map + fail-loud classifier, the
crash-containing runner, and the house rules (injected fetch/DIP, truthful
skip C-75, no import-time side effects C-93). References the README as the
human companion rather than duplicating the per-surface verdict catalogue.

Wire report.py + __main__.py into cic_sync_check.yml so a change to the
verdict/exit-code map or the runner forces the CIC to move in the same PR.
Add to the CICs README index. Flip register C-107 Open->Mitigated (47->46).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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