8.4 KiB
8.4 KiB
Operation: Validate Keywords
Validate keyword selection for relevance, count, and quality against OpenPlugins standards.
Parameters from $ARGUMENTS
- keywords: Comma-separated keyword list (required)
- min: Minimum keyword count (optional, default: 3)
- max: Maximum keyword count (optional, default: 7)
- context: Plugin context for relevance checking (optional, JSON or description)
OpenPlugins Keyword Standards
Count Requirements:
- Minimum: 3 keywords
- Maximum: 7 keywords
- Optimal: 5-6 keywords
Quality Requirements:
- Relevant to plugin functionality
- Searchable terms users would use
- Mix of functionality, technology, and use-case
- No generic marketing terms
- No duplicate category names
Keyword Categories
Functionality Keywords (what it does):
testing,deployment,formatting,linting,migrationgeneration,automation,analysis,monitoring,scanning
Technology Keywords (what it works with):
python,javascript,docker,kubernetes,postgresqlreact,vue,typescript,bash,terraform
Use-Case Keywords (how it's used):
ci-cd,code-review,api-testing,performancetdd,bdd,refactoring,debugging,profiling
Good Keywords Examples
Well-balanced sets:
["testing", "pytest", "automation", "tdd", "python"]["deployment", "kubernetes", "ci-cd", "docker", "helm"]["linting", "javascript", "eslint", "code-quality", "automation"]["database", "postgresql", "migration", "schema", "sql"]
Poor keyword sets:
["plugin", "tool", "awesome"]- Generic/marketing terms["test", "testing", "tester", "tests"]- Redundant variations["development"]- Only category name, too few["a", "b", "c", "d", "e", "f", "g", "h"]- Too many, non-descriptive
Workflow
-
Extract Keywords from Arguments
Parse $ARGUMENTS to extract keywords parameter Split by comma, trim whitespace Normalize to lowercase Remove duplicates -
Execute Keyword Analyzer
Execute .scripts/keyword-analyzer.py "$keywords" "$min" "$max" "$context" Exit codes: - 0: Valid keyword set - 1: Count violation (too few or too many) - 2: Quality issues (generic terms, duplicates) - 3: Missing required parameters -
Validate Count
count = number of keywords IF count < min: FAIL (too few) IF count > max: FAIL (too many) -
Check for Generic Terms
Generic blocklist: - plugin, tool, utility, helper, awesome - best, perfect, great, super, amazing - code, software, app, program Flag any generic terms found -
Analyze Quality
Check for: - Duplicate category names - Redundant variations (test, testing, tests) - Single-character keywords - Non-descriptive terms -
Calculate Relevance Score
Base score: 10 points Deductions: - Generic term: -2 per term - Too few keywords: -5 - Too many keywords: -3 - Redundant variations: -2 per redundancy - Non-descriptive: -1 per term Final score: max(0, base - deductions) -
Return Analysis Report
Format results: - Status: PASS/FAIL/WARNING - Count: <number> (valid range: min-max) - Quality: <score>/10 - Issues: <list of problems> - Suggestions: <improved keyword set> - Score impact: +10 points (if excellent), +5 (if good)
Examples
# Valid keyword set
/best-practices keywords keywords:"testing,pytest,automation,tdd,python"
# Result: PASS - 5 keywords, well-balanced, relevant
# Too few keywords
/best-practices keywords keywords:"testing,python"
# Result: FAIL - Only 2 keywords (minimum: 3)
# Too many keywords
/best-practices keywords keywords:"a,b,c,d,e,f,g,h,i,j"
# Result: FAIL - 10 keywords (maximum: 7)
# Generic terms
/best-practices keywords keywords:"plugin,tool,awesome,best"
# Result: FAIL - Contains generic/marketing terms
# With custom range
/best-practices keywords keywords:"ci,cd,docker" min:2 max:5
# Result: PASS - 3 keywords within custom range
Error Handling
Missing keywords parameter:
ERROR: Missing required parameter 'keywords'
Usage: /best-practices keywords keywords:"keyword1,keyword2,keyword3"
Example: /best-practices keywords keywords:"testing,automation,python"
Empty keywords:
ERROR: Keywords cannot be empty
Provide 3-7 relevant keywords describing your plugin.
Good examples:
- "testing,pytest,automation"
- "deployment,kubernetes,ci-cd"
- "linting,javascript,code-quality"
Output Format
Success (Excellent Keywords):
✅ Keyword Validation: PASS
Keywords: testing, pytest, automation, tdd, python
Count: 5 (optimal range: 3-7)
Quality Score: 10/10
Analysis:
✅ Balanced mix of functionality, technology, and use-case
✅ All keywords relevant and searchable
✅ No generic or marketing terms
✅ Good variety without redundancy
Breakdown:
- Functionality: testing, automation, tdd
- Technology: pytest, python
- Use-case: tdd
Quality Score Impact: +10 points
Excellent keyword selection for discoverability!
Failure (Count Violation):
❌ Keyword Validation: FAIL
Keywords: testing, python
Count: 2 (required: 3-7)
Quality Score: 5/10
Issues Found:
1. Too few keywords (2 < 3 minimum)
2. Missing technology or use-case keywords
Suggestions to improve:
Add 1-3 more relevant keywords such as:
- Functionality: automation, unit-testing
- Use-case: tdd, ci-cd
- Specific tools: pytest, unittest
Recommended: testing, python, pytest, automation, tdd
Quality Score Impact: 0 points (fix to gain +10)
Failure (Generic Terms):
❌ Keyword Validation: FAIL
Keywords: plugin, tool, awesome, best, helper
Count: 5 (valid range)
Quality Score: 2/10
Issues Found:
1. Generic terms detected: plugin, tool, helper
2. Marketing terms detected: awesome, best
3. No functional or technical keywords
These keywords don't help users find your plugin.
Better alternatives:
Instead of generic terms, describe WHAT it does:
- Replace "plugin" → testing, deployment, formatting
- Replace "tool" → specific functionality
- Replace "awesome/best" → actual features
Suggested keywords based on common patterns:
- testing, automation, ci-cd, docker, python
- deployment, kubernetes, infrastructure, terraform
- linting, formatting, code-quality, javascript
Quality Score Impact: 0 points (fix to gain +10)
Warning (Minor Issues):
⚠️ Keyword Validation: WARNING
Keywords: testing, tests, test, automation, ci-cd
Count: 5 (valid range)
Quality Score: 7/10
Issues Found:
1. Redundant variations: testing, tests, test
2. Consider consolidating to single term
Suggestions:
- Keep: testing, automation, ci-cd
- Remove: tests, test (redundant)
- Add: 2 more specific keywords (e.g., pytest, junit)
Recommended: testing, automation, ci-cd, pytest, unit-testing
Quality Score Impact: +7 points (good, but could be better)
Your keywords are functional but could be more diverse.
Keyword Quality Checklist
PASS Requirements:
- 3-7 keywords total
- No generic terms (plugin, tool, utility, helper)
- No marketing terms (awesome, best, perfect)
- No redundant variations
- Mix of functionality and technology
- Relevant to plugin purpose
- Searchable by target users
FAIL Indicators:
- < 3 or > 7 keywords
- Contains generic terms
- Contains marketing fluff
- All keywords same type (only technologies, only functionality)
- Single-character keywords
- Category name duplication
Best Practices
Do:
- Use specific functionality terms
- Include primary technologies
- Add relevant use-cases
- Think about user search intent
- Balance breadth and specificity
Don't:
- Use generic words (plugin, tool, utility)
- Add marketing terms (best, awesome, perfect)
- Duplicate category names exactly
- Use redundant variations
- Add irrelevant technologies
- Use abbreviations without context
Quality Scoring Matrix
10/10 - Excellent:
- 5-6 keywords
- Perfect mix of functionality/technology/use-case
- All highly relevant
- Great search discoverability
7-9/10 - Good:
- 3-7 keywords
- Good mix with minor issues
- Mostly relevant
- Decent discoverability
4-6/10 - Fair:
- Count issues OR some generic terms
- Imbalanced mix
- Partial relevance
- Limited discoverability
0-3/10 - Poor:
- Severe count violations OR mostly generic
- No functional keywords
- Poor relevance
- Very poor discoverability
Request: $ARGUMENTS