Repository navigation
Closed as not planned
Closed as not planned
Copy link
Labels
host-runNeeds an unattended run on a host; the host runner takes it, not a person or the issue lane.Needs 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.Real value, no hard deadline; normal backlog flow.status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.A 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.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Description
Part of #6476. Rewrite debugging's skills to the skill criteria in one draft PR, following the per-plugin runbook (/playbooks:skill-authoring, reference/rewrite-a-plugin.md). The runbook and the rewrite protocol it cites decide what ships; this issue holds only what is specific to the plugin.
The plugin today
As of origin/main on 2026-10-24:
- Skills:
analyze-profile,debug(model-invoked). - Outcome eval case directories under the plugin: 15. Probe files under
probes/: 1.
Done when
-
/skill-quality:check plugins/debuggingon the PR head reports no FAIL that the run on main does not. -
/evals:validatepasses onplugins/debugging's eval suite at the PR head. - Each model-invoked skill has a probe file:
plugins/debugging/probes/analyze-profile.json,plugins/debugging/probes/debug.json. - The PR body holds a per-skill decision table, description and body decided separately, with the before and after numbers behind each row.
- The PR body names every skill or case left unmeasured, with the reason.
- The plugin's version or changelog entry is in the PR, per the plugin's release mode.
Eval spend and review
- Eval passes within prepaid API credit are pre-approved (owner decision Q46, 2026-10-24), at the
--max-cost-usd 5per-pass ceiling set on #6476 on 2026-10-18. - No person gates the PR: the owner's 2026-10-24 decision (C12) leaves only an intent mismatch during the build or a security issue at review as stops.
Generated by Claude Code
Metadata
Metadata
Assignees
Labels
host-runNeeds an unattended run on a host; the host runner takes it, not a person or the issue lane.Needs 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.Real value, no hard deadline; normal backlog flow.status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.A 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.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Type
Fields
No fields configured for Task.
Activity
github-actions commentedon Oct 7, 2026
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: rewrite the two skills in the
debuggingplugin (analyze-profile,debug) to the skill criteria in one draft PR, following the per-plugin runbook. The PR needs probe files, a passing eval validation, a per-skill decision table, and a version or changelog entry. The issue already states the eval spend approval and the review rules, so nothing is missing. It is part of #6476. I found no duplicates among the open issues.Automated triage, applied by the lanes App.
kyle-sexton commentedon Oct 24, 2026
Released by the owner's HITL session (2026-10-24, C12): it waited only on a removed gate. Intake triage re-runs on it to set its fields, then admission takes it.
github-actions commentedon Oct 25, 2026
The triage sweep dispatched intake triage for this issue (attempt 1 of 2).
9 remaining items
kyle-sexton commentedon Nov 1, 2026
Claimed by the Backlog HITL host session; work in progress.
kyle-sexton commentedon Nov 1, 2026
Released: this row belongs to laptop Lane 2/3; the Backlog HITL session has stopped work on it.
test(debugging): keep only the frozen debug probes; defer the body re…
kyle-sexton commentedon Nov 1, 2026
This was generated by AI.
Progress: #11849 merged (543eb6c). It adds the missing frozen trigger probe file
plugins/debugging/probes/debug.json(20 queries, 10 positive and 10 negative). No skill text changed.The concise
debugbody rewrite that #11849 first carried was not shipped. It is kept in commit 352a71b on branchhost-run/6603-debugging-concisefor the rewrite to start from. Its measured passes ran on Opus only: 3 runs,--ablation none, every result VALID. Words went from 5292 to 5091, and the with-plugin mean from 0.83 to 0.87 over 11 cases, with no case dropping. Per case, before → after:It did not meet the rewrite protocol, which measures per model the skill targets and ships on non-inferiority within 5 points (
plugins/playbooks/skills/skill-authoring/reference/skill-criteria.md:212-222). No Sonnet run was made, and the read-only group's noise interval reached the margin (+0.06 [-0.05, +0.16]).This issue stays open. The rewrite and its measured passes wait on the eval validity fixes in #11618 and #11628.
kyle-sexton commentedon Nov 1, 2026
kyle-sexton commentedon Nov 1, 2026
Host run. #6603 measured a concise rewrite of the
debugskill body on Opus 5.5 and Sonnet 5.5. It held on Sonnet but showed a case drop on Opus that restoring the related text did not close. No text ships, no PR was opened, and the issue can close with no text change.Result
plugins/debugging/skills/debug/SKILL.mdstays at 5292 words (367 lines).--unattendedhandling, the Emit checklist, Boundary and Routing, and the "Optional view" paragraph.analyze-profilebody, and every spoke. The frontmatter was byte-identical, so no trigger pass was run. A 16-query held-out set (8 should-trigger, 8 should-not) was written blind and stays unspent for a later description round.multiple-falsifiable-hypothesesfell from 0.83 to 0.50, which meets the preregistered one-third drop.What ran
claude plugin evalon before and after copies outside the repository.--trust-plugin --keep-temp --judge-model opus --threshold 0.8 --runs 3 -j 2 --scaffold --max-cost-usd 5 --no-publish, default ablation (with and without arms).--allow-toolsgranted exactly the gated tools each case lists: Bash, Edit and Write for cleanup-gate and the three red-run cases; Bash only for debug-hands-artifact; none for the rest.debugbody. The 4 analyze-profile-only cases were not run, since that text did not change.run-validity.py(with the fix(evals): let trigger-measurement probe runs pass run-validity #11618, fix(skill-quality): stop invocation-probe runs failing validity on denied searches outside the workspace #11624 and test(visualization): fix the frozen suite's graders and re-measure present and visualize with VALID runs #11628 fixes) ran on every pass.llmgraders agreed at 100%.hypothesis-and-grepjudges the trace, which a calibration run cannot reproduce, so it stays uncalibrated.ranked-falsifiable-grounded's must-pass sample was not reproduced.docs-hygiene:compare-labeleragents both returned PASS, with one shared ambiguity, which was restored. A recheck returned PASS with 0 ambiguity.Mean with-arm scores, before to after (3 runs each):
cleanup-gate-removes-tagged-instrumentationdebug-hands-artifact-to-analyze-profilemultiple-falsifiable-hypothesesno-blind-retry-as-fixno-correct-seam-is-a-findingno-loop-possible-is-the-deliverableobserved-failure-builds-loop-firstoffers-built-post-mortem-viewred-run-before-suggested-fixred-run-crash-on-empty-teamred-run-wrong-discount-totalWhy it fails
multiple-falsifiable-hypothesesfell by a third on Opus. Restoring the cut text that bears on it left a 0.50 gap.Findings for the next round
debugcases noisy. The workspace in both is empty.multiple-falsifiable-hypothesessays "I already have a failing test", but the workspace holds no code, test or git history. Replies that decline to invent causes failranked-falsifiable-grounded.offers-built-post-mortem-viewasks for the view of a finished post-mortem that does not exist, and the user has already asked for the view, so there is nothing to offer. It scores 0.33 on both versions and both models.ranked-falsifiable-groundedpassed a before reply whose ranked table of generic exporter causes had no repo grounding: there were no commits to cite. So whether this case passes depends on whether the reply happens to include a generic table, not on grounding. That fits the drop being noise on this case, but it was not tested.no-loop-possible-is-the-deliverable/says-no-looprejected "couldn't build a reproduction loop", a reply that meets the case. The widening (could(n't| not), curly apostrophes, plus a must-pass sample) was proved on the observed reply and all must-fail samples and used in this run. Nothing ships, so it stays off main. Land it with the case fixes.hypothesis-and-grepcannot be judge-calibrated as written, because its focus is the trace and a calibration run has no tool calls. Calibrate it from labeled real traces, or split it into a reply grader andtool_usedgraders.offers-built-post-mortem-viewwith-arm Globs the plugin root, and the sandbox denies it on both versions. This is unrelated to the rewrite.Spend
52.61 USD list-price estimate, subscription login:
That is 48 pass invocations, run 18:15 to 18:59 UTC.
Remaining
feat/6603-concise-debuggingcarries no commits and was not pushed.The issue can close with no text change.
Target labels: add none; remove none.
kyle-sexton commentedon Nov 1, 2026
Closing on the measured result above: the rewrite failed the no-loss rule on Opus, so the current text stays.
kyle-sexton commentedon Nov 1, 2026
Reopening: the measured result above rests on one Opus case,
multiple-falsifiable-hypotheses, and the same pass found that case defective. It claims an existing failing test in an empty workspace.offers-built-post-mortem-viewis defective too, andsays-no-loopneeds the widening proven in that pass. Next: land those suite fixes, then run a second measured round on the fixed suite. The first round's result stays on record above.revert(debugging): keep main's debug body; the cut failed its negativ…
kyle-sexton commentedon Nov 2, 2026
Host run (lane 3): the round-2
debugbody cut measured with no loss but failed the new negative control, so main's body stays.Round 2 (before vs after, launched together): Opus 0.851 → 0.829, Sonnet 0.780 → 0.859, every case read, no case fell by a third.
Negative control (owner rule, 2026-11-02)
The broken copy is the shortened body with every line under its six
## Phase Nsections deleted (361 → 138 lines; headings, frontmatter and other sections kept). It ran on Sonnet 5.5 against a fresh pass of main's body launched with it, on the same 11 outcome cases, judge opus, threshold 0.8, 5 runs.no-loop-possible-is-the-deliverable, 1.00 → 0.60. It is a grader artifact. All 5 control replies say "no reproduction loop can be built" and do what the case asks, but thesays-no-loopgrader matches only the active wording ("can't build a loop").debug-hands-artifact-to-analyze-profilewas INVALID twice on the control side and is not counted.FAIL: the suite cannot tell the body from a copy with its phases removed, so it does not show the cut is safe.
What lands
#12208 now carries only the
states-predictionsgrader fix: table-column predictions are credited, and a backtracking stall on long tables is fixed. The body change is reverted there. This issue stays open for a round with outcome cases that depend on the phases.Note: earlier lane-3 no-loss checks compared one case per results file, and
noise-report.pycannot call a case drop below 3 cases. The control above merged the cases first.Cost: 56.01 USD for round 2 and 16.59 USD for the control (list-price estimates, the sum of
costUsd).kyle-sexton commentedon Nov 2, 2026
Closed under the owner's Q2 decision, which stops the concise-rewrite series: #6476 (comment). The debug body cut failed its negative control, so main's body stays; the eval-case fixes already merged stay.