@phuc1403/musketeer 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +49 -49
  2. package/manifest.json +333 -301
  3. package/package.json +1 -1
  4. package/template/.claude/agents/code-reviewer.md +182 -166
  5. package/template/.claude/hooks/git-skill-reminder.cjs +53 -0
  6. package/template/.claude/hooks/inject-design-docs.cjs +13 -13
  7. package/template/.claude/hooks/inject-ubiquitous-language.cjs +52 -0
  8. package/template/.claude/hooks/lib/colors.cjs +180 -122
  9. package/template/.claude/hooks/lib/transcript-parser.cjs +300 -277
  10. package/template/.claude/skills/code-review/SKILL.md +201 -54
  11. package/template/.claude/skills/code-review/references/checklist-workflow.md +96 -0
  12. package/template/.claude/skills/code-review/references/checklists/api.md +52 -52
  13. package/template/.claude/skills/code-review/references/checklists/base.md +100 -100
  14. package/template/.claude/skills/code-review/references/checklists/web-app.md +54 -54
  15. package/template/.claude/skills/code-review/references/code-review-reception.md +113 -0
  16. package/template/.claude/skills/code-review/references/codebase-scan-workflow.md +30 -0
  17. package/template/.claude/skills/code-review/references/edge-case-scouting.md +119 -0
  18. package/template/.claude/skills/code-review/references/input-mode-resolution.md +135 -0
  19. package/template/.claude/skills/code-review/references/parallel-review-workflow.md +76 -0
  20. package/template/.claude/skills/code-review/references/requesting-code-review.md +116 -0
  21. package/template/.claude/skills/code-review/references/spec-compliance-review.md +43 -0
  22. package/template/.claude/skills/code-review/references/task-management-reviews.md +140 -0
  23. package/template/.claude/skills/code-review/references/verification-before-completion.md +139 -0
  24. package/template/.claude/skills/context-map/SKILL.md +1 -1
  25. package/template/.claude/skills/git/SKILL.md +131 -115
  26. package/template/.claude/skills/git/references/branch-management.md +88 -88
  27. package/template/.claude/skills/git/references/commit-standards.md +46 -46
  28. package/template/.claude/skills/git/references/context-efficiency.md +54 -0
  29. package/template/.claude/skills/git/references/gh-cli-guide.md +109 -109
  30. package/template/.claude/skills/git/references/safety-protocols.md +69 -69
  31. package/template/.claude/skills/git/references/workflow-commit.md +58 -58
  32. package/template/.claude/skills/git/references/workflow-merge-pr.md +136 -0
  33. package/template/.claude/skills/git/references/workflow-merge.md +48 -48
  34. package/template/.claude/skills/git/references/workflow-pr.md +58 -58
  35. package/template/.claude/skills/git/references/workflow-push.md +52 -52
  36. package/template/.claude/skills/knowledge-crunching/SKILL.md +56 -92
  37. package/template/.claude/skills/knowledge-crunching/assets/ubiquitous-language.template.md +3 -0
  38. package/template/.claude/skills/skill-creator/LICENSE.txt +201 -201
  39. package/template/.claude/skills/skill-creator/SKILL.md +154 -149
  40. package/template/.claude/skills/skill-creator/agents/analyzer.md +274 -274
  41. package/template/.claude/skills/skill-creator/agents/comparator.md +202 -202
  42. package/template/.claude/skills/skill-creator/agents/grader.md +223 -223
  43. package/template/.claude/skills/skill-creator/assets/eval_review.html +146 -146
  44. package/template/.claude/skills/skill-creator/eval-viewer/generate_review.py +471 -471
  45. package/template/.claude/skills/skill-creator/eval-viewer/viewer.html +1325 -1325
  46. package/template/.claude/skills/skill-creator/references/benchmark-optimization-guide.md +86 -86
  47. package/template/.claude/skills/skill-creator/references/distribution-guide.md +79 -79
  48. package/template/.claude/skills/skill-creator/references/eval-infrastructure-guide.md +129 -129
  49. package/template/.claude/skills/skill-creator/references/eval-schemas.md +121 -121
  50. package/template/.claude/skills/skill-creator/references/mcp-skills-integration.md +71 -71
  51. package/template/.claude/skills/skill-creator/references/metadata-quality-criteria.md +94 -94
  52. package/template/.claude/skills/skill-creator/references/plugin-marketplace-hosting.md +104 -104
  53. package/template/.claude/skills/skill-creator/references/plugin-marketplace-overview.md +89 -89
  54. package/template/.claude/skills/skill-creator/references/plugin-marketplace-schema.md +93 -93
  55. package/template/.claude/skills/skill-creator/references/plugin-marketplace-sources.md +103 -103
  56. package/template/.claude/skills/skill-creator/references/plugin-marketplace-troubleshooting.md +76 -76
  57. package/template/.claude/skills/skill-creator/references/script-quality-criteria.md +106 -106
  58. package/template/.claude/skills/skill-creator/references/skill-anatomy-and-requirements.md +77 -77
  59. package/template/.claude/skills/skill-creator/references/skill-creation-workflow.md +152 -151
  60. package/template/.claude/skills/skill-creator/references/skill-design-patterns.md +75 -75
  61. package/template/.claude/skills/skill-creator/references/skillmark-benchmark-criteria.md +102 -102
  62. package/template/.claude/skills/skill-creator/references/structure-organization-criteria.md +114 -114
  63. package/template/.claude/skills/skill-creator/references/testing-and-iteration.md +78 -78
  64. package/template/.claude/skills/skill-creator/references/token-efficiency-criteria.md +74 -74
  65. package/template/.claude/skills/skill-creator/references/troubleshooting-guide.md +81 -81
  66. package/template/.claude/skills/skill-creator/references/validation-checklist.md +83 -83
  67. package/template/.claude/skills/skill-creator/references/writing-effective-instructions.md +88 -88
  68. package/template/.claude/skills/skill-creator/references/yaml-frontmatter-reference.md +92 -92
  69. package/template/.claude/skills/skill-creator/scripts/aggregate_benchmark.py +401 -401
  70. package/template/.claude/skills/skill-creator/scripts/encoding_utils.py +36 -36
  71. package/template/.claude/skills/skill-creator/scripts/generate_report.py +326 -326
  72. package/template/.claude/skills/skill-creator/scripts/improve_description.py +248 -248
  73. package/template/.claude/skills/skill-creator/scripts/init_skill.py +360 -360
  74. package/template/.claude/skills/skill-creator/scripts/package_skill.py +143 -143
  75. package/template/.claude/skills/skill-creator/scripts/quick_validate.py +110 -110
  76. package/template/.claude/skills/skill-creator/scripts/run_eval.py +310 -310
  77. package/template/.claude/skills/skill-creator/scripts/run_loop.py +332 -332
  78. package/template/.claude/skills/skill-creator/scripts/utils.py +47 -47
  79. package/template/.claude/statusline.cjs +0 -0
  80. package/template/.claude/hooks/inject-context.cjs +0 -52
  81. package/template/.claude/skills/code-review/references/adversarial-review.md +0 -223
  82. package/template/.claude/skills/knowledge-crunching/assets/context.template.md +0 -59
  83. package/template/.claude/skills/knowledge-crunching/references/crunching-dialogue.md +0 -113
  84. /package/template/.claude/hooks/{usage-context-awareness.cjs → usage-quota-cache-refresh.cjs} +0 -0
