Skip to content

[carve-out 1/9] Evict a2ml/ product → hyperpolymath/a2ml; keep the spec home slim (runbook inside) #490

Description

@hyperpolymath

Child of #479. The flagship evictiona2ml/ is 2,018 files / 13MB: compiler-grade Idris2 core, 5 language bindings, LSP, CLI, pandoc suite, website (CNAME a2ml.net, ads.txt), editors, benchmarks — a whole language product living inside the canon. Its nested .github/workflows/ have been dead since the 2026-02-08 absorption (GitHub only runs root workflows), so most claimed A2ML CI does not actually run.

What STAYS in standards (the slim spec home)

  • a2ml/SPEC.adoc (v1.1.0 markup dialect), a2ml/RECORD-DIALECT-SPEC.adoc (v1.0.0-draft), VERSIONS.adoc, archive/
  • a2ml/profiles/ (the 7 hash-pinned profile definitions + REGISTRY.a2ml)
  • a2ml/tests/vectors/ + a2ml/tests/record-dialect/ (conformance vectors — part of the spec)
  • a2ml/docs/GRAMMAR.adoc, docs/CONFORMANCE.adoc

What MOVES to hyperpolymath/a2ml

Everything else: bindings/, cli/, lsp/, editors/, pandoc/, ffi/, benchmarks/, site files (CNAME, ads.txt, app-ads.txt, humans.txt), actions/validate/ (or its own a2ml-validate-action if it must be a referenceable Action), nested .github/, Containerfile, Justfile (product half), release notes, READINESS.md.

Runbook

  1. Owner creates hyperpolymath/a2ml (empty). (Agent-blocked step: repo creation/write is outside current session scope — everything after this is mechanical.)
  2. History-preserving split in standards: git subtree split -P a2ml -b a2ml-extract → push to the new repo's main (keeps blame/provenance; no licence content is altered — moving files verbatim is not relicensing).
  3. In the new repo: promote the nested workflows to root, fix their paths: (they assume old repo-root layout), revive the test/vector CI without || echo SKIP, point the site config.
  4. In standards, same PR: delete the moved dirs, keep the spec home above; regenerate the registry (bash scripts/build-registry.sh; never hand-edit) — the a2ml LOCAL entry's source_hash re-pins to the slim home. Optionally add an EXTERNAL entry (a2ml-toolchain, kind = "external", canonical_url → the new repo) so HYP-S006 watches the pointer.
  5. bash scripts/build-registry.sh --check green + registry-verify.yml green = nothing dangles.
  6. If a mass-deletion guard exists on standards, include its marker (cf. gitbot-fleet's [mass-delete-ok]) in the PR body — this is a deliberate ~1,900-file removal.
  7. After merge: HYP-S006 + the future implementation-inside-canon detector (child 9/9) keep it from growing back.

Acceptance: standards' a2ml/ contains only spec/profiles/vectors/docs; registry green; new repo CI green on its own tests; README of new repo links back to the spec home as normative.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions