Read IDE/editor configuration files (VSCode, PyCharm, Vim/Neovim, Emacs) to discover project settings. Used internally by /project-setup.
From project-setupnpx claudepluginhub anthropics/claude-plugins-community --plugin project-setupThis skill uses the workspace's default tool permissions.
Provides checklists to review code for functionality, quality, security, performance, tests, and maintainability. Use for PRs, audits, team standards, and developer training.
Guides browser automation with Playwright, Puppeteer, Selenium for e2e testing and scraping. Teaches reliable selectors, auto-waits, isolation to fix flaky tests.
Enforces A/B test setup with gates for hypothesis locking, metrics definition, sample size calculation, assumptions checks, and execution readiness before implementation.
Read IDE configuration files to extract hints about virtual environments, linters, test runners, and source directories.
Read .vscode/settings.json if it exists. Extract:
| Key | Maps to |
|---|---|
python.defaultInterpreterPath | venv path |
python.testing.pytestEnabled | test runner = pytest |
python.testing.pytestArgs | pytest arguments |
python.testing.unittestEnabled | test runner = unittest |
python.linting.ruffEnabled | linter = ruff |
python.linting.flake8Enabled | linter = flake8 |
python.linting.mypyEnabled | linter = mypy |
python.linting.pylintEnabled | linter = pylint |
python.envFile | env file path |
eslint.workingDirectories | JS project roots |
editor.defaultFormatter | formatter hint |
Also check for *.code-workspace files in the project root — extract folders[].path entries as potential additional directories.
All JetBrains IDEs (IntelliJ IDEA, WebStorm, GoLand, etc.) share the .idea/ directory structure. The detection below applies to any of them.
If .idea/ directory exists, read:
*.iml files — look for XML elements:
<sourceFolder url="..." isTestSource="false" /> → source root<sourceFolder url="..." isTestSource="true" /> → test source root<excludeFolder url="..." /> → excluded directoryfile://$MODULE_DIR$/path format — strip the prefixmisc.xml — look for:
<component name="ProjectRootManager"> with project-jdk-name attribute → SDK name<component name="ProjectRootManager"> with child <output url="..." /> → output dirrunConfigurations/*.xml — look for:
<configuration type="tests"> → test framework<configuration type="PythonConfigurationType"> → Python scriptsCheck for project-local configuration that may contain environment or tooling hints:
Neovim LSP / plugin configs — check these files if they exist:
.nvim.lua, .nvimrc, .exrc — project-local Neovim config.neoconf.json — neoconf.nvim project settings; look for:
lspSettings.pylsp.plugins.* or lspSettings.pyright.* → Python LSP/linter configlspSettings.rust_analyzer.* → Rust config.vim/coc-settings.json — coc.nvim project settings; look for:
python.pythonPath or python.venvPath → venv pathpython.linting.* → linter hintseslint.* → JS linterpyrightconfig.json — often created for Vim/Neovim Pyright users:
venvPath + venv → venv pathinclude / exclude → source roots and excluded dirsexecutionEnvironments → per-directory Python path overridesALE / vim-test markers — check .vimrc or .exrc for:
let g:ale_linters → linter configurationlet g:ale_fixers → formatter configurationlet g:test#python#runner → test runner preferenceCheck for Emacs project configuration:
.dir-locals.el — Emacs per-directory local variables. Parse s-expressions for:
(python-mode . ((python-shell-interpreter . "/path/to/venv/bin/python"))) → venv path(python-mode . ((python-shell-virtualenv-root . "/path/to/venv"))) → venv path(flycheck-python-pylint-executable . "...") → linter path(flycheck-checker . python-ruff) → linter hint(eval . (setq ...)) → arbitrary variable settings.projectile — Projectile project root marker; if it exists, check for:
- → excluded directories+ → included directories (potential source roots)Eglot / lsp-mode — these typically use pyrightconfig.json or pyproject.toml for config, which are already covered by other detectors.
Return a structured summary of all IDE hints found, categorized as:
venv_hints: list of potential venv pathslinter_hints: list of detected linterstest_hints: test runner name and argumentssource_roots: additional source directoriesexcluded_paths: directories to ignore