@@ -1,121 +1,121 @@
1
- # Eval JSON Schemas
2
-
3
- All JSON schemas used by the eval infrastructure.
4
-
5
- ## evals.json — Test Cases
6
-
7
- ```json
8
- {
9
- "skill_name": "example-skill",
10
- "evals": [
11
- {
12
- "id": 0,
13
- "prompt": "User task prompt",
14
- "expected_output": "Description of correct output",
15
- "files": [],
16
- "assertions": [
17
- {"id": "assertion-1", "text": "Output contains valid JSON"},
18
- {"id": "assertion-2", "text": "All rows processed correctly"}
19
- ]
20
- }
21
- ]
22
- }
23
- ```
24
-
25
- ## eval_metadata.json — Per-Test Metadata
26
-
27
- ```json
28
- {
29
- "eval_id": 0,
30
- "eval_name": "descriptive-name",
31
- "prompt": "Task prompt",
32
- "assertions": [
33
- {"id": "assertion-1", "text": "Output contains valid JSON"}
34
- ]
35
- }
36
- ```
37
-
38
- ## grading.json — Grader Output
39
-
40
- ```json
41
- {
42
- "expectations": [
43
- {"text": "Output contains valid JSON", "passed": true, "evidence": "File output.json parsed successfully"}
44
- ],
45
- "pass_rate": 0.75,
46
- "metrics": {
47
- "execution_time_ms": 12500,
48
- "tokens_used": 8400,
49
- "tool_calls": 5
50
- },
51
- "claims": ["Additional observations beyond assertions"],
52
- "critique": "Evaluation feedback on criteria quality"
53
- }
54
- ```
55
-
56
- **Field names are exact** — viewer depends on: `text` (not name), `passed` (not met), `evidence` (not details).
57
-
58
- ## benchmark.json — Aggregated Stats
59
-
60
- ```json
61
- {
62
- "metadata": {"skill_name": "example", "timestamp": "..."},
63
- "runs": [{"eval_id": 0, "config": "with_skill", "pass_rate": 0.85}],
64
- "summaries": {
65
- "with_skill": {"mean_pass_rate": 0.85, "stddev": 0.05},
66
- "without_skill": {"mean_pass_rate": 0.45, "stddev": 0.10}
67
- },
68
- "deltas": {"pass_rate_delta": 0.40, "tokens_delta": -2000}
69
- }
70
- ```
71
-
72
- ## timing.json — Duration & Tokens
73
-
74
- ```json
75
- {
76
- "total_tokens": 84852,
77
- "duration_ms": 23332,
78
- "total_duration_seconds": 23.3
79
- }
80
- ```
81
-
82
- Must capture immediately from subagent notifications — data not persisted elsewhere.
83
-
84
- ## feedback.json — Human Reviews
85
-
86
- ```json
87
- {
88
- "reviews": [
89
- {"run_id": "eval-0-with_skill", "feedback": "User comment", "timestamp": "..."}
90
- ],
91
- "status": "complete"
92
- }
93
- ```
94
-
95
- ## comparison.json — Blind A/B Results
96
-
97
- ```json
98
- {
99
- "winner": "output_a",
100
- "reasoning": "Detailed explanation with citations",
101
- "scores": {"output_a": 8, "output_b": 6},
102
- "content_score": {"correctness": 4, "completeness": 5},
103
- "structure_score": {"organization": 4, "formatting": 3}
104
- }
105
- ```
106
-
107
- ## history.json — Optimization Iterations
108
-
109
- ```json
110
- {
111
- "versions": [
112
- {
113
- "description": "Current description text",
114
- "pass_rate": 0.85,
115
- "precision": 0.90,
116
- "recall": 0.80,
117
- "iteration": 1
118
- }
119
- ]
120
- }
121
- ```
1
+ # Eval JSON Schemas
2
+
3
+ All JSON schemas used by the eval infrastructure.
4
+
5
+ ## evals.json — Test Cases
6
+
7
+ ```json
8
+ {
9
+ "skill_name": "example-skill",
10
+ "evals": [
11
+ {
12
+ "id": 0,
13
+ "prompt": "User task prompt",
14
+ "expected_output": "Description of correct output",
15
+ "files": [],
16
+ "assertions": [
17
+ {"id": "assertion-1", "text": "Output contains valid JSON"},
18
+ {"id": "assertion-2", "text": "All rows processed correctly"}
19
+ ]
20
+ }
21
+ ]
22
+ }
23
+ ```
24
+
25
+ ## eval_metadata.json — Per-Test Metadata
26
+
27
+ ```json
28
+ {
29
+ "eval_id": 0,
30
+ "eval_name": "descriptive-name",
31
+ "prompt": "Task prompt",
32
+ "assertions": [
33
+ {"id": "assertion-1", "text": "Output contains valid JSON"}
34
+ ]
35
+ }
36
+ ```
37
+
38
+ ## grading.json — Grader Output
39
+
40
+ ```json
41
+ {
42
+ "expectations": [
43
+ {"text": "Output contains valid JSON", "passed": true, "evidence": "File output.json parsed successfully"}
44
+ ],
45
+ "pass_rate": 0.75,
46
+ "metrics": {
47
+ "execution_time_ms": 12500,
48
+ "tokens_used": 8400,
49
+ "tool_calls": 5
50
+ },
51
+ "claims": ["Additional observations beyond assertions"],
52
+ "critique": "Evaluation feedback on criteria quality"
53
+ }
54
+ ```
55
+
56
+ **Field names are exact** — viewer depends on: `text` (not name), `passed` (not met), `evidence` (not details).
57
+
58
+ ## benchmark.json — Aggregated Stats
59
+
60
+ ```json
61
+ {
62
+ "metadata": {"skill_name": "example", "timestamp": "..."},
63
+ "runs": [{"eval_id": 0, "config": "with_skill", "pass_rate": 0.85}],
64
+ "summaries": {
65
+ "with_skill": {"mean_pass_rate": 0.85, "stddev": 0.05},
66
+ "without_skill": {"mean_pass_rate": 0.45, "stddev": 0.10}
67
+ },
68
+ "deltas": {"pass_rate_delta": 0.40, "tokens_delta": -2000}
69
+ }
70
+ ```
71
+
72
+ ## timing.json — Duration & Tokens
73
+
74
+ ```json
75
+ {
76
+ "total_tokens": 84852,
77
+ "duration_ms": 23332,
78
+ "total_duration_seconds": 23.3
79
+ }
80
+ ```
81
+
82
+ Must capture immediately from subagent notifications — data not persisted elsewhere.
83
+
84
+ ## feedback.json — Human Reviews
85
+
86
+ ```json
87
+ {
88
+ "reviews": [
89
+ {"run_id": "eval-0-with_skill", "feedback": "User comment", "timestamp": "..."}
90
+ ],
91
+ "status": "complete"
92
+ }
93
+ ```
94
+
95
+ ## comparison.json — Blind A/B Results
96
+
97
+ ```json
98
+ {
99
+ "winner": "output_a",
100
+ "reasoning": "Detailed explanation with citations",
101
+ "scores": {"output_a": 8, "output_b": 6},
102
+ "content_score": {"correctness": 4, "completeness": 5},
103
+ "structure_score": {"organization": 4, "formatting": 3}
104
+ }
105
+ ```
106
+
107
+ ## history.json — Optimization Iterations
108
+
109
+ ```json
110
+ {
111
+ "versions": [
112
+ {
113
+ "description": "Current description text",
114
+ "pass_rate": 0.85,
115
+ "precision": 0.90,
116
+ "recall": 0.80,
117
+ "iteration": 1
118
+ }
119
+ ]
120
+ }
121
+ ```
@@ -1,71 +1,71 @@
1
- # MCP + Skills Integration
2
-
3
- ## The Kitchen Analogy
4
-
5
- - **MCP** provides the professional kitchen: access to tools, ingredients, equipment
6
- - **Skills** provide the recipes: step-by-step instructions to create something valuable
7
-
8
- Together, they enable users to accomplish complex tasks without figuring out every step.
9
-
10
- ## How They Work Together
11
-
12
- | MCP (Connectivity) | Skills (Knowledge) |
13
- |---|---|
14
- | Connects Claude to services (Notion, Asana, Linear) | Teaches Claude how to use services effectively |
15
- | Provides real-time data access and tool invocation | Captures workflows and best practices |
16
- | What Claude *can* do | How Claude *should* do it |
17
-
18
- ## Without Skills (MCP only)
19
-
20
- - Users connect MCP but don't know what to do next
21
- - Support tickets: "how do I do X with your integration?"
22
- - Each conversation starts from scratch
23
- - Inconsistent results (users prompt differently)
24
- - Users blame connector when issue is workflow guidance
25
-
26
- ## With Skills (MCP + Skills)
27
-
28
- - Pre-built workflows activate automatically
29
- - Consistent, reliable tool usage
30
- - Best practices embedded in every interaction
31
- - Lower learning curve for integration
32
-
33
- ## Building MCP-Enhanced Skills
34
-
35
- ### Key Techniques
36
-
37
- 1. **Reference correct MCP tool names** — tool names are case-sensitive
38
- 2. **Include error handling** for common MCP issues (connection refused, auth expired)
39
- 3. **Embed domain expertise** users would otherwise need to specify each time
40
- 4. **Coordinate multiple MCP calls** in sequence with data passing between steps
41
- 5. **Add fallback instructions** when MCP is unavailable
42
-
43
- ### Example: MCP Enhancement Skill Structure
44
-
45
- ```markdown
46
- ## Prerequisites
47
- - [Service] MCP server must be connected (Settings > Extensions)
48
- - Valid API key with [specific scopes]
49
-
50
- ## Workflow: [Task Name]
51
- ### Step 1: Fetch Context
52
- Call `mcp_tool_name` with parameters from user input
53
- ### Step 2: Process
54
- Apply domain rules to MCP response
55
- ### Step 3: Execute
56
- Call `mcp_action_tool` with processed data
57
- ### Step 4: Verify
58
- Confirm action completed, report results
59
-
60
- ## Troubleshooting
61
- If "Connection refused": verify MCP server running
62
- If auth error: check API key in Settings > Extensions
63
- ```
64
-
65
- ## Positioning MCP + Skills
66
-
67
- **Focus on outcomes:**
68
- > "The ProjectHub skill enables teams to set up complete project workspaces in seconds — instead of 30 minutes on manual setup."
69
-
70
- **Not features:**
71
- > ~~"The ProjectHub skill is a folder containing YAML frontmatter that calls our MCP server tools."~~
1
+ # MCP + Skills Integration
2
+
3
+ ## The Kitchen Analogy
4
+
5
+ - **MCP** provides the professional kitchen: access to tools, ingredients, equipment
6
+ - **Skills** provide the recipes: step-by-step instructions to create something valuable
7
+
8
+ Together, they enable users to accomplish complex tasks without figuring out every step.
9
+
10
+ ## How They Work Together
11
+
12
+ | MCP (Connectivity) | Skills (Knowledge) |
13
+ |---|---|
14
+ | Connects Claude to services (Notion, Asana, Linear) | Teaches Claude how to use services effectively |
15
+ | Provides real-time data access and tool invocation | Captures workflows and best practices |
16
+ | What Claude *can* do | How Claude *should* do it |
17
+
18
+ ## Without Skills (MCP only)
19
+
20
+ - Users connect MCP but don't know what to do next
21
+ - Support tickets: "how do I do X with your integration?"
22
+ - Each conversation starts from scratch
23
+ - Inconsistent results (users prompt differently)
24
+ - Users blame connector when issue is workflow guidance
25
+
26
+ ## With Skills (MCP + Skills)
27
+
28
+ - Pre-built workflows activate automatically
29
+ - Consistent, reliable tool usage
30
+ - Best practices embedded in every interaction
31
+ - Lower learning curve for integration
32
+
33
+ ## Building MCP-Enhanced Skills
34
+
35
+ ### Key Techniques
36
+
37
+ 1. **Reference correct MCP tool names** — tool names are case-sensitive
38
+ 2. **Include error handling** for common MCP issues (connection refused, auth expired)
39
+ 3. **Embed domain expertise** users would otherwise need to specify each time
40
+ 4. **Coordinate multiple MCP calls** in sequence with data passing between steps
41
+ 5. **Add fallback instructions** when MCP is unavailable
42
+
43
+ ### Example: MCP Enhancement Skill Structure
44
+
45
+ ```markdown
46
+ ## Prerequisites
47
+ - [Service] MCP server must be connected (Settings > Extensions)
48
+ - Valid API key with [specific scopes]
49
+
50
+ ## Workflow: [Task Name]
51
+ ### Step 1: Fetch Context
52
+ Call `mcp_tool_name` with parameters from user input
53
+ ### Step 2: Process
54
+ Apply domain rules to MCP response
55
+ ### Step 3: Execute
56
+ Call `mcp_action_tool` with processed data
57
+ ### Step 4: Verify
58
+ Confirm action completed, report results
59
+
60
+ ## Troubleshooting
61
+ If "Connection refused": verify MCP server running
62
+ If auth error: check API key in Settings > Extensions
63
+ ```
64
+
65
+ ## Positioning MCP + Skills
66
+
67
+ **Focus on outcomes:**
68
+ > "The ProjectHub skill enables teams to set up complete project workspaces in seconds — instead of 30 minutes on manual setup."
69
+
70
+ **Not features:**
71
+ > ~~"The ProjectHub skill is a folder containing YAML frontmatter that calls our MCP server tools."~~
@@ -1,94 +1,94 @@
1
- # Metadata Quality Criteria
2
-
3
- Metadata determines when Claude activates the skill. Poor metadata = wrong activation or missed activation.
4
-
5
- ## Name Field
6
-
7
- **Format:** use either `skill-name` or `namespace:skill-name` (for example `ck:plan`), all lowercase
8
-
9
- **Good Examples:**
10
- - `pdf-editor` - clear domain
11
- - `ck:bigquery-analyst` - namespaced variant
12
- - `frontend-webapp-builder` - specific function
13
-
14
- **Bad Examples:**
15
- - `helper` - too generic
16
- - `mySkill` - wrong case
17
- - `pdf` - too short, unclear purpose
18
-
19
- ## Description Field
20
-
21
- **Constraint:** ≤1024 characters (official max). Shorter is better for token efficiency, but longer descriptions trigger more reliably.
22
-
23
- **Purpose:** Trigger automatic activation during implementation. Be "pushy" — include specific trigger contexts.
24
-
25
- ### Good Descriptions
26
-
27
- Specific, action-oriented, includes use cases:
28
-
29
- ```yaml
30
- description: Build React/TypeScript frontends with modern patterns. Use for components, Suspense, lazy loading, performance optimization.
31
- ```
32
-
33
- ```yaml
34
- description: Process PDFs with rotation, splitting, merging. Use for document manipulation, page extraction, PDF conversion.
35
- ```
36
-
37
- ### Bad Descriptions
38
-
39
- Too generic or educational:
40
-
41
- ```yaml
42
- description: A skill for working with databases. # Too vague
43
- ```
44
-
45
- ```yaml
46
- description: This skill helps you understand how React works. # Educational, not actionable
47
- ```
48
-
49
- ## Trigger Precision
50
-
51
- Description should answer: "What phrases would a user say that should trigger this skill?"
52
-
53
- **Example for `image-editor` skill:**
54
- - "Remove red-eye from this image"
55
- - "Rotate this photo 90 degrees"
56
- - "Crop the background out"
57
-
58
- Include these trigger phrases/actions in description.
59
-
60
- ## Third-Person Style
61
-
62
- **Correct:** "This skill should be used when..."
63
- **Wrong:** "Use this skill when..." or "You should use this..."
64
-
65
- ## Validation
66
-
67
- Check with packaging script:
68
-
69
- ```bash
70
- scripts/package_skill.py <skill-path>
71
- ```
72
-
73
- Fails if:
74
- - Missing name or description
75
- - Description exceeds 1024 characters
76
- - Name exceeds 64 characters
77
- - Invalid YAML syntax
78
-
79
- ## Pushy Descriptions (Anti-Undertriggering)
80
-
81
- **Problem:** Generic descriptions cause skills to activate too rarely.
82
-
83
- ```yaml
84
- # BAD — undertriggers
85
- description: Data processing skill
86
-
87
- # GOOD — triggers reliably
88
- description: Process CSV files and tabular data. Use this skill whenever
89
- the user uploads data files, mentions datasets, wants to extract info
90
- from tables, or needs analysis on numbers and records. Make sure to
91
- use this skill whenever data transformation is needed.
92
- ```
93
-
94
- Include "Use this skill whenever..." and list specific trigger contexts.
1
+ # Metadata Quality Criteria
2
+
3
+ Metadata determines when Claude activates the skill. Poor metadata = wrong activation or missed activation.
4
+
5
+ ## Name Field
6
+
7
+ **Format:** use either `skill-name` or `namespace:skill-name` (for example `ck:plan`), all lowercase
8
+
9
+ **Good Examples:**
10
+ - `pdf-editor` - clear domain
11
+ - `ck:bigquery-analyst` - namespaced variant
12
+ - `frontend-webapp-builder` - specific function
13
+
14
+ **Bad Examples:**
15
+ - `helper` - too generic
16
+ - `mySkill` - wrong case
17
+ - `pdf` - too short, unclear purpose
18
+
19
+ ## Description Field
20
+
21
+ **Constraint:** ≤1024 characters (official max). Shorter is better for token efficiency, but longer descriptions trigger more reliably.
22
+
23
+ **Purpose:** Trigger automatic activation during implementation. Be "pushy" — include specific trigger contexts.
24
+
25
+ ### Good Descriptions
26
+
27
+ Specific, action-oriented, includes use cases:
28
+
29
+ ```yaml
30
+ description: Build React/TypeScript frontends with modern patterns. Use for components, Suspense, lazy loading, performance optimization.
31
+ ```
32
+
33
+ ```yaml
34
+ description: Process PDFs with rotation, splitting, merging. Use for document manipulation, page extraction, PDF conversion.
35
+ ```
36
+
37
+ ### Bad Descriptions
38
+
39
+ Too generic or educational:
40
+
41
+ ```yaml
42
+ description: A skill for working with databases. # Too vague
43
+ ```
44
+
45
+ ```yaml
46
+ description: This skill helps you understand how React works. # Educational, not actionable
47
+ ```
48
+
49
+ ## Trigger Precision
50
+
51
+ Description should answer: "What phrases would a user say that should trigger this skill?"
52
+
53
+ **Example for `image-editor` skill:**
54
+ - "Remove red-eye from this image"
55
+ - "Rotate this photo 90 degrees"
56
+ - "Crop the background out"
57
+
58
+ Include these trigger phrases/actions in description.
59
+
60
+ ## Third-Person Style
61
+
62
+ **Correct:** "This skill should be used when..."
63
+ **Wrong:** "Use this skill when..." or "You should use this..."
64
+
65
+ ## Validation
66
+
67
+ Check with packaging script:
68
+
69
+ ```bash
70
+ scripts/package_skill.py <skill-path>
71
+ ```
72
+
73
+ Fails if:
74
+ - Missing name or description
75
+ - Description exceeds 1024 characters
76
+ - Name exceeds 64 characters
77
+ - Invalid YAML syntax
78
+
79
+ ## Pushy Descriptions (Anti-Undertriggering)
80
+
81
+ **Problem:** Generic descriptions cause skills to activate too rarely.
82
+
83
+ ```yaml
84
+ # BAD — undertriggers
85
+ description: Data processing skill
86
+
87
+ # GOOD — triggers reliably
88
+ description: Process CSV files and tabular data. Use this skill whenever
89
+ the user uploads data files, mentions datasets, wants to extract info
90
+ from tables, or needs analysis on numbers and records. Make sure to
91
+ use this skill whenever data transformation is needed.
92
+ ```
93
+
94
+ Include "Use this skill whenever..." and list specific trigger contexts.