| name | git-add |
| description | Autonomously select files to stage for an atomic Git commit. Use when the agent wants to stage selected files for a git commit. Only stages selected files, but does not commit them. |
Agent protocol: Stage atomic git changes
Goal: Stage a single, cohesive set of related file changes for an
atomic commit.
When: Use when the agent wants to stage selected files for a git
commit.
NOTE: Use this skill only for staging selected files, but not
committing them.
Primary directives
-
Study references/ files ONLY if more than one file exists to
stage.
-
NEVER use git add . or git add -A.
-
NEVER use git checkout or git restore.
-
Assume a file in both staged and unstaged states needs staging.
-
Stage files explicitly: git add <file1> <file2> ....
-
Leave unrelated changes unstaged.
-
Isolate .gitignore changes; stage them in a separate commit.
-
Except for .gitignore, DON'T edit any files
Git directives
Git commands (use --no-pager and --no-ext-diff for diffs):
For unstaged changes
git --no-pager diff --no-ext-diff --stat --minimal --patience --histogram \
--find-renames --summary --no-color -U10 <file_group>
For staged changes
git --no-pager diff --staged --no-ext-diff --stat --minimal --patience \
--histogram --find-renames --summary --no-color -U10
For repository status
git status --porcelain=v2 --branch
For staging files
git add <file1> <file2> ...
Efficiency directives
- Optimize all operations for token and context efficiency
- Single-file shortcut: If one tracked
unstaged file, stage
immediately (skip reference study)
- Batch git operations on file groups, avoid individual file processing
- Use parallel execution when possible
- Analyze tracked files via
git diff; read non-ignored untracked
files; omit ignored files
- Reduce token usage
Workflow
Exception: If exactly one tracked unstaged file exists, stage it
immediately and skip steps below.
- Study references files
- Review repository status to identify all modified/new/
untracked
files
- Update
.gitignore following reference guidelines
- Select smallest group of
unstaged files forming single logical
change
- Stage the atomic group
- Output status as first line, then bullet list of staged files
Output
Files modified:
- Staging area - Files added to git staging area
Status communication:
First line of output indicates status:
SUCCESS: staged N files for atomic commit - Files staged
successfully
WARN: no files available to stage - No unstaged changes found
ERROR: [message] - Failed to stage files
Following lines (when SUCCESS): bullet point list of staged files