Repository navigation
Description
Refs #7582
Blocked by #12486
Outcome
This wave deletes the 10 external-tool prerequisite skills sized in #11956:
- six
checkskills: context7, disk-hygiene, explainer-video, knowledge, playwright and speech; - four
check-prerequisitesskills: animation, instruction-placement, skill-quality and toolchain.
Each plugin's hook or skill notice then names its own bundled checker (#12485). #11956 measured the deletions at a git diff --no-renames of 44,175 bytes.
All 10 plugins already ship a prerequisites.json and lib/prerequisites.mjs, checked on origin/main at b000bb5. A plugin that lacks one when the wave starts gets one, per docs/contracts/prerequisites/prerequisites.schema.json, before its skill is deleted. context7:check also reports CONTEXT7_API_KEY auth and MCP server state. Its prerequisites.json declares only a cli and a runtime entry today. The schema already has env and mcp kinds (prerequisites.schema.json:43), so this wave adds those entries or lists the loss.
Done when
- Before any edit, a comment here gives the measured
git diff --no-renamesbyte size of the full wave. The size must be under 262144 bytes. -
ls -d plugins/*/skills/check | wc -lgoes from 9 to 3.ls -d plugins/*/skills/check-prerequisites 2>/dev/null | wc -lgoes from 4 to 0. - Both of these print nothing:
git grep -c -E '/(context7|disk-hygiene|explainer-video|knowledge|playwright|speech):check([^a-z0-9-]|$)' -- . ':!**/CHANGELOG.md' ':!.changes/**'git grep -c -E '/[a-z0-9-]+:check-prerequisites\b' -- . ':!**/CHANGELOG.md' ':!.changes/**'
-
docs/contracts/prerequisites/README.mdno longer describes acheck-prerequisitesskill (today at:156-158). - Eval evidence of no loss of notice behavior, per
plugins/playbooks/skills/skill-authoring/reference/skill-criteria.md("Cutting text",/evals:plugin-eval --baseline <before.json> --margin <m>):- The baseline is
context7/evals/ck-install-routedandcontext7/evals/ck-read-onlyon main, rewritten to name the bundled checker. They still assert a read-only run with no install. - Each of the other 9 plugins gets one plugin-level case with that assertion.
- The run posted here shows non-inferiority at the stated margin.
- The baseline is
-
scripts/validate-plugins.shpasses, and so doesbash scripts/sync-shared-copies.sh --check-bump origin/main. - A merge probe is posted per D82/Q186: after merge, the skill picker lists none of these 10 skills, and one hidden tool produces a notice whose command runs.
Out of scope
- Renaming the three non-prerequisite
checkskills (naming slice), waves 1 and 2, and/harness-ops:prerequisites.
Related
- skill-quality: skill authoring, quality and catalog #7582 (parent), chore(skill-quality): recount the *:check skills and size their consolidation #11956 (wave sizes), refactor(prerequisites): name the bundled checker in hook notices instead of a /<plugin>:check skill #12485 (notice contract), refactor(plugins): delete the 14 hook-runtime check skills (*:check wave 1) #12486.
Metadata
Metadata
Assignees
Labels
Type
Fields
Work status
Activity
kyle-sexton commentedon Nov 2, 2026
Lane 1 decision, made from evidence: context7's auth and MCP-server probes move into its
prerequisites.jsonunder the schema's existingenvandmcpkinds, so nothing is lost. Any probe still left over stays as a script inside the plugin, as decided on #12486.github-actions commentedon Nov 2, 2026
Proposed work class: work-class: structural
Basis: automated intake triage; the lanes App applied this class.
Size: Large
Complexity: Medium
Uncertainty: Known
Flags: none
Blocked by: #12486, #12485
Understood: delete 10 external-tool prerequisite skills (six
check, fourcheck-prerequisites) across their plugins. Each plugin's notice would then name its bundled checker. The issue also asks for updated contract docs, eval evidence and a post-merge probe.The done-when items are specific. The host-only items (merge probe, eval runs) are handled by admission routing. Sequencing depends on #12486 (named in the body) and on the notice contract #12485, which is still open.
Related open issues: #12485, #12486. The wave 1 and wave 2 issues cover other skills, so they are not duplicates.
Automated triage, applied by the lanes App.
melodic-automation-lanes commentedon Nov 2, 2026
Not admitted to the issue lane: it carries host-run; Size large: the split into sub-issues at intake is pending (owner Q93). Admission takes the issue once each of those is met, when intake triages it again (
.github/actions/resolve-config/admission-rules.json).melodic-automation-lanes commentedon Nov 2, 2026
The latest triage verdict holds nothing: admission moved the issue to
status: confirmed; its comment says why.kyle-sexton commentedon Nov 3, 2026
kyle-sexton commentedon Nov 3, 2026
AI-generated by the lane 4 session.
Measured size of the full wave: 260,828 bytes of
git diff --no-renames, under the 262,144-byte cap by 1,316 bytes. No further split. Nothing is committed yet.Method: a staged dry build of all of it (the 10 skill deletions, 5 probe deletions, reference edits,
prerequisites.jsonchanges, 11 eval cases, 11 fragments, the regenerated cheat sheet), thengit diff --cached --no-renames <base> | wc -c, with base the wave 2 head 2365708 (#12640). In that buildplugins/*/skills/checkreads 3,plugins/*/skills/check-prerequisitesreads 0, and both done-when greps print nothing.The first build came to 307,504 bytes. Two things moved out to fit:
hook::prerequisite_fields_tofallback inlib/hook-utils.shand its 20 copies, with the 15 fragments those copies need: about 34 KB. Nothing reads the name it derives, so it is dead code, and it goes in a follow-up.playwright:checkin 4 eval sample files, where it is only an example of "a different skill". It goes in the same follow-up.The rest of the reduction is smaller eval samples. If a smoke run corrects an eval case, this figure moves by a few hundred bytes. The PR carries the final number.
fix(plugins): tighten context7 no-install and disk-hygiene deny text
kyle-sexton commentedon Nov 3, 2026
Merge probe. Wave 3 merged as #12770 (
dcae0f5e03). Run against main at dcae0f5, from copies outside any repository.plugins/*/skills/checkon main: 3: instruction-placement, skill-quality and toolchain, the non-prerequisite checks refactor(plugins): give the three non-prerequisite check skills distinct names so no check leaf remains #12489 renames.plugins/*/skills/check-prerequisites: 0. Both done-when greps print nothing, checked on the PR head.Skill picker: one live
claude -psession with--plugin-dirfor all 10 plugins, user settings excluded. Its init line lists 54 skills. context7, disk-hygiene, explainer-video, knowledge, playwright, speech and animation list nocheckorcheck-prerequisitesleaf. The 3 left are the gate checks above.Hidden tool: disk-hygiene's PreToolUse guard (
run-python-hook.shwithdestructive_guard.py), with every Python offPATH. Exit 0, with this notice:The printed command runs as written and reports it, exit 1:
Limits
#12489 is unblocked. Closing.
Posted by the lane 4 session. This was generated by AI.