Skip to content

perf: cut the bodies of the most-invoked skills through progressive disclosure - part 1 of 2 #12243

Closed
5 of 5 issues completed

Description

@melodic-automation-lanes

Part 1 of 2 of #12240, split at intake (owner Q93). The done-when below is copied from #12240 as written.

Done when

  • Each of the six skills has its body cut through progressive disclosure: action-specific detail moves to reference files read on demand, and the hub keeps routing and gates. Each cut ships with eval evidence of no loss, as the skill criteria require.

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 2, 2026
  2. github-actions commented on Nov 2, 2026

    @github-actions
    Contributor

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

    Size: Medium
    Complexity: Medium
    Uncertainty: Knowable
    Flags: none
    Blocked by: none

    Understood: this is part 1 of 2 of #12240. It asks for progressive-disclosure cuts to six high-use skill bodies. Each cut needs eval evidence of no loss. The hub keeps routing and gates, and action detail moves to on-demand reference files.

    The latest host-run comment says the worktree cut could not be measured by the current eval suite, so that skill's done-when item is still open. Until the suite can measure that cut, the before text stays. No duplicates found among open issues.

    Automated triage, applied by the lanes App.

  3. added
    priority: mediumReal value, no hard deadline; normal backlog flow.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 2, 2026
  4. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    on Nov 2, 2026
  5. added
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    on Nov 2, 2026
  6. github-actions commented on Nov 2, 2026

    @github-actions
    Contributor
    No description provided.
  7. 24 remaining items

  8. kyle-sexton commented on Nov 4, 2026

    @kyle-sexton
    Member

    Host run: did not count. The negative control for #12387's worktree body cut, preregistered in #12243 (comment). No model ran, so this says nothing about whether the suite can detect a loss, and the cut's status is unchanged.

    What ran (Claude Code 2.1.318, subscription login, the claude.slice scope, under the host's heavy-run gate at load 1.92):

    • Arms: both are git archive copies of origin/main 284b530. The before arm has perf(source-control): move the worktree nesting measurement out of the skill hub #12387's change (339ce4a) reverted under plugins/source-control/skills/worktree/ only. The patch applied with no fuzz, and SKILL.md is byte-identical to the tree before the merge. docs: replace restated upstream facts with pointers in evals, source-control #12720 later changed context/audit.md and fixtures/README.md; those stay as on the base in both arms. The degraded arm is the before copy with the worktree SKILL.md body deleted and its frontmatter kept. diff -rq shows the two differ only in that file.
    • claude plugin eval <copy> --case 'worktree-*' --runs 2 -j 2 --scaffold --ablation none --keep-temp --model claude-opus-5-5 --allow-tools Bash Write Edit --trust-plugin --no-publish --threshold 0 --max-cost-usd 5 on both arms, launched together at 04:44:00Z. Both ended at 04:44:02Z with exit 0 and a reported cost of 0.
    • run-validity.py --runs 2 --scaffolded on before; the same plus --own-copy-search-warns on degraded.

    Verdicts:

    • before: verdict: INVALID (16 run errors; permission denials unchecked in 16 runs with no readable trace; skill firing unchecked in 16 runs)
    • degraded: verdict: INVALID (16 run errors; permission denials unchecked in 16 runs with no readable trace; skill firing unchecked in 16 runs)
    • Every run on both arms reads: a git directory of the plugin registers more linked worktrees than can be screened

    Cause: a setup defect, not a case or the skill. The copies sat under the repository's gitignored .work/, so the CLI resolved this repository as the plugin's git directory, and this repository has more linked worktrees than the CLI will screen (449 listed by git worktree list). The plugin-eval skill's route for this refusal is a copy outside any git repository.

    Result: did not count. No means, no case drops and no noise report, since none of the 32 runs took a turn. The preregistration's one re-run for a named setup defect has not been used. It needs the copies outside any git repository, with the suite, arms, flags and threshold unchanged.

    Target labels: add none; remove none.

  9. kyle-sexton commented on Nov 4, 2026

    @kyle-sexton
    Member

    Host run: did not count (second attempt). The negative control for #12387's worktree body cut. This used the one re-run the preregistration allowed, for the setup defect the first attempt named. The re-run is now used, and the cut's status is unchanged.

    What ran (Claude Code 2.1.318, subscription login, launched together at 05:04:36Z, load 7.69, three other evals on the host):

    • Arms, suite and flags as preregistered, on base 284b530. diff -rq shows the arms differ only in the worktree SKILL.md, and that file in the before arm is byte-identical to the tree before the merge.
    • Two setup changes from the first attempt: the copies sit in a directory outside any git repository, which fixes the named defect, and the CLI runs through docker-links.py, joining the swap peers already held. No flag changed.

    Verdicts:

    • before: INVALID, for three reasons:
      • The run went partial at the cost ceiling (cost_ceiling, reported cost above --max-cost-usd 5), so worktree-status-batched-facts never ran.
      • A counted denial: worktree-create-routes-through-helper run 1 tried a Grep of the sandbox's config/settings.json.
      • gh-forge-path "not loaded" in 14 runs. This follows from the partial run: that plugin is the helper inside the case that never ran, and the degraded arm loaded it in all 16 runs. suite.plugins matches between the arms.
    • degraded: INVALID on one counted denial, worktree-cleanup-emits-branch-delete run 1 (a compound grep ... /proc/self/mountinfo; git branch -d). The preregistration allows leaving that case out on this side.

    noise-report.py refused the compare: partial baseline (cost_ceiling): it did not finish, so no comparison is computed.

    Means, which do not count and route nothing: on the 7 shared cases, before 0.911 and degraded 0.821, a fall of 0.089; with the denial case left out, 0.896 and 0.833, a fall of 0.063.

    Result: did not count. Neither preregistered outcome applies, so no restore and no close follow from this.

    Cause of the ceiling: the 3.2 USD per arm estimate came from the plugin-eval skill's fresh-suite anchor, and docs/upstream/opus-5-5-task-cost.md:283 already records that those anchors predate the Opus 5.5 price change. A fresh preregistration follows.

    Target labels: add none; remove none.

  10. kyle-sexton commented on Nov 4, 2026

    @kyle-sexton
    Member

    Negative control, second preregistration, posted before its first paid run. The attempts under the first preregistration did not count, and their means were seen: they are in the report above and do not count here.

    Everything stands as in the first preregistration (suite, arms on base 284b530, model, threshold, compare, what counts, outcome), plus this attempt's setup: copies under ~/.ev/c12387, the CLI run through docker-links.py. One change:

    • --max-cost-usd 12 in place of 5 on both arms. Basis: the before arm passed 5 USD after 7 of 8 cases, so about 0.77 USD per case and over 6 USD for the suite, with headroom. This cap protects plan usage and bills nothing.

    Stop rule: this is the last attempt. If it does not count either (including a before-arm denial, which the first preregistration does not excuse), the cut counts as unmeasurable by this suite and the before text ships by PR under rewrite-a-plugin.md:79. No further run follows. Detect (a case drop, or a mean fall of at least 0.15, holding with degraded-denial cases left out): #12243 closes after its comments are read in full. Not detect: the before text ships the same way.

    Target labels: add none; remove none.

  11. kyle-sexton commented on Nov 4, 2026

    @kyle-sexton
    Member

    Host run: did not count (last attempt). The negative control for #12387's worktree body cut, under the second preregistration. Its stop rule applies: the cut counts as unmeasurable by this suite, and the before text ships by PR under rewrite-a-plugin.md:79. No further run follows.

    What ran (Claude Code 2.1.318, --max-cost-usd 12, everything else as preregistered; both arms finished in full):

    • before: verdict: VALID. Every case scored 1.00 on both runs.
    • degraded: verdict: INVALID (the skill did not fire in 1 with-arm run of a should-trigger case): worktree-not-pr-lifecycle run 1. This arm's traces hold no denial, and the preregistrations excuse only denials, so leaving that case out after seeing the numbers would be the post-hoc exclusion they exist to stop.

    Numbers, which do not count: noise-report.py calls a case drop on worktree-cleanup-surfaces-removal-errors (1.00 to 0.50), and the mean falls 0.106 (1.000 to 0.894). In the second attempt the before arm scored that same case 0.5 on one run, so a 0.5 is inside its spread at 2 runs. These do not show the suite detects a loss.

    Result: did not count. The restore PR follows, and it links here.

    What this leaves open: a worktree body cut the suite can measure, so #12243's done-when is not met for that skill.

    Target labels: add none; remove none.

  12. github-actions commented on Nov 4, 2026

    @github-actions
    Contributor

    The triage sweep dispatched intake triage for this issue (dispatch 1; 2 runs that reach intake, or 6 dispatches, hand it to a maintainer).

  13. added
    host-runNeeds an agent run or builder session on a host; not a person or the issue lane.
    status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.
    and removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    on Nov 4, 2026
  14. melodic-automation-lanes commented on Nov 4, 2026

    @melodic-automation-lanes
    ContributorAuthor

    Not admitted to the issue lane: its done-when asks for what an unattended lane run cannot perform: item 1 (eval: "Each of the six skills has its body cut through progressive disclosure: actio..."); no done-when item is left for the lane, so it goes to the host queue (host-run). Admission takes the issue once each of those is met, when intake triages it again (.github/actions/resolve-config/admission-rules.json).

  15. melodic-automation-lanes commented on Nov 4, 2026

    @melodic-automation-lanes
    ContributorAuthor

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

  16. kyle-sexton commented on Nov 4, 2026

    @kyle-sexton
    Member

    Closing: five of the six skills meet the done-when, and the sixth moves to its own issue by the owner's decision.

    • Cut, with paired eval evidence and a control that detected: /source-control:commit (#12704), /source-control:pull-request (#12739), /session-flow:handoff (#12869), /evals:plugin-eval (#12875), /discovery:research (#12876). These are as read earlier on this issue from each PR body and the clean re-runs; I did not re-run them.
    • Not cut: /source-control:worktree. Its control did not count on any of three attempts, so the before text shipped in PR 13095. Owner, 2026-11-04: "Go with recomemndations", on keeping that restore. The cut this suite can measure is tracked on perf(source-control): cut the worktree skill body once its suite can detect a loss #13238.

    The after-figure re-measure on #12244 is no longer blocked by this issue. It measures five cut skills and one uncut.

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

Metadata

Metadata

Assignees

Labels

host-runNeeds an agent run or builder session on a host; 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: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

Type

Fields

Work status

confirmed

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions