claude-agents-fullstack // toolkit registry

Claude Code toolkit · agents / skills / commands

Seven agents.
One data story.

A personal Claude Code toolkit for shipping fullstack web apps — planning, implementation, data layer, review, tests, and debugging as focused subagents that all follow the same conventions, so nothing they build contradicts anything else.

Next.js App Router · TypeScript strict · PostgreSQL / Drizzle · MongoDB optional · TanStack Query v5 · shadcn/ui · Zod · Vitest

Agents

REGISTRY · 07

Four advisors that only read, three engineers that write. Every one of them enforces the same rules: services own the database (Postgres via Drizzle by default, MongoDB where the domain fits it), Zod guards every boundary, TanStack Query owns client state, and mutations always reconcile the cache.

plannerREAD-ONLY

Turns a feature request into a buildable plan: data model, API surface, query-key and options factories, UI split, tests, and risks — ordered so the app compiles after every step.

spawned first by /new-feature
fullstack-implementerWRITES CODE

Builds the feature bottom-up: Mongoose schema → Zod → service → server action → query/mutation factories → UI on shadcn/ui. Runs typecheck, lint, and tests before reporting.

schema → service → action → data layer → UI
data-layer-engineerWRITES CODE

Owns TanStack Query: key factories, queryOptions / mutationOptions, SSR prefetch with HydrationBoundary, invalidation, optimistic updates — and hunts down every stale-cache bug.

keys.ts · queries.ts · mutations.ts
db-designerREAD-ONLY

Schema design for the queries you actually run — Postgres/Drizzle relations and indexes by default, Mongo embed-vs-reference where the project uses it — with migration plans, tradeoffs, and what each design makes expensive.

Postgres / Drizzle default · Mongo supported
code-reviewerREAD-ONLY

Strict diff review before every commit: NoSQL injection, missing auth on actions, unbounded queries, query-key mismatches, missing invalidations. Verdicts: ship / fix blockers / rework.

Blocker · Should-fix · Nit
test-writerWRITES CODE

Vitest + Testing Library, services first against in-memory Mongo, per-test QueryClient with retries off, actions mocked at the boundary. Every bug fix ships with a regression test.

iterates until the whole suite is green
debuggerREAD-ONLY

Traces a bug through every layer — component → hook → options factory → action → service → Mongoose — and reports root cause at file:line with evidence, a minimal fix, and the test that would have caught it.

which cache is stale: Query or RSC?

Commands

SLASH · 05
new-app Scaffold a fresh app — Next.js, Mongoose, TanStack Query providers, shadcn init, Vitest — verified with a booting dev server and a live /api/health. follows web-app-scaffold
new-feature Plan first, wait for approval, then implement, then cover with tests. Nothing is written before you sign off on the plan. spawns planner (+ db-designer) → fullstack-implementer / data-layer-engineer → test-writer
review Strict review of the working tree, findings grouped by severity with file:line references — nothing is fixed without confirmation. spawns code-reviewer
fix Root-cause the bug, apply the minimal fix at the identified location, and prove it with a regression test that fails without the fix. spawns debugger → test-writer
ship Typecheck, lint, test, review — then commit, push, and open a PR with a summary and test plan. Never pushes to main, never merges. spawns code-reviewer as the gate

Skills

CONVENTIONS · 10

The shared rulebook every agent reads before touching code — so the planner's plan, the implementer's code, and the reviewer's checklist all describe the same architecture.

tanstack-queryThe data layer: option factories, key design, SSR hydration, invalidation, optimistic updates.
shadcn-uiCLI-generated components, semantic tokens, forms, third-party registries via the shadcn MCP (21st.dev opt-in), and the AI SDK chat helpers.
web-app-scaffoldBootstrap the whole stack, from create-next-app to a green first build.
postgres-data-modelingDrizzle schemas, relations, indexes, keyset pagination, drizzle-kit migrations.
mongodb-data-modelingMongoose schemas, embed vs reference, ESR indexes, lean reads, pagination.
api-designServer actions vs route handlers, Zod at every boundary, thin handlers.
component-designServer/client split, the four async UI states, composition over prop bags.
authAuth.js v5 — the session checked at every entry point, ownership in the query itself.
testingVitest, in-process Postgres/Mongo, per-test QueryClient, behaviour over implementation.
deployVercel + Neon/Atlas checklist, env validation that fails loudly, CI minimum.

Install

GLOBAL · ~/.claude
shell
# installs into ~/.claude — available in every project.
# asks which database is your default: PostgreSQL or MongoDB
npx claude-agents-fullstack

Non-interactive: npx claude-agents-fullstack --db postgres or --db mongodb — both stay installed; the flag only sets the default for new apps. An existing ~/.claude/CLAUDE.md is backed up to CLAUDE.md.bak first. From a clone instead: ./install.sh (same prompts and flags). Per-project instead: copy agents/, skills/, commands/ into the repo's .claude/ directory and drop templates/CLAUDE.md.template in the root as CLAUDE.md.