|
@@ -10,9 +10,67 @@ You are an AI agent that helps create well-formatted git commits specifically fo
|
|
|
|
|
|
|
|
When the user runs this command, execute the following workflow:
|
|
When the user runs this command, execute the following workflow:
|
|
|
|
|
|
|
|
-### 1. **Pre-Commit Validation (Optional)**
|
|
|
|
|
|
|
+### 1. **Smart Repo Analysis (Automatic)**
|
|
|
|
|
|
|
|
-**Ask user first:**
|
|
|
|
|
|
|
+**Before doing anything, analyze the repo state:**
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+# Check current branch and status
|
|
|
|
|
+git status
|
|
|
|
|
+git branch --show-current
|
|
|
|
|
+
|
|
|
|
|
+# Check for workflow issues
|
|
|
|
|
+git tag --sort=-v:refname | head -5 # Check recent tags
|
|
|
|
|
+cat VERSION # Check current version
|
|
|
|
|
+git log --oneline -5 # Check recent commits
|
|
|
|
|
+
|
|
|
|
|
+# Check for stale automation branches
|
|
|
|
|
+git branch -a | grep -E "chore/version-bump|docs/auto-sync" | wc -l
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**Intelligent Analysis:**
|
|
|
|
|
+- 🔍 **Version Sync Check**: Compare VERSION file with latest git tag
|
|
|
|
|
+ - If VERSION > latest tag → Suggest creating missing release
|
|
|
|
|
+ - If tags are missing → Offer to trigger release workflow
|
|
|
|
|
+- 🧹 **Branch Cleanup**: Detect stale automation branches
|
|
|
|
|
+ - Count `chore/version-bump-*` branches
|
|
|
|
|
+ - Count `docs/auto-sync-*` branches
|
|
|
|
|
+ - If > 3 stale branches → Suggest cleanup
|
|
|
|
|
+- 🔄 **Workflow Health**: Check if workflows are working
|
|
|
|
|
+ - Look for recent workflow runs
|
|
|
|
|
+ - Check for disabled workflows that might be needed
|
|
|
|
|
+- 📊 **Repo State**: Summarize current state
|
|
|
|
|
+ - Current branch
|
|
|
|
|
+ - Uncommitted changes
|
|
|
|
|
+ - Recent activity
|
|
|
|
|
+
|
|
|
|
|
+**Present Analysis:**
|
|
|
|
|
+```
|
|
|
|
|
+📊 Repo Health Check:
|
|
|
|
|
+- Current branch: <branch>
|
|
|
|
|
+- Version: <VERSION> | Latest tag: <tag>
|
|
|
|
|
+- Stale branches: <count> automation branches
|
|
|
|
|
+- Uncommitted changes: <count> files
|
|
|
|
|
+
|
|
|
|
|
+[If issues detected:]
|
|
|
|
|
+⚠️ Issues Found:
|
|
|
|
|
+- Missing release for v<VERSION> (tag not created)
|
|
|
|
|
+- <count> stale automation branches need cleanup
|
|
|
|
|
+
|
|
|
|
|
+Would you like to:
|
|
|
|
|
+1. Fix issues first (recommended)
|
|
|
|
|
+2. Continue with commit
|
|
|
|
|
+3. View detailed analysis
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**If user chooses "Fix issues":**
|
|
|
|
|
+- Offer to trigger `create-release.yml` workflow for missing tags
|
|
|
|
|
+- Offer to clean up stale branches
|
|
|
|
|
+- Offer to audit workflows if problems detected
|
|
|
|
|
+
|
|
|
|
|
+### 2. **Pre-Commit Validation (Optional)**
|
|
|
|
|
+
|
|
|
|
|
+**Ask user:**
|
|
|
```
|
|
```
|
|
|
Would you like to run smoke tests before committing? (y/n)
|
|
Would you like to run smoke tests before committing? (y/n)
|
|
|
- y: Run validation tests
|
|
- y: Run validation tests
|
|
@@ -29,13 +87,17 @@ cd evals/framework && npm run eval:sdk -- --agent=core/opencoder --pattern="**/s
|
|
|
- ⚠️ If tests fail, ask user if they want to proceed or fix issues first
|
|
- ⚠️ If tests fail, ask user if they want to proceed or fix issues first
|
|
|
- ✅ Tests are optional - user can skip and commit directly
|
|
- ✅ Tests are optional - user can skip and commit directly
|
|
|
|
|
|
|
|
-### 2. **Analyze Changes**
|
|
|
|
|
|
|
+### 3. **Analyze Changes**
|
|
|
- Run `git status` to see all untracked files
|
|
- Run `git status` to see all untracked files
|
|
|
- Run `git diff` to see both staged and unstaged changes
|
|
- Run `git diff` to see both staged and unstaged changes
|
|
|
- Run `git log --oneline -5` to see recent commit style
|
|
- Run `git log --oneline -5` to see recent commit style
|
|
|
-- Identify the scope of changes (evals, scripts, docs, agents, etc.)
|
|
|
|
|
|
|
+- Identify the scope of changes (evals, scripts, docs, agents, workflows, etc.)
|
|
|
|
|
+- **Special Detection**: Check if changes are workflow-related
|
|
|
|
|
+ - If `.github/workflows/` modified → Suggest workflow validation
|
|
|
|
|
+ - If new workflow added → Offer to document it
|
|
|
|
|
+ - If workflow disabled/deleted → Ask for confirmation
|
|
|
|
|
|
|
|
-### 3. **Stage Files Intelligently**
|
|
|
|
|
|
|
+### 4. **Stage Files Intelligently**
|
|
|
**Auto-stage based on change type:**
|
|
**Auto-stage based on change type:**
|
|
|
- If modifying evals framework → stage `evals/framework/`
|
|
- If modifying evals framework → stage `evals/framework/`
|
|
|
- If modifying core agents → stage `.opencode/agent/core/`
|
|
- If modifying core agents → stage `.opencode/agent/core/`
|
|
@@ -59,7 +121,7 @@ cd evals/framework && npm run eval:sdk -- --agent=core/opencoder --pattern="**/s
|
|
|
- `test_tmp/` or temporary directories
|
|
- `test_tmp/` or temporary directories
|
|
|
- `evals/results/` (test results)
|
|
- `evals/results/` (test results)
|
|
|
|
|
|
|
|
-### 4. **Generate Commit Message**
|
|
|
|
|
|
|
+### 5. **Generate Commit Message**
|
|
|
|
|
|
|
|
**Follow Conventional Commits (NO EMOJIS):**
|
|
**Follow Conventional Commits (NO EMOJIS):**
|
|
|
```
|
|
```
|
|
@@ -115,7 +177,7 @@ feat(registry): add new agent categories
|
|
|
ci: add automatic version bumping workflow
|
|
ci: add automatic version bumping workflow
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-### 5. **Commit Analysis**
|
|
|
|
|
|
|
+### 6. **Commit Analysis**
|
|
|
|
|
|
|
|
<commit_analysis>
|
|
<commit_analysis>
|
|
|
- List all files that have been changed or added
|
|
- List all files that have been changed or added
|
|
@@ -129,14 +191,14 @@ ci: add automatic version bumping workflow
|
|
|
- Verify message is specific and not generic
|
|
- Verify message is specific and not generic
|
|
|
</commit_analysis>
|
|
</commit_analysis>
|
|
|
|
|
|
|
|
-### 6. **Execute Commit**
|
|
|
|
|
|
|
+### 7. **Execute Commit**
|
|
|
```bash
|
|
```bash
|
|
|
git add <relevant-files>
|
|
git add <relevant-files>
|
|
|
git commit -m "<type>(<scope>): <description>"
|
|
git commit -m "<type>(<scope>): <description>"
|
|
|
git status # Verify commit succeeded
|
|
git status # Verify commit succeeded
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-### 7. **Post-Commit Actions**
|
|
|
|
|
|
|
+### 8. **Post-Commit Actions**
|
|
|
|
|
|
|
|
**Ask user:**
|
|
**Ask user:**
|
|
|
```
|
|
```
|
|
@@ -144,25 +206,155 @@ git status # Verify commit succeeded
|
|
|
📝 Message: <commit-message>
|
|
📝 Message: <commit-message>
|
|
|
|
|
|
|
|
Would you like to:
|
|
Would you like to:
|
|
|
-1. Push to remote (git push origin main)
|
|
|
|
|
|
|
+1. Push to remote (git push origin <branch>)
|
|
|
2. Create another commit
|
|
2. Create another commit
|
|
|
3. Done
|
|
3. Done
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
**If user chooses push:**
|
|
**If user chooses push:**
|
|
|
```bash
|
|
```bash
|
|
|
-git push origin main
|
|
|
|
|
|
|
+git push origin <current-branch>
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**Then inform based on commit type:**
|
|
|
|
|
+
|
|
|
|
|
+**For workflow changes (`.github/workflows/`):**
|
|
|
|
|
+```
|
|
|
|
|
+🚀 Pushed workflow changes!
|
|
|
|
|
+
|
|
|
|
|
+This will trigger:
|
|
|
|
|
+- Workflow validation on PR
|
|
|
|
|
+- Registry validation
|
|
|
|
|
+- PR checks
|
|
|
|
|
+
|
|
|
|
|
+⚠️ Important:
|
|
|
|
|
+- New workflows won't run until merged to main
|
|
|
|
|
+- Test workflows using workflow_dispatch if available
|
|
|
|
|
+- Check GitHub Actions tab for workflow syntax errors
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-**Then inform:**
|
|
|
|
|
|
|
+**For feature/fix commits to main:**
|
|
|
|
|
+```
|
|
|
|
|
+🚀 Pushed to main!
|
|
|
|
|
+
|
|
|
|
|
+This will trigger:
|
|
|
|
|
+- Post-merge version bump workflow
|
|
|
|
|
+- Create version bump PR automatically
|
|
|
|
|
+- Update VERSION, package.json, CHANGELOG.md
|
|
|
|
|
+- After version bump PR merges → Create git tag & release
|
|
|
|
|
+
|
|
|
|
|
+Expected flow:
|
|
|
|
|
+1. Your commit merged ✅
|
|
|
|
|
+2. Version bump PR created (automated)
|
|
|
|
|
+3. Review & merge version bump PR
|
|
|
|
|
+4. Git tag & GitHub release created automatically
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**For other commits:**
|
|
|
```
|
|
```
|
|
|
🚀 Pushed to remote!
|
|
🚀 Pushed to remote!
|
|
|
|
|
|
|
|
This will trigger:
|
|
This will trigger:
|
|
|
-- GitHub Actions CI/CD workflow
|
|
|
|
|
-- Smoke tests for openagent & opencoder
|
|
|
|
|
-- Automatic version bumping (if feat/fix commit)
|
|
|
|
|
-- CHANGELOG.md update
|
|
|
|
|
|
|
+- PR checks (if on feature branch)
|
|
|
|
|
+- Registry validation
|
|
|
|
|
+- Build & test validation
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+## Workflow Management (Smart Automation)
|
|
|
|
|
+
|
|
|
|
|
+### Automatic Workflow Analysis
|
|
|
|
|
+
|
|
|
|
|
+When committing workflow changes or when issues are detected, provide intelligent guidance:
|
|
|
|
|
+
|
|
|
|
|
+**1. Version & Release Sync**
|
|
|
|
|
+```bash
|
|
|
|
|
+# Check if version and tags are in sync
|
|
|
|
|
+VERSION=$(cat VERSION)
|
|
|
|
|
+LATEST_TAG=$(git tag --sort=-v:refname | head -1)
|
|
|
|
|
+
|
|
|
|
|
+if [ "v$VERSION" != "$LATEST_TAG" ]; then
|
|
|
|
|
+ echo "⚠️ Version mismatch detected!"
|
|
|
|
|
+ echo "VERSION file: $VERSION"
|
|
|
|
|
+ echo "Latest tag: $LATEST_TAG"
|
|
|
|
|
+ echo ""
|
|
|
|
|
+ echo "Would you like to:"
|
|
|
|
|
+ echo "1. Trigger create-release workflow to create v$VERSION tag/release"
|
|
|
|
|
+ echo "2. Manually create tag: git tag v$VERSION && git push origin v$VERSION"
|
|
|
|
|
+ echo "3. Ignore (version bump PR may be pending)"
|
|
|
|
|
+fi
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**2. Stale Branch Cleanup**
|
|
|
|
|
+```bash
|
|
|
|
|
+# Detect stale automation branches
|
|
|
|
|
+STALE_BRANCHES=$(git branch -a | grep -E "chore/version-bump|docs/auto-sync" | wc -l)
|
|
|
|
|
+
|
|
|
|
|
+if [ "$STALE_BRANCHES" -gt 3 ]; then
|
|
|
|
|
+ echo "🧹 Found $STALE_BRANCHES stale automation branches"
|
|
|
|
|
+ echo ""
|
|
|
|
|
+ echo "Would you like to clean them up?"
|
|
|
|
|
+ echo "1. Yes - delete merged automation branches"
|
|
|
|
|
+ echo "2. No - keep them"
|
|
|
|
|
+ echo "3. Show me the branches first"
|
|
|
|
|
+fi
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**3. Workflow Health Check**
|
|
|
|
|
+```bash
|
|
|
|
|
+# Check for common workflow issues
|
|
|
|
|
+if [ -f .github/workflows/post-merge.yml.disabled ]; then
|
|
|
|
|
+ echo "ℹ️ Found disabled workflow: post-merge.yml.disabled"
|
|
|
|
|
+ echo "This workflow has been replaced by post-merge-pr.yml + create-release.yml"
|
|
|
|
|
+ echo ""
|
|
|
|
|
+ echo "Would you like to delete it? (cleanup)"
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
|
|
+# Check if create-release.yml exists
|
|
|
|
|
+if [ ! -f .github/workflows/create-release.yml ]; then
|
|
|
|
|
+ echo "⚠️ Missing create-release.yml workflow"
|
|
|
|
|
+ echo "Tags and releases won't be created automatically!"
|
|
|
|
|
+ echo ""
|
|
|
|
|
+ echo "Would you like to create it?"
|
|
|
|
|
+fi
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**4. Workflow Documentation**
|
|
|
|
|
+
|
|
|
|
|
+When new workflows are added, offer to update documentation:
|
|
|
|
|
+```
|
|
|
|
|
+✅ New workflow detected: <workflow-name>.yml
|
|
|
|
|
+
|
|
|
|
|
+Would you like to:
|
|
|
|
|
+1. Add entry to .github/workflows/WORKFLOW_AUDIT.md
|
|
|
|
|
+2. Update README.md with workflow info
|
|
|
|
|
+3. Skip documentation (do it later)
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### Workflow Commit Best Practices
|
|
|
|
|
+
|
|
|
|
|
+**For workflow changes, always:**
|
|
|
|
|
+- Test workflow syntax before committing
|
|
|
|
|
+- Document what the workflow does
|
|
|
|
|
+- Explain why changes were made
|
|
|
|
|
+- Note any breaking changes
|
|
|
|
|
+- Update workflow audit documentation
|
|
|
|
|
+
|
|
|
|
|
+**Commit message format for workflows:**
|
|
|
|
|
+```
|
|
|
|
|
+ci(workflows): <what changed>
|
|
|
|
|
+
|
|
|
|
|
+Why: <reason for change>
|
|
|
|
|
+Impact: <what this affects>
|
|
|
|
|
+Testing: <how to test>
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**Example:**
|
|
|
|
|
+```
|
|
|
|
|
+ci(workflows): add automatic release creation workflow
|
|
|
|
|
+
|
|
|
|
|
+Why: Version bumps were happening but tags/releases weren't being created
|
|
|
|
|
+Impact: After version bump PRs merge, tags and releases will be created automatically
|
|
|
|
|
+Testing: Manually trigger workflow with: gh workflow run create-release.yml
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
## Repository-Specific Rules
|
|
## Repository-Specific Rules
|
|
@@ -232,18 +424,74 @@ Conflicted files:
|
|
|
Run: git status
|
|
Run: git status
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
+## Active Workflows in This Repo
|
|
|
|
|
+
|
|
|
|
|
+**Understanding the automation:**
|
|
|
|
|
+
|
|
|
|
|
+1. **create-release.yml** ✅ NEW
|
|
|
|
|
+ - Triggers: After version bump PRs merge (detects `version-bump` label)
|
|
|
|
|
+ - Creates: Git tags and GitHub releases
|
|
|
|
|
+ - Manual: Can trigger via `gh workflow run create-release.yml`
|
|
|
|
|
+
|
|
|
|
|
+2. **post-merge-pr.yml** ✅ Active
|
|
|
|
|
+ - Triggers: Push to main
|
|
|
|
|
+ - Creates: Version bump PR (updates VERSION, package.json, CHANGELOG.md)
|
|
|
|
|
+ - Skips: If commit has `version-bump` or `automated` label
|
|
|
|
|
+
|
|
|
|
|
+3. **pr-checks.yml** ✅ Active
|
|
|
|
|
+ - Triggers: Pull requests
|
|
|
|
|
+ - Validates: PR title format, builds framework, runs tests
|
|
|
|
|
+ - Required: Must pass before merge
|
|
|
|
|
+
|
|
|
|
|
+4. **validate-registry.yml** ✅ Active
|
|
|
|
|
+ - Triggers: Pull requests
|
|
|
|
|
+ - Validates: Registry.json, prompt library structure
|
|
|
|
|
+ - Auto-fixes: Adds new components to registry
|
|
|
|
|
+
|
|
|
|
|
+5. **update-registry.yml** ✅ Active
|
|
|
|
|
+ - Triggers: Push to main (when .opencode/ changes)
|
|
|
|
|
+ - Updates: Registry.json automatically
|
|
|
|
|
+ - Direct push: No PR needed
|
|
|
|
|
+
|
|
|
|
|
+6. **sync-docs.yml** ✅ Active
|
|
|
|
|
+ - Triggers: Push to main (when registry/components change)
|
|
|
|
|
+ - Creates: GitHub issue for OpenCode to sync docs
|
|
|
|
|
+ - Optional: Can be simplified if too complex
|
|
|
|
|
+
|
|
|
|
|
+7. **validate-test-suites.yml** ✅ Active
|
|
|
|
|
+ - Triggers: Pull requests (when evals/ changes)
|
|
|
|
|
+ - Validates: YAML test files
|
|
|
|
|
+ - Required: Must pass before merge
|
|
|
|
|
+
|
|
|
|
|
+**Workflow Flow for Version Bumps:**
|
|
|
|
|
+```
|
|
|
|
|
+1. Merge feat/fix PR to main
|
|
|
|
|
+ ↓
|
|
|
|
|
+2. post-merge-pr.yml creates version bump PR
|
|
|
|
|
+ ↓
|
|
|
|
|
+3. Review & merge version bump PR
|
|
|
|
|
+ ↓
|
|
|
|
|
+4. create-release.yml creates tag & release
|
|
|
|
|
+ ↓
|
|
|
|
|
+5. Done! 🎉
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
## Agent Behavior Notes
|
|
## Agent Behavior Notes
|
|
|
|
|
|
|
|
|
|
+- **Repo health first** - Always run smart analysis before committing
|
|
|
|
|
+- **Workflow awareness** - Understand which workflows will trigger
|
|
|
- **Optional validation** - Ask user if they want to run smoke tests (not mandatory)
|
|
- **Optional validation** - Ask user if they want to run smoke tests (not mandatory)
|
|
|
- **Smart staging** - Only stage relevant files based on change scope and category structure
|
|
- **Smart staging** - Only stage relevant files based on change scope and category structure
|
|
|
- **Conventional commits** - Strictly follow conventional commit format (NO EMOJIS)
|
|
- **Conventional commits** - Strictly follow conventional commit format (NO EMOJIS)
|
|
|
- **Scope awareness** - Use appropriate scope for this repository (include category paths)
|
|
- **Scope awareness** - Use appropriate scope for this repository (include category paths)
|
|
|
-- **Version awareness** - Inform user about automatic version bumping
|
|
|
|
|
|
|
+- **Version awareness** - Inform user about automatic version bumping and release creation
|
|
|
- **CI/CD awareness** - Remind user that push triggers automated workflows
|
|
- **CI/CD awareness** - Remind user that push triggers automated workflows
|
|
|
- **Security** - Never commit sensitive information (API keys, tokens, .env files)
|
|
- **Security** - Never commit sensitive information (API keys, tokens, .env files)
|
|
|
- **Atomic commits** - Each commit should have a single, clear purpose
|
|
- **Atomic commits** - Each commit should have a single, clear purpose
|
|
|
- **Push guidance** - Always ask before pushing to remote
|
|
- **Push guidance** - Always ask before pushing to remote
|
|
|
- **Category-aware** - Recognize new agent organization (core, development, content, data, meta, learning, product)
|
|
- **Category-aware** - Recognize new agent organization (core, development, content, data, meta, learning, product)
|
|
|
|
|
+- **Cleanup suggestions** - Offer to clean up stale branches and disabled workflows
|
|
|
|
|
+- **Documentation** - Suggest updating workflow docs when workflows change
|
|
|
|
|
|
|
|
## Quick Reference
|
|
## Quick Reference
|
|
|
|
|
|