forked from bchanot/claude
commit-changer committed code autonomously with no branch precondition
(gitflow-conformity §2a, verified MEDIUM CONFIRMED) — on develop/main it
attempted a direct code commit, backstopped only by the pre-commit hook.
Adds Phase 0: the same `gitflow-aiguillage.md` mechanism hotfixer/bugfixer/
feater already use (TYPE=chore) — branches to chore/* on a protected base,
no-op on a working branch — plus a report-only fallback (no develop / no
lib -> ask human, don't auto-branch). Commit-plan gate + scoped staging
untouched. SKILL.md pre-flight notes the aiguillage.
Dry-run (throwaway repos, REAL lib + REAL pre-commit hook) — both paths:
CASE 1 on develop: aiguillage -> chore/commit-pending, code commit
SUCCEEDS, hook never blocks; contrast: same commit direct on develop
is BLOCKED -> aiguillage is what avoids it. PASS
CASE 2 no develop: fallback -> no auto-branch, changes uncommitted,
no chore/* created, ask human. PASS
31 lines
1.0 KiB
Markdown
31 lines
1.0 KiB
Markdown
---
|
|
name: commit-change
|
|
description: |
|
|
Analyze all pending changes (staged, unstaged, untracked) and create
|
|
atomic commits grouped by logical unit, retracing the work. Any git
|
|
repository.
|
|
Triggers: "commit my changes", "smart commit", "auto commit", "commit
|
|
everything", "analyse et commit", or any variation of committing messy
|
|
pending work intelligently.
|
|
allowed-tools:
|
|
- Bash
|
|
- Read
|
|
- Grep
|
|
- Glob
|
|
- Agent
|
|
- AskUserQuestion
|
|
---
|
|
|
|
Load and follow strictly: `$HOME/.claude/agents/commit-changer.md`.
|
|
|
|
If unreachable, emit `Commit-changer agent missing.` and STOP. Never auto-commit blind — a wrong group is harder to undo than not committing.
|
|
|
|
Pre-flight checks (the agent should also perform, but flag here):
|
|
- Detached HEAD or unmerged conflicts → STOP, report state.
|
|
- Identity unconfigured (`git config user.email` empty) → STOP, ask user.
|
|
- On a protected base (`main`/`develop`) the agent runs the gitflow
|
|
aiguillage (Phase 0) and branches to `chore/*` before committing — code
|
|
never lands directly on a protected branch.
|
|
|
|
$ARGUMENTS
|