4.8 KiB
Auto-Commit Skill
Purpose
Automatically create professional git commits after completing agent tasks with semantic commit messages.
When to Use
- After completing a significant sub-task
- When changes are ready to be versioned
- Before handing off to another agent
- After passing quality gates
Usage
Call the auto-commit script with:
./orchestra/mcp-servers/auto-commit.sh <prefix> <reason> <action> [agent_name]
Parameters
-
prefix (required): Semantic commit type
feat- New featurefix- Bug fixdocs- Documentation changesstyle- Code formattingrefactor- Code refactoringperf- Performance improvementtest- Test additions/updateschore- Build/tool changes
-
reason (required): Why this change was made
- English: "to support voice notifications"
- Japanese: "通知をサポートする"
-
action (required): What was done
- English: "Add ElevenLabs TTS integration"
- Japanese: "ElevenLabs TTS統合を追加"
-
agent_name (optional): Agent making the commit
- "Eden", "Iris", "Mina", "Theo", "Blake"
Examples
Eden (QA Agent) - After running tests:
# English
./orchestra/mcp-servers/auto-commit.sh \
"test" \
"to ensure code quality" \
"Add comprehensive unit tests for API endpoints" \
"Eden"
# Result: test: Add comprehensive unit tests for API endpoints (to ensure code quality)
# Japanese
./orchestra/mcp-servers/auto-commit.sh \
"test" \
"コード品質を確保するため" \
"APIエンドポイント用の包括的な単体テストを追加" \
"Eden"
# Result: test: APIエンドポイント用の包括的な単体テストを追加 (コード品質を確保するため)
Iris (Security Agent) - After security scan:
./orchestra/mcp-servers/auto-commit.sh \
"chore" \
"to validate deployment security" \
"Run TruffleHog and Grype security scans" \
"Iris"
# Result: chore: Run TruffleHog and Grype security scans (to validate deployment security)
Blake (Release Manager) - After release preparation:
./orchestra/mcp-servers/auto-commit.sh \
"chore" \
"to prepare for production release" \
"Update changelog and version tags for v2.0.0" \
"Blake"
# Result: chore: Update changelog and version tags for v2.0.0 (to prepare for production release)
Mina (Integration Specialist) - After API integration:
./orchestra/mcp-servers/auto-commit.sh \
"feat" \
"to enhance user experience" \
"Implement responsive navigation component" \
"Mina"
# Result: feat: Implement responsive navigation component (to enhance user experience)
Theo (DevOps) - After deployment:
./orchestra/mcp-servers/auto-commit.sh \
"chore" \
"to track deployment state" \
"Update production deployment configuration" \
"Theo"
# Result: chore: Update production deployment configuration (to track deployment state)
Configuration
Set in .env:
# Enable/disable auto-commits
AUTO_COMMIT_ENABLED=true
# Commit message language
COMMIT_LANGUAGE=en # or 'ja' for Japanese
Commit Message Format
Format (both languages):
prefix: <action> (<reason>)
Co-Authored-By: <Agent> <noreply@orchestra>
English example:
feat: Add voice notification feature (to support agent announcements)
Co-Authored-By: Eden <noreply@orchestra>
Japanese example:
feat: 音声通知機能を追加 (エージェントのアナウンスをサポートするため)
Co-Authored-By: Eden <noreply@orchestra>
Best Practices
- Commit frequently: After each meaningful sub-task
- Use semantic prefixes: Choose the most appropriate prefix
- Be specific: Clearly describe both reason and action
- Agent attribution: Always include agent name for traceability
- Check AUTO_COMMIT_ENABLED: Script automatically respects this flag
- Verify changes: Script only commits if there are actual changes
Integration with Hooks
Auto-commit is integrated into all hook stages:
before_task.sh→ Main Claude Code commits task planning analysisbefore_pr.sh→ Eden commits QA validation resultsbefore_merge.sh→ Eden commits integration test resultsbefore_deploy.sh→ Iris commits security validationafter_deploy.sh→ Theo commits deployment verification
Troubleshooting
No changes to commit:
ℹ️ No changes to commit.
→ Normal behavior, script exits gracefully
Not a git repository:
⚠️ Not a git repository. Skipping auto-commit.
→ Script only works in git repositories
Invalid prefix:
❌ Invalid prefix: xyz
Valid prefixes: feat fix docs style refactor perf test chore
→ Use one of the valid semantic prefixes
Auto-commit disabled:
Script exits silently when AUTO_COMMIT_ENABLED=false