claude/lib/gitflow-aiguillage.md
Bastien Chanot e8807a7333 feat(gitflow): chore branch type + aiguillage for standalone memory/doc skills
Standalone /capitalize /close /prune-memory /reconcile no longer lean on the .claude/** hook exemption when run on main/develop: the aiguillage branches them to chore/* off develop before writing. New chore type (base develop, finish->develop) added to the lib; hook unchanged (chore/* non-protected). Closes the leak where standalone memory work (memory IS the work, no code branch to follow) landed direct on a protected base. 64/64 gitflow-test green, shellcheck clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RNaYKPEkjH1jbgoX1TwKMX
2026-07-01 13:25:36 +02:00

1.9 KiB

Gitflow aiguillage — branch on a protected base before writing

Flows that WRITE — code, OR standalone memory/doc work — must NEVER commit on a protected base (main/develop). Run this check before editing any file.

bash "$HOME/.claude/lib/gitflow.sh" protected-base && echo PROTECTED || echo WORKING
  • WORKING (feature/*, bugfix/*, hotfix/*, chore/*, or any non-protected branch) → proceed; you commit in place on this branch. Nothing changes.
  • PROTECTED (main/develop) → branch first, do NOT commit here:
    bash "$HOME/.claude/lib/gitflow.sh" start <YOUR-TYPE> <short-kebab-name>
    
    <short-kebab-name> derived from the request. Then do the work on the new branch.

The caller passes its TYPE:

Caller TYPE Base
/feat feature develop
/bugfix bugfix develop
/hotfix hotfix main
/capitalize · /close · /prune-memory · /reconcile chore develop

The chore row = standalone memory/doc work: the registry / TODO / doc reconciliation & curation skills, run OUTSIDE an assistance flow. Inside /feat /bugfix /hotfix /ship-feature a working branch already exists (this check returns WORKING) and the memory commit rides it. The aiguillage only fires when such a skill is invoked directly on main/develop — i.e. memory IS the work, with no code branch to follow. That is the leak it closes: the .claude/** hook exemption still lets a manual memory commit through on a protected base, but a skill-driven one now branches to chore/* first.

Never run gitflow finish — these flows commit, they do not merge. Integration is a separate, human-gated step (the gitflow skill).

Note: hotfix branches off main (prod) even when invoked from develop — that is the gitflow definition of a hotfix. For a dev-scoped small fix, use /bugfix (branches off develop).