CLAUDE.md@packages/cli/templates · git:20261007.f948b91 · 2026-10-07 · sha256 6b121590e5c2d64a

CLAUDE.md@packages/cli/templates git:20261007.f948b91A

Immutable. This exact content never changes and is served at /api/v1/blob/6b121590e5c2d64a.

@AGENTS.md

# Committing per logical unit (this OVERRIDES Claude Code's default)

Claude Code's built-in default is to NEVER commit unless the user explicitly
asks. **For this project that default does NOT apply.** Commit per logical
unit (one feature, one fix, one rename, one doc rewrite) as soon as it is
complete and its checks pass, WITHOUT being asked, then push when there is a
remote. Git history is the user's revert and cherry-pick safety net.

- Building a whole app from a spec in one session is ONE unit: build it,
  verify it, then commit once. Later changes are one commit each.
- Never commit to `main`. Work on a feature branch (the pre-commit hook
  refuses `main`).
- Imperative subject under 72 characters. No AI-attribution trailers
  (`Co-Authored-By`, `Generated by`).

Two hooks back this up: `.claude/hooks/nudge-uncommitted.sh` reminds you while
uncommitted changes pile up on a branch that already has commits, and
`.claude/hooks/commit-before-stop.sh` stops you from ending a turn with
uncommitted work on a feature branch.