Git commit patterns, formats, and conventions for GSD methodology. Provides atomic commits per task, structured commit messages, planning file commits, branch management, and milestone tag operations.
npx claudepluginhub a5c-ai/babysitterThis skill is limited to using the following tools:
README.mdYou are git-integration - the skill that manages all git operations within the GSD methodology. GSD enforces atomic commits per task, structured commit message formats, separation of planning file commits from code commits, and milestone tagging.
Git integration in GSD follows two key principles:
.planning/) are committed separately from code changes.This corresponds to the patterns in the original references/git-integration.md and references/git-planning-commit.md.
Each task in a plan produces one atomic commit:
# After completing task 1 of PLAN-1.md
git add src/auth/oauth.ts src/auth/types.ts
git commit -m "feat(auth): implement OAuth2 login endpoint
Phase 72, Plan 1, Task 1: Implement login endpoint
- Added POST /api/auth/login with email/password validation
- Returns JWT token on success, 401 on invalid credentials
- Rate limited to 5 attempts per minute
Refs: Phase-72/PLAN-1/Task-1"
Commit message format:
<type>(<scope>): <short description>
Phase <N>, Plan <M>, Task <K>: <task title>
- <change 1>
- <change 2>
Refs: Phase-<N>/PLAN-<M>/Task-<K>
Types: feat, fix, refactor, test, docs, chore, style, perf.
Planning files are committed separately from code:
# After generating plans
git add .planning/phase-72/PLAN-1.md .planning/phase-72/PLAN-2.md
git commit -m "plan(phase-72): create execution plans
Phase 72: Authentication
- PLAN-1.md: OAuth2 login and token management (4 tasks, wave 1)
- PLAN-2.md: Auth middleware and role guards (3 tasks, wave 1)
Refs: Phase-72/planning"
Planning commit types: plan, state, research, context, verify, audit.
Generate commit messages from task context:
Input:
phase: 72
plan: 1
task: 1
title: "Implement login endpoint"
type: "feat"
scope: "auth"
changes: ["POST /api/auth/login endpoint", "JWT token generation", "Rate limiting"]
Output:
"feat(auth): implement OAuth2 login endpoint
Phase 72, Plan 1, Task 1: Implement login endpoint
- Added POST /api/auth/login endpoint
- JWT token generation on success
- Rate limiting (5 attempts/minute)
Refs: Phase-72/PLAN-1/Task-1"
Create annotated tags for milestone completions:
git tag -a v1.0 -m "Milestone v1.0: MVP Launch
Phases completed: 70, 71, 72, 73
Requirements covered: R1-R11
Audit result: PASSED
Key deliverables:
- Project scaffolding and CI pipeline
- Database layer with migrations
- OAuth2 authentication
- REST API endpoints"
Detect current branch state:
{
"branch": "main",
"clean": false,
"staged": ["src/auth/oauth.ts"],
"unstaged": [".planning/STATE.md"],
"untracked": ["src/auth/oauth.test.ts"],
"ahead": 3,
"behind": 0
}
Separate .planning/ files from source code files:
# Stage code changes only
git add src/auth/oauth.ts src/auth/types.ts
# Stage planning changes only (separate commit)
git add .planning/phase-72/SUMMARY.md .planning/STATE.md
Rules:
Analyze commit history for progress tracking:
Phase 72 commits:
abc1234 feat(auth): implement OAuth2 login endpoint (Task 1)
def5678 feat(auth): add token refresh mechanism (Task 2)
ghi9012 feat(auth): implement logout and revocation (Task 3)
jkl3456 test(auth): add auth endpoint tests (Task 4)
Total: 4 commits, 12 files changed, +450 -30 lines
Generate diff summaries for SUMMARY.md:
Changes summary:
Files created: 4
Files modified: 2
Files deleted: 0
Lines added: 450
Lines removed: 30
New files:
src/auth/oauth.ts (120 lines)
src/auth/tokens.ts (85 lines)
src/auth/types.ts (45 lines)
src/middleware/auth.ts (90 lines)
Modified files:
src/routes/index.ts (+15 -2)
package.json (+3 -0)
Bash to run git status to see current changesBash to stage only the files related to the current task: git add <files>Bash to commit: git commit -m "<message>"git log -1Bash to identify planning file changes: git status .planning/git add .planning/<files>Read to load milestone audit data for tag annotationBash to create annotated tag: git tag -a <version> -m "<annotation>"git tag -l <version>Bash to run git status --porcelainBash to run git rev-list --count HEAD..@{upstream} for behind countBash to run git rev-list --count @{upstream}..HEAD for ahead countexecute-phase.js - Atomic commit per task during executionverify-work.js - Commit verification results and fixesquick.js - Atomic commit for quick task executiondebug.js - Commit debug fixescomplete-milestone.js - Create milestone git tagadd-tests.js - Commit each test file atomicallyresearch-phase.js - Commit research documentplan-phase.js - Commit generated plans (planning commit){
"operation": "commit|tag|status|history|diff",
"status": "success|error",
"commit": {
"hash": "abc1234",
"message": "feat(auth): implement OAuth2 login endpoint",
"filesChanged": 3,
"linesAdded": 120,
"linesRemoved": 5
},
"tag": {
"name": "v1.0",
"annotation": "Milestone v1.0: MVP Launch"
},
"branchStatus": {
"branch": "main",
"clean": true,
"ahead": 0,
"behind": 0
}
}
| Setting | Default | Description |
|---|---|---|
autoCommit | true | Automatically commit after each task |
commitMessageFormat | conventional | Commit message format (conventional/simple) |
separatePlanningCommits | true | Separate planning from code commits |
signCommits | false | GPG-sign commits |
tagPrefix | v | Prefix for milestone tags |
| Error | Cause | Resolution |
|---|---|---|
Nothing to commit | No changes to stage | Verify task made expected changes |
Merge conflict | Conflicting changes in working tree | Resolve conflicts before committing |
Dirty working tree | Uncommitted changes from previous task | Commit or stash before proceeding |
Tag already exists | Milestone tag already created | Use --force or choose different tag name |
Detached HEAD | Not on a branch | Checkout a branch before committing |
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.