Claude is raw power. GAIA is order and focus. The foundation that keeps Claude-shipped code production-grade as your team scales. The React frontend is handled. You build the rest of your app on top. Every convention enforced in code.
FAQ
gaia is a Claude Code plugin with 20 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes a11y-fixes, eslint-fixes, file-tech-debt. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
$ npx -y skills add gaia-react/gaia --agent claude-code
Repo: gaia-react/gaia
Claude is raw power. GAIA is order and focus.
The foundation that keeps Claude-shipped code production-grade as your team scales. The React frontend is handled. You build the rest of your app on top. Every convention enforced in code. Every shortcut blocked at the source. Every merge audited before it lands.
Quick Start · What Breaks Claude · Trust · Token Economics · Tech Debt · Tech Stack · Claude Workflow · History
npx create-gaia@latest my-app
One command. GAIA handles the rest, then /gaia-init finishes the last-mile setup (below).
[!NOTE] Start projects with
npx create-gaia@latest my-apprather than cloning or forking. The CLI sets up your project for you, strips the GAIA branding and release tooling, etc. A clone leaves all of that in place and pointed at the wrong repo.
Requirements: Node.js >= 22.22.0 (nvm recommended). macOS or Linux; on Windows, run inside WSL2 (the hooks and CLI need bash and POSIX file paths, and native Windows isn't exercised in CI). uv is required for the Serena MCP server; GAIA installs it during setup if you don't already have it.
/gaia-initGAIA ships clean. /gaia-init does the last-mile setup:
corepack, runs pnpm install.typescript-lsp, claude-obsidian, and Serena (LSP-backed symbol search and editing)./gaia-spec and the spec-kit lifecycle hooks (constitution check, self-review, immutability lint, Playwright UAT auto-write, wiki-promote) are wired before your first feature.You end up with a clean app shell and a fully-configured Claude workflow.
Most setups treat Claude as a tool you hold: bolt a CLAUDE.md onto the root and hope the model figures out the rest. GAIA treats Claude as an engineer you manage. That shift exposes three failure modes the bolt-on approach papers over.
Trust. You can't manage an engineer you can't predict. Without enforceable conventions, Claude reverts to its training distribution: an average of every codebase on the internet, bad code and all. GAIA's codebase is what you actually want Claude matching, and the rules make sure it can't ship code that doesn't.
Token economics. Context bloat isn't just CLAUDE.md sprawl. Instructions get dropped into global memory, forgotten, and accumulate into redundancies and conflicts that compound every session. GAIA keeps token usage minimal by design.
Compounding tech debt. Dependencies fall behind, vulnerabilities sit unpatched, dead code piles up, and the wiki drifts from the code while you ship features. Left alone, the project rots in the background. GAIA runs maintenance continuously so it doesn't.
typescript, react-code, tailwind, tdd, playwright-cli, skeleton-loaders, eslint-fixes, and a11y-fixes load on demand when Claude edits matching files or a tool reports a fixable violation. The tdd skill drives a red-green-refactor loop tailored for Vitest, React Testing Library, Storybook composeStory, and MSW./gaia-spec authors an immutable SPEC artifact through Socratic discovery. Before any source code is written, the SPEC's UATs render as red-state Playwright e2e specs. The implementer's first job is turning red green. The PO writes acceptance criteria in plain English, and the test harness is generated.react-doctor and knip (whose output is advisory and never blocks), with extension files in .claude/agents/code-review-audit/ injecting library-specific rules at runtime. Findings are tiered Critical, Important, and Suggestions. The merge blocks until no Critical or Important issues remain. Runs locally by default, and in CI once you enable GAIA CI./gaia-wiki drives the full chain (sync, consolidate, lint) on demand, each step in a fresh subagent context. Open wiki/ in Obsidian for graph view, backlinks, and search; the claude-obsidian plugin adds /wiki-ingest, /wiki-query, /wiki-lint, /autoresearch, and /save.wiki/hot.md, what Claude touched recently; primed at session start, fast and evictable./gaia-handoff, restored by /gaia-pickup. No re-briefing Claude from scratch./gaia-audit sweeps memory, wiki, and autoloaded files for duplication, conflicting instructions, and stale content before they start costing tokens./gaia-plan spawns each phase as a focused subagent with only the context it needs. No accumulated history, no stale assumptions. Spec discovery (/gaia-spec) runs in its own context too, separate from implementation; the immutable SPEC artifact is the handoff, not accumulated context.The quality gate keeps each commit clean and Knip keeps dead code out (see Tech Stack). The rest runs over the life of the project:
/update-deps. An autonomous Dependabot: discovers every outdated package, audits version overrides, applies codemods and breaking-change migrations for major bumps, resolves conflicts between simultaneous upgrades, then runs the quality gate before reporting done. No prompts./update-gaia. Pulls the latest GAIA release into the project without clobbering your work: a three-way merge per file (your version, the release baseline, the new release) governed by ownership classes in .gaia/manifest.json, prompting only where your changes and GAIA's collide. Both updates surface as passive statusline indicators at session start./gaia-debt. The pre-merge audit may discover tech-debt outside the scope of what it's reviewing. Rather than let it slip, GAIA logs it as a tracked issue, and /gaia-debt works through that backlog one item at a time, most important first. A statusline indicator shows how much is waiting./setup-gaia. A GitHub Actions bot that runs maintenance against your Claude Code Pro/Max subscription or Anthropic API key, capped at $5 per run. Patch and minor dependency bumps get an auto-PR that auto-merges on green CI; major bumps and high or critical pnpm audit findings route to review-required PRs; app-code changes open a labeled wiki-sync PR (a run that rewrites more than 25% of the wiki holds for review); stale branches get cleaned up. If post-merge CI fails, the bot opens one revert PR. A second failure escalates to a priority issue and the bot stops.Every piece of GAIA's tech stack is pre-configured and wired into the Claude layer.
GAIA also wires agentic-design patterns into the project structure rather than the prompt, so they run the same way every session and every model variant: stop hooks, a blocking pre-merge audit, multi-agent review, spec-driven development, a committed knowledge base, a filesystem deny list, and more. The features page walks through all twelve, grouped as workflow control, context engineering, and tooling and safety.
GAIA ships a complete, opinionated Claude Code workflow. Everything is wired in .claude/ and visible in the repo.
.claude/rules/; ask Claude about any of them..claude/hooks/.typescript, react-code, tailwind, tdd, playwright-cli, skeleton-loaders, eslint-fixes, a11y-fixes) autoload for matching tasks. Scaffolding skills (new-component, new-hook, new-route, new-service) fire on natural-language asks.GAIA is driven through Claude. Ask for what you need.
Build things:
/new-route, applies routing + i18n + test rules.Ask about the codebase:
Test: Ask Claude to run, add, or debug tests. Vitest, Storybook + Chromatic, and Playwright are wired up.
Deploy: GAIA isn't prescriptive about hosting. Ask Claude to set up deployment for your target (Vercel, Cloudflare, Fly, AWS, a bare Node host, a Docker container, anywhere React Router runs). Claude wires up the build, environment variables, and any CI/CD you need.
Extend: Rules, hooks, skills, and commands live in .claude/. Ask Claude to add, modify, or explain any of them.
The GAIA Flash Framework was Flash's most popular framework. Its killer feature was automation. It collapsed repetitive Flash plumbing into a few declarative patterns so engineers could focus on the product, and was used on over 100,000 sites at every major digital agency worldwide.
GAIA React carries that automation philosophy into the AI-native era. Where the original automated Flash boilerplate, GAIA automates the Claude workflow (conventions, rules, hooks, gates, wiki) so you can ship features end-to-end without wiring the scaffolding every time.
.claude/
agents/
code-audit-frontend/
code-audit-frontend.md
conform.md
form-components.md
react-i18next.md
README.md
tailwind-merge.md
code-audit-github-workflows.md
code-audit-maintainer-node.md
code-audit-maintainer-prose.md
code-audit-maintainer-shell.md
worthiness-evaluator.md
commands/
distribution-audit.md
gaia-audit.md
gaia-debt.md
gaia-fitness.md
gaia-forensics.md
gaia-harden.md
gaia-init.md
gaia-plan.md
gaia-release.md
gaia-serena-sync.md
gaia-spec.md
health-audit.md
setup-gaia.md
hooks/
audit-disposition-check.sh
audit-stamp-trailer.sh
block-bare-test.sh
block-env-read.sh
block-env-write.sh
block-eslint-config-edit.sh
block-invalid-yaml-write.sh
block-lockfile-edit.sh
block-main-destructive-git.sh
block-manifest-write.sh
block-no-verify.sh
block-rm-rf.sh
block-secrets-write.sh
block-selfheal-paths.sh
block-serena-cross-tree-activation.sh
block-spec-plan-chain.sh
block-vitest-globals-tsconfig.sh
block-worktree-path-mismatch.sh
capture-gh-artifact.sh
capture-red-observations.sh
check-i18n-strings.sh
check-story-exists.sh
debt-sentinel-touch.sh
debt-session-reconcile.sh
distribution-preflight-check.sh
lib/
audit-clearance.sh
audit-digest.sh
audit-dispositions.sh
audit-machinery.sh
audit-scope.sh
audit-selfheal-paths.sh
gaia-active-plan.sh
gaia-ci-defer.sh
red-ledger.sh
repo-scope.sh
worthiness-ledger.sh
local-janitor.sh
post-audit-status.sh
post-findings-block-on-merge.sh
pr-merge-audit-check.sh
provision-worktree.sh
red-verify-commit-check.sh
serena-code-search-guard.sh
token-rollup-merge.sh
token-tally-git-op.sh
token-tally-review.sh
wiki-commit-nudge.sh
wiki-drift-check.sh
wiki-recompact-inject.sh
wiki-recompact-sentinel.sh
wiki-session-start.sh
wiki-session-stop.sh
wiki-squash-autocommits.sh
worthiness-presence-check.sh
instructions/
add-locale.md
remove-i18n.md
rules/
accessibility.md
api-service.md
bats-assertions.md
code-search.md
coding-guidelines.md
dep-audit.md
design-baseline.md
gaia-folder.md
i18n.md
instruction-files.md
knip.md
maintainers/
github-workflow-distribution.md
smoke.md
playwright.md
pr-merge.md
quality-gate.md
react-router-docs.md
repo-relative-paths.md
routes.md
serena-cc-override.md
shell-cwd.md
state-pattern.md
storybook.md
tailwind.md
wiki-style.md
settings.json
skills/
a11y-fixes/
SKILL.md
eslint-fixes/
SKILL.md
file-tech-debt/
SKILL.md
gaia/
gaia-handoff/
SKILL.md
gaia-pickup/
SKILL.md
gaia-react-perf/
references/
measure-only.md
SKILL.md
gaia-wiki/
SKILL.md
references/
audit.md
cost-record.md
debt.md
fitness.md
forensics/
forensics.md
capture.md
redaction.md
taxonomy.md
handoff.md
harden.md
isolation.md
pickup.md
plan.md
serena-sync.md
spec.md
wiki/
wiki.md
consolidate.md
lint.md
sync.md
new-component/
SKILL.md
new-hook/
SKILL.md
new-route/
SKILL.md
new-service/
SKILL.md
playwright-cli/
references/
commands.md
request-mocking.md
running-code.md
session-management.md
storage-state.md
test-generation.md
tracing.md
video-recording.md
SKILL.md
react-code/
references/
conform-forms.md
hook-patterns.md
translation-patterns.md
SKILL.md
release-notes/
eval/
.gitignore
probe.py
trigger-eval.json
SKILL.md
skeleton-loaders/
SKILL.md
tailwind/
SKILL.md
tdd/
deep-modules.md
interface-design.md
refactoring.md
references/
tests-react.md
SKILL.md
typescript/
references/
naming-conventions.md
zod.md
SKILL.md
update-deps/
SKILL.md
update-gaia/
SKILL.md
.editorconfig
.env.example
.gaia/
audit-ci.yml
cli/
.gitignore
eslint.config.mjs
gaia
gaia-maintainer
health/
comprehensive/
gauge.sh
lenses/
DIST.md
FEAT.md
SELF.md
TIDY.md
runbook.md
runbook.md
taxonomy.md
package.json
pnpm-lock.yaml
pnpm-workspace.yaml
prettier.config.mjs
src/
a11y-structural/
check-a11y-triviality.test.ts
audit-ledger/
append-worthiness.test.ts
automation/
__tests__/
__snapshots__/
templates-snapshots.test.ts.snap
audit-template-dogfood.test.ts
chore-deps-audit-stamp.test.ts
cron-decide.test.ts
gaia-ci-template-refs.test.ts
install-audit-workflow.test.ts
paths.test.ts
read-config.test.ts
render-workflows.test.ts
render.test.ts
sandbox.ts
templates-snapshots.test.ts
templates-yaml-shape.test.ts
templates.test.ts
workflow-vars.test.ts
cron-decide.ts
index.ts
install-audit-workflow.ts
paths.ts
read-config.ts
render-workflows.ts
render.ts
templates/
workflows/
code-review-audit.yml.tmpl
gaia-ci-pnpm-audit.yml.tmpl
gaia-ci-stale-branches.yml.tmpl
gaia-ci-update-deps.yml.tmpl
gaia-ci-wiki.yml.tmpl
partials/
auth-env.yml.tmpl
auto-merge.yml.tmpl
checkout-setup.yml.tmpl
concurrency.yml.tmpl
header.yml.tmpl
pre-run-skip.yml.tmpl
quality-gate.yml.tmpl
workflow-vars.ts
ci/
__tests__/
check-subject.test.ts
revert.test.ts
stale-check.test.ts
check-subject.ts
index.ts
paths.ts
revert.ts
stale-check.ts
util/
run-process.ts
classifier/
classify-determinism.test.ts
command-reachability.test.ts
exit.ts
fitness/
index.ts
render-card.test.ts
render-card.ts
harden/
__tests__/
compute-tally.test.ts
covered-classes.test.ts
ledger-bridge.test.ts
ledger.test.ts
marker.test.ts
parse-findings-block.test.ts
producer-seam.test.ts
severity-map.test.ts
tally.test.ts
compute-tally.ts
covered-classes.ts
ledger-bridge.ts
ledger.ts
marker.ts
parse-findings-block.ts
severity-map.ts
tally.ts
index.maintainer.test.ts
index.maintainer.ts
index.test.ts
index.ts
init/
bootstrap-env.test.ts
bootstrap-env.ts
configure-automation.test.ts
configure-automation.ts
configure-i18n.test.ts
configure-i18n.ts
finalize.test.ts
finalize.ts
index.ts
rename.test.ts
rename.ts
resume.test.ts
resume.ts
strip-branding.test.ts
strip-branding.ts
util/
js-literal.ts
state.ts
title.ts
wire-statusline.test.ts
wire-statusline.ts
lint-pin-parity.test.ts
ping/
__tests__/
index.test.ts
send.test.ts
index.ts
send.ts
react-perf/
framework-denylist.ts
index.ts
reduce.test.ts
reduce.ts
release/
bump.test.ts
bump.ts
changelog.test.ts
changelog.ts
commit-and-tag.test.ts
commit-and-tag.ts
distribution-guards.test.ts
exclude-parser-parity.test.ts
exclude-regex.test.ts
exclude-regex.ts
index.test.ts
index.ts
manifest-answers.test.ts
manifest-answers.ts
manifest-cli-args.test.ts
manifest-cli-args.ts
manifest-cli-check.test.ts
manifest-cli-check.ts
manifest-cli.test.ts
manifest-cli.ts
manifest.test.ts
manifest.ts
marker-strip.ts
preflight.test.ts
preflight.ts
region-registry.test.ts
region-registry.ts
region-scan.test.ts
region-scan.ts
runtime-deps.test.ts
runtime-deps.ts
scan-globs.ts
scrub-wiki.test.ts
scrub-wiki.ts
scrub.test.ts
scrub.ts
sandbox/
__tests__/
apply.test.ts
capability.test.ts
index.test.ts
marker.test.ts
seed.test.ts
apply.ts
capability.ts
index.ts
... 1441 more© 2026 Flowy · Free and open source
Built for Claude Code · Not affiliated with Anthropic
.env**/secrets/***/*credential***/*.pem**/*.keymainpnpm testeslint.configrm -rfvitest/globals.claude/hooks/.claude/settings.json