Workflows
Checks are the start. Process is the product.
StableStack doesn't just report findings — it installs the engineering practices that keep AI-assisted teams fast without shipping silent failures: TDD loops, E2E adoption, CI gates, assistant guardrails, and production scaffolds.
A test-driven loop that actually gets used
TDD dies when the feedback loop is slow or when skipped tests quietly pile up. AI assistants make it worse: they generate tests that pass trivially, or skip the ones that fail.
- →Watch mode re-runs checks on every save — red/green feedback in your editor without a CI round-trip.
- →TEST001 keeps the suite honest by flagging skipped and disabled tests before they fossilize.
- →TEST004/TEST005 catch the AI-signature failure of duplicated test helpers drifting apart across files.
- →In Claude Code, the /check command runs the suite and fixes findings as part of the assistant's own loop.
stablestack --watch/repro # repro-first bugfix flow, installed by initPlaywright E2E — from zero to trusted
Most teams know they should have end-to-end tests and never start. The ones that start often build flaky suites nobody trusts.
- →TEST007 detects a web app with no E2E coverage and points at exactly what a minimal Playwright setup needs.
- →TEST006 pushes the single highest-value pattern: capturing browser console errors in every spec — silent client-side failures become test failures.
- →TEST008 and TEST010 keep the suite fast and honest (slow-test markers that fail CI, instant visibility checks that assert nothing).
- →The result is a small suite your team believes: page loads, zero console errors, and the money paths.
stablestack add-playwright # config + the three starter specs/fix-flaky # confirm the flake, classify the cause, fix the rootCI gates that block bad merges
A linter that runs "sometimes, locally" catches nothing. Process only exists when the pipeline enforces it.
- →Pre-commit or pre-push hooks in one command — and StableStack chains onto an existing hook (husky, pre-commit) instead of overwriting it.
- →--ci mode exits non-zero on errors, so the same command gates GitHub Actions, GitLab CI, or any pipeline.
- →Baselines let legacy code adopt gates today: existing findings are grandfathered, new code is held to the bar — a ratchet, not a wall.
- →The /fix-production command (installed by stablestack init) monitors your build after a push and keeps fixing until production is green.
stablestack add-ci # writes the stack-aware GitHub Actions pipelinestablestack hook installstablestack --generate-baseline > .stablestack-baseline.jsonGuardrails for AI-assisted development
AI-written code rarely crashes — it quietly does the wrong thing: silent fallbacks, swallowed exceptions, duplicated modules, drifted types. Human review alone doesn't scale to assistant-speed output.
- →stablestack init wires your repo for assistant-era development: a CLAUDE.md section that teaches the assistant your quality rules, seven slash commands, and config in pyproject.toml.
- →The MCP server exposes checks, explanations, and safe auto-fixes directly to Claude and other MCP clients — the assistant lints its own output before you ever see it.
- →The 146-check suite is built from real incidents in AI-assisted projects: the duplication family, cross-file type drift, silent-failure patterns.
- →Suppressions are surgical and reviewable: # noqa: RULE_ID on a line, never a blanket off-switch.
stablestack initstablestack mcp-server # for Claude Code / MCP clientsProduction patterns in one command
Every team re-implements the same production plumbing — rate limiting, token encryption, LLM response caching — and AI assistants happily generate five different versions of each.
- →add-rate-limiter installs a Redis-backed rate limiter with a decorator API, plus the checker (RATE001/RATE002) that flags endpoints missing it.
- →add-token-manager installs encrypted OAuth token storage with rotation — paired with SEC008, which flags plaintext tokens in your Prisma/SQLAlchemy schema.
- →deterministic-ai installs an LLM call cache so identical prompts stop burning tokens and your pipelines become reproducible (DET009 finds the uncached calls).
- →add-llm-timing and add-admin-dashboard round out observability: latency instrumentation for AI calls and a drop-in health dashboard.
stablestack add-rate-limiterstablestack add-token-managerstablestack deterministic-aiStart with the scan, keep the process
The free tier runs 24 checks instantly, no signup. Every workflow above works from day one.
pip install stablestack && stablestack initBrowse all 146 checks →