Repository navigation
Closed
Task
3 / 33 of 3 issues completed
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: lowNice-to-have, cosmetic, or speculative; opportunistic.Nice-to-have, cosmetic, or speculative; opportunistic.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
Slice of #6916.
Problem
The repo-mode /multi-agent:audit-defaults sweep (#6916) confirmed five skill lines whose fix changes what the skill does, or cuts its body. plugins/playbooks/skills/skill-authoring/reference/skill-criteria.md ("Rewriting an existing skill") ships such a change only with eval evidence of no loss. The sweep's fix pull requests run no claude plugin eval, so these were left out of them.
Findings
plugins/planning/skills/draft-goal-condition/SKILL.md:69restates where theultracodekeyword works. Upstream: workflows#where-the-keyword-works. Fix: cut to a pointer.plugins/planning/skills/draft-goal-condition/SKILL.md:76restates plan availability and thexhighcondition. Upstream: model-config#when-ultracode-is-available. Fix: cut to a pointer. Findings 1 and 2 steer a recommendation (they stop the skill routing to a dead ultracode form), and itsevals/evals.jsonhas no workflow case, so a case comes first.plugins/discovery/skills/setup/SKILL.md:61-63reports a stale unset fork-mode default. Correcting it changes whatsetupreports. Upstream heading: sub-agents, "Turn fork mode off".plugins/docs-hygiene/skills/audit-derivability/SKILL.md: the spot-test agent choice. Allowing anomitClaudeMdcustom agent would change behavior.plugins/docs-hygiene/skills/write-for-agents/SKILL.md:139: a skill-body cut.
Line numbers are at origin/main on 2026-11-01. Re-read each against current main first, since #11771, #11774 and #11627 touched these files.
Done when
- Each of the four skills has an eval case that exercises the changed line (adding a case where none exists).
- Each change is measured before and after on the subscription login, with VALID runs per
run-validity.py, and ships only where the comparison shows no loss. - A change that shows a loss is recorded here and left out.
- Each shipped pointer carries an as-of date and recheck trigger per
.claude/rules/skill-bodies-state-current-rules.md.
Related
- docs(multi-agent,session-flow): fix repo-mode audit pilot findings and schedule a full sweep #6916 (parent): sweep records
6916-w3,6916-w5,6916-w5-fixes-b.
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: lowNice-to-have, cosmetic, or speculative; opportunistic.Nice-to-have, cosmetic, or speculative; opportunistic.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 Nov 1, 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
I understood this as a slice of #6916. It asks for eval cases on four skills, a before and after measurement of each of the five drift fixes, and shipping only the fixes that show no loss. Each shipped pointer needs an as-of date and a recheck trigger. A fix that loses ground is recorded on the issue and left out.
Nothing is missing. The scope and done-when items are exact. Some steps need the subscription login, so an unattended run may not be able to do them. I found no duplicate among the open issues.
Automated triage, applied by the lanes App.
github-actions commentedon Nov 1, 2026
github-actions commentedon Nov 1, 2026
melodic-automation-lanes commentedon Nov 1, 2026
The work-resolve-issue lane stopped on this issue (
host-only): the run reports the work needs a host run the lane cannot make.It added
host-runand removedagent-ready: an agent run on a host builds it, and it waits on no decision from a person.In the run's words:
What the run says it did not do:
claude plugin evalruns that this lane cannot makeclaude plugin evalmeasurement on the subscription login, with run-validity.py VALID runs, for each of the five findings: needs a host runRun: https://github.com/melodic-software/claude-code-plugins/actions/runs/41271956996
To hand it back to the lane, remove
host-runand addagent-readyagain.kyle-sexton commentedon Nov 2, 2026
Claimed by the hitl-backlog host run: building eval cases and before/after
claude plugin evalmeasurements for the five eval-gated drift fixes on branchhost-run/11823-eval-gated-drift-fixes.kyle-sexton commentedon Nov 2, 2026
Host run. Before/after
claude plugin evalmeasurements ran for three of the five eval-gated #6916 drift fixes: the twodraft-goal-conditionultracode cuts and thediscovery:setupfork default.What ran (Claude Code 2.1.316, subscription login):
plugins/planning/evals/dg-workflow-keyword-unattended(a Pro-plan cronclaude -prun that wants a workflow fan-out) andplugins/discovery/evals/su-fork-default-print-mode(the unset fork default in-pruns). Both use deterministic graders and passvalidate-cases.pywith no FAIL.claude plugin eval <plugin copy> --case <case> --ablation none --runs 3 -j 2 --keep-temp, each in a cappedsystemd-runscope with a short TMPDIR. Before = origin/main skill; after = edited skill. The plugins ran from copies outside the git checkout, because the CLI refuses a plugin whose git directory "registers more linked worktrees than can be screened".run-validity.py: VALID for all four runs. Warnings: models on all four; skill fired on both setup runs, which invoke the skill by slash command.noise-report.py --baseline:n too small to call(one case each), so the decision rests on the per-run scores and spot-read traces.Results against the done-when:
draft-goal-conditionanddiscovery:setup. Not added foraudit-derivabilityorwrite-for-agents.setupfork default): before 0, 1, 1; after 1, 1, 1. The failed before run gave the right answer ("ON by default"), but on a line that also quoted the skill's stale "off", which the grader rejects. No loss, so it ships as a pointer to sub-agents#turn-fork-mode-on-or-off with an as-of date of 2026-11-01 and a recheck trigger.draft-goal-condition): before 1, 1, 1; after 0.67, 0.67, 0.67.pro-config-rowwent from 3/3 to 0/3. The eval sandbox denied network to code.claude.com, so the skill could not read its new pointers and declined to answer the Pro/configquestion. That is a loss, so the cut was reverted and left out. Only the case ships.audit-derivability,omitClaudeMd): not run, because of the time box. Upstream supports the change: sub-agents "What loads at startup" says anomitClaudeMdsubagent loads only managed policy files. The page's other line, that CLAUDE.md loads "even when ...omitClaudeMd", is aboutclaude --agent, where the field is ignored.write-for-agentscut): not run, because of the time box.PR: #12272 (
Refs: #11823, with## Remaining on #11823). Opened as a draft through/source-control:pull-request createafter origin/main was merged in, then marked ready. Before the flip, the verify gate (scripts/check-affected.sh --tests) passed on headbc4384cfb2: 14 passed, 2 skipped. The review lanes raised 5 advisory findings: grader false passes and false fails in both cases, plus a restated/subtaskversion. All 5 are fixed, replied to and resolved. The two graders were tightened after the measurement runs, so the new patterns were re-applied offline to the kept traces. Setup scores 1,1,1 before and 1,1,1 after. The draft-goal keyword grader scores 1,1,1 before and 1,0,1 after, the after side being the reverted cut. Neither decision changes. Final headaaad7abac5:ci-statussuccess; claude-review and claude-security-review report 0 findings; 0 unresolved threads. Not armed or merged.Target labels: add none; remove none.
kyle-sexton commentedon Nov 2, 2026
This was generated by AI.
Sliced from #12272's "Remaining on #11823" into sub-issues, all
host-run(each needs paidclaude plugin evalbefore/after runs on the subscription login, which a CI issue lane cannot make):omitClaudeMd).Finding 3 shipped in #12272. This issue stays open for the other remaining item: the three behavior changes from #12106 that the #6916 close-out routes here.
kyle-sexton commentedon Nov 3, 2026
Claimed by lane 3: the remaining item, the three #12106 behavior changes in
harness-config:audit-instructions(criteria.md inert-set entry foropus-4-8, the per-message effort carve-out, and the SKILL.md bytes-per-token budget). Plan: an eval case per changed line, before/afterclaude plugin evalwith a negative control, then a Refs PR.kyle-sexton commentedon Nov 3, 2026
Done-when holds for the remaining item (the three #12106 behavior changes in
harness-config:audit-instructions). #12926 carriedRefs: #11823, so this issue is closed by hand with the record.criteria.mdI8:opus-4-8out of the inert setai-throttle-target-scope, Opus, 3 runs per arm, all VALID: before 0.67, after 1.00, negative control 0.33criteria.mdper-message effort carve-out#per-message-effort-betadoes not exist; the live page's heading id ischange-effort-mid-conversation-beta, which criteria.md already cites. The Haiku 5.5thinking: disabledexclusion is already its own bullet.SKILL.mdbytes-per-token 3.5 → 2.7CHANGELOG.md, so the suite cannot tell a broken copy from a working one (rewrite-a-plugin.md). Follow-up with a sound control: #12879.Pointers carry an as-of date and recheck trigger per
.claude/rules/skill-bodies-state-current-rules.md; a review round on #12926 removed one restated upstream rationale. Both Claude review lanes and Codex reported no open findings on the merged head. Spend 6.93 USD list across 33 runs.