Git strategy
kaddo add git-strategyInstalls two files:
architecture/git-strategy.md— the human-readable strategy..kaddo/git.yml— the machine-readable descriptor.
Default strategy
GitHub Flow + Conventional Commits + SemVer.
feature/<work-item-id>-<slug> feat(scope): message vMAJOR.MINOR.PATCHbugfix/<work-item-id>-<slug> fix(scope): messagehotfix/<work-item-id>-<slug> docs(scope): messagespike/<work-item-id>-<slug> chore(scope): messageRelease notes are sourced from Kaddo Work Items + Conventional Commits.
Customization
The default is a recommendation, not a rule. Edit .kaddo/git.yml to switch
strategy — github-flow, gitflow, trunk-based or custom — and adjust branch
naming, commit convention and tag pattern.
strategy: github-flowbranchNaming: pattern: "{type}/{workItemId}-{slug}"commits: convention: conventional-commits requireWorkItemReference: truetags: strategy: semver pattern: "v{version}"Other strategies
Copy one of these into .kaddo/git.yml as a starting point and adjust the patterns to
match how your team actually works. All fields are descriptive — Kaddo reads them as
documentation, it does not act on them.
Git Flow
Long-lived main/develop with release/* and hotfix/* branches.
strategy: gitflowbranchNaming: pattern: "{type}/{workItemId}-{slug}" mainBranch: main developBranch: develop releasePrefix: release/ hotfixPrefix: hotfix/commits: convention: conventional-commits requireWorkItemReference: truetags: strategy: semver pattern: "v{version}"release: notesFrom: - work-items - conventional-commitsTrunk-based
Short-lived branches merged into a single trunk; releases are tagged off the trunk.
strategy: trunk-basedbranchNaming: pattern: "{workItemId}-{slug}" mainBranch: main maxBranchLifetimeDays: 2commits: convention: conventional-commits requireWorkItemReference: truetags: strategy: semver pattern: "v{version}"release: notesFrom: - conventional-commitsCustom
Bring your own conventions — for teams that do not follow a named model.
strategy: custombranchNaming: pattern: "{team}/{workItemId}-{slug}"commits: convention: custom requireWorkItemReference: falsetags: strategy: calver pattern: "{YYYY}.{MM}.{patch}"release: notesFrom: - work-itemsKaddo does not enforce the strategy in CI, and never creates branches or tags for you. Refine the strategy with the
git-strategy-agentin your LLM.