Skip to content

chore(biome): make noExplicitAny an error outside specs and mocks - #682

Merged
goosewobbler merged 1 commit into
mainfrom
chore/biome-no-explicit-any
Oct 22, 2026
Merged

goosewobbler merged 1 commit into
mainfrom
chore/biome-no-explicit-any

Conversation

@goosewobbler

@goosewobbler goosewobbler commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Description

Biome's suspicious/noExplicitAny goes from a warning to an error for all .ts files. Specs (**/*.spec.ts) and **/mocks/*.ts keep it off, as before. This is the same move as #679 for braces: a convention that was only prose (it was in #673's AGENTS.md draft) is now enforced, so #673 drops the line.

There were exactly three warnings, all in source:

Site Change
notes/src/llm/openai.ts schema: options.schema as any Cast removed. options.schema is JSONSchema, which is already Record<string, unknown>, the type the SDK's json_schema.schema takes.
publish/src/stages/verify.ts (crates.io and pub.dev) (error as any).fatal 'fatal' in error && error.fatal, which narrows without a cast and keeps the same truthiness check.

No behaviour changes.

Related Issue(s)

None. Follows the review of #673, where the "avoid any" line was better enforced than written down.

Type of Change

  • feat — New feature
  • fix — Bug fix
  • docs — Documentation change
  • refactor — Code refactoring
  • test — Adding or updating tests
  • chore — Maintenance, dependencies, tooling
  • Breaking change — Requires major version bump

Scope

  • @releasekit/version
  • @releasekit/notes
  • @releasekit/publish
  • @releasekit/release
  • @releasekit/config
  • @releasekit/core
  • CI / workflows
  • Root / monorepo

Checklist

  • Lint passes (pnpm lint)
  • Tests pass (pnpm test)
  • Typecheck passes (pnpm typecheck)
  • Documentation updated (if applicable)
  • Breaking changes noted in description

Testing Notes


Generated by Claude Code

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; no actionable issues were found.

Summary

Makes noExplicitAny an error in TypeScript source.

  • TypeScript linting now rejects explicit any outside specs and mocks.

No actionable issues found. Tests and builds were not run during this review.

Reviews (1) · Last reviewed commit: "chore(biome): make noExplicitAny an erro..." · Reviewed by Greptile

The three source uses go: the OpenAI schema cast was redundant (JSONSchema is
already Record<string, unknown>), and verify's fatal check narrows with `in`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e
goosewobbler pushed a commit that referenced this pull request Oct 22, 2026
…y rule

#682 makes noExplicitAny an error, so the rule no longer needs prose.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e
@github-actions

Copy link
Copy Markdown
Contributor

Standing release PR: #614 · v0.42.0 queued (4 packages) · open 82d 1h 22m · ✅ ready to merge

Release Preview — v0.41.2 → v0.41.3

Note: Labels on this PR are advisory in standing-pr mode. Bumps come from conventional commits in the standing PR; override by editing labels on the standing PR itself. Add release:immediate to bypass the standing PR and release this PR directly.

These changes will be added to the release PR (#614) when merged:

Changelog

monorepo 0.41.2 → 0.41.3

Changed

  • make noExplicitAny an error outside specs and mocks (biome)

All packages → 0.41.3 (sync versioning)

  • @releasekit/version
  • @releasekit/notes
  • @releasekit/publish
  • @releasekit/release

After merge — predicted release

No version escalation — this PR's changes will be included in the queued release without affecting the projected versions.

Package Standing PR This PR After merge
monorepo 0.42.0 0.41.3 0.42.0

Updated automatically by ReleaseKit

@goosewobbler
goosewobbler merged commit 460ddbd into main Oct 22, 2026
31 checks passed
@goosewobbler
goosewobbler deleted the chore/biome-no-explicit-any branch October 22, 2026 19:43
@github-actions github-actions Bot mentioned this pull request Oct 22, 2026
goosewobbler added a commit that referenced this pull request Oct 22, 2026
* docs: add commands and gotchas to AGENTS.md, and drop CLAUDE.md

AGENTS.md keeps the architecture invariants and gains what an agent can't
infer from the tree: the checks to run before pushing (there's no pre-push
hook), why a one-package run can test stale dist/, that a package's own lint
script skips ESLint, which suites only CI runs, and three gotchas: Turborepo's
strict env mode drops opt-in variables such as RELEASEKIT_NOTES_E2E, Vitest
hides output when it detects an agent, and Biome finds no files in a worktree
under .claude/. It also lists the conventions the linters don't check.

Claude Code reads AGENTS.md itself when there's no CLAUDE.md, and the
claude-code-action pin installs a version that does, so the CLAUDE.md that
only imported AGENTS.md goes.

CONTRIBUTING.md asked for Node 18, while the packages need 22, and said
there's no ESLint. It also claimed `pnpm --filter ... build` builds a
package's dependencies, linked a BOOTSTRAP.md that no longer exists, and
showed a package layout most packages don't match. The PR template and the
commit scopes gain @releasekit/release, and the bug report's Node placeholder
moves to a supported version.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

* docs(agents): point the braces rule at #666

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

* docs(agents): say which suites pnpm test skips

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

* docs(agents): drop the braces rule now that Biome enforces it (#679)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

* docs(contributing): require pnpm 12 and drop the .nvmrc aside

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

* docs(agents): trim commands to what an agent can't infer; drop the any rule

#682 makes noExplicitAny an error, so the rule no longer needs prose.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

* docs(agents): drop the Vitest version from the reporter gotcha

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HQN3v9Z4f1mu3xK4Z7K44e

---------

Co-authored-by: Claude <noreply@anthropic.com>
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.

2 participants