Repository navigation
Description
Standing spec for the code-tidying upkeep batch (.github/workflows/maintenance-tidy-code-upkeep.yml). Every pull request the batch opens starts its body with Refs: #<this issue>, and pr-verify judges that pull request against the checks below. A Refs: line never closes an issue, so this one stays open for as long as the batch runs; it is never worked by the issue lane and never closed by a pull request. To change the contract, edit this body. Do not post a **Decision recorded.** comment here: at status: confirmed that sends the issue back to intake triage.
The batch's own rules live in plugins/code-tidying/skills/tidy/SKILL.md, plugins/code-tidying/skills/tidy/reference/exclusions.md, plugins/code-tidying/reference/pr-scope-budget.md and .github/scripts/maintenance-tidy-code-upkeep/batch.mjs. This issue states what a reviewer checks on one upkeep pull request.
What one upkeep pull request is
One area (plugins/<name>, docs/<dir>, or a top-level directory), swept by /code-tidying:tidy <area glob> in-place=commit on the branch chore/tidy-adhoc-<slug>-<date>, opened by the lanes App. It applies Kent Beck's Tidy First? tidyings and the other entries in plugins/code-tidying/skills/tidy/reference/tidyings.md: structure only, behaviour unchanged.
Done when
- Every changed path is inside the pull request's one area, except a changelog fragment under
.changes/<name>/when the area isplugins/<name>. - Every change is structural: no behaviour change. Outputs, return values, error handling, side effects, public interfaces, CLI flags, file formats and the documented meaning of prose stay the same; a reader of the diff finds nothing a caller or user could observe.
- No file on the tidy skill's GLOBAL HARD list changes: agent, CI and hook configuration (
.claude/**,.github/workflows/**, any script wired as a hook command in.claude/settings.jsonor.claude/settings.local.json, git-hook manager config,.mcp.json, lint configs) and paths the repository's own rules protect. - No behavioural exclusion is touched: no API, HTTP route, MCP tool schema or file-format change, no migration, no branch-protection or security-workflow change, no migration off a banned or deprecated API.
- Every changed file is a regular text file: no binary file, symbolic link or submodule is added or changed.
- The diff stays within the scope budget in
plugins/code-tidying/reference/pr-scope-budget.md; candidates the budget cut are listed in the body, not applied. - When the area is
plugins/<name>and the pull request changes it, it adds onepatchchangelog fragment under.changes/<name>/naming what was tidied. - The title is a Conventional Commits line, and the body has
## Summary,## Fix,## Verificationand## Related.
Activity