Skip to content

feat(docs-hygiene): rename-references auto-applies the Certain bucket and reports it - #12604

Merged
kyle-sexton merged 3 commits into
mainfrom
work-resolve-issue/issue-12593-41562938141-1
Nov 3, 2026
Merged

kyle-sexton merged 3 commits into
mainfrom
work-resolve-issue/issue-12593-41562938141-1

Conversation

@melodic-automation-lanes

Copy link
Copy Markdown
Contributor

Closes #12593

Summary

Opened by the work-resolve-issue lane. The run's own summary:

The rename-references Certain bucket no longer asks a per-bucket AskUserQuestion: once the proceed gate passes it auto-applies by its stated default, and the bucket-count report gives the count, 1-2 example matches, and how to review the bucket one by one instead (answer the proceed prompt with "review Certain one-by-one"; the matches then use the Ambiguous per-match format with a "skip remaining Certain" option, before the Chain-context flow). triage.md and apply.md now say the same thing (this also covers sibling slice #12592's apply.md ask, as the issue asked), and SKILL.md's step 4 summary was updated to match. The Chain-context and Ambiguous flows and the proceed/abort gate line are unchanged; the escape hatch is written as an answer to the existing gate, not as a new gate option, to keep that gate unchanged.

Not verified

  • Review finding not applied: listing "review Certain one-by-one" as an explicit third option of the proceed gate. That would change the proceed/abort gate the issue requires unchanged; the route is reachable as a free-text answer to that gate.
  • No eval added for the new Certain-bucket behavior (no prompt, report contents, review route); the issue did not ask for one.
  • ai-slop deterministic detector (detect.sh) not run: the lane allows only its named wrappers. The changed lines were read by hand against the catalog (no em dashes, AI vocabulary or chat residue found).
  • Tidy ran passes 4 and 5 only (the change is all markdown; passes 1-3 apply to code). write-for-agents tightened the triage.md line 31 wording; write-for-humans was not invoked separately for the changelog fragment, which got the ai-slop read.
  • CI-only checks listed by check-affected (markdownlint, evals-quality, line-citations, purged-em-dashes and others) are left to the PR's CI.
  • Untracked runner files in the checkout (.bash_profile, .bashrc, .gitconfig, .idea, .mcp.json, .profile, .ripgreprc, .vscode, .zprofile, .zshrc) are not part of this change.

Fix

  • plugins/docs-hygiene/skills/rename-references/context/triage.md: Bucket 1 User flow auto-applies after the proceed gate and reports instead of asking; the bucket-count report template adds the Certain example and review-one-by-one lines, printed only when the Certain count is above 0.
  • plugins/docs-hygiene/skills/rename-references/context/apply.md: Phase 4 Certain bucket bullets match triage.md (no per-bucket AskUserQuestion, report count, examples and the review route); "skip remaining Certain" added to the answers that produce skip records.
  • plugins/docs-hygiene/skills/rename-references/SKILL.md: workflow step 4 lead-in and Certain bullet describe the report, the proceed gate and the auto-apply.
  • .changes/docs-hygiene/work-resolve-issue-issue-12593-41562938141-1-fee581f4.md: new minor changelog fragment for docs-hygiene.

Verification

The runner ran each check from the base copy against 5ff1edc:

  • scripts/check-changelog-fragments.sh --check: passed
  • scripts/check-changed-skills.sh --merge-base: passed

The run reports:

  • check-changelog-fragments: all 14 fragments valid (run before and after tidy and review fixes).
  • check-changed-skills: rename-references PASS, 0 errors, 3 pre-existing warnings (description length, body length, numbered procedure at lines 97-100, none in changed lines).
  • check-affected: 11 passed, 7 skipped over 4 changed files.
  • Grep for line-number citations of rename-references SKILL.md/triage.md/apply.md: none, so the shifted lines break no citation.
  • Unchanged-text check: triage.md Bucket 2 User flow, Bucket 3 User flow and the 'Use AskUserQuestion to gate the proceed/abort decision.' line are byte-identical to before (confirmed by the review subagent).
  • Fresh-context review subagent over the whole diff: no contradictions; 6 minor findings, 5 fixed (SKILL.md step-4 lead-in, scoped skip option and ordering of the Certain review, proceed-gate wording, preview-mode clause, print Certain lines only when count > 0).
  • The lane run: https://github.com/melodic-software/claude-code-plugins/actions/runs/41562938141

Left out: the items under Not verified.

Related

#12593

Lane-Activity: work-resolve-issue/resolve-issue
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

claude-security-review reviewed 0eaa3198ca47f2d0455900650aaca009297b40de: read 1 of 1 changed file(s); 0 finding(s), 0 as inline comments.

Security review: PR #12604 (head 0eaa319), incremental since 5ff1edc

Result: no security issues found.

What I reviewed: This was an incremental review, and the only file in scope was plugins/docs-hygiene/skills/rename-references/evals/evals.json. I read its single hunk in full. The push adds one eval case (id 49, certain-bucket-auto-applies-without-a-per-bucket-question). The case checks that the Certain bucket applies after the proceed gate and that the bucket-count report shows the "review Certain one-by-one" route.

What it touches:

  • The file is eval test data. It matches no TRUSTED PATHS: glob.
  • The push changes no plugin manifest, workflow, action, script, token request, trusted-actor list, kill switch or merge hold.
  • It removes or loosens no standing instruction, so the instruction-surface lens has nothing new to check.
  • The eval prompt only names local files (README.md, docs/guide.md). It carries no secrets and nothing that runs.

Earlier review: The skill-body changes this eval covers were reviewed at 5ff1edc and found clean. That review checked the removed per-bucket question against the instruction exception register: the proceed/abort AskUserQuestion gate still runs before any edit.

PR context: It contains no embedded instructions aimed at this lane.

Spend: none beyond normal CI. One more eval case means slightly more prepaid eval runtime when evals run.

critical-findings: 0

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

claude-review: 1 inline finding(s) on 5ff1edc9b8168793883db406905a1c397b38639c; the summary is in this lane's pull request comment.

claude-lane: claude-review

@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

claude-review reviewed 0eaa3198ca47f2d0455900650aaca009297b40de: read 1 of 1 changed file(s); 0 finding(s), 0 as inline comments.

Code review (incremental): PR #12604, 5ff1edc9..0eaa3198

Scope: One file changed since the last review, plugins/docs-hygiene/skills/rename-references/evals/evals.json. I read its one hunk, which adds eval 49, and checked the case against the head context/triage.md. That file defines the Form 1 and Form 3 Certain forms (lines 21-22) and the bucket-count report template and its count > 0 condition (lines 158-170).

Prior finding (missing eval for the Certain flow): Eval 49 fixes this. It is an apply-mode case whose only hits are Certain: a Form 1 slash token, and a Form 3 skills/<old>/ path, which is Certain-eligible in both identifier and container-rename mode. Its expectations cover the four points the finding raised:

  • no question is asked for the Certain bucket itself, so the proceed gate is the only question
  • the report shows the count, 1-2 examples and the "review Certain one-by-one" route
  • both edits are applied after the proceed answer
  • the one-by-one route uses the per-match format with a skip remaining Certain option

The wording matches the triage.md template and apply.md Phase 4. The thread is resolved and its lines have not changed since, so it stays settled.

New findings: None.

Not verified: The changelog-fragment, changed-skills and check-affected checks are the author's claims. I did not run them because this lane has no shell. I did not run eval 49 either.

Embedded text: None found in the PR context, settled threads or prior findings.

@melodic-automation-lanes

melodic-automation-lanes Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor Author

Unattended merge: native auto-merge leaves this pull request unarmed at head 30158dea59915d1c2bdb03ac16eb7828754c0bff. The lanes clear this reason on their own; the next scheduled run judges it again.

pr-merge's gate holds it on its risk score (evidence-unbound:claude-review: not bound:
  rerun-not-allowed; evidence-unbound:claude-security-review: not bound: rerun-not-allowed)

