AGENTS.md is the source of truth
Cross-tool — Claude Code, Codex, and VS Code all read AGENTS.md, so a convention lives there once instead of being duplicated into per-tool config. Per-project domain glossary and context go in each repo's CONTEXT.md.
Commits
Conventional Commits (feat / fix / chore / refactor / docs / …), enforced with commitlint. Commit as the configured git user only — no AI co-author trailers, no pushing unless asked.
Branches
feature/<name>, bugfix/<name>, improvement/<name>. Short, kebab-cased. Enforced by a husky pre-push hook.
PR review priorities
Reuse before building · correctness · right altitude · convention fit · tests · style last. Stack-specific ordering lives in each pr-review skill (Go leads with correctness, DevOps with safety).
Phased delivery
Multi-session work is sliced into vertical tracer-bullet phases — a non-goals list, a checkable definition of done, and a git-tag / merged-PR boundary at every phase.
Deslopify before commit
Any session that touched code runs the subtractive deslopify pass before the commit — it only removes (restating comments, impossible-case guards, one-impl abstractions), never adds.
Rejected ideas are kept
Decisions to not do something live in .out-of-scope/ as short files, so nothing already ruled out gets re-proposed.
Domain glossary per project
Each repo keeps a CONTEXT.md with a ubiquitous-language glossary — use the shared term, don't invent synonyms.
AGENTS.md is cross-tool
Claude Code, Codex, and VS Code all read AGENTS.md — the convention lives there once, not duplicated into per-tool config.
- AGENTS.mdglobal conventions
- CONTEXT.mdper-project stub + glossary
- .out-of-scope/rejected decisions, kept