[OCaml] Mobile-friendly clone of cgit.
Table of Contents
--- 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: `<type>(<optional scope>): <description>`.
- 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="<name> <email>"` 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: `<type>/<description>`.
- 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.