united-tattoo/.opencode/command/commit-openagents.md
Nicholai f372ab56de chore: add project configuration and agent files
Add BMAD, Claude, Cursor, and OpenCode configuration directories along with AGENTS.md documentation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 04:31:56 -07:00

267 lines
7.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
description: Smart commit command for opencode-agents repository with automatic validation and conventional commits
---
# Commit OpenAgents Command
You are an AI agent that helps create well-formatted git commits specifically for the **opencode-agents** repository. This command handles the complete commit workflow including validation, testing, and pushing changes.
## Instructions for Agent
When the user runs this command, execute the following workflow:
### 1. **Pre-Commit Validation**
Run these checks in parallel:
```bash
npm run test:openagent -- --smoke
npm run test:opencoder -- --smoke
git status --porcelain
git diff --cached
```
**Validation Rules:**
- ✅ Smoke tests must pass for both agents
- ✅ Check for uncommitted changes
- ⚠️ If tests fail, ask user if they want to proceed or fix issues first
### 2. **Analyze Changes**
- Run `git status` to see all untracked files
- Run `git diff` to see both staged and unstaged changes
- Run `git log --oneline -5` to see recent commit style
- Identify the scope of changes (evals, scripts, docs, agents, etc.)
### 3. **Stage Files Intelligently**
**Auto-stage based on change type:**
- If modifying evals framework → stage `evals/framework/`
- If modifying agent configs → stage `.opencode/agent/`
- If modifying scripts → stage `scripts/`
- If modifying docs → stage `docs/`
- If modifying CI/CD → stage `.github/workflows/`
- If user provides specific files → stage only those
**Never auto-stage:**
- `node_modules/`
- `.env` files
- `test_tmp/` or temporary directories
- `evals/results/` (test results)
### 4. **Generate Commit Message**
**Follow Conventional Commits (NO EMOJIS):**
```
<type>(<scope>): <description>
[optional body]
```
**Types for this repo:**
- `feat` - New features (agents, commands, tools)
- `fix` - Bug fixes
- `refactor` - Code restructuring without behavior change
- `test` - Test additions or modifications
- `docs` - Documentation updates
- `chore` - Maintenance tasks (dependencies, cleanup)
- `ci` - CI/CD pipeline changes
- `perf` - Performance improvements
**Scopes for this repo:**
- `evals` - Evaluation framework changes
- `agents` - Agent configuration changes (openagent, opencoder)
- `subagents` - Subagent changes (task-manager, coder, tester, etc.)
- `commands` - Slash command changes
- `context` - Context file changes
- `scripts` - Build/test script changes
- `ci` - GitHub Actions workflow changes
- `docs` - Documentation changes
**Examples:**
```
feat(evals): add parallel test execution support
fix(agents): correct delegation logic in openagent
refactor(evals): split test-runner into modular components
test(evals): add smoke tests for openagent
docs(readme): update installation instructions
chore(deps): upgrade evaluation framework dependencies
ci: add automatic version bumping workflow
```
### 5. **Commit Analysis**
<commit_analysis>
- List all files that have been changed or added
- Summarize the nature of changes (new feature, bug fix, refactor, etc.)
- Identify the primary scope (evals, agents, scripts, etc.)
- Determine the purpose/motivation behind changes
- Assess impact on the overall project
- Check for sensitive information (API keys, tokens, etc.)
- Draft a concise commit message focusing on "why" not "what"
- Ensure message follows conventional commit format
- Verify message is specific and not generic
</commit_analysis>
### 6. **Execute Commit**
```bash
git add <relevant-files>
git commit -m "<type>(<scope>): <description>"
git status # Verify commit succeeded
```
### 7. **Post-Commit Actions**
**Ask user:**
```
✅ Commit created: <commit-hash>
📝 Message: <commit-message>
Would you like to:
1. Push to remote (git push origin main)
2. Create another commit
3. Done
```
**If user chooses push:**
```bash
git push origin main
```
**Then inform:**
```
🚀 Pushed to remote!
This will trigger:
- GitHub Actions CI/CD workflow
- Smoke tests for openagent & opencoder
- Automatic version bumping (if feat/fix commit)
- CHANGELOG.md update
```
## Repository-Specific Rules
### Version Bumping (Automatic via CI/CD)
Commits trigger automatic version bumps:
- `feat:` → minor bump (0.0.1 → 0.1.0)
- `fix:` → patch bump (0.0.1 → 0.0.2)
- `feat!:` or `BREAKING CHANGE:` → major bump (0.1.0 → 1.0.0)
- `[alpha]` in message → alpha bump (0.1.0-alpha.1 → 0.1.0-alpha.2)
- Default → patch bump (0.0.1 → 0.0.2)
### Files to Always Check
Before committing, verify these are in sync:
- `VERSION` file
- `package.json` version
- `CHANGELOG.md` (if manually updated)
### Pre-Commit Hooks
This repo may have pre-commit hooks that:
- Run linting
- Format code
- Run type checks
**If hooks modify files:**
- Automatically amend the commit to include hook changes
- Inform user that files were auto-formatted
## Error Handling
### If Smoke Tests Fail
```
⚠️ Smoke tests failed for <agent-name>
Failures:
<test-output>
Options:
1. Fix issues and retry
2. Run full test suite (npm run test:<agent>)
3. Proceed anyway (not recommended)
4. Cancel commit
What would you like to do?
```
### If No Changes Detected
```
No changes to commit. Working tree is clean.
Recent commits:
<git log --oneline -3>
Would you like to:
1. Check git status
2. View recent commits
3. Exit
```
### If Merge Conflicts
```
⚠️ Merge conflicts detected. Please resolve conflicts first.
Conflicted files:
<list-files>
Run: git status
```
## Agent Behavior Notes
- **Never commit without validation** - Always run smoke tests first
- **Smart staging** - Only stage relevant files based on change scope
- **Conventional commits** - Strictly follow conventional commit format (NO EMOJIS)
- **Scope awareness** - Use appropriate scope for this repository
- **Version awareness** - Inform user about automatic version bumping
- **CI/CD awareness** - Remind user that push triggers automated workflows
- **Security** - Never commit sensitive information (API keys, tokens, .env files)
- **Atomic commits** - Each commit should have a single, clear purpose
- **Push guidance** - Always ask before pushing to remote
## Quick Reference
### Common Workflows
**Feature Addition:**
```bash
# 1. Run smoke tests
npm run test:openagent -- --smoke
npm run test:opencoder -- --smoke
# 2. Stage and commit
git add <files>
git commit -m "feat(evals): add new evaluation metric"
# 3. Push
git push origin main
```
**Bug Fix:**
```bash
git add <files>
git commit -m "fix(agents): correct delegation threshold logic"
git push origin main
```
**Documentation:**
```bash
git add docs/
git commit -m "docs(guides): update testing documentation"
git push origin main
```
**Refactoring:**
```bash
git add evals/framework/src/
git commit -m "refactor(evals): extract validation logic into separate module"
git push origin main
```
## Success Criteria
A successful commit should:
- ✅ Pass smoke tests for both agents
- ✅ Follow conventional commit format
- ✅ Have appropriate scope
- ✅ Be atomic (single purpose)
- ✅ Have clear, concise message
- ✅ Not include sensitive information
- ✅ Not include generated files (node_modules, build artifacts)
- ✅ Trigger appropriate CI/CD workflows when pushed