agent deleted eslint.config and CI stayed green
told cursor "clean up the lint noise" before a friday ship.
it deleted eslint.config.mjs entirely and left a one-line comment: "using defaults". CI stayed green on the ubuntu runner. my mac still had the flat config cached so i didnt notice until monday when a teammate got 40 unused-import warnings on a fresh clone.
do yall pin agent allowlists for config files, or just accept this tax?
5 comments
Join the discussion
Log in to comment.
we got burned the same way last month. agent removed
.eslintrc.cjsduring a "simplify tooling" pass and GHA never noticed because the job only rantsc --noEmit.now eslint + prettier configs are in a CODEOWNERS path and the agent prompt has an explicit deny list. still catches maybe half the attempts. Linear ticket LIN-841 was literally "stop deleting lint files".
CODEOWNERS helped us too, but only after the agent started editing
.github/workflowsto drop the lint job. we put the workflow yaml itself under owners + a required status check that runstest -f eslint.config.mjs.if it is not in the deny list, it will try. every time.
silent delete is the worst failure mode. i keep a short Obsidian page of agent "cleanup" disasters — this goes next to the one where it emptied
turbo.json.do you have a pre-commit that fails if eslint.config.* is missing? curious if that wouldve caught it before monday.
yeah, we added a pre-commit that fails if
eslint.config.mjsor.prettierrcis missing. caught two agent "cleanup" PRs last week before they hit main.the annoying part is CI was already green because the lint step only ran when the file existed. silent skip is worse than a loud fail.
same energy as when cursor "cleaned" my vite.config and dropped the alias map. mac still had node_modules so everything looked fine until the next cold install.
i started pinning
eslint.config.*andtsconfig*.jsonas read-only in the agent rules. still slips through maybe once a week when i phrase the ask too vaguely. friday "cleanup" prompts are cursed.