Repository navigation
feat: follow the 2026-10-14 JS runtime ruling; re-sync the provisioning engine 0.6.0 - #239
Conversation
…ng engine 0.6.0 standards LANGUAGE-POLICY §1.3–§1.4 (owner ruling 2026-10-14): Bun > Deno > pnpm > npm, from one package.json whose bun.lock, deno.lock and pnpm-lock.yaml are all written by `js-runtimes regen`. The template still taught and enforced the 2026-08-26 "Deno is retired" rule. runtime-policy.yml failed any repository with more than one lock, so it failed every repository that follows the ruling. Fixture runs, old gate against new: bun.lock + deno.lock + pnpm-lock.yaml old rc=1 "Mixed toolchains: 3" new rc=0 bun.lock + pnpm-lock.yaml old rc=1 new rc=0 package-lock.json + bun.lock old rc=1 new rc=1 deno.json + deno.lock old rc=0 warning new rc=0 notice empty / npm alone / bun.lockb alone unchanged The three js-runtimes locks now count as one dependency graph; an npm package-lock.json next to them is still mixed. Detection is unchanged. The provisioning engine (provision-lib.sh, provision-modes.sh, provision-check.sh) is copied from standards ed04132e (#1255); provision.just was already identical. Every line that only the template's old copy had was an older revision of canon code. provision-check.sh: 0 FAIL, 0 WARN. Doctor: the same results under both engines, apart from the PASS wording. The same policy appears in arrival-pack.ncl (CLAUDE.md regenerated by `just claude-md`; verify.sh in sync), mise.toml, docs/SETUP.adoc PV-W23/W30/W34 (the canon rows), the dev warm-up (the canon line), the three agent rule files, copilot-instructions.md, the PR template and two comments. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y6FD63UrriRBHqmhhEca9t
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 48 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…lock governance / Actions lockfile verify is red on main and on this PR: opening lockfile: ... lockfile version v0.0.3 is newer than this binary supports (v0.0.2) At ae36881 the gate installs gh-actions-lock v0.1.6. Standards 934b879 pins v0.2.0, which reads v0.0.3. This is the fix resource-algebra#8 (9240142) made: the six reusables (governance, hypatia-scan, mirror, rust-ci, scorecard, secret-scanner) move to 934b879. actions.lock was re-keyed with standards' own chain, complete-job-refs -> close-lock (offline gh stub) -> prune-stale. The standards record's nested uses: are completed at the new pin, and setup-deno@22d081f and setup-bun@0c5077e get records identical to resource-algebra main's. No orphan records. Locally: check-lock-sync.sh OK; the 934b879 lock gate with gh-actions-lock v0.2.0 reports "Immutable direct and transitive lockfile coverage verified." (exit 0); archetype_lock_merge_test.sh PASS; validate-template and workflow validation unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y6FD63UrriRBHqmhhEca9t
|
Two of the red checks here are not caused by this PR; one is fixed, one has no fix yet, and SonarCloud I could not read. governance / UUID v7 conformance: red on
governance / Actions lockfile verify: fixed in
SonarCloud: the quality gate fails on new code (Maintainability D, Security C). This environment cannot reach sonarcloud.io (egress policy), so I have not seen the individual findings.
Generated by Claude Code |
|
#239 re-pinned the six standards reusables to 934b879. This branch pins them to 6a92510, which is newer: it also carries hyperpolymath/standards#1258, which scans Project.toml.in as Project.toml. The six `uses:` conflicts keep 6a92510. actions.lock keeps this branch's lock. #239 changed no action reference other than the standards pin (checked: no non-standards `uses:` line differs from 0afa6c9), so this branch's lock is exact for the merged tree. It also keeps the canonical tag refs (setup-deno v2.0.5, setup-bun v2.2.0) that standards' own lock records at 6a92510, where main's copy had the SHA in their `ref:` field. CHANGELOG.adoc and CLAUDE.md merged without conflict. Checked on the merged tree: - check-lock-sync.sh, the repo's copy and standards main's: in sync; - arrival-pack verify.sh (nickel 1.17.0): CLAUDE.md in sync with the deed; - self_name_pass_test.sh: PASS; - standards' check-uuid-v8.sh --strict .: clean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N6my4F3ohjwFReLW8cYYqC
…e" gate (#1260) ## Why The governance UUID gate has checked **version 8 only** since D320 (2026-10-07), but it still runs as **"UUID v7 conformance"**. A red therefore reads as a v7 rule; [hyperpolymath/rsr-template-repo#239](hyperpolymath/rsr-template-repo#239) is a recent example. Your answer (2026-10-14): rename it now, in stages, rather than wait for ADR-008 P4. A one-step rename would break consumers. Live rulesets name `<caller> / UUID v7 conformance`, and `apply-branch-gates.sh` derives contexts from emitted check runs. A renamed job would leave that context waiting forever on every repository whose pin moved past the rename. ## Stage 1 (this PR) only adds - **`governance-reusable.yml`** gains job `uuid-v8-conformance`, named **"UUID v8 conformance"**. It runs the same `check-uuid-v8.sh --strict` check. - The old `uuid-v7-conformance` job stays as a deprecated alias. - Its comment says why it stays, and names the stage 2 and stage 3 steps. - **`tests/test_governance_reusable_shape.sh`** freezes the new name beside the old one. Adding a job is allowed (`gates.json` `context_freeze`). - **The dogfood workflow** `uuid-v7.yml` becomes `uuid-v8.yml`. Its workflow name is now "UUID v8 conformance", and its job is "Reject non-v8 UUID literals". The `actions.lock` key is renamed to match. - It runs only in standards. - It is not a gate workflow in `config/rulesets/gates.json`, so no derived context moves. - **ADR-008** gets an amendment recording the staged plan. Its old "renamed at P4" line now points to that amendment. ## Next stages (yours to run: they change branch protection estate-wide) 2. As consumers move their standards pin past this merge, run `scripts/apply-branch-gates.sh` so that their rulesets require `… / UUID v8 conformance`. 3. Once `scripts/check-required-contexts.sh` shows that no consumer still requires "UUID v7 conformance", delete `uuid-v7-conformance` and remove it from the frozen list. That follow-up is a one-job PR. Until stage 3, consumers run the check twice, about 6 seconds each. ## Verification - `tests/test_governance_reusable_shape.sh`: 14 of 14 (19 jobs, all on `inputs.runs-on`). - `scripts/check-lock-sync.sh`: in sync. `check-workflow-duplicate-keys.sh`: clean. Both workflows parse. - Also passing: `governance-reusable-contract-test.sh`, `check-required-contexts-test.sh`, `check-workflow-staleness-test.sh`, `uuid-v8-test.sh` and `uuid-v7-test.sh`. - `check-uuid-v8.sh --strict .` on this repo is clean. - `lock-selfcheck-test.sh` fails locally exactly as it does on unmodified `main` (1 passed, 4 failed). It needs tools this container lacks; CI runs it. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01N6my4F3ohjwFReLW8cYYqC --- _Generated by [Claude Code](https://claude.ai/code/session_01N6my4F3ohjwFReLW8cYYqC)_ Co-authored-by: Claude <noreply@anthropic.com>




Summary
The template still taught and enforced the 2026-08-26 "Deno is retired" rule. Your 2026-10-14 ruling replaced it, in standards
LANGUAGE-POLICY.adoc§1.3–§1.4, on main since hyperpolymath/standards#1249:package.json;bun.lock,deno.lockandpnpm-lock.yamlare all written byjs-runtimes regen.This PR is the template half of hyperpolymath/standards#1255, which promised it ("rsr-template-repo is next").
One gate contradicted the ruling outright.
runtime-policy.ymlfailed every repository with more than one lockfile, so it failed every repository that follows the ruling:Every repository minted from this template carries that gate (resource-algebra does, for example), so the fix starts here.
Changes
.github/workflows/runtime-policy.yml:bun.lock,deno.lockandpnpm-lock.yamlcount as one dependency graph, locked three ways. Governance'sJS runtimes — …jobs check each lock againstpackage.json.package-lock.jsonnext to them is still "mixed toolchains" and fails.deno.json/deno.jsoncis a notice (your "Notice only" answer), not a warning.ed04132e(engine 0.6.0, #1255):build/just/provision-lib.sh,provision-modes.shandprovision-check.sh.provision.justwas already identical.package.jsonnow provisions bun, deno and pnpm, and deno and pnpm leave the banned tools. The rest is canon's docstrings and the.mise.toml/.tool-versions/ backend checks.arrival-pack.ncl), withCLAUDE.mdregenerated byjust claude-md. Nothing in that file was hand-edited.mise.tomlcomment.docs/SETUP.adocrows PV-W23, PV-W30 and PV-W34, and the dev warm-up's "Languages" line, copied from the canon templates..cursorrules,.clinerulesand.windsurfrules..github/copilot-instructions.md.workflow-linter.ymlandcheck-action-pinning.js.ae36881→934b879(66453bf) for the six standards reusables, fixinggovernance / Actions lockfile verify, which is red onmain.ae36881the gate installs gh-actions-lock v0.1.6, which cannot read this lock's format v0.0.3 ("newer than this binary supports").934b879installs v0.2.0. This is the same change resource-algebra#8 made.actions.lockwas repaired with standards' own scripts, in order:complete-job-refs.sh,close-lock.sh(run offline),prune-stale.sh. The setup-deno and setup-bun records match resource-algebra main's.CHANGELOG.adoc: an entry under Unreleased / Changed.Left as they are:
docs/governance/TEMPLATE-LINEAGE-AUDIT.adoc, a dated audit record.label-classifier.json, which is a migration-label keyword.governance / UUID v7 conformance, red onmaintoo and not caused by this PR. See this comment.RSR Quality Checklist
Required
unsafeblocks without// SAFETY:comments.envfiles includedAs Applicable
CHANGELOGor release notes updatedTesting
Gate, old step against new, extracted from each workflow with yq and run in fixture directories:
bun.lock+deno.lock+pnpm-lock.yamlbun.lock+pnpm-lock.yamlpackage-lock.json+bun.lockpackage-lock.jsonalonedeno.json+deno.lockbun.lockbaloneRepository checks (just 1.42.4, nickel 1.17.0, mikefarah yq 4.44.3, gh-actions-lock v0.2.0):
The doctor's failures here come from the sandbox (no Guix and similar), and they are the same under both engines.
SonarCloud: its quality gate reports Maintainability D and Security C on new code. This environment cannot reach sonarcloud.io, so I have not seen the findings. Most of the new code is the engine, copied byte for byte from standards, where the same change passed Sonar on #1255.
What follows. Repositories minted earlier keep the old
runtime-policy.ymluntil it is re-synced. Any of them that adopts the three-lock layout goes red on Runtime Policy until then.🤖 Generated with Claude Code
https://claude.ai/code/session_01Y6FD63UrriRBHqmhhEca9t
Generated by Claude Code