--- inclusion: auto --- # Git Workflow ## Version Control System - The project SHALL use Git as its version control system. ## Conventional Commits - Commit messages SHALL follow the [Conventional Commits](https://www.conventionalcommits.org) specification. - The commit message structure SHALL be: `(): `. - Allowed types include: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, `revert`. - A commit SHALL be created after every modification request. - If the next request is an adjustment, additional steering, or concerns the same files as those already committed, the latest commit SHALL be amended rather than a new commit being created. ## AI Agent Authorship - When a commit is authored by an AI agent, the **author** field SHALL identify the agent: - `user.name` — agent model name and intelligence or reasoning level (e.g. `Claude Sonnet 4`). - `user.email` — a fictitious e-mail address identifying the agent's parent company (e.g. `claude@anthropic.invalid`). - The **committer** field SHALL default to the system Git configuration (`user.name` and `user.email` from `git config`), i.e. the human operator. - Agents SHALL use `git commit --author=" "` to set the author while leaving the committer as the configured user. ## Conventional Branch - Branch names SHALL follow the [Conventional Branch](https://conventional-branch.github.io/) v1.1.0 specification. - The branch name structure SHALL be: `/`. - Allowed purpose prefixes: `feature/` (or `feat/`), `bugfix/` (or `fix/`), `hotfix/`, `release/`, `chore/`. - Branches created by an AI agent SHALL use the appropriate AI agent source prefix (e.g. `ai/`, `claude/`, `copilot/`, `cursor/`, `codex/`). - Trunk branches (`main`, `master`, `develop`) do not use a prefix. - Branch descriptions SHALL use lowercase alphanumerics and hyphens only (dots permitted in release versions). - Consecutive, leading, or trailing hyphens or dots MUST NOT appear in descriptions.