Your coding agent, on a leash
An opinionated full-stack scaffold with strong guardrails for AI-assisted development. TDD enforcement, architectural constraints, and code quality automation — because good constraints produce good code.
State machine forces Red-Green-Refactor cycle. Blocks file edits until tests fail first. Per-agent isolation via transcript-hashed log files.
hooks + state machineUnit tests enforce a 10ms limit. Forces pure business logic — no I/O, no accidental imports. Auto-retry for transients, flamegraph SVG on failure.
pytest hookCustom Python scripts walking ASTs, running as pre-commit hooks. Brand colors, unused routes, soft deletes, dynamic imports, and more.
ast + pre-commitPostgreSQL job queue using FOR UPDATE SKIP LOCKED. Exponential backoff retries, handler registration, hot reload in dev. No external broker.
postgresql + asyncioParallel development with deterministic port hashing. Each git worktree gets its own FastAPI port, Vite port, and Supabase instance.
init.sh + cksumVite + FastAPI + React with a server-to-client initial data bridge. render_page() → data-initial → useInitialData(). Type-safe from Pydantic to TypeScript.
vite + fastapi + reactinit.sh installs dependencies, starts Supabase, configures your environment, and installs the pre-commit hook. Then dev starts Vite, FastAPI, and the worker with hot reload.
An unconstrained agent skips tests, makes sweeping changes, and produces code that works in isolation but breaks in context. The TDD guard exists because freedom doesn't scale.
The 10ms timeout forces unit tests to be pure logic. The e2e harness ensures full integration. The pre-commit hook runs everything. If it isn't tested, it doesn't exist.
Instead of configuring complex YAML, write a Python script that walks an AST. A script is easier to write, debug, and explain than a configuration.
Backend, frontend, database migrations, lint rules, tests, and CI all live together. Changes that cross boundaries are normal, not exceptional.