Skip to content

Commit 7d4b90b

Browse files
committed
chore(contractiles): add the missing INDEX.a2ml registry
Models echidna's canonical contractile registry. Catalogues all six verbs (must/trust/intend/adjust/bust/dust) with their real on-disk locations across panic-attack's three pre-consolidation trees, flags the duplicate `trust` Trustfile, and records the canonical trident target. Purely additive. The physical consolidation of the three trees is held as issue #124: the root contractiles/ tree feeds `contractile gen-just`, so a blind move would break the generator, and the authoritative CONTRACTILE-SPEC lives in the standards repo (unreachable from the working session). Refs #124. https://claude.ai/code/session_01K2TJLeQSyz4tpydZ18aRcb
1 parent 756e3c4 commit 7d4b90b

2 files changed

Lines changed: 104 additions & 0 deletions

File tree

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# INDEX.a2ml — Contractile Registry (panic-attack)
3+
# Author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
#
5+
# Machine-readable catalogue of the contractile verbs present in this repo.
6+
# Consumers (CI scripts, the contractile CLI, Hypatia rules) SHOULD read this
7+
# file to discover the available verbs and their on-disk locations rather than
8+
# hard-coding the list.
9+
#
10+
# Canonical shape: hyperpolymath/standards docs/CONTRACTILE-SPEC.adoc §Registry,
11+
# exemplified by hyperpolymath/echidna .machine_readable/contractiles/ (v2.0.0,
12+
# full trident shape for all six verbs).
13+
#
14+
# STATUS: panic-attack's contractile set predates the trident consolidation and
15+
# is currently SCATTERED across three trees (see [layout]). This registry
16+
# catalogues what exists and its real location; the physical consolidation to
17+
# the canonical .machine_readable/contractiles/<verb>/ trident shape is tracked
18+
# in issue #124 — it is held because the root `contractiles/` tree is read by
19+
# `contractile gen-just` to emit contractile.just, so a blind move would break
20+
# the generator, and the authoritative CONTRACTILE-SPEC lives in the (here
21+
# unreachable) standards repo.
22+
23+
---
24+
id = "contractiles-registry"
25+
project = "panic-attack"
26+
version = "0.1.0" # 0.1.0: registry introduced over the existing pre-consolidation layout.
27+
spec = "hyperpolymath/standards docs/CONTRACTILE-SPEC.adoc"
28+
canonical_reference = "hyperpolymath/echidna .machine_readable/contractiles/INDEX.a2ml (v2.0.0)"
29+
base_schema = ".machine_readable/contractiles/_base.ncl (NOT YET PRESENT — see #124; reference: echidna _base.ncl)"
30+
last_updated = "2026-06-04"
31+
consolidation_tracking = "https://github.com/hyperpolymath/panic-attack/issues/124"
32+
33+
## Layout — current reality (three trees, pending consolidation in #124)
34+
35+
[layout]
36+
flat = ".machine_readable/*.contractile — ADJUST, INTENT, MUST, TRUST (legacy flat form)"
37+
machine_readable_tridents = ".machine_readable/contractiles/<verb>/ — adjust, bust, dust, trust (partial: Xfile.a2ml + x.ncl)"
38+
generator_source = "contractiles/<verb>/ — intend, must, trust (read by `contractile gen-just` → contractile.just)"
39+
canonical_target = ".machine_readable/contractiles/<verb>/ — full trident: Xfile.a2ml + x.ncl + x.k9.ncl + manifest"
40+
41+
## Verbs
42+
# Canonical verb set per the standard: adjust, bust, dust, intend, must, trust
43+
# (six, on the trident shape), plus the k9 trust-tier template exception.
44+
# panic-attack has all six present in at least one tree; none yet on the full
45+
# trident. `present` lists the actual on-disk files today.
46+
47+
[[verbs]]
48+
name = "must"
49+
semantics = "invariant assertion — release-blocking"
50+
authority = "blocking"
51+
gating = "hard (exit-nonzero)"
52+
present = ["contractiles/must/Mustfile.a2ml", ".machine_readable/MUST.contractile"]
53+
trident_status = "file-only — missing must.ncl + must.k9.ncl + must.manifest.a2ml"
54+
55+
[[verbs]]
56+
name = "trust"
57+
semantics = "security + provenance + safe-hacking"
58+
authority = "blocking"
59+
gating = "hard (exit-nonzero)"
60+
present = ["contractiles/trust/Trustfile.a2ml", ".machine_readable/contractiles/trust/Trustfile.a2ml", ".machine_readable/TRUST.contractile"]
61+
trident_status = "DUPLICATE — root and .machine_readable Trustfile.a2ml differ; reconcile in #124"
62+
63+
[[verbs]]
64+
name = "intend"
65+
semantics = "north-star (commitments + aspirations)"
66+
authority = "reporting"
67+
gating = "non-gating (continue)"
68+
present = ["contractiles/intend/Intentfile.a2ml", ".machine_readable/INTENT.contractile"]
69+
trident_status = "file-only — missing intend.ncl + intend.k9.ncl + intend.manifest.a2ml"
70+
71+
[[verbs]]
72+
name = "adjust"
73+
semantics = "drift tolerances + corrective actions"
74+
authority = "advisory"
75+
gating = "advisory (continue-with-warnings)"
76+
present = [".machine_readable/contractiles/adjust/Adjustfile.a2ml", ".machine_readable/contractiles/adjust/adjust.ncl", ".machine_readable/ADJUST.contractile"]
77+
trident_status = "pair — missing adjust.k9.ncl + adjust.manifest.a2ml"
78+
79+
[[verbs]]
80+
name = "bust"
81+
semantics = "hard-stop / expiry / must-not-run declarations"
82+
authority = "blocking"
83+
gating = "hard (exit-nonzero)"
84+
present = [".machine_readable/contractiles/bust/Bustfile.a2ml", ".machine_readable/contractiles/bust/bust.ncl"]
85+
trident_status = "pair — missing bust.k9.ncl + bust.manifest.a2ml"
86+
87+
[[verbs]]
88+
name = "dust"
89+
semantics = "rollback / recovery / deprecation / audit-trail preservation"
90+
authority = "advisory"
91+
gating = "advisory (continue-with-warnings)"
92+
present = [".machine_readable/contractiles/dust/Dustfile.a2ml"]
93+
trident_status = "file-only — missing dust.ncl + dust.k9.ncl + dust.manifest.a2ml"

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,17 @@
1616
(a genuine seal verifies), plus two corollaries. Typechecks under Idris2
1717
0.8.0. Closes #123.
1818

19+
### Added — contractile registry (INDEX.a2ml)
20+
21+
- **`.machine_readable/contractiles/INDEX.a2ml`**: the previously-missing
22+
contractile registry, modelled on echidna's canonical INDEX. Catalogues all
23+
six verbs (must / trust / intend / adjust / bust / dust) with their *actual
24+
current locations* across the three pre-consolidation trees, flags the
25+
duplicate `trust` Trustfile, and records the canonical trident target. The
26+
physical consolidation of the three trees stays in #124 — it couples to the
27+
`contractile gen-just` generator (which reads the root `contractiles/` tree)
28+
and needs the standards CONTRACTILE-SPEC to do safely.
29+
1930
### Added — `assay` / `assimilate` / `aggregate` proof-integration subcommands
2031

2132
Three new a-themed subcommands that wire panic-attack into the

0 commit comments

Comments
 (0)