|
| 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" |
0 commit comments