Skip to content

Commit 8b6a804

Browse files
committed
docs(reorg): capture three-stream work prompts and settled principles
Records the A2ML/K9 foundation, AffineScript-standards placement, and front-door/de-sprawl work as three self-contained prompts, plus the settled SSOT+registry and SemVer+era-label principles and the 2026-06-03 owner decisions they depend on. https://claude.ai/code/session_01AmPXB2dA2wCcabo8BXwS28
1 parent 0b96f61 commit 8b6a804

1 file changed

Lines changed: 228 additions & 0 deletions

File tree

docs/reorg/STREAM-PROMPTS.adoc

Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,228 @@
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

Comments
 (0)