## What Problem This Solves
CI and release tooling still carries retired selection paths, duplicate evidence projections, and single-use command factories that make its current behavior harder to follow.
## User Impact
No user-visible change. CI keeps the same jobs and gates; release receipts, manifest digests, CLI output, packaging contracts, and generated Gateway protocol bytes stay compatible. No SDK API, config, wire, or persisted-data changes.
## Why This Change Was Made
This batch removes **1,235 net production/tooling lines** (890 added, 2,125 deleted; tests excluded).
- Remove the unused extension fallback and core-impact classifier after their production caller was retired in `6a50179657`. The current planner consumes explicit targets; meaningful coverage now exercises that path. Remove unused current-planner options while retaining arguments needed by September frozen targets.
- Use the existing grouping helper and direct descriptors for CI shards; let the Docker lane constructor own its default command and remove one-use factories. Selection, lane ordering, prerequisites, and commands remain identical.
- Reuse release-policy child topology, evidence projections, and canonical JSON sorting; remove always-empty advisory machinery. Share the existing postpublication diagnostic schema while retaining the observer's `startup_failure` extension and historical receipt validation.
- Cross-OS packaging now uses the canonical package helper directly instead of maintaining a second pack/inventory implementation. That helper predates July 2026 and exists in all 36 available July-or-later release tags. Remove npm-runner forwarding and test-only APIs.
- Simplify docs translation fence/link processing and remove unused route, cursor, and split-depth state. Replace hand-written ZIP CRC with Node's implementation; remove an unreachable Swift fallback, retired cancellation adapter, and redundant timing/tarball branches.
- Keep the actual core consumer of the shared package metadata helper in Knip's graph, rather than suppressing a dead-export warning.
## Evidence
Remote proof uses [Blacksmith Testbox run 37090710184](https://github.com/openclaw/openclaw/actions/runs/37090710184), lease `tbx_01m3zt7sykcrdm1fq4m8zf4bz4`, with dependencies installed. Final source tree `3b3f07ba57325ab7da7335fd125dec0fd43216ac` matches commit `8c147759f7a8047189daf2ac0bacd4ae4f5b88d9`. After full-sync timeouts, targeted transfer plus whole-tree verification completed the proof.
- Focused TypeScript selection: **1,988 tests passed across 30 files**, about 398 seconds including the wrapper. Changed-test single-worker proof: **629 passed**; tooling shard 308.96 seconds. The root retention test passed all four cases. An additional eight-file selection passed **255 tests**, 30.16 seconds including the wrapper.
- `cd scripts/docs-i18n && go test ./...`: passed, package time 0.179 seconds.
- Base/candidate comparisons: **393 release output/error/digest comparisons**, **1,234 Docker comparisons across 727 plans**, **24 extension selection/packing comparisons**, and four Node shard-inventory profiles passed. Generated Swift protocol output is byte-identical.
- `pnpm test <changed files> --maxWorkers=1` retains the expensive real-repository ownership assertions: source-owner file 87.778 seconds; cross-OS release checks 0.971 seconds; workflow control 0.486 seconds; extension preparation 0.272 seconds. No new CI job or added test budget.
- Independent autoreview found no actionable P0/P1 regression. Final `check-changed` passed, including types, lint, package boundaries, ratchets, and all three unused-export scans. Both import-cycle checks reported **0**. Final single-worker replay of npm locks, cross-OS packaging, and release summaries: **306 tests passed**, 30.82 seconds including the wrapper.
Fixes found along the way: no separate product bug was established. Gate findings were corrected in the owning changes; tests were not weakened to conceal failures.