@melodic-automation-lanes

Copy link
Copy Markdown
Contributor Author

The unattended merge path armed native auto-merge at head 5ff1edc9b8168793883db406905a1c397b38639c.

Lane-Activity: pr-unblock/address-feedback
Lane-Thread: PRRT_kwDOTCGFQM6y9DJ3
@melodic-automation-lanes

Copy link
Copy Markdown
Contributor Author

pr-unblock / address-feedback finished round 1 of max 4 on 0eaa319.

@melodic-automation-lanes
melodic-automation-lanes Bot added this pull request to the merge queue Nov 3, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Nov 3, 2026
@kyle-sexton
kyle-sexton added this pull request to the merge queue Nov 3, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Nov 3, 2026
@kyle-sexton
kyle-sexton added this pull request to the merge queue Nov 3, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Nov 3, 2026
@melodic-automation-lanes

melodic-automation-lanes Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor Author

@kyle-sexton kyle-sexton added the do-not-merge Hard merge gate: do not merge while applied. label Nov 3, 2026
@kyle-sexton kyle-sexton removed the do-not-merge Hard merge gate: do not merge while applied. label Nov 3, 2026
Lane-Activity: pr-unblock/resolve-conflicts
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

claude-review reviewed 30158dea59915d1c2bdb03ac16eb7828754c0bff: read 5 of 5 changed file(s); 0 finding(s), 0 as inline comments.

