|
| 1 | +// SPDX-License-Identifier: CC-BY-SA-4.0 |
| 2 | += Native CI helper migration — 7 November 2026 |
| 3 | + |
| 4 | +Fresh governance execution exposed two production Python helpers that violate |
| 5 | +the estate language policy. They are replaced by the Rust programs in |
| 6 | +`tools/ci`, called through the existing-purpose shell entrypoints. Workflow, |
| 7 | +Justfile and ledger pointers are updated together; no language-policy waiver |
| 8 | +or scanner exclusion is added. The workflow's inline aggregate check uses |
| 9 | +its already required jq, with the original nonempty/defect-free assertions. |
| 10 | + |
| 11 | +The standalone dev-tool workspace has its own generated lockfile and is not |
| 12 | +an application binary or a new root test binary. It retains the ledger's |
| 13 | +coordinate selectors, first matching buckets, remainder ratchet, declared |
| 14 | +absence conflict check and proof-file requirements. Test identities now name |
| 15 | +both the test binary and test name so equal names cannot collapse across |
| 16 | +binaries. Empty inventories, missing coordinates and invalid proof tiers |
| 17 | +remain failures; a failed claim does not overwrite an existing report. |
| 18 | + |
| 19 | +Recon preserves category-debt comparison, bootstrap baselines and explicit |
| 20 | +`--no-fail` advisory mode. Missing, invalid or unrecognised scanner reports |
| 21 | +are unavailable, never clean: strict mode fails and no replacement baseline |
| 22 | +is proposed. SARIF rule identifiers are recognised alongside JSON categories. |
| 23 | + |
| 24 | +The inventory producer now preserves a failed Cargo enumeration instead of |
| 25 | +turning it into an empty successful list. It does not write an empty/partial |
| 26 | +inventory. A dedicated CI fault test injects a failing test binary and an |
| 27 | +empty suite; this Bash control is a hosted Linux check, not a claimed Windows |
| 28 | +execution. |
| 29 | + |
| 30 | +Local Windows evidence: six library controls and three CLI integration tests |
| 31 | +pass. They cover stale/empty claims, binary-name collisions, absent/covered |
| 32 | +conflicts, missing proof warrants, remainder bounds, malformed scanner data, |
| 33 | +debt regressions and unavailable/advisory behaviour. The actual repository |
| 34 | +ledger's taxonomy and selectors are checked. CI runs these controls and |
| 35 | +all-targets Clippy with warnings denied before testing the real inventory. |
| 36 | + |
| 37 | +Creusot with Pearlite contracts: `OPEN`, not run for these CI utilities. |
| 38 | +Verus: `OPEN`, not run. Executable contract tests are not formal proofs; |
| 39 | +framework provenance tiers are retained and no independent witness is claimed. |
0 commit comments