|
| 1 | +// SPDX-License-Identifier: MPL-2.0 |
| 2 | += Standards Reorg — Stream Prompts |
| 3 | +:toc: |
| 4 | +:icons: font |
| 5 | +:revdate: 2026-06-03 |
| 6 | + |
| 7 | +== Purpose |
| 8 | + |
| 9 | +This repo holds three independent jobs. Treating them as one is why it sprawls. |
| 10 | +This file captures the three self-contained prompts for working them, plus the |
| 11 | +decisions they depend on. Each prompt is designed to be dropped into a fresh |
| 12 | +session/agent and run more-or-less standalone. |
| 13 | + |
| 14 | +Run them in order: *Stream 1 first* — it produces the base record vocabulary and |
| 15 | +the verifiable registry that Streams 2 and 3 build on. |
| 16 | + |
| 17 | +== Settled principles (do not relitigate) |
| 18 | + |
| 19 | +* *SSOT + verifiable registry.* One home per spec. Standards _hosts_ estate-wide |
| 20 | + formats and holds a machine-readable *registry pointer* |
| 21 | + (`url + version + source_hash`, hypatia-verified for staleness) for everything |
| 22 | + language/service-coupled. No duplicated normative text anywhere. |
| 23 | +* *SemVer-for-specs + era label.* Conformance numbers move by additive minors; |
| 24 | + "v2" survives only as a roadmap heading. Lineage convention per spec dir: one |
| 25 | + `SPEC.adoc` (current normative) + `archive/` (frozen prior) + `VERSIONS.adoc` |
| 26 | + (lineage + era roadmap). |
| 27 | +* *A2ML and K9-SVC are INDEPENDENT foundations.* They name no consumer. CodeCite |
| 28 | + (broad, non-semantic citations/rationale) and ProofTrace (specialist, opt-in |
| 29 | + obligation/evidence/warrant linking) are standalone *consumers* living in their |
| 30 | + own repos. Consumer-specific A2ML profiles (`a2ml/codecite`, `a2ml/prooftrace`) |
| 31 | + live with the consumer, never in A2ML core. |
| 32 | +* *Owner decisions captured 2026-06-03:* A2ML v1.1 ships profile mechanism + base |
| 33 | + record vocabulary + citation primitives (obligation/`contractual` -> v1.2); |
| 34 | + profiles declared in-document via `@profile(id)`; the 6a2 family is re-expressed |
| 35 | + as A2ML profiles; K9-SVC finishes alpha -> 1.0.0 stable with capabilities, |
| 36 | + enforceable leash, pedigree restructure, and A2ML-canonical + JSON-projection |
| 37 | + evidence receipts. |
| 38 | + |
| 39 | +== Stream 1 — A2ML + K9-SVC foundation (+ 6a2) |
| 40 | + |
| 41 | +[source,text] |
| 42 | +---- |
| 43 | +Work in the hyperpolymath/standards repo (a2ml/, k9-svc/, .machine_readable/). |
| 44 | +This is the foundational layer: the substrate between attestation (A2ML) and |
| 45 | +validation (K9) that the whole estate uses to stay stable, in sync, and attested. |
| 46 | +
|
| 47 | +DECISIONS ALREADY MADE (do not relitigate): |
| 48 | +- A2ML and K9-SVC are INDEPENDENT foundations. They must name no consumer. |
| 49 | + CodeCite and ProofTrace are standalone CONSUMERS of them, living in their own |
| 50 | + repos — never referenced normatively by A2ML/K9 core. |
| 51 | +- SSOT + verifiable registry: one home per spec; no duplicated normative text. |
| 52 | +- SemVer-for-specs + era label: additive changes are MINOR bumps; "v2" is only a |
| 53 | + roadmap heading. Lineage convention per spec dir: one SPEC.adoc (current |
| 54 | + normative) + archive/ (frozen prior versions) + VERSIONS.adoc (lineage + era). |
| 55 | +- A2ML v1.1 ships: (a) the profile mechanism, (b) a shared BASE RECORD VOCABULARY, |
| 56 | + (c) CodeCite-style citation primitives. Obligation/`contractual` primitives are |
| 57 | + v1.2. Profiles are declared in-document via an `@profile(id)` directive. |
| 58 | +- 6a2 family becomes A2ML profiles: a2ml/state, a2ml/meta, a2ml/ecosystem, |
| 59 | + a2ml/agentic, a2ml/neurosym, a2ml/playbook, a2ml/anchor — all validated by the |
| 60 | + one profile mechanism. |
| 61 | +- K9-SVC finishes alpha -> 1.0.0 STABLE: capability model (default-deny), |
| 62 | + enforceable leash modes, pedigree restructure, and an evidence/receipt schema |
| 63 | + canonical in A2ML with a lossless JSON projection. |
| 64 | +
|
| 65 | +TASKS: |
| 66 | +A2ML (a2ml/): |
| 67 | +1. Clean the in-tree mess first: SPEC.adoc ("v0 draft"), SPEC-v1.0.adoc ("stable"), |
| 68 | + and SPEC.a2ml currently coexist and the parent README calls it "v0.6.0". Apply |
| 69 | + the lineage convention. Reconcile the README claim. |
| 70 | +2. Spec the profile mechanism: how `@profile(id)` is declared/resolved, and what a |
| 71 | + profile DEFINITION may constrain (required sections, allowed directives, |
| 72 | + reference classes, attestation level). Decide where profile definitions live and |
| 73 | + how they're registered. |
| 74 | +3. Spec the base record vocabulary — the neutral set reused by CodeCite, ProofTrace, |
| 75 | + K9 receipts AND .affex: id, source_span, canonical_node (OPTIONAL, so non- |
| 76 | + AffineScript projects work), hash (sha256), provenance{author, tool, |
| 77 | + kind in {human,ai,mechanical}, optional agent}, timestamp, artefact_ref, |
| 78 | + profile_decl. This is THE anti-desync primitive — get it right. |
| 79 | +4. Spec citation primitives (@cite, @rationale, @origin, @source_span, |
| 80 | + @canonical_node): representable in base A2ML, but only REQUIRED/validated under |
| 81 | + the citation profile (never semantic by default). |
| 82 | +5. Opaque-payload crypto: define hashing now (canonical hash form), signing later. |
| 83 | +6. Add Idris2 typed-core nodes + decidable checks for profiles and new directives. |
| 84 | +
|
| 85 | +6a2 (.machine_readable/): |
| 86 | +7. Author the seven profile definitions (a2ml/state ... a2ml/anchor). |
| 87 | +8. Add @profile directives to the existing 6a2 files so they validate through the |
| 88 | + mechanism. Add a hypatia rule that flags a 6a2 file whose content drifts from its |
| 89 | + declared profile. |
| 90 | +
|
| 91 | +K9-SVC (k9-svc/): |
| 92 | +9. Capability model: closed core enum (fs.read, fs.write, net.fetch, process.spawn, |
| 93 | + container.run, secret.read, deploy.apply, rollback.apply) + reserved extension |
| 94 | + namespace; default-deny. |
| 95 | +10. Leash modes as normative rules: Kennel = data-only/no-eval; Yard = |
| 96 | + contract-eval-only/no-fs-no-net; Hunt = controlled exec. CONFIRM WITH OWNER |
| 97 | + whether Hunt requires ALL of {signature, policy, sandbox, dry-run, capability |
| 98 | + grant} or a configurable subset. |
| 99 | +11. Pedigree restructure into explicit sections: metadata / validation-contract / |
| 100 | + policy / deploy-recipe / recovery-recipe / signature / docs-rationale. |
| 101 | + (recovery-recipe and docs-rationale are the new ones.) |
| 102 | +12. Evidence/receipt schema (component identity, contract result, leash level, |
| 103 | + capabilities granted, signatures checked, dry-run plan, deploy result, rollback |
| 104 | + result, policy decision, failure reason): canonical as an A2ML profile |
| 105 | + (a2ml/k9-receipt) + lossless JSON projection. |
| 106 | +13. Add the single soft A2ML cross-reference field in pedigree (rationale/runbook). |
| 107 | + NAMING HAZARD: K9's triad is must/just/nickel; the contractiles family is |
| 108 | + must/trust/dust/intend — keep them distinct in all prose. |
| 109 | +
|
| 110 | +OUT OF SCOPE: AffineScript .affine/.affex specs (Stream 2); the repo-wide front-door |
| 111 | +reorg (Stream 3); authoring the CodeCite/ProofTrace profiles (those live in their |
| 112 | +own repos — A2ML core ships only neutral primitives). |
| 113 | +
|
| 114 | +Surface the CONFIRM-WITH-OWNER items as questions before finalising. Develop on the |
| 115 | +designated branch, commit per logical unit, open a draft PR. |
| 116 | +---- |
| 117 | + |
| 118 | +== Stream 2 — AffineScript standards placement (.affine / .affex / .affmap) |
| 119 | + |
| 120 | +[source,text] |
| 121 | +---- |
| 122 | +Goal: place the AffineScript v2 standards (.affine source-documents/faces, |
| 123 | +.affex face-interop manifest, .affmap provenance) correctly under the estate's |
| 124 | +SSOT + verifiable-registry policy, WITHOUT duplicating normative text. |
| 125 | +
|
| 126 | +DECISIONS ALREADY MADE: |
| 127 | +- These specs are language-coupled, so their SOURCE OF TRUTH is the AffineScript |
| 128 | + repo — NOT hyperpolymath/standards. The standards repo holds only a machine- |
| 129 | + readable registry pointer for each. |
| 130 | +- A registry pointer records: name, canonical_url, owning_repo, version_pin, |
| 131 | + source_hash, conformance_level, last_synced. hypatia verifies source_hash to |
| 132 | + detect staleness (this is the anti-drift mechanism). |
| 133 | +- .affcite.a2ml = an A2ML document under the CodeCite citation profile (consistent |
| 134 | + with the .affex sketch that already names pixi.affcite.a2ml). Citation contents |
| 135 | + live in that A2ML artefact, not inside .affex. |
| 136 | +- Spec documents are written ONCE in AsciiDoc — never re-authored per face. Faces |
| 137 | + govern how AffineScript SOURCE is written, not how SPECS are written. Multi-face |
| 138 | + EXAMPLES are fine but live in the AffineScript repo. |
| 139 | +
|
| 140 | +TASKS: |
| 141 | +IN hyperpolymath/standards: |
| 142 | +1. Generalise the existing SATELLITES.a2ml into (or alongside) a REGISTRY that can |
| 143 | + hold language/service-coupled pointers, not just absorbed satellites. |
| 144 | +2. Add registry pointers for the AffineScript specs (.affine, .affex, .affmap), |
| 145 | + each pointing at the AffineScript repo with version_pin + source_hash. |
| 146 | +3. Add/confirm a hypatia rule that flags a registry pointer whose source_hash no |
| 147 | + longer matches the upstream spec (staleness detection). |
| 148 | +
|
| 149 | +IN the AffineScript repo (separate session/PR — note here, don't do from standards): |
| 150 | +4. Land the .affine v2 (faces, canonical-lowering invariant, canonical islands, |
| 151 | + idiom packs, mimicry bindings, project face policy) and .affex v2 (derived, |
| 152 | + regenerable manifest; source-authoritative; declaration heads not full bodies) |
| 153 | + proposed directions as that repo's specs, using the lineage convention. |
| 154 | +
|
| 155 | +OPEN QUESTIONS to settle with the owner: |
| 156 | +- Exact registry-pointer schema fields (confirm the list above). |
| 157 | +- Whether .affmap gets its own registry entry now or is folded under .affex. |
| 158 | +- Versioning: .affex is a regenerable artefact, so its format version ("affex":"2") |
| 159 | + can bump freely; confirm it's tracked independently of the language version. |
| 160 | +
|
| 161 | +OUT OF SCOPE: authoring A2ML/K9 (Stream 1); the repo-wide reorg (Stream 3); writing |
| 162 | +any AffineScript spec text inside the standards repo (SSOT violation). |
| 163 | +
|
| 164 | +Develop on the designated branch, draft PR. |
| 165 | +---- |
| 166 | + |
| 167 | +== Stream 3 — Standards repo front door + de-sprawl |
| 168 | + |
| 169 | +[source,text] |
| 170 | +---- |
| 171 | +Work in the root of hyperpolymath/standards. Goal: turn a sprawling 7,000-file |
| 172 | +monorepo into something where any arrival — agent or human — can read it as one |
| 173 | +coherent thing OR jump straight to exactly what they need, and where the repo is |
| 174 | +wired into the live automation (hypatia + the hybrid automation router). This is |
| 175 | +the "bigger job"; it builds on the verifiable registry produced by Stream 1/2. |
| 176 | +
|
| 177 | +CONTEXT — confirmed drift to fix (file:line evidence exists): |
| 178 | +- LICENSE is MPL-2.0 (owner directive 2026-06-02) but README.adoc badge + line 28 |
| 179 | + + 418, PALIMPSEST.adoc, and both llm-warmup-*.md still say PMPL-1.0. |
| 180 | +- EXPLAINME.adoc:33 still lists ReScript as a "Primary" language (banned 2026-04-30). |
| 181 | +- TOPOLOGY.md + ROADMAP.adoc frozen at 2026-04-04; TOPOLOGY shows integration layer |
| 182 | + at 0% while claiming 80% overall. |
| 183 | +- EXPLAINME Evidence table lists groove-protocol/ and palimpsest-license/ as local |
| 184 | + dirs; neither exists here. |
| 185 | +- llm-warmup-dev.md and llm-warmup-user.md are byte-identical. |
| 186 | +- QUICKSTART-*.adoc still contain unfilled {{PLACEHOLDER}} markers. |
| 187 | +- REORGANIZATION-PLAN.md describes redundancies that no longer match reality. |
| 188 | +- Competing entry docs: README.adoc, EXPLAINME.adoc, TOPOLOGY.md, 0-AI-MANIFEST.a2ml, |
| 189 | + QUICKSTART-{DEV,USER,MAINTAINER}.adoc, llm-warmup-*.md, ai-instruction/. |
| 190 | +
|
| 191 | +CRITICAL GUARDRAIL: per .claude/CLAUDE.md, licence changes are MANUAL, OWNER-ONLY, |
| 192 | +FLAG-ONLY for agents. Do NOT touch any LICENSE file or SPDX header. Correcting a |
| 193 | +DOC BADGE that mis-describes this repo's actual licence is a documentation-accuracy |
| 194 | +fix, not relicensing — but still PROPOSE it for owner review and never bulk-sweep. |
| 195 | +
|
| 196 | +TASKS: |
| 197 | +1. Decide and build the FRONT DOOR: one canonical human entry (README.adoc) + one |
| 198 | + canonical machine entry (0-AI-MANIFEST.a2ml). Every other "what is this repo" doc |
| 199 | + either merges into these or becomes a thin stub that points at them. Kill the |
| 200 | + duplication (start with the identical llm-warmup files). |
| 201 | +2. Make the entry docs ROUTE: a clear map of "if you want X, go here" covering the |
| 202 | + three streams, the registry, the A2ML/K9 foundation, the protocols, the readiness |
| 203 | + grades, enforcement/CI. Both human-readable and machine-readable. |
| 204 | +3. Wire the automation: document and activate the verifiable REGISTRY (from Stream 1) |
| 205 | + as the index of every spec + its home + source_hash; connect hypatia staleness |
| 206 | + findings and the hybrid automation router so drift becomes a detected, routed |
| 207 | + finding instead of something noticed 60 days later. |
| 208 | +4. Fix the confirmed drift (doc badges via owner-reviewed change; ReScript->current |
| 209 | + policy; dead links -> registry pointers; fill or delete QUICKSTART placeholders). |
| 210 | +5. Make TOPOLOGY.md DERIVED/auto-refreshed (from STATE.a2ml / registry) rather than a |
| 211 | + hand-maintained file that freezes. |
| 212 | +6. Supersede or retire REORGANIZATION-PLAN.md. |
| 213 | +
|
| 214 | +OUT OF SCOPE: A2ML/K9 spec internals (Stream 1); AffineScript spec text (Stream 2); |
| 215 | +any licence/SPDX edits (owner-only, flag don't fix). |
| 216 | +
|
| 217 | +Start by re-running a fresh inventory (the repo has ~57 top-level dirs / ~7,000 |
| 218 | +files) before moving anything. Develop on the designated branch, draft PR. |
| 219 | +---- |
| 220 | + |
| 221 | +== Notes |
| 222 | + |
| 223 | +* *Stream 1 is the dependency.* The base record vocabulary and the registry it |
| 224 | + implies are what Streams 2 and 3 lean on — run it first. |
| 225 | +* The genuine *confirm-with-owner* points (K9 Hunt's required-set; registry-pointer |
| 226 | + fields) are embedded inside the prompts so those sessions check rather than guess. |
| 227 | +* Stream 3 deliberately contains *no* licence/SPDX editing — only owner-reviewed |
| 228 | + doc-badge correction — to respect the manual-only guardrail (ref neurophone#99). |
0 commit comments