Skip to content

docs: replace restated upstream facts with pointers in work-items, context-budget #12689

Closed

Description

@kyle-sexton

Refs: #7292

Outcome

28 passages in 10 files state a fact an external source owns. Rewrite each as a pointer to the live upstream section, or remove it, so the next upstream change cannot leave a stale copy here. Plugins: work-items, context-budget.

Done when

  • Every row below is fixed: the restated value is deleted, the local decision stays in this repository's own words, and the pointer goes to the exact upstream section with an as-of date and a recheck trigger, per .claude/rules/skill-bodies-state-current-rules.md. A record beside a restated value does not fix it. A row marked Remove has no local dependency on the fact.
  • The PR passes check-stamps.sh --trigger-less (plugins/attribution/skills/audit/scripts/check-stamps.sh) on the files it touches.
  • Each touched plugin has a changelog fragment.

check-stamps.sh also flags a trigger-less stamp at plugins/context-budget/skills/audit/reference/report.md:37 on the same commit; write its recheck trigger if the PR touches that file.

Rows

work-items

context-budget

  • plugins/context-budget/README.md:6-9 (r067). Pointer: https://code.claude.com/docs/en/commands#all-commands Drop what /context attributes or reports only as totals; keep that this plugin attributes the built-in tool pools per tool, and point at the /context entry. Same text also at: plugins/context-budget/skills/audit/SKILL.md:38-42; a row of its own covers it only if listed.
  • plugins/context-budget/README.md:194-197 (r069). Pointer: https://code.claude.com/docs/en/commands#all-commands (confirm the section) Drop the parenthetical on skill-frontmatter subtraction from System tools; keep that the engine fingerprints the listing and marks mismatches incomparable, and point at the /context entry. Same text also at: plugins/context-budget/skills/audit/SKILL.md:325-326, plugins/context-budget/skills/audit/SKILL.md:337-340, plugins/context-budget/skills/audit/reference/engine.md:68-70; a row of its own covers it only if listed.
  • plugins/context-budget/skills/audit/SKILL.md:78-80 (r075). Pointer: none found; Upstream page documenting the bundled explain-usage skill; it is absent from the fetched commands and skills pages. Search the docs index (llms.txt) and release notes for explain-usage. Drop the description of what explain-usage does and who can invoke it; keep the routing between it and this skill, and point at an owner source once found. Same text also at: plugins/context-budget/skills/audit/reference/native-explain-usage.md:9-10; a row of its own covers it only if listed.
  • plugins/context-budget/skills/audit/SKILL.md:337-340 (r077). Pointer: https://code.claude.com/docs/en/commands#all-commands (confirm the section) Drop the explanation of skill-frontmatter subtraction and the safe-mode example; keep the rule never to hand-compare snapshots the engine marked incomparable, and point at the /context entry. Same text also at: plugins/context-budget/skills/audit/SKILL.md:325-326, plugins/context-budget/README.md:194-197, plugins/context-budget/skills/audit/reference/engine.md:68-70; a row of its own covers it only if listed.
  • plugins/context-budget/skills/audit/reference/engine.md:68-75 (r078). Pointer: https://code.claude.com/docs/en/commands#all-commands (confirm the section) Drop the claim that the System tools bucket has skill-frontmatter tokens subtracted; keep the signature hash, systemToolsComparable rule and per-bucket gating, and point at the /context entry. Same text also at: plugins/context-budget/README.md:194-197, plugins/context-budget/skills/audit/SKILL.md:325-326, plugins/context-budget/skills/audit/SKILL.md:337-340; a row of its own covers it only if listed.
  • plugins/context-budget/skills/audit/reference/report.md:51-52 (r079). Pointer: https://code.claude.com/docs/en/skills#skill-descriptions-are-cut-short Drop the sentence that the listing cap is characters, not tokens; keep printing the measured resolution including an explained zero, and point at the listing-budget section.
  • plugins/context-budget/skills/audit/reference/report.md:57-58 (r080). Pointer: https://code.claude.com/docs/en/commands#all-commands Drop what /skill-doctor and /doctor cover (unused skills, MCP servers, plugins); keep the routing and that the operator runs them, and point at their command entries. Same text also at: plugins/context-budget/README.md:233-239, plugins/context-budget/skills/audit/SKILL.md:62-68; a row of its own covers it only if listed.

Notes

