@ssheleg/make-skill 0.6.4 → 0.6.6
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,37 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.6.6 — 2026-07-30
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **`claude plugin details` joins the canon as the check no manifest performs**:
|
|
7
|
+
it prints what Claude Code believes the plugin contains and the always-on token
|
|
8
|
+
cost per component. Two defects are visible only there — a component listed
|
|
9
|
+
**twice**, because a `commands/<x>.md` and a `skills/<x>/SKILL.md` both claim
|
|
10
|
+
`/<x>` now that custom commands are merged into skills, and a description whose
|
|
11
|
+
always-on cost is worth trimming.
|
|
12
|
+
- **`displayName` in both manifests** is now canon: `name` is kebab-case because
|
|
13
|
+
it namespaces components, and the `/plugin` picker falls back to it, so a
|
|
14
|
+
listing reads `my-cool-plugin` until the field is set.
|
|
15
|
+
|
|
16
|
+
## v0.6.5 — 2026-07-30
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
- **`claude plugin validate <path> --strict` is now canon** — the upstream gate,
|
|
20
|
+
wired into CI against both the plugin and the marketplace manifest. It needs
|
|
21
|
+
no auth or API key, so a runner can install `@anthropic-ai/claude-code` and run
|
|
22
|
+
it. The canon records the two failures it found across all six repos of this
|
|
23
|
+
family at once, because neither is visible to a house validator:
|
|
24
|
+
- **`argument-hint` must be quoted.** Bare `[a | b]` is a YAML flow sequence,
|
|
25
|
+
so it parses as a list — and one comma or stray character breaks the block
|
|
26
|
+
outright, at which point the command loads with empty metadata and no
|
|
27
|
+
description, silently.
|
|
28
|
+
- **`homepage` and `repository` are not top-level `marketplace.json` fields.**
|
|
29
|
+
They belong to a plugin entry. Unrecognized fields are warnings the runtime
|
|
30
|
+
tolerates, which is why they survive everything except `--strict`.
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
- This repo's own command hint and marketplace manifest, per the above.
|
|
34
|
+
|
|
3
35
|
## v0.6.4 — 2026-07-30
|
|
4
36
|
|
|
5
37
|
### Changed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ssheleg/make-skill",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.6",
|
|
4
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), 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.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"skill",
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "make-skill",
|
|
3
|
+
"displayName": "Make Skill",
|
|
3
4
|
"description": "Create, retrofit, audit, and ship agent skills & Claude Code plugins the proven ssheleg way: conformance to the Agent Skills open standard, 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.",
|
|
4
|
-
"version": "0.6.
|
|
5
|
+
"version": "0.6.6",
|
|
5
6
|
"author": {
|
|
6
7
|
"name": "ssheleg"
|
|
7
8
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Create, retrofit, audit, or publish an agent skill / Claude Code plugin the proven ssheleg way — Agent Skills spec conformance, marketplace layout, version sync, validator + CI, multi-channel distribution, MCP / A2A rules.
|
|
3
|
-
argument-hint: <what to build/retrofit/audit, or a skill path>
|
|
3
|
+
argument-hint: "<what to build/retrofit/audit, or a skill path>"
|
|
4
4
|
---
|
|
5
5
|
Use the `make-skill` skill for the task below. First **detect the workflow** from
|
|
6
6
|
the task and any path in `$ARGUMENTS`, announce it, then follow the skill exactly:
|
|
@@ -134,6 +134,38 @@ top CHANGELOG entry — SAME semver, bumped together, validator enforces. If
|
|
|
134
134
|
version an agent outside Claude Code ever sees), it joins the sync as a 5th
|
|
135
135
|
point.
|
|
136
136
|
|
|
137
|
+
**`claude plugin validate <path> --strict` is the upstream gate — wire it into
|
|
138
|
+
CI, both manifests.** Your own validator enforces house rules; this one enforces
|
|
139
|
+
Claude Code's actual schema, and it catches a class your validator cannot see.
|
|
140
|
+
It needs no auth and no API key, so a GitHub runner can install
|
|
141
|
+
`@anthropic-ai/claude-code` and run it. Two failures it found across this whole
|
|
142
|
+
family at once:
|
|
143
|
+
|
|
144
|
+
- **Front matter that silently drops.** `argument-hint: [a | b]` is a YAML flow
|
|
145
|
+
sequence, not a string: it parses as a *list*, and one value containing a
|
|
146
|
+
comma or a stray character breaks the block outright — at which point the
|
|
147
|
+
command loads with **empty metadata and no description**, with nothing at
|
|
148
|
+
runtime saying so. **Always quote `argument-hint`**, single quotes when the
|
|
149
|
+
value itself contains double quotes.
|
|
150
|
+
- **`homepage` and `repository` at the top level of `marketplace.json` are not
|
|
151
|
+
fields.** They are valid on a *plugin entry*; at the root Claude Code ignores
|
|
152
|
+
them. Unrecognized fields are warnings the runtime tolerates, which is exactly
|
|
153
|
+
why they survive without `--strict`.
|
|
154
|
+
|
|
155
|
+
Also set **`displayName`** in both manifests. `name` is kebab-case because it
|
|
156
|
+
namespaces components; `displayName` is what the `/plugin` picker shows, and it
|
|
157
|
+
falls back to `name` when absent — so a listing reads `my-cool-plugin` until you
|
|
158
|
+
write `My Cool Plugin`.
|
|
159
|
+
|
|
160
|
+
**`claude plugin details <name>@<marketplace>` is the other check worth running**,
|
|
161
|
+
and it answers a question no manifest does: what Claude Code *thinks* your plugin
|
|
162
|
+
contains, and what it costs. It prints the component inventory and the always-on
|
|
163
|
+
token cost per component. Two things show up there and nowhere else: a component
|
|
164
|
+
listed **twice** (a `commands/<x>.md` and a `skills/<x>/SKILL.md` both claim
|
|
165
|
+
`/<x>` — custom commands are merged into skills, so same name means two
|
|
166
|
+
components, both paying always-on tokens, one unreachable), and a description
|
|
167
|
+
long enough that its always-on cost is worth trimming.
|
|
168
|
+
|
|
137
169
|
**Validator** (adapt super-ux `test/validate.py`): manifests parse+fields;
|
|
138
170
|
SKILL.md front-matter — **spec rules** (name charset/length, description ≤1024,
|
|
139
171
|
`compatibility` ≤500, `metadata` all-string, `allowed-tools` a string, no unknown
|