# AGENTS.md

> Read by Codex CLI (OpenAI spec), Copilot, Aider (when referenced), Windsurf, Warp, Zed, Antigravity (since v1.20.3, 2026-03-05), JetBrains Junie. See also: CLAUDE.md / .cursor/rules/ / GEMINI.md / .junie/guidelines.md / replit.md.

## {{PROJECT_NAME}}

{{PROJECT_DESCRIPTION}}

## Before You Start
1. Read `DECISIONS.md` — architectural choices already made
2. Read `TODO.md` (if exists) — current priorities
3. Read `CLAUDE.md` (if exists) — project-specific rules

## Rules
- **Constructor Pattern**: 1 file = 1 class. File <200 lines. Function <30 lines.
- **Root cause**: fix causes, not symptoms
- **SSOT**: types, routes, enums defined in ONE place
- **Tests**: write WITH code, never defer

## Do NOT
- Rewrite working code without reason
- Add abstractions for one-time operations
- Skip reading DECISIONS.md before architectural changes
- Commit .env, credentials, API keys

## Available KeiSeiKit Tools (MCP-exposed)

When the kit's MCP server is mounted (`keisei attach` or `keisei mount`), these
Rust primitives are callable from any MCP-aware client (Cursor, Continue,
Zed, Cline, Kimi, OpenClaw):

- `kei-ledger` — append-only event log
- `kei-memory` — local KV store (SQLite)
- `kei-store` — content-addressed blobs
- `kei-spawn` / `kei-fork` — agent ledger + worktree lifecycle
- `kei-gdrive-import` — classify Google Drive folders (PROJECT / AMBIGUOUS /
  NOT-A-PROJECT / ALREADY-REPO) via 8-marker scoring; pairs with the
  `kei-drive-import` shell wizard for full Drive→Forgejo import pipeline
- `kei-changelog` / `kei-migrate` / `kei-graph-check` — repo automation

For natural-language routing across all primitives: call the `kei` meta-tool
with a free-text query.
