ci: pin just@1.34.0 in build-gossamer-gui — Tooling Version Integrity (cf. burble#39)#270
Open
hyperpolymath wants to merge 1 commit into
Open
ci: pin just@1.34.0 in build-gossamer-gui — Tooling Version Integrity (cf. burble#39)#270hyperpolymath wants to merge 1 commit into
hyperpolymath wants to merge 1 commit into
Conversation
Unversioned `tool: just` resolves via taiki-e/install-action's bundled manifest, which can ship an old just (<1.19.0). The Justfile uses `import? "contractile.just"` (just >= 1.19.0), so an old just dies with `error: Unknown start of token` and the build silently breaks — the exact root cause of the dead Elixir gate in burble#39, here armed in another repo. Estate Tooling Version Integrity policy: never install a rhyming-family tool unversioned. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
hyperpolymath
added a commit
to hyperpolymath/standards
that referenced
this pull request
May 17, 2026
…sson (#94) ## Why For months a burble Elixir test gate was bolted open on the belief the suite was failing. It never ran: CI installed an unpinned `just` (1.14.0), the Justfile used `import?` (needs ≥1.19.0), so `just` died at parse time. A runner-layer crash misdiagnosed as inner-layer test failure, frozen by a `continue-on-error` on a wrong root cause. This PR makes that class of failure structurally impossible estate-wide. ## What - **`TOOLING-VERSION-INTEGRITY-POLICY.adoc`** — 5 rules + post-mortem: pin family tools; declare the min-version floor in-file; gates prove execution not exit-0; every soft-gate explained (dated suppression *or* `by-design:`); resolve at source. - **`tasks/tooling-integrity-lint.sh`** — R0 `just ≥ 1.19.0` floor (blocking when `just` present — the execution-proof check an in-file guard structurally *cannot* do, since `import?` fails at parse time), R1 unversioned family-tool install (blocking), R4 unexplained `continue-on-error` (**advisory-first** per the estate's own gating doctrine, `--strict` to enforce). Self-tested against standards/burble/hypatia. - **`contractiles/must/Mustfile`** — canonical dependency-free `tooling-version-integrity` check; propagates to every repo adopting the canonical `must` contract. - **`Mustfile`** — this repo dogfoods the full lint. - **`Justfile`** — Rule-2 floor annotation. ## Rollout context P1+P2 of a full rollout. P0 (live armed instance) shipped: hyperpolymath/hypatia#270. Remaining: propagate the pinned-install snippet through canonical CI templates + estate re-adoption sweep (tracked separately). The `contractile` generator repo is out-of-band — `contractiles/` source edited here; regen/propagation tracked in the sweep issue. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: hyperpolymath <hyperpolymath@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 (1M context) <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
build-gossamer-gui.ymlinstalledtool: justunversioned viataiki-e/install-action. That action's bundled manifest can ship an oldjust(e.g. 1.14.0).hypatia/Justfile:10usesimport? "contractile.just"— an optional-import feature requiring just ≥ 1.19.0. An oldjustdies at parse time (error: Unknown start of token) before any recipe runs, silently breaking the build.This is the exact root cause of the long-misdiagnosed dead Elixir test gate in burble#39 (fixed there by pinning
just@1.34.0), here found armed in another repo by an estate-wide sweep.Fix
Pin
tool: just@1.34.0(≥ 1.19.0, supportsimport?) with an explanatory comment referencing the estate Tooling Version Integrity policy.Context
P0 of a full rollout institutionalising this lesson (policy doc in
standards,mustcheck, lint rule, canonical-template propagation). Immediate stop-the-bleeding fix for the only live armed instance found.🤖 Generated with Claude Code