Skip to content

feat(rsr): scaffold lifecycle canon, archetype presets, oracle-aligned profile checker#515

Merged
hyperpolymath merged 1 commit into
mainfrom
feat/scaffold-lifecycle-canon
Jul 21, 2026
Merged

feat(rsr): scaffold lifecycle canon, archetype presets, oracle-aligned profile checker#515
hyperpolymath merged 1 commit into
mainfrom
feat/scaffold-lifecycle-canon

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

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.toml 0.1.0 → 0.2.0 (additive MINOR per its own versioning rules): new capability plugin; presets julia-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 (hypatia RsrConformance.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.adoc relocated 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. Containerfile at root missing while container declared, release.yml present without published-package). Pre-existing template debt, now visible instead of hidden behind a parse error.

🤖 Generated with Claude Code

…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>
@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath marked this pull request as ready for review July 21, 2026 12:37
@hyperpolymath
hyperpolymath merged commit 21416cd into main Jul 21, 2026
23 of 24 checks passed
@hyperpolymath
hyperpolymath deleted the feat/scaffold-lifecycle-canon branch 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant