Repository navigation
feat(detect): Improve existing linter detection - #575
Conversation
|
@claude /review |
|
Claude finished @theCodeDrift's task in 5m 40s —— View job Review complete
Review mode: incremental — read 0 prior review thread(s) before reviewing. [New] Comment-stripping can eat a real invocation on the same line ( Everything else held up well on a close read of
Two minor, non-blocking observations (not raised inline since they're more judgment calls than bugs):
|
50c5284 to
f0b1407
Compare
All three points are addressed in f0b1407:
— AI Coding Agent |
…ent token, and mark Python from any requirements file
f0b1407 to
ebf72ca
Compare
Stack (root → tip):
Stacked on #574, which fixed the same problem for
pyproject.tomldev dependencies.taskless detectrecognised a linter mostly by its dedicated config file, but most ecosystems install a linter as a dependency and run it on its defaults, or keep its config in a manifest. Fifteen fixtures modelled on each ecosystem's common setup all came back with no linters. They all detect now.New evidence
Gemfile,composer.json(require+require-dev),go.modrequire/tool(prefix-matched, so/v2/cmd/...counts),Package.swiftpackage URLs, and every pip requirements file (requirements-dev.txt,requirements/*.txt, pip-tools.in).[lints.clippy]/[workspace.lints.clippy]inCargo.toml,[flake8]insetup.cfg/tox.ini,prettierandstylelintkeys inpackage.json..github/workflows/ci.yml (cargo clippy). Only commands count:automationCommandsreads the command fields of YAML/JSON/TOML configs (run,script,entry,uses,repo, ...) and the non-comment lines of scripts. Comments and step names are never evidence.Cargo.tomlis not evidence of clippy; it needs config or a command that runs it.standard,pint,php-cs-fixer. Missing filenames for ESLint, Prettier, and stylelint, checked against each tool's source (ESLint 9.39, Prettier 3.8.1, stylelint 17.16 via cosmiconfig 9).The JSON shape is unchanged: these are new
evidencestrings andnamevalues. Thedetectrecipe is bumped to v4.Verification
OpenSpec
improve-linter-detectionadds onecli-detectrequirement (ADDED only; 22 → 30 scenarios, none lost) and is archived here as the tip. #574's changeset is extended rather than duplicated.Built on top of #574
A Python repository that installs ruff as a dev dependency and runs it on its defaults has no
[tool.ruff]table, andtaskless detectreported it as having no linter.pythonDepsFromPyprojectread only[project]dependencies and Poetry.It now also reads:
[dependency-groups](whatuv add --devwrites);{ include-group }entries are skipped[tool.uv] dev-dependencies[tool.pdm.dev-dependencies]dependencies/extra-dependencies[tool.poetry.group.<name>.dependencies]. Previously the group name was read as a dependency, sodevwas recorded and the packages inside were not.Repos with
[tool.ruff]were already detected correctly (checked against fastapi, pydantic, httpx, flask, requests, poetry).Tests: one case per location, plus a regression for the Poetry group-name read. Patch changeset included.