@ssheleg/make-skill 0.7.0 → 0.8.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/CHANGELOG.md CHANGED
@@ -1,5 +1,139 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.8.0 — 2026-08-03
4
+
5
+ Read Anthropic's four Agent Skills pages end to end (overview, authoring best
6
+ practices, enterprise, the API skills guide) and audited the canon against them.
7
+ The canon had been written against the open standard and the Claude Code plugin
8
+ reference only — so it was correct about the format and blind to everything
9
+ Anthropic's own surfaces enforce, recommend, or forbid. Three new references,
10
+ six new validator rules, and one self-violation fixed.
11
+
12
+ ### Added
13
+ - **`references/surfaces.md`** — the surface a skill runs on is a portability
14
+ contract, and it was undocumented here. Claude Code has full network and local
15
+ installs; the **Claude API container has neither**; claude.ai varies. A skill
16
+ whose script `pip install`s or curls works on one surface and silently fails
17
+ on the next. Also the whole Skills API — beta headers, `container.skills[]`,
18
+ **max 8 skills per request**, upload rules (top-level dir must match `name`,
19
+ `display_title` uniqueness, **< 30 MB**), epoch-timestamp versions,
20
+ delete-all-versions-before-delete — the claude.ai zip channel (per user, no
21
+ admin push), and the fact that **nothing syncs between surfaces**.
22
+ - **`references/enterprise.md`** — installing a skill you did not write is
23
+ installing software, and the canon said so without saying how to check.
24
+ Anthropic's risk-tier table, the 8-step review checklist, the five approval
25
+ gates (triggering accuracy, isolation, **coexistence**, instruction following,
26
+ output quality), lifecycle with separation of duties, registry fields, recall
27
+ limits, and the production versioning/rollback/integrity rules.
28
+ - **`references/authoring.md`** — the craft that the spec reference had only
29
+ hinted at: naming conventions (gerund; never `helper`/`utils`/`tools`),
30
+ **degrees of freedom** matched to task fragility, workflow checklists and
31
+ feedback loops, the script rules (solve-don't-defer, no voodoo constants,
32
+ execute-vs-read intent, declare packages), content guidelines, and
33
+ **evaluation-driven development** — evals before prose, ≥3 scenarios, a
34
+ no-skill baseline, the Claude-A/Claude-B loop, testing on every target model.
35
+ The trigger-eval loop moved here from the spec reference.
36
+ - Six validator rules with negative self-tests that assert the *reason* for the
37
+ failure, not just a non-zero exit: reserved words in `name`, XML tags in
38
+ `name`/`description`, first/second person in `description`, the body token
39
+ budget, a `## Contents` list on references past 100 lines, and angle-bracket
40
+ placeholders in the SKILL template.
41
+ - **`test/evals/`** — make-skill's own evaluation suite, because the canon now
42
+ requires one from every skill and shipping the rule without obeying it is how
43
+ a standard becomes decoration. `triggers.json`: 20 queries, 10 that must fire
44
+ (EN + RU) and 10 near-misses that share the keywords — "add a skills section
45
+ to my CV", "publish this React library to npm", "implement an MCP server for
46
+ Postgres". `scenarios.json`: four behavioral evaluations in Anthropic's shape
47
+ (create, retrofit-with-evidence, surface portability, third-party review),
48
+ scored line by line, with fixtures under `test/evals/fixtures/` — deliberately
49
+ broken and deliberately not named `SKILL.md`. The validator proves they exist
50
+ and are well-formed and cannot run them: that part is a human with an agent
51
+ (`test/evals/README.md`).
52
+
53
+ ### Fixed
54
+ - **`name` may not contain `anthropic` or `claude`, and neither field may
55
+ contain XML tags.** The open standard is silent on both; Anthropic's platform
56
+ enforces them at upload. So `claude-helper` loads happily in Claude Code and
57
+ is rejected the day someone ships it to the API — a failure that only ever
58
+ appears on someone else's machine. Canon, spec reference, Cursor rule, README
59
+ and validator now carry the rule.
60
+ - **Descriptions must be third person.** They are injected into the system
61
+ prompt, where "I can help you…" / "You can use this to…" measurably degrades
62
+ selection. Stated in the canon and checked by the validator.
63
+ - **This skill was over its own token budget.** `SKILL.md` was ~5.2k estimated
64
+ tokens against a stated `< 5000` — a rule the repo enforced on everyone but
65
+ itself, because only the 500-line half was ever checked. The body budget is
66
+ now measured (chars/4, frontmatter excluded as level-1 metadata) and the body
67
+ was cut to ~4.6k by moving the repo layout, the two Claude Code gates, the
68
+ validator spec and the release checklist into `references/distribution.md`.
69
+ - **Reference files longer than 100 lines now open with a `## Contents` list.**
70
+ Agents preview long files with `head`; without a table of contents they act on
71
+ the first hundred lines and never learn the rest exists. All eight references
72
+ gained one — five were in violation.
73
+ - **The SKILL template seeded an invalid skill.** Its `name: <skill-name>` and
74
+ `<angle-bracket>` description placeholders are XML tags in exactly the two
75
+ fields where Anthropic rejects them. Replaced with plain placeholders, and the
76
+ validator now checks the skeleton it ships.
77
+ - **MCP tool names: two conventions, both real.** Anthropic's authoring guidance
78
+ writes `ServerName:tool_name`; Claude Code's runtime names are
79
+ `mcp__<server>__<tool>`. The canon documented only the second, which reads as
80
+ wrong against the docs — both are recorded now, with "list and match" still
81
+ the rule.
82
+ - Retrofit audit gained surface honesty (item 3) and evaluations (item 8);
83
+ authoring rules gained naming style, prescriptiveness-to-fragility, and the
84
+ no-time-branching rule with the "Old patterns" escape hatch.
85
+
86
+ ## v0.7.1 — 2026-07-31
87
+
88
+ Re-read the plugin reference against what the canon actually says, and against
89
+ what Claude Code 2.1.212 actually does. Six corrections, two of them places
90
+ where the docs and the binary disagree.
91
+
92
+ ### Fixed
93
+ - **`claude plugin validate` validates the manifest, not front matter.** The
94
+ docs' troubleshooting table says it checks "`plugin.json`, skill/agent/command
95
+ frontmatter, and `hooks/hooks.json`"; a `SKILL.md` carrying an invented
96
+ front-matter key passes `--strict` untouched. The canon said this gate
97
+ "catches a class your validator cannot see" — true for manifests, misleading
98
+ for front matter, which is exactly where the house validator earns its place.
99
+ - **`claude plugin update <bare-name>` does not work**, though the docs list a
100
+ bare name as accepted: it answers `Plugin "make-skill" not found` **and exits
101
+ 0**, so a release script sees success and ships nothing. The reference now
102
+ records both the documented form and the observed one.
103
+ - **`skills` adds to the default scan — except at a marketplace root.** When a
104
+ plugin entry's `source` resolves to the marketplace root, the listed
105
+ subdirectories replace the default `skills/` scan (and if none exist, the
106
+ default runs after all). The reference stated the rule without its exception.
107
+ - **"Every component directory sits at the plugin root" was too absolute.** That
108
+ is the default; a manifest path field may point anywhere inside the plugin,
109
+ and since 2.1.140 Claude Code warns when a manifest key leaves a default
110
+ folder unscanned. Only `.claude-plugin/` is genuinely off-limits.
111
+ - **`allowed-tools`: Claude Code is looser than the spec.** It accepts a
112
+ space- or comma-separated string or a YAML list; the open standard accepts
113
+ only the space-separated string. Canon, Cursor rule and the validator's own
114
+ error message now say which form travels and why, instead of calling a legal
115
+ Claude Code skill invalid.
116
+ - **npm plugin sources** resolve to `unknown` only when no `version` is set
117
+ anywhere — the entry or manifest version still wins.
118
+
119
+ ### Changed
120
+ - The stray-`SKILL.md` rule is scoped honestly: a plugin-root `SKILL.md` is a
121
+ legal single-skill plugin in Claude Code (2.1.142+). It is multi-channel
122
+ distribution — the skills CLI shipping every `SKILL.md` in the tree — that
123
+ makes the rule, and the validator says so.
124
+ - Version pinning: omitting `version` from both manifests is legal and hands
125
+ updates to the git SHA. This canon pins and bumps by choice, which the gotcha
126
+ now states rather than implies.
127
+
128
+ ### Added
129
+ - **LSP and monitor fields in `references/claude-code-plugin.md`.** Its own load
130
+ condition promised "adding agents / hooks / MCP / LSP / monitors", and the
131
+ file had a table row for each and nothing else: now the required and optional
132
+ LSP keys with the 2.1.205 `restartOnCrash` / `shutdownTimeout` trap and the
133
+ same-extension race, and the monitor entry schema with its trust,
134
+ `${user_config.*}` rejection and session-lifetime rules. Plus the missing
135
+ `themes/` row.
136
+
3
137
  ## v0.7.0 — 2026-07-30
