@ssheleg/make-skill 0.25.0 → 0.25.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,33 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.25.1 — the rule keeps its default, and the family's exception is written down
4
+
5
+ - **The same-name command rule now carries its recorded exception** (operator
6
+ decision, 2026-08-30: no renames anywhere in the family). The default in
7
+ `references/host-capabilities.md` is unchanged — never name a command after a
8
+ skill in the same plugin — and the one recorded exception is enumerated beside
9
+ it: the ssheleg family ships same-named commands deliberately (`task-pipeline`,
10
+ `project-audit`, `seo-aeo-audit`, `sheleg-design`, `agent-sync`, and
11
+ `super-ux`'s `vision` / `ux-foundation` / `ux-flows` / `ux-audit`), with the
12
+ cost stated rather than waived: the skill wins the trigger, and each command
13
+ stays an always-on token cost that may be unreachable in the picker.
14
+ `retrofit.md` item 14 and the Cursor rule teach the auditor the same path, so
15
+ family audits report ASY-02 / SEO-02 / TPA-02 / SHD-06 / SUX-03 as
16
+ *deliberate, recorded — no change needed* instead of open gaps. A collision
17
+ NOT on a dated, recorded exception list is still the gap the rule names.
18
+ - **A hand-typed eval count drifted, exactly as this skill's own gotcha predicts**
19
+ (MSK-02). `test/evals/RESULTS.md` said "20 queries" and `SKILL-CARD.md` said
20
+ "20 trigger queries" over a `triggers.json` holding 22. Both corrected — and
21
+ both statements are now compared, not typed: `test/evals_validate.py` parses
22
+ RESULTS.md's stated counts against the artifacts and refuses a claim-free
23
+ RESULTS.md rather than passing vacuously, with negative self-tests planting an
24
+ off-by-one count and a claim-free file; `test/validate.py`'s counted-claims
25
+ sweep gains the `N trigger queries` / `N behavioural scenarios` patterns for
26
+ every other document. Both guards were watched failing against the real
27
+ 20-vs-22 defect before the numbers were corrected.
28
+ - The `SKILL.md` body is untouched on purpose: at ~4742/5000 tokens it has 8
29
+ tokens of headroom, so the whole amendment lives in the references.
30
+
3
31
  ## v0.25.0 — the installer refuses the shadow it documents, loudly
4
32
 
5
33
  - **The family audit of 2026-08-29 reproduced the shadow live:** a bare
@@ -140,7 +140,10 @@ through a quoted `"${CLAUDE_PLUGIN_ROOT}/…"` with a `timeout`; hook scripts ex
140
140
  0 silently when the event is not theirs and when the interpreter is missing;
141
141
  `PreToolUse` blocks (exit 2 sends stderr to the model), `PostToolUse` advises via
142
142
  `systemMessage`; plugin agents may not carry `hooks`, `mcpServers` or
143
- `permissionMode`; a command is never named after a skill in the same plugin.
143
+ `permissionMode`; a command is never named after a skill in the same plugin —
144
+ unless the collision is on the recorded, dated exception list in the skill's
145
+ `references/host-capabilities.md` (the ssheleg family, operator decision
146
+ 2026-08-30), which an audit reports as deliberate and recorded, not as a gap.
144
147
 
145
148
  ## Hard rules
146
149
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ssheleg/make-skill",
3
- "version": "0.25.0",
3
+ "version": "0.25.1",
4
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",
@@ -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.25.0",
6
+ "version": "0.25.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.25.0"
8
+ version: "0.25.1"
9
9
  homepage: https://github.com/ssheleg/make-skill
10
10
  ---
11
11
 
@@ -143,7 +143,17 @@ body receives `$ARGUMENTS`. Two rules cost a debugging round each:
143
143
 
144
144
  - **Never name a command after a skill in the same plugin.** Commands are skills
145
145
  now: both claim `/<name>`, the skill wins, the command is unreachable always-on
146
- cost visible only in `claude plugin details`.
146
+ cost visible only in `claude plugin details`. That is the default for every new
147
+ plugin. **One recorded exception (operator decision, 2026-08-30): the ssheleg
148
+ family ships same-named commands deliberately** — `task-pipeline`,
149
+ `project-audit`, `seo-aeo-audit`, `sheleg-design`, `agent-sync`, and
150
+ `super-ux`'s `vision`, `ux-foundation`, `ux-flows`, `ux-audit`. The cost is
151
+ accepted, not waived: the skill wins the trigger, and each command stays an
152
+ always-on token cost that may be unreachable in the picker. An audit that finds
153
+ a collision on this list reports it as *deliberate, recorded — no change
154
+ needed*; a collision NOT on a dated, recorded exception list is still the gap
155
+ this rule names. A rule's exception is enumerated, dated, and carries its cost
156
+ — never implied.
147
157
  - **Quote `argument-hint`.** Bare `[a | b]` is a YAML flow sequence; a comma
148
158
  inside it drops the entire frontmatter block, leaving a command with no
149
159
  description and no warning.
@@ -236,7 +246,8 @@ what the agent reads at the exact moment something is missing.
236
246
  - [ ] `PostToolUse` advises (`systemMessage`), `PreToolUse` blocks — not the reverse
237
247
  - [ ] Hook commands quote `"${CLAUDE_PLUGIN_ROOT}"` and set a `timeout`
238
248
  - [ ] Hook scripts are executable, have a shebang, and need no `jq`
239
- - [ ] No command named after a skill; every `argument-hint` quoted
249
+ - [ ] No command named after a skill — or the collision is on a recorded, dated
250
+ exception list (see *Commands*); every `argument-hint` quoted
240
251
  - [ ] Plugin agents carry no `hooks` / `mcpServers` / `permissionMode`
241
252
  - [ ] Scripts are stdlib-only, inside the skill dir, invoked by a resolvable path
242
253
  - [ ] No command the agent is told to RUN contains `${CLAUDE_PLUGIN_ROOT}` — it is
@@ -125,8 +125,11 @@ Report the table before changing anything, then fix.
125
125
  MCP server: the degradation contract written in the body for all three axes
126
126
  (not Claude Code / recommended plugin absent / tool absent); hooks that
127
127
  exit 0 silently when the event is not theirs; `PostToolUse` advising rather
128
- than blocking; commands quoted and never named after a skill; plugin agents
129
- free of `hooks`, `mcpServers` and `permissionMode`.
128
+ than blocking; commands quoted and never named after a skill (a collision on
129
+ the recorded, dated exception list in `references/host-capabilities.md` —
130
+ the ssheleg family's same-named commands, operator decision 2026-08-30 — is
131
+ reported as *deliberate, recorded — no change needed*, not as a gap); plugin
132
+ agents free of `hooks`, `mcpServers` and `permissionMode`.
130
133
 
131
134
  ## Personal skills — the short form
132
135