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 feature - •
fix- Bug fix - •
docs- Documentation changes - •
style- Code formatting - •
refactor- Code refactoring - •
perf- Performance improvement - •
test- Test additions/updates - •
chore- 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 analysis - •
before_pr.sh→ Eden commits QA validation results - •
before_merge.sh→ Eden commits integration test results - •
before_deploy.sh→ Iris commits security validation - •
after_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