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/filesONLYif more than one file exists to stage. -
NEVERusegit add .orgit add -A. -
NEVERusegit checkoutorgit restore. -
Assume a file in both
stagedandunstagedstates needs staging. -
Stage files explicitly:
git add <file1> <file2> .... -
Leave unrelated changes
unstaged. -
Isolate
.gitignorechanges; stage them in a separate commit. -
Except for
.gitignore,DON'Tedit 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
unstagedfile, 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-ignoreduntrackedfiles; 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/
untrackedfiles - Update
.gitignorefollowing reference guidelines - Select smallest group of
unstagedfiles 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 successfullyWARN: no files available to stage- Nounstagedchanges foundERROR: [message]- Failed to stage files
Following lines (when SUCCESS): bullet point list of staged files