OSS + multi-contributor projects

0dai was built around a single-developer workflow first. The multi-contributor and OSS shape is real and supported — but the design choices need to be explicit so you know what you're committing to.

The short version

  • Yes, commit ai/. It's the shared brain — same idea as committing package.json or pyproject.toml.
  • Yes, commit generated configs (CLAUDE.md, AGENTS.md, .gemini/settings.json, etc.). They're reproducible from ai/, but committing them means contributors don't need 0dai installed to use the agent configs.
  • Contributor without 0dai installed? Fine — they read the committed configs natively from their agent CLI. They just can't regenerate them without installing.
  • Contributors using different agents? Fine — 0dai already generates configs for all 6 supported CLIs (Claude Code, Codex, Gemini, OpenCode, Aider, Qoder) from one ai/ dir. Each contributor picks their agent; the configs are already there.

What to commit

PathCommit?Why
ai/manifest/YESProject metadata — shared truth
ai/personas/YESRole definitions agents use
ai/playbooks/YESReusable team workflows
ai/docs/YESDecisions / glossary / runbooks
ai/experience/accepted/YESPromoted team knowledge
ai/experience/events/ + outbox/USUALLY NOPer-session telemetry; noisy in PRs. Use .gitignore unless you intentionally archive.
CLAUDE.md, AGENTS.md, .gemini/, .codex/, opencode.json, .qoder/YESGenerated configs — committed so contributors without 0dai installed still get them

What to .gitignore

# 0dai per-session noise — keep these per-contributor, not shared
ai/experience/events/
ai/experience/outbox/
ai/experience/reports/
ai/swarm/active/
ai/swarm/done/

# Local agent state — never shared
.0dai/
.0dai-state/

Multi-contributor workflow

Maintainer (first install)

npm install -g @0dai-dev/cli
cd your-repo
0dai init        # creates ai/ + generated configs
git add ai/ CLAUDE.md AGENTS.md .gemini .codex .qoder
git commit -m "feat: add 0dai project layer"
git push

Subsequent contributor (uses Aider, never installed 0dai)

git pull
# Their Aider CLI reads AGENTS.md natively — no 0dai install needed
# They contribute code; 0dai is invisible to them

Subsequent contributor (uses Claude Code, has 0dai)

git pull
# Claude Code reads CLAUDE.md natively
# If they want to add a persona / playbook / rule:
0dai sync        # regenerates configs after ai/ edits
git commit + push

Edit conflicts on ai/

Standard git merge conflict resolution. ai/manifest/ files are YAML/JSON; ai/playbooks/ are markdown; ai/personas/ are YAML. Merge tools handle them like any other text. After resolving, run 0dai sync to regenerate per-agent configs from the merged ai/ tree.

Honest limits

  • 200+ contributors: not extensively battle-tested. The smallest known repo using 0dai with 50+ contributors is currently a dogfooded set; no public 200+ contributor adoption yet. If you're considering this scale, your friction will probably be in the "contributor PR adds a new persona" case — there's no review gate on ai/ changes by default.
  • Per-contributor agent preference: ai/ generates configs for all 6 supported CLIs at once. There's no way to say "this contributor only uses Aider, hide the Claude config from their checkout". The committed configs are shared.
  • Maintainer control of ai/: no CODEOWNERS-style enforcement in 0dai itself. If you want one maintainer to gate ai/ changes, use standard GitHub CODEOWNERS or branch protection on ai/**.
  • Privacy: experience harvesting: if you commit ai/experience/events/, contributor activity becomes public. Default .gitignore above keeps it local.

Why this page exists

An OSS maintainer told us in the May 2026 focus group that the README assumed single-developer flow and didn't address what happens when 200 contributors use different AI tools. This page is the honest answer — what works, what's untested, what you have to handle yourself. If your repo hits a case this page doesn't cover, tell the maintainers and we'll either add it or honestly say it's not designed for that yet.