Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
3ca90cf
refactor(plugins): delete 9 hook-runtime check skills (*:check wave 1…
kyle-sexton Nov 3, 2026
44269d1
test(plugins): require the PASS or FAIL word in the part B row graders
kyle-sexton Nov 3, 2026
1022364
docs(plugins): name the removed check skill without a slash reference
kyle-sexton Nov 3, 2026
f7043ad
Merge remote-tracking branch 'origin/main' into refactor/12486-part-b…
kyle-sexton Nov 3, 2026
f352e6e
Merge branch 'main' into refactor/12486-part-b-delete-check-skills
kyle-sexton Nov 3, 2026
ddb0148
fix(scripts): register the check-skill eval samples as accepted copies
kyle-sexton Nov 3, 2026
afcdaf2
docs(harness-ops): say the prerequisites check column can be empty
kyle-sexton Nov 3, 2026
66de358
refactor(plugins): delete 8 formatter and linter check skills (*:chec…
kyle-sexton Nov 3, 2026
54d4006
Merge branch 'main' into refactor/12487-delete-formatter-check-skills
kyle-sexton Nov 3, 2026
2365708
docs(harness-ops): say what the fragment's change is
kyle-sexton Nov 3, 2026
33da9f0
Merge branch 'main' into refactor/12487-delete-formatter-check-skills
kyle-sexton Nov 3, 2026
9adaaf9
fix(plugins): drop the check registry line the union merge kept
kyle-sexton Nov 3, 2026
950aa9f
fix(actionlint): anchor no-install and restore the second-plugin latc…
kyle-sexton Nov 3, 2026
16378fc
refactor(plugins): delete 10 external-tool prerequisite skills (*:che…
kyle-sexton Nov 3, 2026
da21518
Merge remote-tracking branch 'origin/refactor/12487-delete-formatter-…
kyle-sexton Nov 3, 2026
d75723b
test(playwright): name the checker command in the notice case
kyle-sexton Nov 3, 2026
07caf34
Merge origin/main into refactor/12488-delete-external-tool-check-skills
kyle-sexton Nov 3, 2026
3d3482a
fix(plugins): tighten context7 no-install and disk-hygiene deny text
kyle-sexton Nov 3, 2026
32da30a
Merge remote-tracking branch 'origin/main' into refactor/12488-delete…
kyle-sexton Nov 3, 2026
bef394a
fix(scripts): annotate each ck-notice registry entry with its enforce…
kyle-sexton Nov 3, 2026
f566bbb
Merge origin/main
kyle-sexton Nov 3, 2026
fde3192
fix(plugins): settle the review threads on the check-skill deletion
kyle-sexton Nov 3, 2026
66a6860
docs(speech): say what setup check reports now that the check row is …
kyle-sexton Nov 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: major
---

### Removed

- The `check-prerequisites` skill is gone. To check this plugin's prerequisites, run `node "<plugin root>/lib/prerequisites.mjs" check "<plugin root>"`.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: major
---

### Removed

- The `check` skill is gone. To check this plugin's prerequisites, run `node "<plugin root>/lib/prerequisites.mjs" check "<plugin root>"`. `prerequisites.json` now declares `CONTEXT7_API_KEY` and the Context7 MCP server.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: major
---

### Removed

- The `check` skill is gone. To check this plugin's prerequisites, run `node "<plugin root>/lib/prerequisites.mjs" check "<plugin root>"`. `/disk-hygiene:setup check` also covers the launcher registration and the interpreter ladder. `prerequisites.json` now declares Python, and the guard messages name the checker.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: major
---

### Removed

- The `check` skill is gone. To check this plugin's prerequisites, run `python3 "<plugin root>/scripts/pydeps.py" check --data-dir "<plugin data>"`.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: patch
---

### Changed

- The prerequisites skill's ranking probe no longer lists a deleted skill as a competitor.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: major
---

### Removed

- The `check-prerequisites` skill is gone. To check this plugin's prerequisites, run `node "<plugin root>/lib/prerequisites.mjs" check "<plugin root>"`. The rule-glob gate `check` stays.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: major
---

### Removed

- The `check` skill is gone. To check this plugin's prerequisites, run `node "<plugin root>/lib/prerequisites.mjs" check "<plugin root>"`.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: major
---

### Removed

- The `check` skill is gone. To check this plugin's prerequisites, run `node "<plugin root>/lib/prerequisites.mjs" check "<plugin root>"`. `/playwright:setup check` also reports the browser and the artifact directory.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: major
---

### Removed

- The `check-prerequisites` skill is gone. To check this plugin's prerequisites, run `node "<plugin root>/lib/prerequisites.mjs" check "<plugin root>"`. The skill gate `check` stays.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: major
---

### Removed

- The `check` skill is gone. To check this plugin's prerequisites, run `python3 "<plugin root>/scripts/check.py" --data-dir "<plugin data>"`. `/speech:setup check` is the same report.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
bump: major
---

### Removed

- The `check-prerequisites` skill is gone. To check this plugin's prerequisites, run `node "<plugin root>/lib/prerequisites.mjs" check "<plugin root>"`. The build and test skill `check` stays.
4 changes: 2 additions & 2 deletions docs/catalog.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,13 +138,13 @@ plugin manifests and kept in sync by CI. Never hand-edit it; the category vocabu

- [`pixel-art`](../plugins/pixel-art): Creates pixel art with no external tools: sprites (sprite), animation sprite sheets for RPG Maker MZ, Godot, PICO-8, or plain strips with Aseprite-style frame data and GIF previews (animate), tilesets and parallax (tileset), UI skins and bitmap fonts (ui), effect sheets (vfx), and animated scenes as one HTML file (scene). Specs are palette-locked; a humanoid kit and a Python stdlib renderer write PNG, GIF, and frame data with a render-review loop. Optional Aseprite adapter.
- [`animation`](../plugins/animation): Hand-drawn-style 2D animation as code, rendered in headless Chromium by an ink brush engine. rotoscope copies a reference clip drawing by drawing: trace to vector paths, render, measure against the source (XOR, SSIM), and fit per-shot brush overrides. learn-style measures a clip into a style pack (ships woodcut-ink) and checks films against it. produce turns a brief into approved boards, a shot list, frames, and a delivered file. setup checks ffmpeg, Node, Chromium, and Python.
- [`explainer-video`](../plugins/explainer-video): Short explainer videos made with ManimCE, narrated when the speech plugin is installed and silent otherwise. The produce skill plans the beats, writes one scene script whose scene changes follow the narration's word timings, renders at low quality first, muxes narration and captions with ffmpeg, and checks every render with ffprobe and a frame read-back. A SessionStart hook installs the hash-locked Python packages; the check skill reports readiness.
- [`explainer-video`](../plugins/explainer-video): Short explainer videos made with ManimCE, narrated when the speech plugin is installed and silent otherwise. The produce skill plans the beats, writes one scene script whose scene changes follow the narration's word timings, renders at low quality first, muxes narration and captions with ffmpeg, and checks every render with ffprobe and a frame read-back. A SessionStart hook installs the hash-locked Python packages; scripts/pydeps.py check reports readiness.

## Audio

- [`songwriting`](../plugins/songwriting): Songwriting craft companion: nine concern-scoped lyric-craft skills (workflow router, rhyme, object-writing, metaphor, meter-prosody, song-form, co-write, diagnose, practice) applying Pat Pattison's methods, with an object-writing agent that performs the sensory exercise itself and per-skill emission boundaries that route generation to the skill that owns it, plus Suno v5.5 prompt engineering (style prompts, tagged lyrics, genre templates, troubleshooting).
- [`retro-audio`](../plugins/retro-audio): Renders retro sound effects and short chiptune loops to WAV with the Python standard library only: an sfxr-style parameter model and an MML subset with Game Boy and NES pulse duties and channel limits for Game Boy, NES, and PICO-8 (four channels, one noise part). Another plugin can play the WAV; this one does not read that plugin's files.
- [`speech`](../plugins/speech): Text-to-speech narration. The narrate skill turns a script into narration.wav plus words.json, with a start and end time per word. The default backend runs Kokoro-82M locally. The optional elevenlabs backend sends the text to the third-party ElevenLabs API (ELEVENLABS_API_KEY or vault-exec) after showing the character count against your quota, caching repeats; an organization can forbid it. You install espeak-ng (GPL-3.0); a hook installs Python packages, setup the models, check reports gaps.
- [`speech`](../plugins/speech): Text-to-speech narration. The narrate skill turns a script into narration.wav plus words.json, with a start and end time per word. The default backend runs Kokoro-82M locally. The optional elevenlabs backend sends the text to the third-party ElevenLabs API (ELEVENLABS_API_KEY or vault-exec) after showing the character count against your quota, caching repeats; an organization can forbid it. You install espeak-ng (GPL-3.0); a hook installs Python packages, setup the models, check.py reports gaps.

## Personal

Expand Down
6 changes: 2 additions & 4 deletions docs/contracts/invocation-mode/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,8 @@ documented budget.
only the human knows when it fits.
2. **(ii) Setup skills.** Per the plugin-philosophy setup contract ("Setup is explicit and
repeatable"): `setup` skills are named `setup` and carry `disable-model-invocation: true`. The
class covers `setup` only. A read-only `check` skill beside it (`<plugin>:check`, which reads
and follows only setup's `check` section and installs nothing) is an ordinary `false`-default
skill, not an exception. The flag is per skill, so the split is the only way to keep `apply`
manual and `check` reachable by a hook's notice; the claim's verification record is in the
class covers `setup` only. The flag is per skill, so `apply` stays manual and a hook's notice names the
plugin's bundled checker, which is no skill; the claim's verification record is in the
[setup contract](../../plugin-philosophy.md#setup-is-explicit-and-repeatable).
3. **(iii) Maintainer-only skills.** Operate on this marketplace's working tree (vendored-content
sync, drift checks); meaningless or harmful for consumers to reach via the model.
Expand Down
8 changes: 4 additions & 4 deletions docs/contracts/prerequisites/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ Every entry carries the first seven fields; `check` is optional:
| `detect` | How the checker finds it. The shape depends on `kind` (next table). |
| `degrade` | What stops working without it, and what still works. The checker prints it. |
| `install` | Hints keyed by package manager or `docs`. The checker prints them and never runs them. Key order is not a preference. |
| `check` | Optional. A skill a person runs to re-check, such as `/<plugin>:check`. `check` mode and `report` print it; hook notices never do ([Hook notices](#hook-notices)). |
| `check` | Optional. A skill a person runs to re-check, such as `/harness-ops:prerequisites`. `check` mode and `report` print it; hook notices never do ([Hook notices](#hook-notices)). |

`need` and `for` together give the absence class. `required` for `plugin` means the plugin cannot
work without it; hook plugins use that for `node`. `required` for `skill:x` means skill `x` stops
Expand Down Expand Up @@ -159,8 +159,8 @@ check "<root>"`, where `<root>` is the absolute plugin root. `check` mode is the
`node-pkg` entry that only the plugin data directory holds reports `unverified` there.

The node notice names `/harness-ops:prerequisites`, passed by harness-ops' row, because the notice
speaks for the whole fleet. An entry's `check` may still name a per-plugin `check` or
`check-prerequisites` skill until the wave that deletes it drops the field. A probe the checker
speaks for the whole fleet. A plugin has no separate prerequisites skill: its bundled checker is the
read-only entry point the model runs. A probe the checker
cannot express stays a script in that plugin's `scripts/`: `check-hook-registration.sh` for hook
registration, `check-mod-load.sh` for whether a mod can load. The plugin's `degrade` text and README
name it, and it runs after the checker. Neither notice names `/<plugin>:setup`,
Expand Down Expand Up @@ -238,7 +238,7 @@ The fix is the declared one: the `install` hints, the repair line, or a `setup`
an undeclared tool.

Observed 2026-10-04: the speech plugin was enabled mid-session, so its install hook never
ran; `/speech:check` printed commands only, and `espeak-ng` (sudo) and the Kokoro model download
ran; the speech check printed commands only, and `espeak-ng` (sudo) and the Kokoro model download
were left for the user to run by hand.

## The CI gate
Expand Down
13 changes: 6 additions & 7 deletions docs/plugin-philosophy.md
Original file line number Diff line number Diff line change
Expand Up @@ -625,13 +625,12 @@ flag fragmented across per-skill actions. Where distinct skills carry distinct r
setup skill aggregates and reports it per skill.

`disable-model-invocation` is a whole-skill flag, so `setup` cannot hide `apply` from Claude and
leave `check` reachable. A plugin whose hook or probe names a read-only check therefore also ships
a separate `<plugin>:check` skill with `disable-model-invocation: false`. It reads `setup` and
follows only its `check` section, so `setup` stays the one account of what is checked, and it
installs and writes nothing. `setup` keeps `true`, and `apply` stays manual. A hook or probe names
`/<plugin>:check`, never `/<plugin>:setup check`, which the flag hides from Claude.
`plugins/context7/skills/check/SKILL.md` is the shape to copy. Decision record: we set the flag
per skill and split `check` into its own skill, because we found no per-action invocation flag.
leave `check` reachable. A hook or probe that points at a read-only check therefore names the plugin's
bundled checker, `node "<plugin root>/lib/prerequisites.mjs" check "<plugin root>"`, which Claude can run and which
installs and writes nothing, or a read-only script in the plugin's `scripts/` for a probe the checker
cannot express, never `/<plugin>:setup check`, which the flag hides from Claude. `setup` keeps
`true`, and `apply` stays manual. Decision record: we set the flag per skill, because we found no
per-action invocation flag.
Pointer: for `disable-model-invocation`, see
<https://code.claude.com/docs/en/skills#frontmatter-reference> and
<https://code.claude.com/docs/en/skills#control-who-invokes-a-skill>. As of: 2026-09-29. Recheck
Expand Down
Loading
Loading