chore: install agent-ready verify loop (Biome + verify entrypoint + typecheck/lint gates) - #15
Merged
Merged
Conversation
Add biome.json (matched to house style: 2-space, single-quote, semicolons) and apply the one-time formatter pass across cli/, install/, lib/, scripts/. Regenerates the parallel bundle and resyncs plugin/ so diff-guard stays green. Mechanical only — 722 tests pass unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Piqz8qJ21eRpPrmWwxr6fg
Single discoverable pre-PR command: 'bun run verify' runs format check + tests + build in one shot. Adds format/format:check/lint/typecheck/check:advisory scripts, a CI Format Check job, and documents the flow in CONTRIBUTING. Typecheck and lint run as advisory (pre-existing debt); promote to blocking in verify once clean. .git-blame-ignore-revs hides the reformat from blame. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Piqz8qJ21eRpPrmWwxr6fg
show's constraint summary iterated hardcoded software categories, printing 0 constraints for non-software manifolds — it now iterates whatever category keys exist. Also narrows the software|non-software constraints union at its access sites (hook, doctor, migrate, tests) and annotates doctor's action `this`. Clears all 17 pre-existing `tsc --noEmit` errors. No test behavior change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Piqz8qJ21eRpPrmWwxr6fg
With the tsc errors cleared, typecheck now gates: it joins format + test + build in `bun run verify`, and runs as a blocking step in the CI quality job. Lint remains advisory (pre-existing debt) via `bun run check:advisory`. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Piqz8qJ21eRpPrmWwxr6fg
…urns Mechanical cleanup surfaced by enabling Biome lint: node: import protocol, `import type`, removal of unused imports/vars/members, template literals, literal member access, optional chaining, Number.isNaN. Rewrites 9 forEach callbacks that implicitly returned a value as for-of loops, and suppresses one deliberate control-char regex (the ANSI stripper). No behavior change — 722 tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Piqz8qJ21eRpPrmWwxr6fg
Disables two style-opinion rules this codebase deliberately violates (noNonNullAssertion, noExplicitAny) — enforcing them would be disproportionate churn for no correctness gain. With the remaining rules clean, lint joins format + typecheck + test + build in `bun run verify` and blocks in the CI quality job. Removes the now-obsolete check:advisory script. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Piqz8qJ21eRpPrmWwxr6fg
`types: ["bun-types"]` only resolved via a stale hoisted node_modules layout; on a clean install `tsc` fails with TS2688 because the `types` array resolves against node_modules/@types and `bun-types` is a plain (transitive) package. Reference the installed `@types/bun` as `"bun"` instead. Verified against a clean `bun install`; CI typecheck now passes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Piqz8qJ21eRpPrmWwxr6fg
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
Makes the repo agent-ready by installing the load-bearing verify→repair loop rails from an
agent-ready-railsaudit (was 9/12; the engineering-loop rails R1–R3 are now airtight).One command to verify everything:
bun run verify # format + lint + typecheck + tests + build, all gatingThe same checks run in CI (new
qualityjob), so an agent or contributor has a single, discoverable, reproducible gate.Changes (6 commits, reviewable in order)
aa5ebacbiome.jsonmatched to house style + one-time bulk reformat (blame-ignored)6b670acbun run verifyentrypoint + CI format gate +.git-blame-ignore-revsa4a1871showprinted 0 constraints for non-software manifolds — now domain-aware; clears 17 pre-existingtscerrors3b8d6ba6438b8eforEach-returns-a-value callbacks asfor...of48c83d4Notes for review
aa5ebacis a bulk mechanical reformat (93 files, no behavior change). It's isolated in its own commit and listed in.git-blame-ignore-revs, sogit blameskips it. Skim it; review the other five.noNonNullAssertion,noExplicitAny) — the codebase deliberately violates them ~267 times; enforcing would be disproportionate churn for no correctness gain. The gate gears to real-correctness rules.a4a1871):manifold showhard-coded the 5 software constraint categories, silently reporting0fornon-softwaremanifolds. Typecheck caught it.722 tests passat every step.Verification
Remaining audit gap: R5 (scoped trusted tools) — untouched here, separate concern.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Piqz8qJ21eRpPrmWwxr6fg