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 successfully - •
WARN: no files available to stage- Nounstagedchanges found - •
ERROR: [message]- Failed to stage files
Following lines (when SUCCESS): bullet point list of staged files