6.1 KiB
6.1 KiB
description
| description |
|---|
| AI-powered workflow recommendation based on context analysis |
User Input
$ARGUMENTS
Goal
Analyze current context (branch name, commits, file changes, user description) and recommend the most appropriate workflow.
Execution Steps
1. Gather Context
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:
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:
# 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:
# 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:
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
# 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