@ssheleg/make-skill 0.18.0 → 0.19.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,52 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.19.0 — 2026-08-16
4
+
5
+ ### Added
6
+
7
+ - **The validator failure mode planting does not catch**, in
8
+ `references/distribution.md` → *The house validator*. This canon already said a
9
+ validator nobody has watched fail is decoration — the right rule for a check that
10
+ asserts the *wrong* thing. It does not cover a check that **never runs**, which is
11
+ invisible to planting, because nothing happening looks exactly like a clean suite.
12
+
13
+ Both shipped in `sheleg-design` on 2026-08-16, inside the same check and within an
14
+ hour: a lookup returning `None` on a case mismatch (`NUMBER_WORDS` keyed lowercase,
15
+ the document capitalising) short-circuited the guard, and the pattern policing a
16
+ stale header had been anchored on a line wrap the file did not have. The suite
17
+ printed OK both times, and **the check-count rose by four while the new check
18
+ covered nothing** — so the counter is not evidence either. The procedure gains a
19
+ second half: plant the defect, then read the failure you expected rather than the
20
+ summary, and if the suite still passes, suspect your check before the artifact.
21
+
22
+ ### Note
23
+
24
+ The first draft of this entry put the rule in `SKILL.md` and pushed the body from
25
+ under the 4750-token working limit to 4855. The repo's own validator refused it and
26
+ said what to do — move a section to `references/` before adding one. The rule went to
27
+ `references/` instead, where the house-validator guidance already lives, and `SKILL.md`
28
+ is byte-identical to v0.18.1. A canon that will not follow its own budget rule under
29
+ mild inconvenience is a canon nobody else will follow either.
30
+
31
+ ## v0.18.1 — 2026-08-14
32
+
33
+ A red `validate` could not stop a publish anywhere in this family, and one member
34
+ proved it: on 2026-08-12 `sheleg-dev` tagged v0.4.1 while its own validate run for that
35
+ exact tag **failed**, and npm served 0.4.1 four minutes later.
36
+
37
+ ### Fixed
38
+
39
+ - **The release now runs the whole validate suite before anything is published.**
40
+ `validate.yml` gained a `workflow_call` trigger and `release.yml` calls it with
41
+ `needs: validate` — the release runs *after* the real suite rather than beside a copy
42
+ of it. **Not one plant is duplicated:** each still has exactly one home.
43
+ - **A guard keeps the connection there.** It fails when the trigger, the call, or the
44
+ `needs` goes missing — calling the suite without depending on it lets the jobs run in
45
+ parallel, which looks gated and is not. Watched failing against the planted removal.
46
+
47
+ Proven end to end on `sheleg-dev` v0.4.3 before it reached here: the release run shows
48
+ `validate / validate` completing first, then `release`, then `publish`.
49
+
3
50
  ## v0.18.0 — 2026-08-14
4
51
 
5
52
  This skill had been describing somebody else's protocol, and the description had gone
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ssheleg/make-skill",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "description": "Create, retrofit, audit, and ship agent skills & Claude Code plugins the proven ssheleg way \u2014 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",
@@ -43,5 +43,8 @@
43
43
  },
44
44
  "engines": {
45
45
  "node": ">=16"
46
+ },
47
+ "scripts": {
48
+ "test": "python3 test/validate.py && python3 test/plant_guard_test.py"
46
49
  }
47
50
  }
@@ -3,7 +3,7 @@
3
3
  "name": "make-skill",
4
4
  "displayName": "Make Skill",
5
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.18.0",
6
+ "version": "0.19.0",
7
7
  "author": {
8
8
  "name": "ssheleg",
9
9
  "url": "https://x.com/sshlg93"
@@ -5,7 +5,7 @@ license: MIT
5
5
  compatibility: Authoring works on any agent. The bundled scripts/ need python3. Publishing steps need git, gh, node and npm; the plugin gates need the claude CLI. Not usable on the Claude API surface, which has no network and no runtime package install.
6
6
  metadata:
7
7
  author: ssheleg
8
- version: "0.18.0"
8
+ version: "0.19.0"
9
9
  homepage: https://github.com/ssheleg/make-skill
10
10
  ---
11
11
 
@@ -110,7 +110,22 @@ level deep / `## Contents` past 100 lines, no command colliding with a skill
110
110
  name, `.mdc` free of relative links, **no stray `SKILL.md` outside
111
111
  `plugins/*/skills/*/`**, links that resolve and never escape the skill dir. Plus
112
112
  a negative self-test — corrupt a copy, expect FAIL — because a validator nobody
113
- has watched fail is decoration. Run `claude plugin validate --strict` as its OWN
113
+ has watched fail is decoration.
114
+
115
+ **And planting has a blind spot: a check that never runs.** Corrupting a copy
116
+ proves a check asserts the *wrong* thing when it is wrong. It cannot see a check
117
+ that neither passes nor fails, because *nothing happening* is indistinguishable
118
+ from a clean suite. Two ways it happens, both shipped in `sheleg-design` on
119
+ 2026-08-16 inside the **same** check and within an hour of each other: a lookup
120
+ returning `None` on a case mismatch — `NUMBER_WORDS` is keyed lowercase and the
121
+ document capitalises — which short-circuited the guard; and a pattern anchored on
122
+ a line wrap the file did not have, so the edit it was policing had already failed
123
+ silently. **The check-count is not evidence either**: the total rose by four while
124
+ the new check covered nothing.
125
+
126
+ So the procedure has a second half. Plant the defect, then **read the failure you
127
+ expected rather than the summary** — and if the suite still passes, suspect your
128
+ check before you trust the artifact. Run `claude plugin validate --strict` as its OWN
114
129
  CI job so an upstream outage cannot mask a house failure, and treat `skills-ref
115
130
  validate <skill dir>` (from `agentskills/agentskills`) as the tie-breaker on the
116
131
  open standard.