Stage and commit all uncommitted changes in logical chunks WITHOUT confirmation — sibling of /commit for autonomous flows
Scanned 6/5/2026
Install via CLI
openskills install event4u-app/agent-config---
model_tier: medium
name: git-commit-in-chunks
pack: git
replaces: [commit-in-chunks, commit:in-chunks]
tier: 2
cluster: git-commit
sub: in-chunks
skills: [git-workflow]
description: Stage and commit all uncommitted changes in logical chunks WITHOUT confirmation — sibling of /commit for autonomous flows
suggestion:
eligible: true
trigger_description: "commit everything autonomously, split and commit without confirmation"
trigger_context: "autonomous mode active and uncommitted changes present"
workspaces:
- agent-config-maintainer
packs:
- git
---
# /commit:in-chunks
Auto-split and commit all local changes in one go. Use this when you
want commits made without being asked to confirm each batch. Sibling
of [`/commit`](../commit.md), which presents the plan and waits for
approval. This command skips the approval step.
Per [`autonomous-execution`](../../rules/autonomous-execution.md), the
agent does **not** commit on its own initiative — invoking this
command is the user's explicit consent to commit.
## Instructions
### 1. Detect uncommitted changes
```bash
git status --short
git diff --stat
git diff --cached --stat
```
If there are no uncommitted changes (staged or unstaged), report
"Nothing to commit." and stop.
### 2. Determine the ticket number
- Extract the ticket ID from the current branch name (e.g. `feat/DEV-1234/...`
→ `DEV-1234`).
- If no ticket ID is found, omit the scope from the messages — write
`chore: ...` not `chore(): ...`. Do **not** ask the user for one.
### 3. Analyze and split
Group changed files into logical units following [`/commit`](../commit.md)
step 3 grouping rules:
- Same feature / fix → one commit.
- Migration + corresponding model/seeder → one commit.
- Test + the class under test → one commit.
- Style-only changes (ECS/Rector/formatter) → separate `style:` /
`chore:` commit when mixed with logic changes.
- Truly unrelated change → its own commit.
Splitting rules:
- **Do NOT split arbitrarily** — only when the changes are logically
independent.
- **Prefer fewer, coherent commits** over many tiny ones.
- **Tests go with the code they test** unless test-only changes are
large and noisy.
Generate commit messages per [`commit-conventions`](../../rules/commit-conventions.md).
### 4. Validate, then commit immediately
Before staging anything, run the same `preview-on-error` validator as
[`/commit`](../commit.md) step 5. Each generated message must match
`^(feat|fix|chore|docs|refactor|test|perf|style|build|ci|revert)(\([^)]+\))?!?: .+`.
- **All valid** → proceed silently.
- **Any invalid** → stop, print the failed message(s) + the regex,
hand back to the user. Do **not** auto-commit broken messages even
though confirmation is otherwise suppressed.
For each planned commit in order:
```bash
git add {files...}
git commit -m "{message}"
```
No "looks good?" prompt. No confirmation step. The user invoked this
command knowing the plan would be executed.
### 5. Report (verbosity-gated)
Read `verbosity.post_action_reports` from `.agent-settings.yml` (default
`minimal`). Same contract as [`/commit`](../commit.md) step 7.
- `off` → emit nothing (still run `git log --oneline -N` silently for
the agent's own verification).
- `minimal` (default) → one line:
```
→ N commits created
```
- `full` → full summary:
```
Created N commits:
1. {sha1} feat(DEV-1234): {summary}
2. {sha2} test(DEV-1234): {summary}
3. {sha3} chore: {summary}
```
Include `git log --oneline -N` output for verification.
## Rules
- **Never push** — pushing remains explicit per [`scope-control`](../../rules/scope-control.md#git-operations--permission-gated).
- **Never modify files** — only stage and commit existing changes.
- **Do NOT add untracked files** unless they are clearly part of the
change (check with `git status` first).
- **Follow commit conventions** as defined in [`commit-conventions`](../../rules/commit-conventions.md).
- **Stop on first failure** — if `git commit` fails (hook rejection,
pre-commit lint error), stop, report the error, and do not continue
with the remaining planned commits. Leave staged files for the user
to inspect.
- **No interactive prompts** — fail fast over hanging waiting for
input.
## When NOT to use
- The user has not seen the diff yet and would benefit from review →
use [`/commit`](../commit.md) instead.
- The diff includes large unrelated changes the user might want to
reorganise → use [`/commit`](../commit.md).
- The repo has a pre-commit hook that requires manual response → fix
the hook or use `/commit`.
## See also
- [`/commit`](../commit.md) — split + present plan + wait for approval
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the
rule that defines the no-ask commit default this command opts out of
- [`commit-conventions`](../../rules/commit-conventions.md) — message
format
No comments yet. Be the first to comment!