Skip to content

fix(biome): move file scope out of the shared base (v1.0.1) - #70

Merged
kyle-sexton merged 1 commit into
mainfrom
fix/biome-base-no-file-scope
Jul 7, 2026
Merged

fix(biome): move file scope out of the shared base (v1.0.1)#70
kyle-sexton merged 1 commit into
mainfrom
fix/biome-base-no-file-scope

Conversation

@kyle-sexton

@kyle-sexton kyle-sexton commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Found while converting medley (the Layer-1 pilot consumer) to @melodic-software/biome-config: Biome unions files.includes across extends — verified empirically, not documented prominently — so the base's ["**", "!**/packages.lock.json"] overrode medley's deliberately narrow files.includes and widened its scan to every JSON file in the repo (17 spurious formatter findings).

File scope is per-repo policy, not shared ruleset:

  • modules/typescript/biome.json (the package's staged source) ships no files block.
  • The NuGet-lockfile exclusion moves to this repo's root biome.jsonc stub — the layer that actually scans fixtures/dotnet (where packages.lock.json lives, from feat(dotnet): enable NuGet lock files in the overlay #59) — with the rationale recorded at both sites.
  • Package bumped to 1.0.1 (publish fires on merge; the drift tripwire would otherwise fail the next run, by design).
  • Package README documents the consumer contract: own your files block.

Verification

  • Stub layer: biome check fixtures/dotnet/ → 0 files processed (exclusion intact).
  • Module alone (negative test): processes fixtures/dotnet/bad/packages.lock.json and reports a format diff — proving the stub is now the excluding layer.
  • fixtures/typescript/good clean under the module config (CI lane path).
  • markdownlint clean.

The medley conversion PR follows, pinned to 1.0.1.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GbDWhcUtduCejgi7mcbMfy


Note

Low Risk
Config packaging and documentation only; no runtime or security logic—consumers must add their own files block when upgrading.

Overview
Fixes shared Biome config so consumers can define their own scan scope without Biome unioning files.includes from extends and widening lint/format to extra files (e.g. all JSON in medley).

modules/typescript/biome.json no longer ships a files block—only linter/formatter rules stay in the shared SSOT. biome.jsonc at the repo root now owns files.includes with !**/packages.lock.json for this repo’s dotnet fixtures, with comments explaining why scope is per-repo.

@melodic-software/biome-config is bumped to 1.0.1; the README documents that extenders must define their own files block.

Reviewed by Cursor Bugbot for commit 7602bd2. Bugbot is set up for automated code reviews on this repo. Configure here.

@claude

claude Bot commented Jul 7, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 0s —— View job


I'll analyze this and get back to you.

Converting medley to the package surfaced a merge gotcha: Biome UNIONS
files.includes across extends, so the base's ["**", ...] silently
widened the consumer's deliberately narrow scan to the whole repo. File
scope is per-repo policy, not shared ruleset — the base now ships no
files block (contract recorded in the package README), and the NuGet
lockfile exclusion moves to this repo's root stub, the layer that
actually scans the dotnet fixtures. Verified both ways: the stub still
skips fixtures/dotnet lockfiles (0 files processed); the module alone
now processes them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GbDWhcUtduCejgi7mcbMfy

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Risk: low. Cursor Bugbot completed successfully with no findings requiring human review. Approved; no reviewers assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

@kyle-sexton
kyle-sexton merged commit cfdcb6a into main Jul 7, 2026
38 checks passed
@kyle-sexton
kyle-sexton deleted the fix/biome-base-no-file-scope branch July 7, 2026 04:26
kyle-sexton added a commit that referenced this pull request Jul 7, 2026
## Summary

Closes out the activation checklist record after tonight's completion:
App access fully done and verified (selected-repos flip, public App,
personal-account installation proven by all four kyle-sexton sync legs
minting tokens, local PEM deleted per key-hygiene guidance); both
Layer-1 packages published and public (`biome-config@1.0.1` post-#70,
`tsconfig@1.0.0`); full-fleet Layer-2 rollout merged across both
accounts, with the first fleet pass's consumer customizations routed
upstream (#58, #69). Remaining opens, each with an owner: the read-only
marking (engine feature) and medley#1243 (Layer-1 pilot, in review).

## Verification

markdownlint (module config) + editorconfig-checker clean.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01GbDWhcUtduCejgi7mcbMfy

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Documentation-only status changes with no runtime, auth, or deployment
impact.
> 
> **Overview**
> Updates the **gated activation checklist** in
`config-distribution-plan.md` to reflect work completed 2026-07-06/07.
> 
> **GitHub App + access** is marked fully done: org install limited to
selected repos (API-verified), App public, personal-account install
proven by all four `kyle-sexton` sync legs minting tokens, and the local
private key removed after secrets validation.
> 
> **Layer-1** narrative now states both packages are published and
public (`biome-config@1.0.1`, `tsconfig@1.0.0`), with the open work
narrowed to checking off the parent item when **medley#1243** merges.
> 
> **Layer-2** is recorded as a **full-fleet rollout** across both
accounts (not only org targets), including examples of consumer
customizations routed upstream on the first pass. The only remaining
blocker before closing that item is **read-only marking** (header
comments + consumer CODEOWNERS), called out as an engine feature rather
than a rollout step.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
c75c611. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
kyle-sexton added a commit that referenced this pull request Jul 16, 2026
## Summary

Closes decision #70 (Decisions Log:
https://claude.ai/code/artifact/232ecdce-8316-4880-8c0a-dc3c7dcf3a63) —
the upstream half: "add link-check.yml to github-iac" turned out to need
this first.

`melodic-software/github-iac` was the only repo missing `lychee` from
its `managed` list in `distribution/sync-manifest.yml` — every other
`lychee.toml`-carrying repo already had it. That's the actual root cause
of the missing `link-check.yml`: there was nothing to sync from.

The companion `melodic-software/github-iac` PR
(melodic-software/github-iac#132) materializes the synced `lychee.toml`
via this repo's own `distribution/sync-manifest.sh apply` — not
hand-copied — and adds the `.github/workflows/link-check.yml` caller.

## Verification

- `distribution/sync-manifest.sh validate`: passes (21 components, 8
targets).
- `distribution/sync-manifest.sh plan --targets
melodic-software/github-iac`: shows `lychee.toml` as the only new
mapping; every other managed component unchanged (idempotent — confirms
nothing else drifts from this edit).
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