feat(rsr): scaffold lifecycle canon, archetype presets, oracle-aligned profile checker#515
Merged
Merged
Conversation
…d profile checker - spec/SCAFFOLD-LIFECYCLE.adoc: normative Forge (mint/provision/configure/ harness) + Sustain (corrective/adaptive/perfective/preventive) lifecycle, roles table, provenance requirement, autonomy boundaries. Companion to rsr-template-repo ADR-0003. - template-capability-gates.toml 0.2.0 (additive MINOR): capability 'plugin'; presets julia-library, wordpress-plugin, zotero-plugin, userscript. - check-rsr-profile.sh: accept [rsr-profile] section and multi-line capability arrays — the normative oracle (hypatia RsrConformance) accepts both, and the reference checker must not be stricter than the oracle. Canary-tested both directions. - spec/REPO-STANDARD-MUST-INTEND-LIKE.adoc: relocated from rsr-julia-library-template-repo (language-agnostic canon, was misfiled). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
hyperpolymath
marked this pull request as ready for review
July 21, 2026 12:37
hyperpolymath
added a commit
that referenced
this pull request
Jul 21, 2026
`Registry Verify` has been failing on **`main`** since #515 merged at ~12:34 today. #515 changed tracked files under `rhodium-standard-repositories/` without regenerating the derived registry, so the RSR entry's `source_hash` — a sha256 over `git ls-files -s <home>` — no longer matches the tree: ``` DRIFT: .machine_readable/REGISTRY.a2ml is stale — run 'just registry' ``` **Every open PR inherits this**, because `pull_request` checks run against the merge ref. It is the sole cause of the current red on #518. ## The change One line, produced by `bash scripts/build-registry.sh` with no manual editing: ```diff name = "RSR — Rhodium Standard Repositories" home = "rhodium-standard-repositories/" -source_hash = "sha256:b285134b…7b9b7abe" +source_hash = "sha256:02b75b57…c382f1e" ``` ## Verified | | `scripts/build-registry.sh --check` | |---|---| | `origin/main` | `DRIFT: .machine_readable/REGISTRY.a2ml is stale` | | this commit | `OK: registry + topology are in sync with the file tree.` (exit 0) | Run history confirms the regression point — `main` green at 04:48, red at 12:37, with `feat/scaffold-lifecycle-canon` red at 12:34. Worth considering as follow-up: `just hooks-install` (the pre-commit guard the failure message already points at) would have caught this before push. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What
The normative half of the once-and-for-all scaffolding resolution (companion: rsr-template-repo PR #2, ADR-0003).
spec/SCAFFOLD-LIFECYCLE.adoc— the lifecycle canon: Forge (mint → provision → configure → harness) with per-stage MUST exit criteria, Sustain (corrective / adaptive / perfective / preventive) with the owning tool for each, the roles table (canon / spine / composer / oracle / fleet), the provenance requirement (the estate's Copier-answer-file equivalent, in the ADR-0002 contract shape), and autonomy boundaries (unattended read-only vs owner-gated mutation vs never-automated).template-capability-gates.toml0.1.0 → 0.2.0 (additive MINOR per its own versioning rules): new capabilityplugin; presetsjulia-library,wordpress-plugin,zotero-plugin,userscript.check-rsr-profile.sh— now accepts the[rsr-profile]section name and multi-line capability arrays. The normative oracle (hypatiaRsrConformance.load_capabilities/1) accepts both; the reference checker was stricter than the oracle and errored on the very profile rsr-template-repo ships. Canary-tested: template profile parses (real findings now reported), undeclared profile still exits 2, preset form resolves.REPO-STANDARD-MUST-INTEND-LIKE.adocrelocated from rsr-julia-library-template-repo (explicitly language-agnostic; was misfiled in the Julia variant). Variant-side retirement is a follow-up there.Honest findings surfaced (not fixed here)
Running the fixed checker against rsr-template-repo reports 5 genuine profile↔tree mismatches (e.g.
Containerfileat root missing whilecontainerdeclared,release.ymlpresent withoutpublished-package). Pre-existing template debt, now visible instead of hidden behind a parse error.🤖 Generated with Claude Code