4
138
 
5
139
  Conformance to Anthropic's own plugin reference
package/README.md CHANGED
@@ -53,11 +53,15 @@ resolvable install — not "should work now".
53
53
 
54
54
  ## What you get
55
55
 
56
- **Conformance to the open standard, not just a house style.** The
56
+ **Conformance to both rulebooks, not just a house style.** The
57
57
  [Agent Skills specification](https://agentskills.io/specification) sets hard
58
58
  limits — `name` is 1–64 chars of `a-z0-9` and single hyphens and must match its
59
59
  directory, `description` caps at 1024 characters, the body should stay under 500
60
- lines and 5000 tokens. Local conventions that merely *feel* right drift from those
60
+ lines and 5000 tokens. [Anthropic's platform docs](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview)
61
+ add rules the open standard is silent about and only the Skills API enforces —
62
+ no XML tags in `name`/`description`, and no `anthropic`/`claude` anywhere in the
63
+ name, so `claude-helper` loads fine in Claude Code and is rejected the day
64
+ someone uploads it. Local conventions that merely *feel* right drift from both
61
65
  without anyone noticing; here they're checked.
62
66
 
63
67
  **Plugins Anthropic's own tooling accepts.** The
@@ -70,16 +74,26 @@ both manifests, in CI as its own job. That check is what caught this repo's own
70
74
  `marketplace.json` shipping `homepage` and `repository` at a level where Claude
71
75
  Code ignores them.
72
76
 
77
+ **Evaluations, not vibes.** The canon requires every skill to carry at least
78
+ three behavioral scenarios and a trigger set whose negatives are *near-misses* —
79
+ queries that share the keywords and need something else. make-skill ships its
80
+ own in [`test/evals/`](test/evals/), because a description that also fires on
81
+ "review my pull request" steals turns from every other skill you have installed.
82
+
73
83
  **A validator that can fail.** `test/validate.py` (Python stdlib only, no deps)
74
- checks spec rules, version sync across every manifest, front-matter on commands
75
- and Cursor rules, link integrity, and the traps below. CI runs it plus **negative
76
- self-tests** — deliberately broken copies that must make it exit non-zero. A
77
- validator nobody has seen fail is decoration.
84
+ checks both rulebooks' front-matter rules, the 500-line **and** 5000-token body
85
+ budgets, a `## Contents` list on every reference past 100 lines, version sync
86
+ across every manifest, front-matter on commands and Cursor rules, link
87
+ integrity, and the traps below. CI runs it plus **negative self-tests** —
88
+ deliberately broken copies that must make it exit non-zero, each asserted to
89
+ fail for the right reason. A validator nobody has seen fail is decoration.
78
90
 
79
91
  **Every distribution channel, with the flags that actually work.** Claude Code
80
92
  plugin, the [vercel `skills` CLI](https://github.com/vercel-labs/skills) (70+
81
93
  agents), `npx`, Cursor rules, and umbrella-repo families — including the
82
- one-channel-per-agent rule that stops them from shadowing each other.
94
+ one-channel-per-agent rule that stops them from shadowing each other — plus
95
+ Anthropic's own surfaces (Skills API upload, claude.ai zip), which sync with
96
+ none of the above and impose their own limits on what a skill may do at runtime.
83
97
 
84
98
  **The gotchas that each cost a debugging round**, so your first publish works
85
99
  instead of your fourth:
@@ -104,9 +118,12 @@ agent opens only when the situation calls for them:
104
118
 
105
119
  | Reference | Covers |
106
120
  |---|---|
107
- | `agent-skills-spec.md` | the open standard — field limits, optional front-matter, token budgets, the description trigger-eval loop |
121
+ | `agent-skills-spec.md` | the hard rules from both authorities — field limits, where the open standard and Anthropic's platform differ, budgets, which checker says no |
122
+ | `authoring.md` | the craft — naming, third-person descriptions, degrees of freedom, workflows and feedback loops, script rules, evaluation-driven development |
123
+ | `surfaces.md` | Claude Code vs the Claude API vs claude.ai — the Skills API (upload, versions, 8 per request), and the no-network / no-package-install limits that break scripts moved between surfaces |
124
+ | `enterprise.md` | installing a skill you didn't write, and running a fleet — risk tiers, the review checklist, the five approval gates, lifecycle, recall limits, rollback |
108
125
  | `claude-code-plugin.md` | the [Claude Code layer](https://code.claude.com/docs/en/plugins-reference) — `plugin.json` / `marketplace.json` schemas, plugin sources, component locations, host-only front-matter, path variables, cache and symlink rules, the `claude plugin` CLI |
109
- | `distribution.md` | every install channel, exact CLI flags, npm publishing traps |
126
+ | `distribution.md` | the repo layout, every install channel, exact CLI flags, npm publishing traps, the release checklist |
110
127
  | `mcp.md` | [MCP](https://modelcontextprotocol.io) — skill vs server, primitives and methods, transports, consent and untrusted-output rules |
111
128
  | `a2a.md` | [A2A](https://a2a-protocol.org) — Agent Cards, task lifecycle, method mapping, v0.x→1.0 wire drift |
112
129
 
@@ -197,6 +214,7 @@ cursor/rules/make-skill.mdc # self-contained Cursor rule
197
214
  templates/ # SKILL.template.md + the two manifest skeletons
198
215
  bin/make-skill.js + package.json # zero-dep npx installer
199
216
  test/validate.py # structural validator
217
+ test/evals/ # trigger set + behavioral scenarios (data)
200
218
  .github/workflows/{validate,release}.yml
201
219
  install.sh README.md CHANGELOG.md CONTRIBUTING.md SECURITY.md LICENSE
202
220
  docs/superpowers/{specs,plans}/ # historical design records
@@ -212,7 +230,7 @@ install). Security reports: [SECURITY.md](SECURITY.md).
212
230
 
213
231
  Built by ssheleg — [sshlg.me](https://sshlg.me)
214
232
 
215
- - X / Twitter — [@fuck_this_year](https://x.com/fuck_this_year)
233
+ - X / Twitter — [@sshlg93](https://x.com/sshlg93)
216
234
  - Telegram — [@sshlg](https://t.me/sshlg)
217
235
 
218
236
  Part of the [ssheleg skill family](https://github.com/ssheleg/sshlg-skills):
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "make-skill: create, retrofit, audit, or publish an agent skill / plugin the proven ssheleg way — the Agent Skills open standard (front-matter limits, progressive-disclosure budgets), the Claude Code plugin reference (manifest schemas, component layout, claude plugin validate --strict), marketplace repo layout, four-way version sync, validator + CI, multi-channel distribution (Claude Code plugin, skills CLI, npx, Cursor), npm gotchas, and the MCP / A2A rules for protocol-connected skills. Apply when creating a new skill, upgrading one to standard, checking one against the spec, or wrapping one into a plugin."
2
+ description: "make-skill: create, retrofit, audit, or publish an agent skill / plugin the proven ssheleg way — the Agent Skills open standard AND Anthropic's platform rules (front-matter limits, disclosure budgets, per-surface runtime limits, evals), the Claude Code plugin reference (manifest schemas, component layout, claude plugin validate --strict), marketplace repo layout, four-way version sync, validator + CI, multi-channel distribution (Claude Code plugin, skills CLI, npx, Cursor, Skills API), npm gotchas, the review checklist for installing someone else's skill, and the MCP / A2A rules for protocol-connected skills. Apply when creating a new skill, upgrading one to standard, checking one against the spec, or wrapping one into a plugin."
3
3
  alwaysApply: false
4
4
  ---
5
5
 
@@ -9,22 +9,38 @@ Self-contained rule: Cursor copies this file into foreign projects, so it carrie
9
9
  every contract inline and uses **absolute URLs only — never a relative link**
10
10
  (a relative link dangles the moment the file is copied).
11
11
 
12
- ## Spec floor — the Agent Skills open standard (non-negotiable)
12
+ ## Spec floor — two authorities, both non-negotiable
13
13
 
14
- <https://agentskills.io/specification> — the house canon below only ADDS to it.
14
+ <https://agentskills.io/specification> (the portable format) and
15
+ <https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview>
16
+ (what Anthropic's own surfaces enforce). Write to the intersection; the house
17
+ canon below only ADDS to it.
15
18
 
16
- - `name`: 1–64 chars, `a-z0-9` + single internal hyphens, == directory name.
17
- - `description`: ≤1024 chars (that cap is on the field, not the whole front-matter).
19
+ - `name`: 1–64 chars, `a-z0-9` + single internal hyphens, == directory name,
20
+ **no angle brackets and never containing `anthropic`/`claude`** — reserved
21
+ substrings Claude Code loads happily and the Skills API rejects on upload.
22
+ - `description`: ≤1024 chars (the cap is on the field, not the whole
23
+ front-matter), no angle brackets, **third person** (it goes into the system
24
+ prompt; "I can help you…" degrades selection), stating WHAT it does and WHEN
25
+ to use it.
18
26
  - Portable front-matter keys: `name`, `description`, `license`,
19
27
  `compatibility` (≤500), `metadata` (string→string map), `allowed-tools`
20
- (space-separated string, experimental). Claude Code additionally reads
28
+ (space-separated string — Claude Code also takes a comma-list or YAML list, but
29
+ only the space form is portable). Claude Code additionally reads
21
30
  `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`,
22
31
  `user-invocable`, `disallowed-tools`, `model`, `effort`, `context`, `agent`,
23
32
  `background`, `hooks`, `paths`, `shell` — legal, ignored elsewhere, never
24
33
  load-bearing. Anything outside both sets is a typo.
25
34
  - Body < 500 lines and < 5000 tokens. Overflow goes to `references/` (docs),
26
35
  `scripts/` (code), `assets/` (templates) INSIDE the skill dir, one level deep,
27
- each with a stated load trigger ("read X when Y"). Gotchas stay in SKILL.md.
36
+ each linked from the body with a stated load trigger ("read X when Y"), and
37
+ any reference over 100 lines opens with a `## Contents` list (a partial `head`
38
+ read is what the agent often gets). Gotchas stay in SKILL.md.
39
+ - **Surfaces differ and nothing syncs between them:** the Claude API container
40
+ has NO network and NO runtime package install, claude.ai varies, only Claude
41
+ Code has both. A script that `pip install`s or curls is a Claude Code skill —
42
+ declare it in `compatibility` or drop the dependency. Skills API also caps a
43
+ request at 8 skills and an upload at 30 MB.
28
44
  - Upstream checker: `skills-ref validate <skill dir>` (Python, from the
29
45
  `agentskills/agentskills` repo).
30
46
 
@@ -32,8 +48,20 @@ every contract inline and uses **absolute URLs only — never a relative link**
32
48
 
33
49
  - `description` starts "Use when …" with concrete trigger phrases in English AND
34
50
  Russian. A skill nobody triggers is dead weight.
51
+ - One naming pattern, preferably gerund (`processing-pdfs`); never `helper`,
52
+ `utils`, `tools`, `data`.
35
53
  - One skill = one job. Multiple concerns → multiple skills + a shared contract file.
36
- - Body: imperative, procedural, checklists over prose. State non-negotiables as such.
54
+ - Body: imperative, procedural, checklists over prose. State non-negotiables as
55
+ such. Match prescriptiveness to fragility — exact commands for destructive or
56
+ order-dependent work, direction only where context decides.
57
+ - **Evals before prose:** run the task with NO skill, record the failures, write
58
+ ≥3 evaluations (including should-NOT-trigger cases), then write the minimum
59
+ that passes; re-run on every model you claim. Adding to an existing set → test
60
+ coexistence, a broad description steals other skills' triggers.
61
+ - Scripts: handle their own errors, justify every constant, declare packages,
62
+ and say whether the agent should RUN or READ each one.
63
+ - No time-branching text ("before August, use the old API") — superseded
64
+ material goes under `## Old patterns`; forward slashes in every path.
37
65
  - Commands are thin wrappers: front-matter `description` (+ `argument-hint`), body =
38
66
  "invoke skill X in mode Y", pass `$ARGUMENTS`.
39
67
  - Never overwrite user data: seed only when absent; overwrite only behind `--force`.
@@ -104,6 +132,11 @@ checker, not a house opinion:
104
132
  - **Cursor .mdc:** embed contracts inline (files get copied into foreign projects).
105
133
  - **e2e npx from a NON-repo cwd** (inside the repo it resolves the local package →
106
134
  false "command not found").
135
+ - **Installing a skill you did not write is installing software.** Read every
136
+ file, run scripts sandboxed, grep for network calls and credentials, and check
137
+ the instructions for "ignore previous rules", hidden actions, or data routed
138
+ outward. A skill that fetches its instructions from a URL can change after the
139
+ review that approved it.
107
140
 
108
141
  ## Protocol-connected skills (MCP / A2A)
109
142
 
@@ -131,3 +164,8 @@ Claude Code plugin (`claude plugin marketplace add` → `install <name>@<name>`)
131
164
  vercel skills CLI (`npx skills add <owner>/<repo>`, discovers via marketplace.json),
132
165
  npx (`npx github:<owner>/<repo>`, or the registry after publish), Cursor (global via
133
166
  `npx skills add … --agent cursor --global`, or per-project `.cursor/rules/*.mdc`).
167
+ Anthropic's own surfaces are separate deployments that sync with nothing: the
168
+ Skills API (`POST /v1/skills`, beta headers `skills-2025-10-02` +
169
+ `code-execution-2025-08-25`, workspace-wide, ≤8 skills per request, <30 MB, the
170
+ uploaded top-level directory must match `name`) and claude.ai (zip upload in
171
+ Settings → Features, per user, no admin push).
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ssheleg/make-skill",
3
- "version": "0.7.0",
4
- "description": "Create, retrofit, audit, and ship agent skills & Claude Code plugins the proven ssheleg way — conformance to the Agent Skills open standard (front-matter limits, progressive-disclosure budgets) and the Claude Code plugin reference (manifest schemas, component layout, claude plugin validate --strict), marketplace repo layout, version sync, validator + CI, multi-channel distribution (plugin, vercel skills CLI, npx, Cursor), npm gotchas, and MCP / A2A rules for protocol-connected skills. This package is the installer CLI.",
3
+ "version": "0.8.0",
4
+ "description": "Create, retrofit, audit, and ship agent skills & Claude Code plugins the proven ssheleg way — conformance to the Agent Skills open standard AND Anthropic's platform rules (front-matter limits, disclosure budgets, per-surface runtime limits, the Skills API, evals) plus the Claude Code plugin reference (manifest schemas, component layout, claude plugin validate --strict), marketplace repo layout, version sync, validator + CI, multi-channel distribution (plugin, vercel skills CLI, npx, Cursor), npm gotchas, the review checklist for third-party skills, and MCP / A2A rules for protocol-connected skills. This package is the installer CLI.",
5
5
  "keywords": [
6
6
  "skill",
7
7
  "plugin",
@@ -22,7 +22,10 @@
22
22
  },
23
23
  "repository": "github:ssheleg/make-skill",
24
24
  "license": "MIT",
25
- "author": "ssheleg",
25
+ "author": {
26
+ "name": "ssheleg",
27
+ "url": "https://x.com/sshlg93"
28
+ },
26
29
  "bin": {
27
30
  "make-skill": "bin/make-skill.js"
28
31
  },
@@ -2,10 +2,11 @@
2
2
  "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
3
3
  "name": "make-skill",
4
4
  "displayName": "Make Skill",
5
- "description": "Create, retrofit, audit, and ship agent skills & Claude Code plugins the proven ssheleg way: conformance to the Agent Skills open standard and the Claude Code plugin reference, marketplace repo layout, version sync, validator + CI, multi-channel distribution (plugin, vercel skills CLI, npx, Cursor), npm gotchas, end-to-end first publish, plus MCP / A2A references for protocol-connected skills.",
6
- "version": "0.7.0",
5
+ "description": "Create, retrofit, audit, and ship agent skills & Claude Code plugins the proven ssheleg way: conformance to the Agent Skills open standard, Anthropic's platform rules (surfaces, Skills API, evals) and the Claude Code plugin reference, marketplace repo layout, version sync, validator + CI, multi-channel distribution (plugin, vercel skills CLI, npx, Cursor), npm gotchas, end-to-end first publish, the review checklist for third-party skills, plus MCP / A2A references for protocol-connected skills.",
6
+ "version": "0.8.0",
7
7
  "author": {
8
- "name": "ssheleg"
8
+ "name": "ssheleg",
9
+ "url": "https://x.com/sshlg93"
9
10
  },
10
11
  "homepage": "https://github.com/ssheleg/make-skill",
11
12
  "repository": "https://github.com/ssheleg/make-skill",