@intentsolutionsio/skill-creator 5.0.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.
- package/.claude-plugin/plugin.json +17 -0
- package/README.md +55 -0
- package/package.json +38 -0
- package/scripts/validate-skill.py +1132 -0
- package/skills/agent-creator/SKILL.md +305 -0
- package/skills/agent-creator/references/anthropic-agent-spec.md +89 -0
- package/skills/skill-creator/SKILL.md +267 -0
- package/skills/skill-creator/agents/analyzer.md +279 -0
- package/skills/skill-creator/agents/comparator.md +207 -0
- package/skills/skill-creator/agents/grader.md +228 -0
- package/skills/skill-creator/assets/eval_review.html +146 -0
- package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/skills/skill-creator/references/advanced-eval-workflow.md +320 -0
- package/skills/skill-creator/references/anthropic-comparison.md +93 -0
- package/skills/skill-creator/references/ard-template.md +47 -0
- package/skills/skill-creator/references/creation-guide.md +305 -0
- package/skills/skill-creator/references/errors-template.md +27 -0
- package/skills/skill-creator/references/examples-template.md +40 -0
- package/skills/skill-creator/references/frontmatter-spec.md +531 -0
- package/skills/skill-creator/references/implementation-template.md +42 -0
- package/skills/skill-creator/references/output-patterns.md +193 -0
- package/skills/skill-creator/references/prd-template.md +55 -0
- package/skills/skill-creator/references/schemas.md +430 -0
- package/skills/skill-creator/references/source-of-truth.md +658 -0
- package/skills/skill-creator/references/validation-rules.md +528 -0
- package/skills/skill-creator/references/workflows.md +233 -0
- package/skills/skill-creator/scripts/__init__.py +0 -0
- package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/skills/skill-creator/scripts/generate_report.py +326 -0
- package/skills/skill-creator/scripts/improve_description.py +247 -0
- package/skills/skill-creator/scripts/package_skill.py +136 -0
- package/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/skills/skill-creator/scripts/run_eval.py +344 -0
- package/skills/skill-creator/scripts/run_loop.py +329 -0
- package/skills/skill-creator/scripts/utils.py +47 -0
- package/skills/skill-creator/scripts/validate-skill.py +87 -0
- package/skills/skill-creator/templates/agent-template.md +99 -0
- package/skills/skill-creator/templates/skill-template.md +122 -0
|
@@ -0,0 +1,531 @@
|
|
|
1
|
+
# Frontmatter Field Specification
|
|
2
|
+
|
|
3
|
+
Complete reference for SKILL.md and agent frontmatter fields.
|
|
4
|
+
|
|
5
|
+
**Source**: https://code.claude.com/docs/en/skills (Anthropic, 2026)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Skill Frontmatter — Anthropic Standard (11 fields)
|
|
10
|
+
|
|
11
|
+
### name
|
|
12
|
+
|
|
13
|
+
- **Type**: string
|
|
14
|
+
- **Default**: directory name (if omitted)
|
|
15
|
+
- **Format**: kebab-case (lowercase letters, numbers, hyphens)
|
|
16
|
+
- **Length**: 1-64 characters
|
|
17
|
+
- **Rules**:
|
|
18
|
+
- Must start with a letter
|
|
19
|
+
- Must end with letter or number
|
|
20
|
+
- No consecutive hyphens (`my--skill`)
|
|
21
|
+
- No start/end hyphens (`-my-skill`, `my-skill-`)
|
|
22
|
+
- Must match containing directory name
|
|
23
|
+
- No reserved words in isolation (`anthropic`, `claude`)
|
|
24
|
+
- No XML tags (`<`, `>`) — breaks frontmatter parsing
|
|
25
|
+
- Gerund naming preferred (`processing-pdfs`, `analyzing-data`)
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
name: email-composer # Good
|
|
29
|
+
name: processing-pdfs # Good - gerund style
|
|
30
|
+
name: code-review-v2 # Good
|
|
31
|
+
name: EmailComposer # Bad - not kebab-case
|
|
32
|
+
name: -my-skill # Bad - starts with hyphen
|
|
33
|
+
name: my--skill # Bad - consecutive hyphens
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### description
|
|
37
|
+
|
|
38
|
+
- **Type**: string (multi-line with `|` supported)
|
|
39
|
+
- **Default**: first paragraph of skill body (if omitted)
|
|
40
|
+
- **Length**: 1-1024 characters
|
|
41
|
+
- **Purpose**: Tells Claude what the skill does AND when to activate it
|
|
42
|
+
- **Rules**:
|
|
43
|
+
- MUST be third person ("Generates...", "Analyzes...")
|
|
44
|
+
- MUST include what it does AND when to use it
|
|
45
|
+
- MUST include specific keywords for discovery
|
|
46
|
+
- MUST NOT use first person (I can, I will, I'm, I help)
|
|
47
|
+
- MUST NOT use second person (You can, You should, You will)
|
|
48
|
+
- MUST NOT contain XML tags (`<`, `>`) — breaks frontmatter parsing
|
|
49
|
+
- MUST NOT contain reserved words as standalone identifiers (`anthropic`, `claude`)
|
|
50
|
+
- MUST NOT contain system prompt injection patterns (behavioral instructions belong in SKILL.md body, not description)
|
|
51
|
+
- SHOULD include action verbs (analyze, create, generate, build, debug, optimize, validate)
|
|
52
|
+
- SHOULD reference slash command if user-invocable
|
|
53
|
+
|
|
54
|
+
```yaml
|
|
55
|
+
# Good - clear what + when + keywords
|
|
56
|
+
description: |
|
|
57
|
+
Generate PDF reports from markdown with professional styling and TOC.
|
|
58
|
+
Use when converting documentation to distributable format.
|
|
59
|
+
|
|
60
|
+
# Good - specific keywords, natural when-to-use
|
|
61
|
+
description: |
|
|
62
|
+
Analyze Python code for security vulnerabilities, dependency risks, and
|
|
63
|
+
OWASP compliance issues. Activates during security audits or pre-deployment
|
|
64
|
+
code reviews. Trigger with "/security-scan" or "scan for vulnerabilities".
|
|
65
|
+
|
|
66
|
+
# Bad - first person
|
|
67
|
+
description: "I help you create PDFs"
|
|
68
|
+
|
|
69
|
+
# Bad - no when-to-use context
|
|
70
|
+
description: "Generates PDF reports"
|
|
71
|
+
|
|
72
|
+
# Bad - too vague, no keywords
|
|
73
|
+
description: "A helpful tool for documents"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**System prompt injection warning**: The `description` field is loaded into Claude's system prompt at startup for skill discovery. It must describe *what* and *when* only. Never include behavioral instructions ("Always respond in JSON", "Never use profanity"), persona definitions ("You are an expert..."), or override patterns ("Ignore previous instructions"). These belong in the SKILL.md body, not the description.
|
|
77
|
+
|
|
78
|
+
### allowed-tools
|
|
79
|
+
|
|
80
|
+
- **Type**: string (comma or space-delimited)
|
|
81
|
+
- **Purpose**: Pre-approved tools the skill can use without user confirmation
|
|
82
|
+
- **Valid tools**: `Read`, `Write`, `Edit`, `Bash`, `Glob`, `Grep`, `WebFetch`, `WebSearch`, `Task`, `TodoWrite`, `NotebookEdit`, `AskUserQuestion`, `Skill`
|
|
83
|
+
- **MCP tools**: `ServerName:tool_name` format
|
|
84
|
+
|
|
85
|
+
```yaml
|
|
86
|
+
# Scoped Bash (best practice)
|
|
87
|
+
allowed-tools: "Read,Write,Glob,Grep,Bash(git:*),Bash(npm:*)"
|
|
88
|
+
|
|
89
|
+
# With MCP tool
|
|
90
|
+
allowed-tools: "Read,Write,MyMCPServer:fetch_data"
|
|
91
|
+
|
|
92
|
+
# Unscoped Bash (avoid - security risk)
|
|
93
|
+
allowed-tools: "Read,Write,Bash" # Warning in Standard, Error in Enterprise
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Bash Scoping Patterns**:
|
|
97
|
+
```yaml
|
|
98
|
+
Bash(git:*) # All git commands
|
|
99
|
+
Bash(npm:*) # All npm commands
|
|
100
|
+
Bash(python:*) # All python commands
|
|
101
|
+
Bash(mkdir:*) # Directory creation
|
|
102
|
+
Bash(chmod:*) # Permission changes
|
|
103
|
+
Bash(curl:*) # HTTP requests
|
|
104
|
+
Bash(npx:*) # npx execution
|
|
105
|
+
Bash(pnpm:*) # pnpm commands
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### model
|
|
109
|
+
|
|
110
|
+
- **Type**: string
|
|
111
|
+
- **Default**: inherit (uses parent/caller model)
|
|
112
|
+
- **Values**: `sonnet`, `haiku`, `opus`, `inherit`, or full model ID
|
|
113
|
+
- **Purpose**: Override the LLM model used when this skill runs
|
|
114
|
+
|
|
115
|
+
```yaml
|
|
116
|
+
model: inherit # Use caller's model (recommended)
|
|
117
|
+
model: opus # Force Opus for complex tasks
|
|
118
|
+
model: haiku # Use Haiku for fast, simple tasks
|
|
119
|
+
model: sonnet # Use Sonnet for balanced tasks
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Avoid hardcoded model IDs** like `claude-opus-4-5-20251101` — they break on deprecation.
|
|
123
|
+
|
|
124
|
+
### effort
|
|
125
|
+
|
|
126
|
+
- **Type**: string
|
|
127
|
+
- **Default**: (inherits from caller)
|
|
128
|
+
- **Values**: `low`, `medium`, `high`, `max`
|
|
129
|
+
- **Purpose**: Override model reasoning effort level
|
|
130
|
+
- **Note**: `max` is only available with Opus 4.6
|
|
131
|
+
|
|
132
|
+
```yaml
|
|
133
|
+
effort: high # More reasoning for complex tasks
|
|
134
|
+
effort: low # Fast responses for simple tasks
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### argument-hint
|
|
138
|
+
|
|
139
|
+
- **Type**: string
|
|
140
|
+
- **Purpose**: Autocomplete hint shown after `/skill-name` in the command palette
|
|
141
|
+
- **When to use**: When skill accepts arguments via `$ARGUMENTS`
|
|
142
|
+
|
|
143
|
+
```yaml
|
|
144
|
+
argument-hint: "[issue-number]"
|
|
145
|
+
argument-hint: "[file-path]"
|
|
146
|
+
argument-hint: "[search-query]"
|
|
147
|
+
argument-hint: "<component-name>"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### context
|
|
151
|
+
|
|
152
|
+
- **Type**: string
|
|
153
|
+
- **Values**: `fork` (only valid value)
|
|
154
|
+
- **Purpose**: Execute skill in isolated subagent context
|
|
155
|
+
- **When to use**: Long-running tasks, tasks that need isolation from main conversation
|
|
156
|
+
|
|
157
|
+
```yaml
|
|
158
|
+
context: fork # Run in subagent
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### agent
|
|
162
|
+
|
|
163
|
+
- **Type**: string
|
|
164
|
+
- **Requires**: `context: fork` must also be set
|
|
165
|
+
- **Purpose**: Specify subagent type when running in fork context
|
|
166
|
+
- **Values**: `Explore`, `Plan`, `general-purpose`, or custom agent name
|
|
167
|
+
|
|
168
|
+
```yaml
|
|
169
|
+
context: fork
|
|
170
|
+
agent: Explore # Fast codebase exploration
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### user-invocable
|
|
174
|
+
|
|
175
|
+
- **Type**: boolean
|
|
176
|
+
- **Default**: true
|
|
177
|
+
- **Purpose**: Control visibility in `/` command menu
|
|
178
|
+
- **When to use**: Set `false` for background knowledge skills that inform behavior
|
|
179
|
+
|
|
180
|
+
```yaml
|
|
181
|
+
user-invocable: false # Hidden from / menu, loaded as background knowledge
|
|
182
|
+
user-invocable: true # Visible in / menu (default)
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### disable-model-invocation
|
|
186
|
+
|
|
187
|
+
- **Type**: boolean
|
|
188
|
+
- **Default**: false
|
|
189
|
+
- **Purpose**: Prevent Claude from auto-activating; require explicit `/name` invocation
|
|
190
|
+
|
|
191
|
+
```yaml
|
|
192
|
+
disable-model-invocation: true # Only via /skill-name
|
|
193
|
+
disable-model-invocation: false # Can activate via natural language (default)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### hooks
|
|
197
|
+
|
|
198
|
+
- **Type**: object
|
|
199
|
+
- **Purpose**: Skill-scoped lifecycle hooks
|
|
200
|
+
- **Events**: `PreToolUse`, `PostToolUse`, `Stop`, `SubagentStop`, `SessionStart`, `SessionEnd`
|
|
201
|
+
|
|
202
|
+
```yaml
|
|
203
|
+
hooks:
|
|
204
|
+
PreToolUse:
|
|
205
|
+
- command: "echo 'Tool about to be used'"
|
|
206
|
+
event: PreToolUse
|
|
207
|
+
PostToolUse:
|
|
208
|
+
- command: "${CLAUDE_PLUGIN_ROOT}/scripts/post-check.sh"
|
|
209
|
+
event: PostToolUse
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Enterprise Additions (5 fields, marketplace-required)
|
|
215
|
+
|
|
216
|
+
These fields are NOT part of the Anthropic runtime spec but are required by the Tons of Skills marketplace validator for published plugins. The 100-point enterprise grading system scores these at the top level.
|
|
217
|
+
|
|
218
|
+
### version
|
|
219
|
+
|
|
220
|
+
- **Type**: string
|
|
221
|
+
- **Format**: Semver (`X.Y.Z`)
|
|
222
|
+
- **Purpose**: Skill version for tracking updates and marketplace display
|
|
223
|
+
|
|
224
|
+
```yaml
|
|
225
|
+
version: 1.0.0
|
|
226
|
+
version: 2.3.1
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### author
|
|
230
|
+
|
|
231
|
+
- **Type**: string
|
|
232
|
+
- **Format**: `Name <email>` (email required for Enterprise tier)
|
|
233
|
+
- **Purpose**: Skill author identification
|
|
234
|
+
|
|
235
|
+
```yaml
|
|
236
|
+
author: Jeremy Longshore <jeremy@intentsolutions.io>
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### license
|
|
240
|
+
|
|
241
|
+
- **Type**: string
|
|
242
|
+
- **Format**: SPDX identifier or bundled file reference
|
|
243
|
+
- **Purpose**: License for the skill
|
|
244
|
+
|
|
245
|
+
```yaml
|
|
246
|
+
license: MIT
|
|
247
|
+
license: Apache-2.0
|
|
248
|
+
license: Complete terms in LICENSE.txt
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### compatible-with
|
|
252
|
+
|
|
253
|
+
- **Type**: string (comma-separated)
|
|
254
|
+
- **Purpose**: Platforms this skill is compatible with
|
|
255
|
+
- **Valid values**: `claude-code`, `codex`, `openclaw`, `aider`, `continue`, `cursor`, `windsurf`
|
|
256
|
+
|
|
257
|
+
```yaml
|
|
258
|
+
compatible-with: claude-code, codex, openclaw
|
|
259
|
+
compatible-with: claude-code
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### tags
|
|
263
|
+
|
|
264
|
+
- **Type**: array of strings
|
|
265
|
+
- **Purpose**: Discovery tags for categorization and search
|
|
266
|
+
|
|
267
|
+
```yaml
|
|
268
|
+
tags: [devops, ci, automation]
|
|
269
|
+
tags: [security, python, code-review]
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Total skill frontmatter**: 16 fields (11 Anthropic + 5 enterprise)
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Agent Frontmatter — Anthropic Standard (14 fields)
|
|
277
|
+
|
|
278
|
+
Agent files live in `agents/*.md`. Key difference from skills: agents use `disallowedTools` (denylist) while skills use `allowed-tools` (allowlist).
|
|
279
|
+
|
|
280
|
+
### name
|
|
281
|
+
|
|
282
|
+
- **Type**: string
|
|
283
|
+
- **Required**: Yes
|
|
284
|
+
- **Purpose**: Unique identifier for the agent
|
|
285
|
+
|
|
286
|
+
```yaml
|
|
287
|
+
name: code-reviewer
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### description
|
|
291
|
+
|
|
292
|
+
- **Type**: string
|
|
293
|
+
- **Required**: Yes
|
|
294
|
+
- **Length**: 20-200 characters
|
|
295
|
+
- **Purpose**: Agent's specialty — shown in agent selection UI
|
|
296
|
+
|
|
297
|
+
```yaml
|
|
298
|
+
description: "Reviews code for bugs, performance issues, and style violations"
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### model
|
|
302
|
+
|
|
303
|
+
- **Type**: string
|
|
304
|
+
- **Values**: `sonnet`, `haiku`, `opus`, `inherit`
|
|
305
|
+
- **Purpose**: Override LLM model for this agent
|
|
306
|
+
|
|
307
|
+
```yaml
|
|
308
|
+
model: opus
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### effort
|
|
312
|
+
|
|
313
|
+
- **Type**: string
|
|
314
|
+
- **Values**: `low`, `medium`, `high`, `max`
|
|
315
|
+
- **Purpose**: Override reasoning effort for agent turns
|
|
316
|
+
|
|
317
|
+
```yaml
|
|
318
|
+
effort: high
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### maxTurns
|
|
322
|
+
|
|
323
|
+
- **Type**: integer
|
|
324
|
+
- **Purpose**: Max agentic loop iterations before stopping
|
|
325
|
+
- **Added**: v2.1.78
|
|
326
|
+
|
|
327
|
+
```yaml
|
|
328
|
+
maxTurns: 10
|
|
329
|
+
maxTurns: 25
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### tools
|
|
333
|
+
|
|
334
|
+
- **Type**: string (comma-separated)
|
|
335
|
+
- **Purpose**: Tool allowlist (same format as skill `allowed-tools`)
|
|
336
|
+
|
|
337
|
+
```yaml
|
|
338
|
+
tools: "Read,Glob,Grep,Bash(git:*)"
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### disallowedTools
|
|
342
|
+
|
|
343
|
+
- **Type**: string (comma-separated)
|
|
344
|
+
- **Purpose**: Tool denylist — block specific tools (opposite of allowlist)
|
|
345
|
+
|
|
346
|
+
```yaml
|
|
347
|
+
disallowedTools: "mcp__dangerous_server,Write"
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### skills
|
|
351
|
+
|
|
352
|
+
- **Type**: array
|
|
353
|
+
- **Purpose**: Skill names to preload when agent activates
|
|
354
|
+
|
|
355
|
+
```yaml
|
|
356
|
+
skills: [code-review, test-generator]
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### mcpServers
|
|
360
|
+
|
|
361
|
+
- **Type**: object or array
|
|
362
|
+
- **Purpose**: MCP server configurations available to the agent
|
|
363
|
+
- **Plugin restriction**: NOT supported in plugin agents (ignored silently by runtime)
|
|
364
|
+
|
|
365
|
+
```yaml
|
|
366
|
+
mcpServers:
|
|
367
|
+
myserver:
|
|
368
|
+
command: "node"
|
|
369
|
+
args: ["server.js"]
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### hooks
|
|
373
|
+
|
|
374
|
+
- **Type**: object
|
|
375
|
+
- **Purpose**: Agent-scoped lifecycle hooks
|
|
376
|
+
- **Plugin restriction**: NOT supported in plugin agents (ignored silently by runtime)
|
|
377
|
+
|
|
378
|
+
```yaml
|
|
379
|
+
hooks:
|
|
380
|
+
PreToolUse:
|
|
381
|
+
- command: "echo 'pre-hook'"
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
### memory
|
|
385
|
+
|
|
386
|
+
- **Type**: string
|
|
387
|
+
- **Values**: `user`, `project`, `local`
|
|
388
|
+
- **Purpose**: Memory persistence scope for the agent
|
|
389
|
+
|
|
390
|
+
```yaml
|
|
391
|
+
memory: project
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### background
|
|
395
|
+
|
|
396
|
+
- **Type**: boolean
|
|
397
|
+
- **Purpose**: Run agent as a background task
|
|
398
|
+
|
|
399
|
+
```yaml
|
|
400
|
+
background: true
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
### isolation
|
|
404
|
+
|
|
405
|
+
- **Type**: string
|
|
406
|
+
- **Values**: `worktree` (only valid value)
|
|
407
|
+
- **Purpose**: Run agent in an isolated git worktree
|
|
408
|
+
|
|
409
|
+
```yaml
|
|
410
|
+
isolation: worktree
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### permissionMode
|
|
414
|
+
|
|
415
|
+
- **Type**: string
|
|
416
|
+
- **Values**: `default`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan`
|
|
417
|
+
- **Purpose**: Permission behavior for the agent
|
|
418
|
+
- **Plugin restriction**: NOT supported in plugin agents (ignored silently by runtime)
|
|
419
|
+
|
|
420
|
+
```yaml
|
|
421
|
+
permissionMode: acceptEdits
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## plugin.json Field Summary (8 allowed fields)
|
|
427
|
+
|
|
428
|
+
The `.claude-plugin/plugin.json` manifest defines plugin identity. CI rejects any fields not in this list.
|
|
429
|
+
|
|
430
|
+
| Field | Type | Required | Purpose |
|
|
431
|
+
|-------|------|----------|---------|
|
|
432
|
+
| `name` | string | Yes | Plugin name (kebab-case) |
|
|
433
|
+
| `version` | string | Yes | Semver version |
|
|
434
|
+
| `description` | string | Yes | Plugin description |
|
|
435
|
+
| `author` | string | Yes | Author name or `Name <email>` |
|
|
436
|
+
| `repository` | string | No | GitHub repository URL |
|
|
437
|
+
| `homepage` | string | No | Plugin homepage URL |
|
|
438
|
+
| `license` | string | No | SPDX license identifier |
|
|
439
|
+
| `keywords` | array | No | Discovery keywords |
|
|
440
|
+
|
|
441
|
+
```json
|
|
442
|
+
{
|
|
443
|
+
"name": "my-plugin",
|
|
444
|
+
"version": "2.0.0",
|
|
445
|
+
"description": "What this plugin does",
|
|
446
|
+
"author": "Name <email>",
|
|
447
|
+
"repository": "https://github.com/user/repo",
|
|
448
|
+
"license": "MIT",
|
|
449
|
+
"keywords": ["devops", "automation"]
|
|
450
|
+
}
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## Deprecated / Invalid Fields
|
|
456
|
+
|
|
457
|
+
| Field | Status | Notes |
|
|
458
|
+
|-------|--------|-------|
|
|
459
|
+
| `when_to_use` | Deprecated | Move content to `description` |
|
|
460
|
+
| `mode` | Deprecated | Use `disable-model-invocation` instead |
|
|
461
|
+
| `compatibility` | Invalid | AgentSkills.io field, not in Anthropic spec. Document requirements in skill body instead. |
|
|
462
|
+
| `metadata` | Invalid | AgentSkills.io field, not in Anthropic spec. Use top-level fields (`author`, `version`, `license`, `tags`). |
|
|
463
|
+
| `capabilities` | Invalid | Invented field, never part of any spec |
|
|
464
|
+
| `expertise_level` | Invalid | Invented field, never part of any spec |
|
|
465
|
+
| `activation_priority` | Invalid | Invented field, never part of any spec |
|
|
466
|
+
|
|
467
|
+
The marketplace validator will flag these fields as errors in Enterprise tier validation.
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
## Recommended Field Order
|
|
472
|
+
|
|
473
|
+
### Skill (SKILL.md)
|
|
474
|
+
|
|
475
|
+
```yaml
|
|
476
|
+
---
|
|
477
|
+
# Anthropic standard
|
|
478
|
+
name: skill-name
|
|
479
|
+
description: |
|
|
480
|
+
What it does. Use when [scenario].
|
|
481
|
+
Trigger with "/skill-name" or "[natural phrase]".
|
|
482
|
+
allowed-tools: "Read,Write,Glob,Grep,Bash(git:*)"
|
|
483
|
+
model: inherit
|
|
484
|
+
# effort: high
|
|
485
|
+
argument-hint: "[arg]"
|
|
486
|
+
# context: fork
|
|
487
|
+
# agent: general-purpose
|
|
488
|
+
user-invocable: true
|
|
489
|
+
disable-model-invocation: false
|
|
490
|
+
# hooks: {}
|
|
491
|
+
|
|
492
|
+
# Enterprise additions (marketplace-required)
|
|
493
|
+
version: 1.0.0
|
|
494
|
+
author: Name <email>
|
|
495
|
+
license: MIT
|
|
496
|
+
compatible-with: claude-code, codex, openclaw
|
|
497
|
+
tags: [devops, automation]
|
|
498
|
+
---
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
### Agent (agents/*.md)
|
|
502
|
+
|
|
503
|
+
```yaml
|
|
504
|
+
---
|
|
505
|
+
# Required
|
|
506
|
+
name: agent-name
|
|
507
|
+
description: "20-200 char description of the agent's specialty"
|
|
508
|
+
|
|
509
|
+
# Model control
|
|
510
|
+
model: opus
|
|
511
|
+
effort: high
|
|
512
|
+
maxTurns: 15
|
|
513
|
+
|
|
514
|
+
# Tool access
|
|
515
|
+
tools: "Read,Write,Glob,Grep,Bash(git:*)"
|
|
516
|
+
# disallowedTools: "mcp__dangerous_server"
|
|
517
|
+
|
|
518
|
+
# Preloaded skills
|
|
519
|
+
# skills: [code-review, test-generator]
|
|
520
|
+
|
|
521
|
+
# Execution
|
|
522
|
+
# background: false
|
|
523
|
+
# isolation: worktree
|
|
524
|
+
# memory: project
|
|
525
|
+
|
|
526
|
+
# NOT supported in plugin agents (ignored by runtime):
|
|
527
|
+
# hooks: {}
|
|
528
|
+
# mcpServers: {}
|
|
529
|
+
# permissionMode: default
|
|
530
|
+
---
|
|
531
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Implementation Template
|
|
2
|
+
|
|
3
|
+
Standard implementation guide for all marketplace skills. Every references/implementation.md MUST follow this format.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# {Skill Name} — Implementation Guide
|
|
9
|
+
|
|
10
|
+
## How the Skill Works
|
|
11
|
+
|
|
12
|
+
{3-5 numbered steps describing the skill's internal workflow from invocation to output.}
|
|
13
|
+
|
|
14
|
+
## Project/File Structure
|
|
15
|
+
|
|
16
|
+
\`\`\`
|
|
17
|
+
{Directory tree showing what the skill creates, reads, or manages}
|
|
18
|
+
\`\`\`
|
|
19
|
+
|
|
20
|
+
## Core Patterns
|
|
21
|
+
|
|
22
|
+
{Explain the main technical patterns used. Code blocks showing real implementations.}
|
|
23
|
+
|
|
24
|
+
## Configuration Reference
|
|
25
|
+
|
|
26
|
+
| Setting | Required | Default | Purpose |
|
|
27
|
+
|---------|----------|---------|---------|
|
|
28
|
+
| {env var or config key} | {Yes/No} | {value} | {what it controls} |
|
|
29
|
+
|
|
30
|
+
## Testing Strategy
|
|
31
|
+
|
|
32
|
+
{How to validate the skill's output — commands to run, what to check, pass/fail criteria.}
|
|
33
|
+
|
|
34
|
+
## Deployment Pipeline
|
|
35
|
+
|
|
36
|
+
{If applicable: local dev → staging → production flow with commands at each stage.}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Rules:
|
|
40
|
+
- Write from the perspective of how this specific skill works, not generic patterns
|
|
41
|
+
- Include real commands, real API calls, real config values
|
|
42
|
+
- Keep under 200 lines — this is a reference, not a textbook
|