The open-science research collective and capability mapping laboratory behind the Gaia Skill Tree.
Welcome to the Gaia Research laboratory! Deployed live at gaia-research.github.io/gaia-research, this repository serves as the core documentation, evidence vault, design asset ledger, and portal for verifying AI agentic capabilities.
Under the steering and directives of our Chief Capability Scout, Milim, we bridge the gap between playful, high-energy Developer Relations (DevRel) and deep, rigorous academic science.
Gaia Research is in the middle of a migration. Three things live here today:
_config.yml, jekyll-seo-tag). baseurl is /gaia-research β factor that into absolute paths.src/, content/, and docs/ are being populated for the consolidation described in CONSOLIDATION_PRD.md. There is no package.json yet β npm run dev will not work. The Next.js surface is planned, not shipped.scripts/ fetch benchmark schemas from the sibling gaia-skill-tree repo and validate contributor submissions. This part is runnable today (see Running Scripts below).If youβre an agent working in this repo, also read CLAUDE.md β it captures the non-obvious constraints (schema-vs-validator drift, ecosystem boundary rules, the ingest fetch chain).
Gaia Research serves as the scientific backbone that feeds into the broader Gaia ecosystem. For the comprehensive technical and structural details, see ARCHITECTURE.md.
[gaia-research] (This Repo β the lab & future portal)
β
βΌ (Research Ledger, Evidence Briefs, Competitor Analysis)
[marketing-tasks]
β
βΌ (Marketing Claims & Ground-Truth Verification)
[gaia-skill-tree] (The Atlas & Headless Toolkit)
Nothing from
gaia-researchis committed directly intogaia-skill-tree. Always follow the standard flow:gaia-researchβ‘οΈmarketing-tasksβ‘οΈgaia-skill-tree.
Schemas cached in content/schemas/ are derived output from upstream gaia-skill-tree, not source. If you need to change a schemaβs shape, change it upstream and regenerate here.
Installable Claude Code / Cursor / Windsurf skills published by Gaia Research. Each is a single-purpose tool with a one-line curl install and no config. All are local-first β they run against your files and never upload their contents.
| Skill | What it does | Repo |
|---|---|---|
| context-diet | Measure + compact an oversized agent-context file (CLAUDE.md, .cursorrules, AGENTS.md, a system prompt) under the harness char limit without losing a rule. Runs a compaction bake-off scored on rule faithfulness. Output of Context Diet β Lab 001. |
gaia-research/skill-context-diet |
| ci-churn | GitHub Actions cost analyzer & flaky-test detector for PRs. Measures wasted CI compute, classifies commits as feature vs ci-fix, and generates pre-push checks that would have prevented retry-push churn. | gaia-research/skill-ci-churn |
| fuse | AI agent command consolidator. Merge overlapping /commands into one unified SKILL.md β reduce slash-command clutter, combine Cursor rules, dedupe Windsurf cascades. |
gaia-research/skill-fuse |
Install any of them with the one-liner from its repo, e.g.:
bash <(curl -sL https://raw.githubusercontent.com/gaia-research/skill-context-diet/main/install.sh)
| Path | Purpose |
|---|---|
ARCHITECTURE.md |
Complete system architecture, tool pathways, OAuth/Supabase blueprint. |
PRODUCT.md |
Strategic goals, brand voice (Milimβs high-energy academic style), audience profiles. |
DESIGN.md |
Visual system tokens, colors, typography, interactive patterns. |
CONSOLIDATION_PRD.md |
Phased roadmap for merging the Research web interface with the Skill Tree ledger. |
CLAUDE.md |
Guidance for Claude Code / agent sessions working in this repo. |
assets/ |
Brand images, tool mockups, generated visuals. |
content/schemas/ |
Derived cache of benchmark JSON schemas (regenerated by generate-templates.ts). |
content/templates/ |
Sample submissions matching each schema. |
content/reports/, content/tools/ |
Long-form markdown for the future Next.js site. |
docs/idea-bank/, docs/plans/ |
Planning notes; not shipped as pages. |
experiments/ |
Playground and testbed concepts (prototype-quality). |
scripts/ |
Build-time ingestion, template generation, and validation scripts. |
src/lib/ |
Infrastructure integrations (e.g. supabaseClient.ts) staged for the Next.js migration. |
benchmarks/ is referenced in ARCHITECTURE.md as a planned folder for benchmark specs and cached runs β it does not exist in the tree yet.
Gaia Research embraces a high-impact, technical aesthetic featuring:
#ec4899) for actions and verified states, contrasted with Rimuru Blue (#38bdf8) for borders and stable navigation.For implementation details, see DESIGN.md and PRODUCT.md.
Every command below uses npx tsx β no install step, no package.json required.
Regenerate JSON schemas and boilerplate templates. generate-templates.ts looks for a sibling ../gaia-skill-tree working copy first (via git show dev/sprint-d-benchmark-leaderboard:...), then falls back to the raw GitHub URL, then to a hardcoded fallback schema:
# Generate dynamic JSON templates from benchmark schemas
npx tsx scripts/generate-templates.ts
# Ingest and prep tool documentation (skill-fuse, gaia-operator)
npx tsx scripts/ingest-tool-docs.ts
Validates a JSON file against the GSB or general-benchmark schema. The script auto-detects which schema to use from the top-level benchmark field β "GSB" or "Gaia Skill Bench" routes to the GSB validator; anything else uses the general benchmark validator.
npx tsx scripts/validate-submissions.ts content/templates/gsb-submission.json
npx tsx scripts/validate-submissions.ts content/templates/benchmark-submission.json
Note:
validate-submissions.tsis a hand-rolled validator, not a generic JSON Schema library. The schema files incontent/schemas/document the contract for contributors and upstream, but the runtime rules are hardcoded in the script (pillar weights,sha256:regex, accepted GSBversionstrings). If you change one, mirror the change in the other β they can silently drift.
Once the migration in CONSOLIDATION_PRD.md lands, routes and UI will live under src/ and read from content/. Environment variables for GitHub OAuth and Supabase will be configured in .env.local. Not wired up yet.