From 2c19e9e309fc0948b6dd4a29cae72f6e97b118f4 Mon Sep 17 00:00:00 2001 From: RyuseiTaniguchi Date: Sat, 29 Aug 2026 18:14:22 -0700 Subject: [PATCH] chore(lint): ignore .claude/worktrees, the way .stryker-tmp already is MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Claude Code checks agent worktrees out under .claude/worktrees — full copies of the repo. They are ignored by git via .git/info/exclude, but ESLint 9's flat config does not read git's ignore files, so every finding repeats once per worktree. Observed on main today: 246 problems, all 628 reported files under .claude/worktrees, from one worktree. CI starts from a clean checkout, so the failure is invisible where it would be caught and constant where it is most annoying, and it buries any genuine finding. Exactly the mechanism fixed for .stryker-tmp in #92, so it goes in the same list with the same reasoning. pnpm lint returns to clean. --- eslint.config.mjs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/eslint.config.mjs b/eslint.config.mjs index fdbdf3f..0e0b6de 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -23,6 +23,12 @@ const eslintConfig = defineConfig([ // repeats every finding once per sandbox and fails the run on code that // is not ours to fix. ".stryker-tmp/**", + // Claude Code checks agent worktrees out here — full copies of the repo, + // ignored by git via .git/info/exclude. Same problem as .stryker-tmp: + // every finding repeats once per worktree, and the noise buries real ones. + // CI starts from a clean checkout, so this is invisible there and constant + // locally, which is the worst way round. + ".claude/worktrees/**", ]), ]);