build-artifacts-not-ignored
Build outputs and caches (.next/, dist/, coverage/...) must be gitignored, never committed.
Applies to: Project-level
Why this matters
Generated directories regrow on every build. Committing one bloats the repo for every clone forever (a .next/ cache can hit gigabytes in a week), churns every diff, and guarantees merge conflicts on files nobody wrote. One .gitignore line ends the whole problem class.
Catch it before it ships
pip install stablestack # or: npx stablestackstablestack # scans your project, PROJ009 includedstablestack explain PROJ009False positive in your codebase? Suppress a single line with # noqa: PROJ009
More Project Setup checks
missing-ai-context-file
Projects edited by AI assistants should ship a context file (CLAUDE.md, AGENTS.md, .cursorrules, or equivalent)
PROJ002missing-git
Projects should use git for version control
PROJ003pyright-config
Project should have a pyright configuration with sensible defaults.
PROJ004beta-dependencies
Pre-release dependency may have stability issues
PROJ005gitignored-claude-md
CLAUDE.md should not be gitignored — it belongs in version control.
PROJ006firm-alias-commit-author
Commits are authored under a firm or team alias instead of a specific person
PROJ007low-test-coverage-ratio
Codebase has a large amount of hand-written source code but very few automated tests
PROJ008macos-fork-safety-missing
Shell script starts gunicorn/uvicorn/flask with reload but doesn't export OBJC_DISABLE_INITIALIZE_FORK_SAFETY — macOS devs will see 'Python quit unexpectedly' popups on every worker reload.