Files
computer-playbook/docs/contributing/artefact/git/branch.md
T
kevinveenbirkenbachandClaude Opus 5 f40d627a1b docs(agents): merge the tool-specific files into AGENTS.md
CLAUDE.md and GEMINI.md existed as per-runtime extensions of AGENTS.md, and
only one of them carried anything at all: GEMINI.md stated that it had no
additions, while CLAUDE.md held rules that bind every runtime anyway — the
permission announcement, the make-over-raw preference, the loop, chain and
heredoc bans, the stream-the-log-to-/tmp rule, the CI-evidence rule, the push
ban and the comment rule. A rule that binds every agent does not belong in one
agent's file. AGENTS.md absorbs them and now states that no tool-specific
extension file exists; agents whose runtime auto-loads a different filename
reach it through their own configuration instead.

The filenames were machinery as much as prose. The PR templates, the branch
and pull-request scope tables, the settings and security docs that justified
the loop deny by "the textual CLAUDE.md rule", six requirement documents whose
push instruction linked ../../CLAUDE.md, and a test docstring citing the
shell-loop ban all named them, and now name AGENTS.md.
scripts/meta/resolve/pr/scope.sh deliberately keeps matching CLAUDE.md and
GEMINI.md: this change deletes them, and without those patterns the change
itself would not classify as agent-scope.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-21 22:51:04 +02:00

3.5 KiB

Branch 🌿

CI Impact 🔀

The branch prefix MUST match the type of change. The PR workflow 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, roles/<role>/AGENTS.md, docs/agents/* Skips orchestrator, finishes green through the lightweight scope gate.
documentation Documentation-only changes **/*.md, **/*.rst (outside agent paths) Skips orchestrator, finishes green through the lightweight scope gate.
feature New features or enhancements * Runs the full orchestrator pipeline.
fix Bug fixes * Runs the full orchestrator pipeline.
update Automated or maintenance updates * Runs the full orchestrator pipeline.
chore Maintenance, dependency, and tooling updates (incl. branches created by cron-update.yml) * Runs the full orchestrator pipeline.
alert-autofix Automated alert-triggered fixes * Runs the full orchestrator pipeline.
dependabot Automated dependency updates * Runs the full orchestrator pipeline.

Enforcement 🔒

All rules in this document are actively enforced on main via GitHub branch protection. See branch.md for the full enforcement policy.

The naming conventions below are additionally checked locally by the lint test test_branch_name.py, which fails make test-lint when the checked-out branch uses an unknown prefix (e.g. feat/ instead of feature/) or a non-kebab-case description.

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/<topic> feature/ldap-integration
Role feature feature/<role>/<topic> feature/web-app-matomo/ldap-integration
General fix fix/<topic>/<ticket-id> fix/dns-resolution/taiga-123
Role fix fix/<role>/<topic>/<ticket-id> fix/web-app-matomo/login-redirect/taiga-789
General update update/<topic> update/docker-image-versions
Chore chore/<topic> chore/update-docker-image-versions
Alert autofix alert-autofix-<alert-id> alert-autofix-261
Documentation documentation/<topic> documentation/contributing-setup
Agent agent/<topic> agent/improve-commit-instructions
Dependabot dependabot/<ecosystem>/<dependency> dependabot/pip/requests-2.32.0

feature, update, documentation, and agent branches MUST NOT reference a ticket ID. alert-autofix branches reference the alert ID instead of a ticket ID. dependabot branches are created automatically and MUST NOT be renamed.