fix(ci): Bun-first runtime policy; retire two gates that enforced the opposite - #35
Conversation
… opposite Authority: standards LANGUAGE-POLICY.adoc §1 (added 2026-07-29) -- Bun > Deno > pnpm > npm. REPLACED npm-bun-blocker.yml -> runtime-policy.yml The old gate failed any build carrying bun.lockb with 'npm/bun artifacts detected. Use Deno instead.' It blocked what is now the FIRST-choice runtime and mandated the second. Present in 55 repos; zero repos had adopted Bun, because adopting it would have turned them red. The replacement fails on something real -- MIXED TOOLCHAINS, two package managers' lockfiles in one repo, i.e. two dependency graphs that can disagree -- and reports the tier in use otherwise. npm is tier 4 but PERMITTED, so it warns rather than blocks. Red-teamed both directions before shipping: none/bun/deno/npm alone -> exit 0; bun+npm and deno+pnpm -> exit 1. DELETED ts-blocker.yml It enforced 'use ReScript instead'. ReScript is itself retired estate-wide, so it policed a dead alternative. Worse, it could not fail: it diffed git diff HEAD~1 on a depth-1 checkout, where HEAD~1 does not exist, sent the error to /dev/null and used || true -- so the match set was ALWAYS empty. Measured 20/20 runs green; it has never once fired. Neither workflow is a required status check in any ruleset, so removing them creates no phantom context. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
|
Note Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime. Code Review ✅ ApprovedReplaces obsolete CI policy gates with a Bun-first runtime validator that checks for mixed toolchains. No issues found.
OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
|
|
…lidator (#37) Both the human receipt and the machine state were stale at 2026-07-21 — still describing ET-2 as open. **AFFIRMATION.adoc** — claims re-run at this SHA: audit 12/12 → **22/22**; ET-2 closed; η partially landed; ADR-0002 accepted. The *do-not-claim* section is rewritten so none of it can be over-read — ET-2 is **β-only** (η excluded, ET-3 untouched), the η extension is **not finished** (normalizer open, issue #32), and ADR-0002 decides a **definition, not a theorem**. **STATE.a2ml** — completion 32 → 46, Phase 2 65 → 88 with the remaining 12% explained; issues #30/#32 added; next-actions rewritten with the η **attack order** (adjSwp before adjWkv — same reshaping idiom, smaller instance; wkNfE_etaNe in parallel). **validate-template.sh** — dropped `npm-bun-blocker.yml`/`ts-blocker.yml` from required workflows. PR #35 deliberately retired both under the Bun-first policy, so the template check was contradicting your own ruling and exiting 1. Now passes. Plus two pre-existing missing SPDX headers. All gates real exit 0 at this SHA. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>



Authority:
standards/LANGUAGE-POLICY.adoc§1 — Bun > Deno > pnpm > npm.Replaced
npm-bun-blocker.yml→runtime-policy.yml. The old gate failed any build carryingbun.lockbwith "Use Deno instead" — blocking the new first choice and mandating the second. It was in 55 repos, and zero repos had adopted Bun, because doing so would have turned them red.The replacement fails on something real — mixed toolchains (two package managers' lockfiles, i.e. two dependency graphs that can disagree) — and reports the tier in use otherwise. npm is tier 4 but permitted, so it warns rather than blocks. Red-teamed both ways: none/bun/deno/npm alone → exit 0; bun+npm and deno+pnpm → exit 1.
Deleted
ts-blocker.yml. It enforced "use ReScript instead" — ReScript is itself retired — and it could not fail:git diff HEAD~1on a depth-1 checkout, error to/dev/null,|| true. 20/20 runs green, never once fired.Neither is a required status check anywhere, so this creates no phantom context.
🤖 Generated with Claude Code