Files
gh-bcasci-hustler-marketpla…/commands/suggest-skills.md
2025-11-29 18:00:44 +08:00

177 lines
5.2 KiB
Markdown
Raw Permalink 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.
---
name: suggest-skills
description: Analyzes prompt files and recommends extracting reusable logic into skills
argument-hint: [file-path]
---
# PURPOSE
You are analyzing a prompt file to identify opportunities for skill extraction.
## Step 1: Read and Analyze Prompt
Read the file at path: `$1`
If no path provided (`$1` is empty), ask user for the file path.
Analyze the prompt content for extraction candidates:
**Identify if prompt contains:**
- Repeated multi-step workflows (3+ steps appearing 2+ times)
- Complex subprocess with clear input/output boundaries (>200 words, self-contained)
- Domain-specific logic that could apply to other prompts
- Tool-heavy sections that could be reused
**For each candidate, document:**
- Proposed skill name (action-oriented, gerund form: `processing-X`, `building-Y`)
- What it would handle (1 sentence)
- Lines/sections to extract from current prompt
- Justification (why worth extracting)
**Output MAX 3-5 skill candidates.** DO NOT suggest extraction for:
- Prompts <300 words total
- One-off logic with no reuse potential
- Simple template sections
## Step 2: Check for Duplicate Skills
Before presenting options to user, check if proposed skills already exist:
1. **Search user-level skills**:
- Glob `~/.claude/skills/*/SKILL.md`
- Read each SKILL.md to check name and description
- Match by: similar name, overlapping functionality
2. **Check available skills**:
- Review list of available skills from plugins/MCP
- Current known skills: draft-github-issues, publish-github-issues, prompt-architecting, saas-pricing-strategy, skill-generator
3. **For each duplicate found**:
- Note which existing skill covers this functionality
- Remove from candidate list
- Prepare recommendation to use existing skill instead
## Step 3: Present Options
Use AskUserQuestion tool to present candidates:
**If 0 candidates after deduplication:**
```text
No new skills recommended. Existing skills already cover identified patterns:
- {pattern description} → Use {existing-skill-name}
- {pattern description} → Use {existing-skill-name}
Suggestion: Use /optimize-prompt-file to reduce verbosity without extracting logic.
```
**If 1+ candidates remain:**
```text
Question: "Which skills should I extract from this prompt?"
multiSelect: true
Options:
- label: "{skill-name-1}"
description: "Handles {what it does}. Extracts {section description}."
- label: "{skill-name-2}"
description: "Handles {what it does}. Extracts {section description}."
...
- label: "None - keep as-is"
description: "Don't extract any skills"
```
**Also inform user about existing skills:**
```text
Existing skills that could be used:
- {existing-skill-name}: {what it does}
```
## Step 4: Execute User Choice
Based on user selection:
**If "None - keep as-is"**: Exit with no changes.
**If 1+ skills selected**:
For each selected skill:
1. **Run your skill-generator skill** with:
- Skill name: {selected-name}
- Purpose: {what it handles}
- Context: Extracted from {original-file-path}
- Content to extract: {specific sections/logic}
- Location: Ask user (user-level `~/.claude/skills/` or project-level `.claude/skills/`)
2. Wait for skill-generator to complete
3. Verify skill was created successfully
## Step 5: Refactor Original Prompt
Once all skills created:
1. **Replace extracted logic** with skill invocations:
- Find sections that were extracted
- Replace with: "Run {skill-name} skill to handle {purpose}"
- Update workflow steps to reference skill calls
2. **Preserve front matter** exactly (never modify)
3. **Show diff** to user:
```text
Changes to {file-path}:
- [Removed: Lines X-Y - extracted to {skill-name}]
+ [Added: Run {skill-name} skill]
Before: {original-word-count} words
After: {new-word-count} words ({reduction}% reduction)
Proceed with refactoring? [yes/no]
```
4. **Apply changes** if user approves:
- Write refactored content + original front matter back to file
- Report success with summary
## Important Rules
- NEVER create skills manually - ALWAYS use skill-generator skill
- ALWAYS check for duplicate skills before presenting options
- ALWAYS preserve front matter exactly
- REQUIRE user approval before refactoring original prompt
- DO NOT suggest extraction for prompts <300 words
- DO NOT auto-extract without user selection via AskUserQuestion
- If extraction would leave original prompt <50 words, warn that it may be too aggressive
## Example Output
```text
Analyzing /Users/name/.claude/commands/complex-workflow.md...
Current: 650 words
Identified 3 extraction candidates:
1. validating-yaml-structure (lines 45-120): Validates YAML files against schemas
2. batch-file-processing (lines 200-280): Processes multiple files with progress tracking
3. generating-reports (lines 350-420): Creates markdown reports from structured data
Checking for duplicates...
✅ No existing skills match these patterns
Which skills should I extract from this prompt?
□ validating-yaml-structure - Handles YAML validation logic
□ batch-file-processing - Handles multi-file processing with progress
□ generating-reports - Handles report generation from data
☑ None - keep as-is
```