Commit 8f69307
k9-ecosystem: ANCHOR.a2ml SSOT keystone (hub canonical + satellite template) (#124)
Wires the `ANCHOR.a2ml` *pin + verify* SSOT model into the (now-merged)
k9-ecosystem hub. Keystone of the "full propagation" you asked for —
*one writer, many pinned readers, divergence that is loud*.
## This PR (the keystone)
Adds `k9-ecosystem/.machine_readable/anchors/`:
- **`ANCHOR.a2ml`** — the hub anchor: `authority = upstream-canonical`,
`semantic-authority.owns` the K9 spec (`spec/SPEC.adoc`) + conformance
suite, and publishes `[spec-version].current = 0.1.0-draft` (the version
satellites pin). The hub is itself declared a *satellite of
`developer-ecosystem`* for governance.
- **`SATELLITE-ANCHOR.template.a2ml`** — what each member copies to
`.machine_readable/anchors/ANCHOR.a2ml` (`authority = satellite` +
`[upstream]` pin).
- **`README.adoc`** — the per-artifact contract (spec pin / conformance
run / generated grammars / vendored-governance hashes) and the
anchor-drift enforcement plan.
## Remaining propagation (tracked; separate PRs per repo)
- [ ] `k9-rs`: flip `upstream-canonical → satellite` (it's reference
*behaviour*, not spec *authority*)
- [ ] satellite anchors stamped across `k9_ex`, `k9_gleam`, `k9-deno`,
`k9-haskell`, `pandoc-k9`, `k9-pre-commit`, `k9-showcase`
- [ ] **anchor-drift job** in `k9-validate-action` (the enforcer: pinned
`spec-version` must exist upstream; vendored hashes must match)
- [ ] generate-from-spec + regenerate-&-diff for `tree-sitter-k9` /
`vscode-k9`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_019i2e5ABGBKQmMdqk8puFWx
---
_Generated by [Claude
Code](https://claude.ai/code/session_019i2e5ABGBKQmMdqk8puFWx)_
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>1 parent af91997 commit 8f69307
3 files changed
Lines changed: 139 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
Lines changed: 36 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
0 commit comments