@ssheleg/make-skill 0.18.1 → 0.19.1

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.1 — 2026-08-16
4
+
5
+ **This gate can now see an invariant it breaks one repository away.** The family umbrella
6
+ routes work by matching a prompt against a table in `lib/triggers.js`, and every trigger
7
+ there must be a word this skill's own `description` advertises. Nothing here knew that
8
+ table existed. On 2026-08-16 `sheleg-design` 1.37.0 shipped green having dropped a phrase
9
+ that was still a live trigger, the umbrella found out minutes after the tag, and it cost a
10
+ patch release — because the member releases FIRST and the umbrella re-pins after.
11
+
12
+ `test/validate.py` now asks the umbrella's own checker (`test/advertised_check.js`), which
13
+ reads the module the hook itself calls. **No copy of the table lives here**, so there is
14
+ nothing to drift. With no umbrella above this checkout — a standalone clone, and CI — it
15
+ discloses rather than passing, because a check that cannot look must never read as one
16
+ that looked.
17
+
18
+ Watched refusing a real drop before shipping: every one of the seven members carrying
19
+ routed triggers had one of its own advertised phrases removed and every one of them failed
20
+ its own gate.
21
+
22
+ ## v0.19.0 — 2026-08-16
23
+
24
+ ### Added
25
+
26
+ - **The validator failure mode planting does not catch**, in
27
+ `references/distribution.md` → *The house validator*. This canon already said a
28
+ validator nobody has watched fail is decoration — the right rule for a check that
29
+ asserts the *wrong* thing. It does not cover a check that **never runs**, which is
30
+ invisible to planting, because nothing happening looks exactly like a clean suite.
31
+
32
+ Both shipped in `sheleg-design` on 2026-08-16, inside the same check and within an
33
+ hour: a lookup returning `None` on a case mismatch (`NUMBER_WORDS` keyed lowercase,
34
+ the document capitalising) short-circuited the guard, and the pattern policing a
35
+ stale header had been anchored on a line wrap the file did not have. The suite
36
+ printed OK both times, and **the check-count rose by four while the new check
37
+ covered nothing** — so the counter is not evidence either. The procedure gains a
38
+ second half: plant the defect, then read the failure you expected rather than the
39
+ summary, and if the suite still passes, suspect your check before the artifact.
40
+
41
+ ### Note
42
+
43
+ The first draft of this entry put the rule in `SKILL.md` and pushed the body from
44
+ under the 4750-token working limit to 4855. The repo's own validator refused it and
45
+ said what to do — move a section to `references/` before adding one. The rule went to
46
+ `references/` instead, where the house-validator guidance already lives, and `SKILL.md`
47
+ is byte-identical to v0.18.1. A canon that will not follow its own budget rule under
48
+ mild inconvenience is a canon nobody else will follow either.
49
+
3
50
  ## v0.18.1 — 2026-08-14
4
51
 
5
52
  A red `validate` could not stop a publish anywhere in this family, and one member
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ssheleg/make-skill",
3
- "version": "0.18.1",
3
+ "version": "0.19.1",
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.1",
6
+ "version": "0.19.1",
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.1"
8
+ version: "0.19.1"
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.