Repository navigation
Description
Outcome
The logic in this repository's tools/ and release shell scripts is replaced by Go commands, per #588, which sends all of this tooling to Go and to no other language. The scripts covered are tools/skill-tokens.sh, tools/generate-skills.sh, tools/skill-limits.sh, tools/check-script-hygiene.sh, tools/release-readiness.sh, tools/release-verify.sh and tools/mise-bootstrap. tools/check-versions.sh is already a forwarder to agentrepo check-versions and tools/release-dispatch.sh only sequences cog, gh and a readiness gate, so both stay thin shell. Command names follow the #174 decisions. This issue closes when its children close.
Done when
- Every child listed below is closed as completed, or closed as not planned with a reason written on that child.
- A Go command exists on
origin/mainfor each slice: skill token measurement (refactor(tools): move skill token measurement to Go #810), skill generation (refactor(tools): move skill generation to Go #807), skill limits (refactor(tools): move skill limit checks to Go #808), script hygiene (refactor(tools): move script hygiene checks to Go #809), release readiness (refactor(release): move readiness diagnostics to Go #811), release verification (refactor(release): move release verification to Go #812) and mise bootstrap (refactor(tools): move mise bootstrap logic to Go #813). Evidence: the command is registered onagentrepoand the matchingmisetask or entry point calls it. - The release skill's readiness and verification output and exit statuses are unchanged from before the port. Evidence: the before and after diff recorded on refactor(release): move readiness diagnostics to Go #811 and refactor(release): move release verification to Go #812.
- The
mise-bootstrapdecision recorded on refactor(tools): move mise bootstrap logic to Go #813 is carried out, with no permanent line-limit exception. - The frozen shell files are untouched by the children of this issue. Their removal is handled only by their own removal issues, and no Python destination exists for any script.
- The leak scans are clean for the epic's changes and posts: gitleaks, check-leaks.sh with the repository's private-strings list, and a leak review of each post.
- A closing comment on this issue checks each Done when line above with its evidence (links to the closed children, the merged commits and the recorded diffs).
Children
Each is a native sub-issue of #332, verified on 2026-10-31. Labels are change:feat plus the refinement label shown.
- refactor(tools): move skill generation to Go #807 refactor(tools): move skill generation to Go. OPEN,
refinement:ready, size S. - refactor(tools): move skill limit checks to Go #808 refactor(tools): move skill limit checks to Go. OPEN,
refinement:ready, size S. - refactor(tools): move script hygiene checks to Go #809 refactor(tools): move script hygiene checks to Go. OPEN,
refinement:ready, size S. - refactor(tools): move skill token measurement to Go #810 refactor(tools): move skill token measurement to Go. CLOSED,
refinement:ready, size M. - refactor(release): move readiness diagnostics to Go #811 refactor(release): move readiness diagnostics to Go. OPEN,
refinement:ready, size S. - refactor(release): move release verification to Go #812 refactor(release): move release verification to Go. OPEN,
refinement:ready, size M. - refactor(tools): move mise bootstrap logic to Go #813 refactor(tools): move mise bootstrap logic to Go. OPEN,
refinement:ready, size M.
Status: six children are open (#807, #808, #809, #811, #812, #813) and one is closed (#810). #807 is open and carries refinement:ready.
Relation to #588: #332 is a direct sub-issue of #588. None of #807 through #813 is a direct sub-issue of #588 (its 47 direct sub-issues do not include them), so all seven are grandchildren of #588 through #332.
Out of scope
- Removing the frozen shell and its fallbacks, which later issues own under Replace complex shell with tested Go, starting with gates and merging #588: refactor(tools): retire frozen skill token fallback after compatibility window #846 (skill token fallback) and refactor(tools): remove the skill limits shell fallback #847 (skill limits fallback).
- The draft-prose linter (Port the draft prose linter to Go and drop its duplicate #717), the guard hooks (Replace the Claude guard-hook scripts with standalone guard binaries #328) and the forwarding adapters and task logic (Port the pins, vendoring, preapproval and APM sync task logic #330), which the children mention but do not cover.
- The remaining shell inventory and thin-wrapper enforcement (Enforce thin-wrapper-only shell and port the remaining bats suites #334).
- Changing release behaviour, signing or distribution.
- Python destinations for any script.
Owner
The repository maintainers.
Metadata
Metadata
Assignees
Labels
Type
Fields
Work type
Priority
Projects
- StatusShow more project fieldsBacklog
Activity
tbhb-agent commentedon Oct 31, 2026
Refinement: NOT READY — Add evidence-based epic closure to the plan
Checked: #332 and its comments, #588, and children #807–#813 individually. The listed child states, sizes, and refinement labels match the issues. The children cover the prior port table: each ported script has a child, and
tools/check-versions.shandtools/release-dispatch.share identified as thin shell. The scope aligns with #588’s Go-only direction.Gaps
check-leaks.shwith the private-strings list, and leak review of each post. Spell these out so D4’s planning coverage is checkable.Split: No uncovered script or overlap found. The proposed scope is broad for several S-sized children, especially #807–#809 and #811; reconsider those estimates against their cross-platform and compatibility verification plans.
Definition of done
Round: 1 of 3
tbhb-agent commentedon Oct 31, 2026
Refinement: READY — Epic closure and leak checks are covered
Checked: #332 and its round-1 comment, #588, and children #807–#813 individually. The outcome follows #588’s Go-only direction. The current body adds the closing-comment evidence check and names all required leak checks.
Gaps: None
Split: No overlap or uncovered script found. The children cover every script in the earlier port table: #807–#813 own the seven Go ports;
tools/check-versions.shandtools/release-dispatch.share explicitly kept thin. Child states and sizes match the body: #810 is closed and M; the others are open, with #807–#809 and #811 S, and #812–#813 M. No remaining over-engineering defect found.Definition of done
Round: 2 of 3