293 lines
6.1 KiB
Markdown
293 lines
6.1 KiB
Markdown
---
|
|
description: AI-powered workflow recommendation based on context analysis
|
|
---
|
|
|
|
## User Input
|
|
|
|
```text
|
|
$ARGUMENTS
|
|
```
|
|
|
|
## Goal
|
|
|
|
Analyze current context (branch name, commits, file changes, user description) and recommend the most appropriate workflow.
|
|
|
|
---
|
|
|
|
## Execution Steps
|
|
|
|
### 1. Gather Context
|
|
|
|
```bash
|
|
echo "🤖 Workflow Suggestion - Analyzing Context..."
|
|
|
|
# Branch name
|
|
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
|
|
# Recent commits
|
|
RECENT_COMMITS=$(git log -5 --oneline 2>/dev/null)
|
|
|
|
# Changed files
|
|
CHANGED_FILES=$(git diff --name-only HEAD~5..HEAD 2>/dev/null)
|
|
|
|
# Uncommitted changes
|
|
UNCOMMITTED=$(git status --porcelain 2>/dev/null | head -10)
|
|
|
|
# User description (if provided)
|
|
USER_DESCRIPTION=$ARGUMENTS
|
|
```
|
|
|
|
---
|
|
|
|
### 2. Analyze Patterns
|
|
|
|
**Branch Name Analysis:**
|
|
```bash
|
|
if [[ "$CURRENT_BRANCH" =~ ^feature/ ]]; then
|
|
PATTERN_SCORE["feature"]=5
|
|
elif [[ "$CURRENT_BRANCH" =~ ^bugfix/ ]]; then
|
|
PATTERN_SCORE["bugfix"]=10
|
|
elif [[ "$CURRENT_BRANCH" =~ ^modify/ ]]; then
|
|
PATTERN_SCORE["modify"]=10
|
|
elif [[ "$CURRENT_BRANCH" =~ ^hotfix/ ]]; then
|
|
PATTERN_SCORE["hotfix"]=10
|
|
elif [[ "$CURRENT_BRANCH" =~ ^refactor/ ]]; then
|
|
PATTERN_SCORE["refactor"]=10
|
|
elif [[ "$CURRENT_BRANCH" =~ ^deprecate/ ]]; then
|
|
PATTERN_SCORE["deprecate"]=10
|
|
fi
|
|
```
|
|
|
|
**Commit Message Analysis:**
|
|
```bash
|
|
# Look for keywords in commits
|
|
if echo "$RECENT_COMMITS" | grep -qi "fix\|bug\|issue"; then
|
|
PATTERN_SCORE["bugfix"]+=3
|
|
fi
|
|
|
|
if echo "$RECENT_COMMITS" | grep -qi "refactor\|cleanup\|improve"; then
|
|
PATTERN_SCORE["refactor"]+=3
|
|
fi
|
|
|
|
if echo "$RECENT_COMMITS" | grep -qi "hotfix\|emergency\|critical"; then
|
|
PATTERN_SCORE["hotfix"]+=5
|
|
fi
|
|
|
|
if echo "$RECENT_COMMITS" | grep -qi "deprecate\|remove\|sunset"; then
|
|
PATTERN_SCORE["deprecate"]+=3
|
|
fi
|
|
|
|
if echo "$RECENT_COMMITS" | grep -qi "modify\|update\|change"; then
|
|
PATTERN_SCORE["modify"]+=2
|
|
fi
|
|
```
|
|
|
|
**File Change Analysis:**
|
|
```bash
|
|
# Analyze changed files
|
|
FILE_COUNT=$(echo "$CHANGED_FILES" | wc -l)
|
|
|
|
if [ "$FILE_COUNT" -gt 10 ]; then
|
|
# Many files changed - likely refactor or major modify
|
|
PATTERN_SCORE["refactor"]+=2
|
|
PATTERN_SCORE["modify"]+=2
|
|
fi
|
|
|
|
# Check for test file changes
|
|
if echo "$CHANGED_FILES" | grep -qi "test\|spec"; then
|
|
PATTERN_SCORE["bugfix"]+=1 # Tests often accompany bug fixes
|
|
fi
|
|
```
|
|
|
|
**User Description Analysis:**
|
|
```bash
|
|
if [ -n "$USER_DESCRIPTION" ]; then
|
|
# Analyze user description for keywords
|
|
if echo "$USER_DESCRIPTION" | grep -qi "bug\|fix\|broken\|not working"; then
|
|
PATTERN_SCORE["bugfix"]+=5
|
|
fi
|
|
|
|
if echo "$USER_DESCRIPTION" | grep -qi "emergency\|critical\|urgent\|hotfix\|down"; then
|
|
PATTERN_SCORE["hotfix"]+=7
|
|
fi
|
|
|
|
if echo "$USER_DESCRIPTION" | grep -qi "refactor\|clean\|improve quality"; then
|
|
PATTERN_SCORE["refactor"]+=5
|
|
fi
|
|
|
|
if echo "$USER_DESCRIPTION" | grep -qi "modify\|change\|update\|add to"; then
|
|
PATTERN_SCORE["modify"]+=5
|
|
fi
|
|
|
|
if echo "$USER_DESCRIPTION" | grep -qi "deprecate\|remove\|sunset\|phase out"; then
|
|
PATTERN_SCORE["deprecate"]+=5
|
|
fi
|
|
fi
|
|
```
|
|
|
|
---
|
|
|
|
### 3. Generate Recommendations
|
|
|
|
```markdown
|
|
# Workflow Recommendation
|
|
|
|
**Analysis Date**: YYYY-MM-DD
|
|
|
|
---
|
|
|
|
## Context Analysis
|
|
|
|
**Branch**: ${CURRENT_BRANCH}
|
|
|
|
**Recent Activity**:
|
|
- Commits analyzed: [N]
|
|
- Files changed: [N]
|
|
- Keywords found: [list]
|
|
|
|
**User Description**: ${USER_DESCRIPTION}
|
|
|
|
---
|
|
|
|
## Pattern Scores
|
|
|
|
| Workflow | Score | Confidence |
|
|
|----------|-------|------------|
|
|
| Bugfix | [N] | [High/Med/Low] |
|
|
| Modify | [N] | [High/Med/Low] |
|
|
| Hotfix | [N] | [High/Med/Low] |
|
|
| Refactor | [N] | [High/Med/Low] |
|
|
| Deprecate | [N] | [High/Med/Low] |
|
|
| Feature (SpecSwarm/SpecTest) | [N] | [High/Med/Low] |
|
|
|
|
---
|
|
|
|
## Recommendation
|
|
|
|
### 🎯 Primary Recommendation: `/specswarm:[workflow]`
|
|
|
|
**Confidence**: [High/Medium/Low]
|
|
|
|
**Reasoning**:
|
|
1. [Reason 1 - evidence from branch/commits/files]
|
|
2. [Reason 2]
|
|
3. [Reason 3]
|
|
|
|
**Why This Workflow**:
|
|
[Description of why this workflow fits]
|
|
|
|
**Expected Outcome**:
|
|
- [Outcome 1]
|
|
- [Outcome 2]
|
|
|
|
---
|
|
|
|
## Alternative Workflows
|
|
|
|
### Alternative 1: `/specswarm:[workflow2]`
|
|
**Confidence**: [Medium/Low]
|
|
**When to Use**: [Scenario where this would be better]
|
|
|
|
### Alternative 2: `/specswarm:[workflow3]`
|
|
**Confidence**: [Medium/Low]
|
|
**When to Use**: [Scenario where this would be better]
|
|
|
|
---
|
|
|
|
## Not Recommended
|
|
|
|
**Feature Development** → Use `/specswarm:*` workflows
|
|
**Reason**: [If feature development detected, redirect to appropriate plugin]
|
|
|
|
---
|
|
|
|
## Next Steps
|
|
|
|
1. **Review recommendation** above
|
|
2. **Run recommended workflow**: `/specswarm:[workflow]`
|
|
3. **If uncertain**, provide more context: `/specswarm:suggest "more details here"`
|
|
|
|
**Command to run**:
|
|
```
|
|
/specswarm:[recommended_workflow]
|
|
```
|
|
```
|
|
|
|
---
|
|
|
|
### 4. Output Recommendation
|
|
|
|
```
|
|
🤖 Workflow Suggestion Complete
|
|
|
|
🎯 Recommended Workflow: /specswarm:[workflow]
|
|
Confidence: [High/Medium/Low]
|
|
|
|
📊 Analysis:
|
|
- Branch pattern: [detected pattern]
|
|
- Commit keywords: [list]
|
|
- Files changed: [N]
|
|
- User signals: [description analysis]
|
|
|
|
📋 Full analysis (above)
|
|
|
|
⚡ Quick Start:
|
|
/specswarm:[recommended_workflow]
|
|
```
|
|
|
|
---
|
|
|
|
## Example Output
|
|
|
|
```
|
|
🤖 Workflow Suggestion Complete
|
|
|
|
🎯 Recommended Workflow: /specswarm:bugfix
|
|
Confidence: High
|
|
|
|
📊 Analysis:
|
|
- Branch pattern: bugfix/042-login-timeout
|
|
- Commit keywords: "fix", "bug", "timeout issue"
|
|
- Files changed: 3 (auth, tests)
|
|
- User signals: "login not working"
|
|
|
|
Reasoning:
|
|
1. Branch name explicitly indicates bugfix
|
|
2. Commit messages contain bug-fix keywords
|
|
3. User description indicates broken functionality
|
|
4. Test files modified (typical of bugfix workflow)
|
|
|
|
⚡ Quick Start:
|
|
/speclab:bugfix
|
|
```
|
|
|
|
---
|
|
|
|
## Decision Logic
|
|
|
|
**High Confidence (score ≥ 10)**:
|
|
- Clear indicators from multiple sources
|
|
- Strong pattern match
|
|
- Recommend with confidence
|
|
|
|
**Medium Confidence (score 5-9)**:
|
|
- Some indicators present
|
|
- Moderate pattern match
|
|
- Offer alternatives
|
|
|
|
**Low Confidence (score < 5)**:
|
|
- Weak or conflicting signals
|
|
- Suggest multiple options
|
|
- Ask for more context
|
|
|
|
---
|
|
|
|
## Success Criteria
|
|
|
|
✅ Context gathered from git history
|
|
✅ Patterns analyzed (branch, commits, files, description)
|
|
✅ Scores calculated for each workflow
|
|
✅ Primary recommendation provided
|
|
✅ Alternative workflows suggested
|
|
✅ Next steps clear
|