Skip to content

refactor(plugins): give the three non-prerequisite check skills distinct names so no check leaf remains #12489

Closed as not planned
3 of 3 issues completed

Description

@kyle-sexton

Refs #7582

Blocked by #12488

Outcome

No skill in this repository keeps the leaf name check, which removes the Cursor /check collision the owner observed (D82, Q179). Three check skills are not prerequisite checks (#11956), so the waves do not delete them:

  • instruction-placement:check: a pass/fail gate over .claude/rules/ globs and the rules index;
  • skill-quality:check: skill-authoring QA;
  • toolchain:check: build, test and lint of changed files.

Each one gets a distinct leaf name, and a first description clause that sets it apart from the others. New names are chosen with /naming:name-it-better and swept with /docs-hygiene:rename-references.

Size: the three skill directories hold 118,814 tracked bytes at b000bb5 (instruction-placement 16,565, skill-quality 53,193, toolchain 49,056). A directory rename measured with --no-renames counts as a full delete plus a full add. There are about 323 references to update: /toolchain:check 193, /skill-quality:check 107, /instruction-placement:check 23. So this slice almost certainly exceeds one lane patch.

Done when

  • A comment here gives a sized plan: the measured git diff --no-renames byte size of each rename, with references included, and a split into sub-slices, each under 262144 bytes.
  • ls -d plugins/*/skills/check 2>/dev/null | wc -l goes from 3 to 0.
  • git grep -c -E '/(instruction-placement|skill-quality|toolchain):check([^a-z0-9-]|$)' -- . ':!**/CHANGELOG.md' ':!.changes/**' prints nothing.
  • Each renamed skill's description starts with a clause no other installed skill's description starts with.
  • Eval evidence of no loss of triggering, per plugins/playbooks/skills/skill-authoring/reference/skill-criteria.md: a description change re-measures triggering on the probes, and each skill's existing evals run with /evals:plugin-eval --baseline <before.json> --margin <m> and show non-inferiority.
  • scripts/validate-plugins.sh passes, and so does bash scripts/sync-shared-copies.sh --check-bump origin/main.
  • Host-run (Q179): after merge, a picker label re-observation in Claude Code and in Cursor shows no /check collision, posted here with the client versions.
  • A merge probe is posted per D82/Q186 for each sub-slice.

Out of scope

  • The 32 prerequisite-check skills (waves 1 to 3).
  • Changing what any of the three skills does.

Related

Activity

  1. added
    priority: mediumReal value, no hard deadline; normal backlog flow.
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.
    host-runNeeds an unattended run on a host; the host runner takes it, not a person or the issue lane.
    on Nov 2, 2026
  2. github-actions commented on Nov 2, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: structural
    Basis: automated intake triage; the lanes App applied this class.

    Size: Large
    Complexity: Medium
    Uncertainty: Knowable
    Flags: none
    Blocked by: #12488

    Understood: rename the three non-prerequisite check skills (instruction-placement:check, skill-quality:check, toolchain:check) to distinct leaf names, with distinct description openers. Then sweep about 323 references, so that no check leaf remains and the Cursor /check collision goes away.

    The issue itself says this exceeds one lane patch. Its first done-when item is a sized plan split into sub-slices under 262144 bytes each, and the work should be split that way.

    Wave 3 (#12488) touches the same plugins, so this should follow it. The new names are an implementation choice (/naming:name-it-better), not an open intent question.

    The post-merge Cursor and Claude Code picker check needs a host run. It is outside what an unattended lane can do, and it doesn't hold the rest.

    No duplicates found among the open issues.

    Automated triage, applied by the lanes App.

  3. added
    status: needs-decisionAwaiting a human or maintainer judgment call.
    and removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    on Nov 2, 2026
  4. melodic-automation-lanes commented on Nov 2, 2026

    @melodic-automation-lanes
    Contributor

    Not admitted to the issue lane: its done-when asks for what an unattended lane run cannot perform: item 5 (a paid eval: "Eval evidence of no loss of triggering, per plugins/playbooks/skills/skill-au..."); recommended split: keep the other items here as the admissible issue and move these to a child issue for the owner, since a paid eval can bill the owner; 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).

  5. melodic-automation-lanes commented on Nov 2, 2026

    @melodic-automation-lanes
    Contributor

    The latest triage verdict holds nothing: admission moved the issue to status: needs-decision; its comment says why.

  6. kyle-sexton commented on Nov 2, 2026

    @kyle-sexton
    MemberAuthor

    Status: split into three rename PRs. The issue-triage session splits this issue into three sub-issues, one rename per skill, each its own pull request. The rename has to split because:

    • A --no-renames rename counts each directory twice: 2 × 118,814 tracked bytes is about 238 KB before any reference edit.
    • The reference sweep is 18 + 84 + 141 lines in 10 + 41 + 65 files (git grep -c on main).
    • One pull request would therefore exceed the 262144-byte patch cap (.github/scripts/work-resolve-issue/report-outcome.mjs:456).

    Estimated sizes per rename: instruction-placement:check about 48 KB, skill-quality:check about 175 KB, toolchain:check about 210 KB. These are estimates (rename bytes doubled, about 800 bytes per edited reference line). Each sub-issue's pull request states its measured git diff --no-renames size.

    The renames have no order among them. Each is blocked by #12488, which edits the same three plugins.

    Item 5's eval is not an owner item:

    • claude plugin eval runs model calls on the operator's account (plugins/evals/skills/plugin-eval/SKILL.md:175).
    • That is subscription or promotional-credit usage, which the owner's standing direction defines as not cost (docs/contracts/loop-lane/README.md:349).
    • So it is a host run: each sub-issue carries host-run, and its host run uses non-Fable models so no usage credits bill (docs/contracts/loop-lane/README.md:775-776).

    Each sub-issue carries items 3, 4, 5, 6 and 8 of this issue's body as written, with a Scope line naming its skill.

    This issue keeps three items of its body, unchanged:

    • Item 1, the sized plan with each rename's measured git diff --no-renames byte size. It is met once the three sub-issues' measured sizes are posted here.
    • Item 2, ls -d plugins/*/skills/check 2>/dev/null | wc -l going from 3 to 0. It is met after the last sub-issue merges.
    • Item 7, the host-run picker re-observation in Claude Code and Cursor (Q179). It runs after the last sub-issue merges.
  7. added
    status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.
    and removed
    status: needs-decisionAwaiting a human or maintainer judgment call.
    on Nov 3, 2026
  8. kyle-sexton commented on Nov 3, 2026

    @kyle-sexton
    MemberAuthor

    Decision recorded. Owner answer, quoted verbatim, given in the lane 2 session on 2026-11-03 when asked to pick a new leaf name for instruction-placement:check (#12497):

    I mean, I wouldn't change ours if it's just to accommodate cursor, but that's just my call.

    This issue's only stated reason for the renames is the Cursor /check collision (Outcome: "which removes the Cursor /check collision the owner observed (D82, Q179)"). So instruction-placement:check, skill-quality:check and toolchain:check keep the check leaf, and this issue and its three rename slices close as not planned: #12497, #12498, #12499. Nothing was renamed, and no branch or PR exists for any of them.

    Posted by the lane 2 session.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    host-runNeeds an unattended run on a host; the host runner takes it, not a person or the issue lane.priority: mediumReal value, no hard deadline; normal backlog flow.status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.

    Type

    Fields

    Work status

    needs-owner-decision

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions