# Branch 🌿 ## CI Impact 🔀 The branch prefix MUST match the type of change. The [PR workflow](pull-request.md) uses it to classify the scope and decide which CI pipeline to run. | Branch prefix | Scope | Matching files | CI behavior | |---|---|---|---| | `agent` | Changes to agent instructions or prompts | `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, `docs/agents/*` | Skips [ci-orchestrator](../../../../.github/workflows/ci-orchestrator.yml), finishes green through the lightweight scope gate. | | `documentation` | Documentation-only changes | `**/*.md`, `**/*.rst` (outside agent paths) | Skips [ci-orchestrator](../../../../.github/workflows/ci-orchestrator.yml), finishes green through the lightweight scope gate. | | `feature` | New features or enhancements | `*` | Runs the full [ci-orchestrator](../../../../.github/workflows/ci-orchestrator.yml) pipeline. | | `fix` | Bug fixes | `*` | Runs the full [ci-orchestrator](../../../../.github/workflows/ci-orchestrator.yml) pipeline. | | `dependabot` | Automated dependency updates | `*` | Runs the full [ci-orchestrator](../../../../.github/workflows/ci-orchestrator.yml) pipeline. | ## Enforcement 🔒 All rules in this document are actively enforced on `main` via GitHub branch protection. See [branch.md](../../tools/github/branch.md) for the full enforcement policy. ## Naming Conventions 🏷️ The description MUST use `kebab-case` (lowercase words separated by hyphens) and SHOULD be short enough to read at a glance. The full branch name MUST follow one of the patterns below, depending on whether the change targets a specific role or is general: | Case | Pattern | Example | |---|---|---| | General feature | `feature/` | `feature/ldap-integration` | | Role feature | `feature//` | `feature/web-app-matomo/ldap-integration` | | General fix | `fix//` | `fix/dns-resolution/taiga-123` | | Role fix | `fix///` | `fix/web-app-matomo/login-redirect/taiga-789` | | Documentation | `documentation/` | `documentation/contributing-setup` | | Agent | `agent/` | `agent/improve-commit-instructions` | | Dependabot | `dependabot//` | `dependabot/pip/requests-2.32.0` | `feature`, `documentation`, and `agent` branches MUST NOT reference a ticket ID. `dependabot` branches are created automatically and MUST NOT be renamed.