feat(workspace-config): biome-linter rule — fleet tracks one biome version#43
Conversation
…rsion Adds a workspace-config standard rule so the fleet upgrades biome in lockstep instead of drifting per-repo. - `FLEET_BIOME_VERSION` (lib/workspace-config.mjs) is the single source of truth for the biome version every JS/TS repo tracks. Currently 2.4.16. - new `biome-linter` rule (warn): a repo with a package.json must depend on @biomejs/biome at FLEET_BIOME_VERSION and carry a biome.json/biome.jsonc. The detail line names the exact gap (no dep → still on ESLint; dep but no config; or version drift from the fleet pin). N/A for non-node repos (Python/Rust have no package.json) → never fires there. - both manifest builders (local + remote) now expose `packageJson` and resolve biome.json/biome.jsonc; helpers `cleanVersion` + `biomeVersion` exported. - warn (not error) for rollout — same posture as workflow-security-lint; tighten to error once every node repo is on biome. To move the fleet: bump FLEET_BIOME_VERSION here → `verify-workspace-config` (run across the fleet by protoWorkstacean's fleet-config-audit) flags every repo behind, in CI. 9 new tests (cleanVersion, biomeVersion, N/A, pass, no-dep warn, no-config warn, version drift, biome.jsonc). 60 pass, biome lint clean, smoke OK, self-audit conformant. Docs: reference/workspace-config-standard.md updated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
👀 Quinn is reviewing — verdict (PASS / WARN / FAIL) + findings to follow. |
There was a problem hiding this comment.
QA Audit — PR #43 | feat(workspace-config): biome-linter rule — fleet tracks one biome version
VERDICT: INCONCLUSIVE — CI pending
CI Status
- Lint + smoke test: queued ⏳
Diff Review
bin/verify-workspace-config.mjs:localManifestandremoteManifestboth gainpackageJson(parsed or null). Graceful null on missing/not-a-node-repo.remoteManifestalso addsbiome.json/biome.jsoncto its presence-check set — correct.lib/workspace-config.mjs:FLEET_BIOME_VERSION = '2.4.16',cleanVersion,biomeVersionhelpers exported. Newbiome-linterrule (warn): skips non-node repos via!m.packageJsonguard, checks dep presence → config presence → version match viacleanVersion. Detail lines are clear and actionable.fixcommand embeds the fleet pin inline — good.docs/reference/workspace-config-standard.md: Table row added, rationale section covers non-node N/A and the upgrade flow.test/workspace-config.test.mjs: 9 new cases covering N/A, pass-on-fleet-version, no-dep warn, no-config warn, version-drift warn, andbiome.jsonc. HelpernodeManifestis clean.
Structural review (clawpatch)
- Unavailable (gateway 502 on branch ref). Manual review substituted.
Observations
- LOW:
remoteManifestusesgh apifallback to null silently on any error — including a transient network failure, not just "file absent." The behavior is intentionally lenient (non-node repos have nopackage.jsonon GitHub), but worth noting: a 403 on a private repo would also silently fall through. Unlikely to matter for this tool's fleet context, but documented. - MEDIUM/INFO:
WORKFLOW_SECURITY_LINT_PATHis imported in tests but unused in the diff — likely pre-existing dead import.
CodeRabbit
- No unresolved threads.
CI must reach a terminal state before a formal PASS/FAIL verdict is issued. Will re-review once Lint + smoke test completes.
— Quinn, QA Engineer
|
Submitted COMMENT review on |
What
Adds a workspace-config standard rule so the fleet tracks one biome version together — bump it in a single place and every JS/TS repo that's behind gets flagged in CI, instead of biome drifting per-repo.
FLEET_BIOME_VERSION(lib/workspace-config.mjs) — the single source of truth for the biome version the fleet tracks (currently2.4.16, matching protoWorkstacean + release-tools).biome-linterrule (warn): a repo with apackage.jsonmust depend on@biomejs/biomeatFLEET_BIOME_VERSIONand carry abiome.json/biome.jsonc. The detail line names the exact gap:@biomejs/biomedep → still on ESLint, or unlintedbiome.jsonpackage.json) → never fires there.gh api) now exposepackageJsonand resolvebiome.json/biome.jsonc;cleanVersion+biomeVersionhelpers exported.warn(not error) for rollout — same posture asworkflow-security-lint; tighten toerroronce every node repo is on biome.How the fleet moves together
Bump
FLEET_BIOME_VERSIONhere → protoWorkstacean'sfleet-config-audit(which runsverify-workspace-config --repoacross every watched repo) flags everyone behind. Single bump, fleet-wide signal.Verification
npm test— 60 pass / 0 fail (9 new:cleanVersion,biomeVersion, N/A, pass-on-fleet-version, no-dep warn, no-config warn, version-drift warn,biome.jsonc)biome lint .clean;npm run smokeOKverify-workspace-config) — conformant (release-tools is on biome 2.4.16)reference/workspace-config-standard.mdupdated (table row + rationale)Follow-up
The
fleet-config-auditconsumesgithub:protoLabsAI/release-tools(main), so this is live for the fleet audit on merge. A release-tools version bump/release would surface it to npm@protolabsai/release-toolsconsumers too.🤖 Generated with Claude Code