Lines are as of 3bd42cabfe (https://github.com/melodic-software/claude-code-plugins/blob/3bd42cabfe6bdef37a05778d396869af0381bb51); locate each passage by its text if main has moved. Each rNNN is that row's number in the order of #7292's "Findings by plugin". Every row was upheld by three blind judges and survived a refutation pass, run report-only for #12072. Pointers are candidates: fetch each before writing it, and confirm the section still documents the fact.

Parent: #7292

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 3, 2026
  2. github-actions commented on Nov 3, 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: 27 of the 28 rows were fixed by #12810. Row r478 is the only one left. It is the "Account switch" block, which has to be edited in the reader contract and in every registered copy.

    Decision recorded.
    Agent choice, not an owner answer.

    PR #12810 merged as d06270f. It carries the lane's rewrite from #12783 plus fixes for pr-verify's fail notes, and covers 27 of the 28 rows. [...]

    Row r478 is still open. The "Account switch" block at plugins/work-items/skills/attend-queue/SKILL.md:319-334 on main has not changed since 3bd42cabfe. [...]

    [quote truncated; the full decision is at the link]

    #12689 (comment)

    This decision settles the open questions, so I'm asking nothing further. The eval-evidence branch is routed to a host run, not to a person.

    Automated triage, applied by the lanes App.

  3. added
    priority: lowNice-to-have, cosmetic, or speculative; opportunistic.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 3, 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 3, 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 3, 2026
  6. melodic-automation-lanes commented on Nov 3, 2026

    @melodic-automation-lanes
    Contributor

    This records a re-fire of an earlier refusal, not a new refusal. The lanes kill switch stopped run 41578865652, the work-resolve-issue run that agent-ready started, before it did any work; that run ended at 2026-11-03T04:45:28Z. work-unblock has now removed and added agent-ready back to start a fresh run. A kill-switch refusal is no fault in this issue or the lanes, so it never counts against later re-fires; after limits.limit-stops-per-issue of them since a person last added agent-ready or a run last reported, work-unblock waits longer before each one, up to 24 hours.

  7. removed
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Nov 3, 2026
  8. 24 remaining items

  9. 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 4, 2026
  10. github-actions commented on Nov 4, 2026

    @github-actions
    Contributor
    No description provided.
  11. github-actions commented on Nov 4, 2026

    @github-actions
    Contributor
    No description provided.
  12. github-actions commented on Nov 4, 2026

    @github-actions
    Contributor
    No description provided.
  13. added
    host-runNeeds an unattended run on a host; the host runner takes it, not a person or the issue lane.
    and removed
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Nov 4, 2026
  14. melodic-automation-lanes commented on Nov 4, 2026

    @melodic-automation-lanes
    Contributor

    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-run and removed agent-ready: an agent run on a host builds it, and it waits on no decision from a person.

    In the run's words:

    host-only: row r478 (the Account switch floor in plugins/work-items/skills/attend-queue/SKILL.md, byte-identical with plugins/rate-limit-guard/reference/reader-contract.md and the copies scripts/check-loop-lane-floor-drift.sh registers) lands on the no-page branch of the recorded decision (issuecomment-6621488594): no code.claude.com page documents oauthAccount, so dropping the claim cuts skill text without a pointer. docs/review/skills-and-agents.md:6-8 requires eval evidence of no loss for that cut, and the decision routes that branch only to a host run (builder Automation Lanes).

    What the run says it did not do:

    • Row r478: drop the update-timing claim from the Account switch floor, record .oauthAccount.emailAddress as unverified, and carry the edit from plugins/rate-limit-guard/reference/reader-contract.md to every copy scripts/check-loop-lane-floor-drift.sh registers (work-items attend-queue and work-loop,…
    • check-stamps.sh --trigger-less on the touched files and a changelog fragment for each touched plugin: not run, because no file changed
    • tidy, review, verify and checks pipeline steps: skipped because the run stopped before any edit

    Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/41765760223

    To hand it back to the lane, remove host-run and add agent-ready again.

  15. kyle-sexton commented on Nov 4, 2026

    @kyle-sexton
    MemberAuthor

    Delivered: closing as completed.
    Agent choice, not an owner answer.

    The 2026-11-04T03:11Z record left row r478 open. It is met on origin/main (55f8a62), so no further PR is needed:

    • Docs search: oauthAccount and emailAddress have no hits in the code.claude.com docs (llms-full.txt, read 2026-11-04), so the no-page branch applies.
    • The field is recorded as unverified: plugins/rate-limit-guard/reference/reader-contract.md:25-35 calls .oauthAccount.emailAddress internal CLI state, gives the date and Claude Code version it was observed with, and names the recheck trigger, added by 4338584 (docs: replace restated upstream facts with pointers in fleet, harness-memory, repo-hygiene #12871). plugins/work-items/skills/attend-queue/SKILL.md:358-361 points at that record.
    • No claim about when the account field in .claude.json updates is left to drop. The floor's timing sentence (attend-queue/SKILL.md:319-322, identical in every registered copy) is about the guard's snapshot file: "it names an account only as of a session's last API response". plugins/rate-limit-guard/CHANGELOG.md:294 gives the same subject ("the file names an account only as of ..."), and recordResponse (plugins/rate-limit-guard/hooks/register.tsx:515-520) reads the account at each API response, which the snapshot write carries only when a second read at the write agrees (reader-contract.md:128-130). No skill text is cut, so docs/review/skills-and-agents.md:6-8 asks for no eval.
    • Kept: the floor still reads the account directly at pause entry and on every re-evaluation, and still treats an unreadable value as cannot attribute (attend-queue/SKILL.md:323-333). scripts/check-loop-lane-floor-drift.sh --check passes on main.
    • check-stamps.sh --trigger-less on the reader contract and its 7 registered copies finds 0 findings on main; docs: replace restated upstream facts with pointers in fleet, harness-memory, repo-hygiene #12871 carried the changelog fragments for the files it touched.

    The other 27 rows were delivered by #12810 (d06270f), as the 03:11Z record shows.

  16. kyle-sexton commented on Nov 4, 2026

    @kyle-sexton
    MemberAuthor

    Closing as completed on the delivery record above: row r478 is met on main, and #12810 delivered the other 27 rows.

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: lowNice-to-have, cosmetic, or speculative; opportunistic.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    Fields

    Work status

    agent-ready

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions