Skip to content

[carve-out 4/9] rhodium-standard-repositories/ cleanup: de-vendor satellites/, merge templates into rsr-template-repo, delete the lying .gitmodules #493

Description

@hyperpolymath

Child of #479. The RSR directory is 78% vendored product copies (964 of 1,234 tracked files) — .gitmodules declares submodules but the satellites are full in-tree file copies, so the repo's structural metadata is false.

  • satellites/ → their canonical repos, already named by .gitmodules: palimpsest-license, consent-aware-http, git-rsr-certified, repo-slm-augmentor, robot-repo-automaton, mustfile, cccp, well-known-ecosystem, META.scm, ECOSYSTEM.scm, state.scm. Note two of these are PMPL repos vendored inside an MPL-2.0 canon repo — flag-only, move verbatim, no SPDX edits.
  • templates/, contractiles/, examples/ → hyperpolymath/rsr-template-repo (merge + dedupe; doctrine names the template repo THE operationalisation — two template sources is why canon drifted behind its own template). examples/ai-ml-project carries a pyo3 dep Dependabot actively bumps inside the canon — that churn leaves with it.
  • rhodium-pipeline/ → hyperpolymath/rhodium-pipeline (self-describes as a code generator product; second competing instantiation path beside the template).
  • ux-test-harness/ + scripts/{ux-batch-rollout.jl, containerfile-to-stapeln.jl, sync-ffi-templates.sh} → gitbot-fleet or a tooling repo (estate-ops, not spec).
  • Delete .gitmodules (or restore true submodules if re-linking). Add the submodule-truth guard: trivial CI check that every .gitmodules entry corresponds to an actual gitlink.
  • Archive: stale root CLAUDE.md (2025 GitLab/ReScript worldview the .claude/ pointer was created to kill), TESTING-REPORT.* (records Silver 91.14% while the README wears a Gold 100% badge — overclaim), PROJECT-STATUS.md, audit showcase docs; CCCP-MANIFESTO.md → hyperpolymath/cccp.

After this lands, rhodium-standard-repositories/ should contain: spec/ (incl. the v2.0 SSOT), badges/, docs/ (normative only), CHANGELOG/GOVERNANCE/MAINTAINERS. Registry regen + --check per PR; mass-deletion marker as needed.


⚠️ CORRECTION 2026-08-25 — the .gitmodules is worse than "lying": 8 of 12 entries are dead, and 2 are aliased

Every entry checked with gh repo view. Full audit of rhodium-standard-repositories/.gitmodules:

submodule path declared url status
satellites/cccp cccp ✅ exists
satellites/palimpsest-license palimpsest-license ✅ exists
satellites/rsr-template-repo rsr-template-repo ✅ exists
satellites/rhodium-pipeline rhodium-pipeline ❌ 404
satellites/mustfile mustfile ❌ 404
satellites/well-known-ecosystem well-known-ecosystem ❌ 404
satellites/robot-repo-automaton robot-repo-automaton ❌ 404
satellites/rsr-certifier git-rsr-certified ❌ 404 — and the path does not match the url
satellites/rsr-deployer repo-slm-augmentor ❌ 404 — and the path does not match the url
satellites/META.scm META.scm ❌ 404 — this is a file, not a repo
satellites/ECOSYSTEM.scm ECOSYSTEM.scm ❌ 404 — this is a file, not a repo
satellites/state.scm state.scm ❌ 404 — this is a file, not a repo

Two distinct defect classes beyond simple absence:

  1. Aliased entries. satellites/rsr-certifier and satellites/rsr-deployer declare URLs naming different repos (git-rsr-certified, repo-slm-augmentor). Anyone reading the path list gets one set of names; anyone running git submodule gets another. Both target repos are absent anyway.
  2. Three entries claim that .scm files are submodule repositories. META.scm, ECOSYSTEM.scm and state.scm are files vendored under satellites/, not projects. These entries were never valid.

Owner ruling 2026-08-25 — this issue is retargeted

The satellites are not to be recreated one-for-one. Per owner direction, the RSR template family is to be rationalised into base forms, and this is now shaped by scaffoldia being in production. The relevant measurement:

The genuine delta between rsr-template-repo (the spine) and rsr-julia-library-template-repo is six files — Project.toml, test/, julia-test.yml, documentation.yml, VARIANT.a2ml, variant-drift-gate.yml. Every other difference is the variant drifting backwards: Markdown files after the spine converted to AsciiDoc, flake.nix after the spine moved to Guix, duplicate GOVERNANCE.adoc+.md pairs.

A whole repository is being maintained to carry six files of real difference. That is the argument for variant packs, not variant repos.

Base forms to define (owner's list, with the linked project each pre-wires):

  • general — the spine as-is
  • documentation / format — spec and format repos (a2ml, k9, palimpsest)
  • language library — generalised from the Julia variant, linked to nextgen-language-evangeliser
  • audit-grade / narratable — linked to grim-repo
  • security ecosystem — linked to refugia

Action for this issue, revised: delete the dead and aliased .gitmodules entries rather than recreating five absent repos; de-vendor satellites/ where a real repo exists (cccp, palimpsest-license, rsr-template-repo); and fold templates/ into the base-form work. Template-family rationalisation is tracked separately in the new umbrella filed 2026-08-25.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority:p1High - schedule nextscope:estateAffects many or all repos across the estatestatus:needs-ownerUnassigned and needs someone to take ittech-debtKnown shortcut, drift, or hygiene owed - includes cleanup

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions