Project layout

What aiflow init puts in a project and what each piece does.

your-project/
├─ .aiflow/
│  ├─ config.json            # the single source of truth (committed)
│  ├─ team-prefs.json        # shared team preferences (committed)
│  ├─ router-config.json     # generated: Ollama/cost providers (gitignored)
│  ├─ bd-close-sync.sh       # close → prompt push + Dolt-sync
│  └─ *.sh                   # audit/release/ralph helpers
├─ .beads/                   # Beads issue database (Dolt)
├─ .claude/
│  ├─ agents/  commands/     # subagents + slash commands
│  ├─ hooks/                 # caveman, formatter, beads-sync (SessionStart auto-pull)
│  ├─ memory/                # project-aim, dev-environment, memory-policy
│  └─ settings.json          # permissions + hooks + MCP allow-list
├─ .githooks/                # commit-msg, pre-commit, pre-push (enforcement)
├─ docker/                   # Dockerfile + run.sh (Podman or Docker) for headless Ralph runs
├─ docs/architecture/        # arc42 + ADRs
├─ .mcp.json                 # generated from config (host MCP, filesystem, graphify, cocoindex, context7)
├─ CLAUDE.md                 # operating rules every agent reads
└─ .env                      # secrets (gitignored, never global)

Tools are global, configuration is per-project

  • Tools / binaries — installed once per user (npm -g, uv tool, winget/scoop/brew); shared across projects.
  • Configuration & secrets — per project; switching projects switches everything, and nothing leaks between them.

See Configuration and config.json schema.


aiflow · MIT License · Copyright (c) 2026 Cyber93de. aiflow is an independent integration and is not affiliated with the projects it builds on (Claude Code, Beads, graphify, CocoIndex, Context7, Ollama, rtk, and others).

This site uses Just the Docs, a documentation theme for Jekyll.