Files
gh-martybonacci-specswarm/commands/suggest.md
2025-11-30 08:39:24 +08:00

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