77# Regenerate with: bash scripts/build-registry.sh (or: just registry)
88# Source of truth: the SPECS table in scripts/build-registry.sh + the file tree.
99#
10- # Each entry's `source_hash` is a sha256 over `git ls-files -s <home>`, so it
11- # changes whenever any tracked file under the spec's home changes. Hypatia rule
12- # HYP-S006 (hypatia-rules/registry-staleness.a2ml) recomputes these and emits a
10+ # LOCAL entries: `source_hash` is a sha256 over `git ls-files -s <home>`, so it
11+ # changes whenever any tracked file under the spec's home changes.
12+ # EXTERNAL entries (kind = "external"): a verified POINTER to a spec whose SSOT
13+ # lives in another repo. `source_hash` is RECORDED (sentinel PENDING-FIRST-SYNC
14+ # until upstream lands), not computed locally — the offline generator emits it
15+ # verbatim. Hypatia rule HYP-S006 (hypatia-rules/registry-staleness.a2ml)
16+ # recomputes LOCAL hashes and re-fetches EXTERNAL canonical_urls, emitting a
1317# `doc.drift` finding (strategy :review) when a recorded hash goes stale.
1418
1519[registry]
1620version = "1.0.0"
1721generator = "scripts/build-registry.sh"
18- hash_algorithm = "sha256(git ls-files -s <home>)"
19- entry_count = 28
22+ hash_algorithm = "sha256(git ls-files -s <home>) # local; external: recorded pin "
23+ entry_count = 31
2024
2125[registry.streams]
2226foundation = "A2ML format family + K9 + contractiles (Stream 1)"
@@ -32,7 +36,7 @@ name = "A2ML — Attested Markup Language"
3236stream = "foundation"
3337home = "a2ml/"
3438canonical_doc = "a2ml/README.adoc"
35- source_hash = "sha256:ffda43ed07bed095c7623d3c6a1d38c8f17a6b9e4eebaebe3bfde5aff62bcfb0 "
39+ source_hash = "sha256:2612d2f66eaefe1aedd2f783c748f85eec80cdc09147fb87593086041a670e07 "
3640route = "the typed/verified machine-readable document format"
3741
3842[[spec]]
@@ -41,7 +45,7 @@ name = "K9 Self-Validating Components"
4145stream = "foundation"
4246home = "k9-svc/"
4347canonical_doc = "k9-svc/README.adoc"
44- source_hash = "sha256:6a9c2065fc29abdaaeef08c3e551f21c7408afd3c9a7cee4ed3e73460db443ab "
48+ source_hash = "sha256:c368125fbfb026c89d83b4b2b9d249024e83295e75ac49ab2889b8d7c1989dcd "
4549route = "self-validating components with embedded contracts + deploy logic"
4650
4751[[spec]]
@@ -59,7 +63,7 @@ name = "META.a2ml spec"
5963stream = "foundation"
6064home = "meta-a2ml/"
6165canonical_doc = "meta-a2ml/README.adoc"
62- source_hash = "sha256:2904f47d20a79723a830674fd9dc14105bf14911b5f700586480fe3a7a424542 "
66+ source_hash = "sha256:fd41c8f7c2f4d2dd6dceb11bffaabc8905a9da33c2aa76ab8360da6ee9e3a0b4 "
6367route = "architecture decisions / governance metadata format"
6468
6569[[spec]]
@@ -122,7 +126,7 @@ name = "0-AI Gatekeeper Protocol"
122126stream = "protocol"
123127home = "0-ai-gatekeeper-protocol/"
124128canonical_doc = "0-ai-gatekeeper-protocol/README.adoc"
125- source_hash = "sha256:e1893253df97b1b989b1ba8e6926548a9a06a6582ab8b9448438da0b4b3e4428 "
129+ source_hash = "sha256:d3157a30fde9e78ab2374e7b6a8c733e6a9b21492ee426bdd26695522624b646 "
126130route = "the AI-agent entry/gating protocol behind 0-AI-MANIFEST"
127131
128132[[spec]]
@@ -140,7 +144,7 @@ name = "AVOW Protocol"
140144stream = "protocol"
141145home = "avow-protocol/"
142146canonical_doc = "avow-protocol/README.adoc"
143- source_hash = "sha256:fc6011d8531fbe3d8fbc5ba0b819cea892d8e0dee7ccb31ef0a22b7d264a8263 "
147+ source_hash = "sha256:556e42c1fc34c277a18b16bc2553f202ced9365b196d5c17649dda4a1a31e545 "
144148route = "consent-attested messaging / origin attribution"
145149
146150[[spec]]
@@ -149,7 +153,7 @@ name = "AXEL Protocol"
149153stream = "protocol"
150154home = "axel-protocol/"
151155canonical_doc = "axel-protocol/README.adoc"
152- source_hash = "sha256:6884bcc4f845e05cb0ff0d6d77171707e74f6069512bcf233161a5d8de8fb704 "
156+ source_hash = "sha256:2b20dddef2d9405f6eb35eaca0006e097bab31e88360b8cfed2fa239bebb911c "
153157route = "age-gating + explicit-content enforcement"
154158
155159[[spec]]
@@ -167,7 +171,7 @@ name = "Consent-Aware HTTP"
167171stream = "protocol"
168172home = "consent-aware-http/"
169173canonical_doc = "consent-aware-http/README.adoc"
170- source_hash = "sha256:e4165fa238b12e8515b985a21e7c7a9d7337627a484e74abe17fa000113a22e0 "
174+ source_hash = "sha256:dbfc1d464ac7e9098d8115dda332eff832276b643bcea787a5f9b3900f09142b "
171175route = "consent headers / AI-usage boundaries for HTTP"
172176
173177[[spec]]
@@ -212,7 +216,7 @@ name = "RSR — Rhodium Standard Repositories"
212216stream = "governance"
213217home = "rhodium-standard-repositories/"
214218canonical_doc = "rhodium-standard-repositories/README.adoc"
215- source_hash = "sha256:9e10e92598a307d3e32f8af3dc8b5cdfdbbcfd6d78069498d6797dc1f0001e62 "
219+ source_hash = "sha256:16937c23fe261963c80f611e827d987f924d87169e79a388958b1bd53a11d7cc "
216220route = "the repository-compliance standard every repo is graded against"
217221
218222[[spec]]
@@ -266,7 +270,7 @@ name = "Standards Hypatia Rules"
266270stream = "integration"
267271home = "hypatia-rules/"
268272canonical_doc = "hypatia-rules/README.adoc"
269- source_hash = "sha256:a63e95c5e43ced2ee13c58014175da156c71ab731f01449e3a61b3e2f33bbe52 "
273+ source_hash = "sha256:797f42c3ac24cf610e1e0da0e9e019f3f0dce527d1f80857ab2adb85741159d3 "
270274route = "the dogfooding rules that scan THIS repo (incl. drift detection)"
271275
272276[[spec]]
@@ -278,4 +282,59 @@ canonical_doc = "a2ml-templates/STATE.a2ml.v2.spec.adoc"
278282source_hash = "sha256:5105bc72621b6214f1adecdf33a1dadf62d1d2b0afd0c2c6a48bbc5e24e9a454"
279283route = "copy-in templates for the 7 A2ML files"
280284
285+ [[spec]]
286+ id = "affine-spec"
287+ name = "AffineScript .affine (faces / source documents)"
288+ stream = "language"
289+ kind = "external"
290+ spec_kind = "language-coupled"
291+ owning_repo = "hyperpolymath/affinescript"
292+ canonical_url = "https://github.com/hyperpolymath/affinescript/blob/main/spec/affine.adoc"
293+ version_pin = "v2.0.0"
294+ source_hash = "PENDING-FIRST-SYNC"
295+ source_hash_algo = "sha256"
296+ conformance_level = "draft"
297+ last_synced = "never"
298+ sync_status = "awaiting-upstream"
299+ media_type = "application/vnd.affinescript.affine"
300+ lineage = "affinescript:affine@2"
301+ route = "faces, canonical-lowering invariant, canonical islands, idiom packs, mimicry bindings, project face policy"
302+
303+ [[spec]]
304+ id = "affex-manifest"
305+ name = "AffineScript .affex (face-interop manifest)"
306+ stream = "language"
307+ kind = "external"
308+ spec_kind = "language-coupled"
309+ owning_repo = "hyperpolymath/affinescript"
310+ canonical_url = "https://github.com/hyperpolymath/affinescript/blob/main/spec/affex.adoc"
311+ version_pin = "v2.0.0"
312+ source_hash = "PENDING-FIRST-SYNC"
313+ source_hash_algo = "sha256"
314+ conformance_level = "draft"
315+ last_synced = "never"
316+ sync_status = "awaiting-upstream"
317+ media_type = "application/vnd.affinescript.affex"
318+ lineage = "affinescript:affex@2"
319+ route = "derived regenerable manifest; declaration heads not full bodies; format_version bumps independently"
320+ format_version = "2" # tracked independently of version_pin
321+
322+ [[spec]]
323+ id = "affmap-provenance"
324+ name = "AffineScript .affmap (provenance)"
325+ stream = "language"
326+ kind = "external"
327+ spec_kind = "language-coupled"
328+ owning_repo = "hyperpolymath/affinescript"
329+ canonical_url = "https://github.com/hyperpolymath/affinescript/blob/main/spec/affmap.adoc"
330+ version_pin = "v2.0.0"
331+ source_hash = "PENDING-FIRST-SYNC"
332+ source_hash_algo = "sha256"
333+ conformance_level = "draft"
334+ last_synced = "never"
335+ sync_status = "awaiting-upstream"
336+ media_type = "application/vnd.affinescript.affmap"
337+ lineage = "affinescript:affmap@2"
338+ route = "provenance format; own pointer for independent staleness tracking"
339+
281340### End of REGISTRY.a2ml
0 commit comments