|
1 | 1 | # SPDX-License-Identifier: MPL-2.0 |
2 | | -# Adjustfile — Drift-tolerance contract for rsr-template-repo |
3 | | -# Author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> |
| 2 | +# Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> |
4 | 3 | # |
| 4 | +# Adjustfile — Drift-tolerance contract for absolute-zero. |
5 | 5 | # Cumulative-drift catchment: tolerance bands + corrective actions. |
6 | 6 | # Authority: advisory (Yard) — continue-with-warnings; auto_fix where deterministic. |
7 | | -# Run with: adjust check |
8 | | -# Fix with: adjust fix (applies deterministic patches; advisory otherwise) |
9 | | - |
10 | | -@abstract: |
11 | | -Drift tolerances and corrective actions for rsr-template-repo. Unlike |
12 | | -MUST (hard gate), ADJUST tracks cumulative drift against tolerance bands |
13 | | -and proposes corrective actions. Advisory — it warns and trends, it does |
14 | | -not block. |
15 | | -@end |
16 | | - |
17 | | -## Template Drift |
18 | | - |
19 | | -### placeholder-drift |
20 | | -- description: Template placeholders should be replaced when copied |
21 | | -- tolerance: 0 placeholder markers in copied repos |
22 | | -- corrective: Search and replace all {{PLACEHOLDER}} markers |
23 | | -- severity: advisory |
24 | | -- notes: This check only applies to repos that copied from this template |
25 | | - |
26 | | -### template-version-drift |
27 | | -- description: Template version should match RSR spec version |
28 | | -- tolerance: Template version matches current RSR spec |
29 | | -- corrective: Update template to match latest RSR spec |
30 | | -- severity: advisory |
31 | | - |
32 | | -## Documentation Drift |
| 7 | +# Run with: adjust check |
| 8 | +# Fix with: adjust fix (applies deterministic patches; advisory otherwise) |
| 9 | +# |
| 10 | +# Populated 2026-06-12 (governance checkpoint): replaces the |
| 11 | +# rsr-template-repo stub with repo-true drift bands. Unlike MUST (hard gate), |
| 12 | +# ADJUST warns and trends — it does not block. A2ML here is TOML-flavoured. |
33 | 13 |
|
34 | | -### readme-completeness |
35 | | -- description: README should document all template features |
36 | | -- tolerance: README covers all contractiles and directory structure |
37 | | -- corrective: Update README.adoc with missing sections |
38 | | -- severity: advisory |
| 14 | +[metadata] |
| 15 | +repo = "absolute-zero" |
| 16 | +contractile-verb = "adjust" |
| 17 | +last-updated = "2026-06-12" |
| 18 | +abstract = "Drift tolerances for absolute-zero's proof-debt figures, language-policy surface, and documentation sync. Advisory only." |
39 | 19 |
|
40 | | -### example-accuracy |
41 | | -- description: Examples in documentation should match actual template content |
42 | | -- tolerance: All code examples in docs are accurate |
43 | | -- corrective: Audit and fix examples in documentation |
44 | | -- severity: advisory |
| 20 | +[[tolerances]] |
| 21 | +id = "coq-axiom-count" |
| 22 | +description = "Coq Axiom count must not exceed the Phase-1 triage baseline" |
| 23 | +tolerance = "<= 72 Axioms (counting method = docs/proof-debt-triage.md, PR #58, 2026-05-27)" |
| 24 | +corrective = "Any NEW axiom requires a triage entry (TRUSTED-BASE / DISCHARGE / PROPERTY-TEST) in docs/proof-debt-triage.md before merge; trend the count DOWN by discharging the 17-item DISCHARGE backlog" |
| 25 | +severity = "advisory" |
45 | 26 |
|
46 | | -## Structural Drift |
| 27 | +[[tolerances]] |
| 28 | +id = "coq-parameter-count" |
| 29 | +description = "Coq Parameter count stays at the model-layer baseline" |
| 30 | +tolerance = "<= 42 Parameters (baseline of 2026-05-27)" |
| 31 | +corrective = "New Parameters need the same triage discipline as Axioms" |
| 32 | +severity = "advisory" |
47 | 33 |
|
48 | | -### contractile-sync |
49 | | -- description: All contractiles should have matching a2ml and ncl implementations |
50 | | -- tolerance: Every .a2ml has a corresponding .ncl |
51 | | -- corrective: Generate missing .ncl files from .a2ml |
52 | | -- severity: advisory |
| 34 | +[[tolerances]] |
| 35 | +id = "escape-hatch-total" |
| 36 | +description = "Total escape hatches across all proof languages must not increase" |
| 37 | +tolerance = "<= 124 (canonical figure per the standards#195 counting method; was 129, reduced to 124 as of the 2026-05-27 STATE entry)" |
| 38 | +corrective = "Decrement by discharge; any increment needs a documented rationale in docs/proof-debt-triage.md" |
| 39 | +severity = "advisory" |
53 | 40 |
|
54 | | -### no-broken-symlinks |
55 | | -- description: No broken symbolic links in template structure |
56 | | -- tolerance: 0 broken symlinks |
57 | | -- corrective: Run symlink-check script |
58 | | -- severity: advisory |
| 41 | +[[tolerances]] |
| 42 | +id = "physics-constant-duplication" |
| 43 | +description = "Physics constants should be declared once, not per-file" |
| 44 | +tolerance = "Known duplication: kB_positive/temperature_positive declared 3x across QuantumCNO/StatMech/LandauerDerivation (surfaced by the Phase-1 triage)" |
| 45 | +corrective = "Deduplicate into a shared constants module — already on STATE this-week actions" |
| 46 | +severity = "advisory" |
59 | 47 |
|
60 | | -## Accessibility Drift |
| 48 | +[[tolerances]] |
| 49 | +id = "banned-language-surface" |
| 50 | +description = "Banned-language files stay confined to the demonstration surface" |
| 51 | +tolerance = "Banned-language files only under examples/ or enumerated in .hypatia-ignore; zero NEW banned-language files elsewhere" |
| 52 | +corrective = "Move demonstration files under examples/; anything load-bearing gets rewritten per the language policy (Python -> Julia/Rust, etc.)" |
| 53 | +severity = "advisory" |
61 | 54 |
|
62 | | -### adoc-not-md |
63 | | -- description: Template docs should prefer AsciiDoc |
64 | | -- tolerance: New prose docs are *.adoc |
65 | | -- corrective: Convert any new *.md to *.adoc |
66 | | -- severity: advisory |
| 55 | +[[tolerances]] |
| 56 | +id = "wiki-sync-drift" |
| 57 | +description = "docs/wiki/ (canonical, in-repo) vs the GitHub Wiki copy" |
| 58 | +tolerance = "GitHub Wiki may lag docs/wiki/ between manual syncs (sync is a manual cp + push, see docs/wiki/README.md)" |
| 59 | +corrective = "Run the sync procedure in docs/wiki/README.md; automation (just wiki-sync + workflow) is a tracked TODO" |
| 60 | +severity = "advisory" |
67 | 61 |
|
68 | | -### spdx-header-consistency |
69 | | -- description: All template files have correct SPDX headers |
70 | | -- tolerance: 0 files missing SPDX-License-Identifier |
71 | | -- corrective: Add SPDX headers to files that need them |
72 | | -- severity: advisory |
| 62 | +[[tolerances]] |
| 63 | +id = "stale-dated-docs" |
| 64 | +description = "Dated snapshots belong in docs/archive/" |
| 65 | +tolerance = "0 dated status/roadmap snapshots outside docs/archive/" |
| 66 | +corrective = "Move superseded dated documents into docs/archive/ and add them to docs/archive/README.adoc" |
| 67 | +severity = "advisory" |
0 commit comments