Code review: PR #12604 at 30158dea

Result: no findings. I read every hunk of all 5 changed files in the full diff. The new head is a merge of main, and the PR's own change is the same as at 0eaa3198.

What I checked

#12593, "Done when":

  • "triage.md:31 no longer routes the certain bucket through AskUserQuestion; it auto-applies and reports." Met. Bucket 1's "User flow" now auto-applies once the proceed gate passes. The report template at triage.md:163-170 adds a Certain examples: line and a review-one-by-one line, printed only when the Certain count is above 0. Eval 49 covers this.
  • "apply.md:55-56 matches it." Met. Phase 4's two Certain bullets (apply.md:54-55) say the same as triage.md: no per-bucket question, the same report contents, the same "review Certain one-by-one" route and the same "skip remaining Certain" option. That option is also added to the list of answers that produce skip records (apply.md:70), so Phase 6 stays able to finish.
  • "The chain-context (line 66) and ambiguous (line 128) buckets and the proceed/abort gate (line 166) are unchanged." Met. Bucket 2's user flow (triage.md:66) and Bucket 3's user flow (triage.md:128) are not touched by the diff. The proceed-gate sentence is unchanged; it moved from line 166 to line 172 because 6 lines were added above it.

Consistency:

  • SKILL.md step 4 (SKILL.md:129-130) describes the same flow.
  • The changelog fragment uses bump: minor. That fits a change in skill behavior that removes one prompt.
  • No plugin manifest changes, so no manifest checks apply.

Path-scoped rules:

  • .claude/rules/skill-bodies-state-current-rules.md and .claude/rules/cost-claims.md match the skill files. The changed lines restate no upstream specific and make no cost claim.
  • .claude/rules/eval-case-transcripts.md matches evals.json. Eval 49 is a synthetic prompt, not a transcript.

Earlier threads and findings

The missing-eval thread on triage.md:31 is resolved, and its lines have not changed since then (eval 49 fixed it), so it stays settled. No earlier finding of this lane is still open.

Not verified

The author reports that check-changelog-fragments, check-changed-skills and check-affected passed. I did not run them or eval 49, because this lane has no shell.

Embedded text

None found in the PR context, settled threads or prior findings.

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

claude-security-review reviewed 30158dea59915d1c2bdb03ac16eb7828754c0bff: read 5 of 5 changed file(s); 0 finding(s), 0 as inline comments.

Security review: PR #12604 (head 30158de)

No security issues found.

Scope: I read every hunk of all 5 changed files in the full diff:

  • the new changelog fragment
  • rename-references SKILL.md
  • context/apply.md
  • context/triage.md
  • evals/evals.json

None of them matches a TRUSTED PATHS: glob.

What the change touches:

  • It is all skill prose plus one eval case.
  • It changes no plugin manifest (plugin.json / marketplace.json), so there are no manifest lines to report.
  • It changes no workflow, action, script, token request, trusted-actor list, kill switch or merge hold.
  • No trust control is widened.

Instruction-surface check: The diff removes one standing instruction: the per-bucket AskUserQuestion for the Certain bucket. I checked it against the six Gate 0 classes that docs/contracts/instruction-exception-register/README.md adopts by reference (irreversible-action, secret-handling, data-integrity, external-publication, legal-compliance, agent-authority). The removed question is not a protected rail, for three reasons:

  • The proceed/abort AskUserQuestion gate still runs before any edit. The diff leaves this line in triage.md unchanged: "Use AskUserQuestion to gate the proceed/abort decision."
  • The bucket-count report now shows the Certain count and examples before that gate. Answering the gate with "review Certain one-by-one" sends each Certain match through per-match confirmation.
  • The edits are local file edits, not irreversible or external actions.
  • The Chain-context and Ambiguous confirmations are unchanged. That includes "ALWAYS one-by-one" for Ambiguous.

Settled threads and earlier rounds:

  • The resolved thread at triage.md line 31 (the missing eval) is marked lines changed since resolution: no. Eval 49 addresses it. It was not raised again.
  • This lane's earlier post had no line anchor and reported 0 findings, so nothing carries forward.

PR context: It contains no embedded instructions aimed at this lane.

Spend: none beyond normal CI. One more eval case adds a little prepaid eval runtime when evals run.

critical-findings: 0

@kyle-sexton
kyle-sexton added this pull request to the merge queue Nov 3, 2026
Merged via the queue into main with commit eb586a3 Nov 3, 2026
75 of 80 checks passed
@kyle-sexton
kyle-sexton deleted the work-resolve-issue/issue-12593-41562938141-1 branch November 3, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(docs-hygiene): rename-references triage auto-applies the certain bucket and reports it

1 participant