Skip to content

chore: install agent-ready verify loop (Biome + verify entrypoint + typecheck/lint gates) - #15

Merged
dhanesh merged 7 commits into
mainfrom
chore/agent-ready-rails-verify-biome
Jul 4, 2026
Merged

chore: install agent-ready verify loop (Biome + verify entrypoint + typecheck/lint gates)#15
dhanesh merged 7 commits into
mainfrom
chore/agent-ready-rails-verify-biome

Conversation

@dhanesh

@dhanesh dhanesh commented Jul 4, 2026

Copy link
Copy Markdown
Owner

What

Makes the repo agent-ready by installing the load-bearing verify→repair loop rails from an agent-ready-rails audit (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 gating

The same checks run in CI (new quality job), so an agent or contributor has a single, discoverable, reproducible gate.

Changes (6 commits, reviewable in order)

Commit What
aa5ebac Adopt Biome formatter — biome.json matched to house style + one-time bulk reformat (blame-ignored)
6b670ac Add bun run verify entrypoint + CI format gate + .git-blame-ignore-revs
a4a1871 fix: show printed 0 constraints for non-software manifolds — now domain-aware; clears 17 pre-existing tsc errors
3b8d6ba Promote typecheck to blocking in verify + CI
6438b8e Apply Biome lint autofixes + rewrite 9 forEach-returns-a-value callbacks as for...of
48c83d4 Enforce lint: gate it in verify + CI

Notes for review

  • aa5ebac is a bulk mechanical reformat (93 files, no behavior change). It's isolated in its own commit and listed in .git-blame-ignore-revs, so git blame skips it. Skim it; review the other five.
  • Two lint rules are disabled by design (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.
  • One real bug fixed (a4a1871): manifold show hard-coded the 5 software constraint categories, silently reporting 0 for non-software manifolds. Typecheck caught it.
  • No runtime behavior change beyond that fix — 722 tests pass at every step.

Verification

$ bun run verify
✓ format   (108 files, no fixes)
✓ lint     (0 blocking)
✓ typecheck (0 errors)
✓ 722 pass / 0 fail
✓ build + plugin sync clean

Remaining audit gap: R5 (scoped trusted tools) — untouched here, separate concern.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Piqz8qJ21eRpPrmWwxr6fg

dhanesh and others added 7 commits July 4, 2026 15:07
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
@dhanesh
dhanesh merged commit 8bbbae2 into main Jul 4, 2026
10 checks passed
@dhanesh
dhanesh deleted the chore/agent-ready-rails-verify-biome branch July 4, 2026 13:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant