feat: side-repo-ops POC — chore-deadcode-rust source + ADR 0009#43
feat: side-repo-ops POC — chore-deadcode-rust source + ADR 0009#43norrietaylor wants to merge 1 commit into
Conversation
Add canonical workflow_call source for chore-deadcode-rust (Rust port of gh-aw's dead-code-remover) and ADR 0009 codifying the side-repo-ops distribution model. Pairs with the gominimal/min-aw operator PR. - workflows/chore-deadcode-rust.md: workflow_call shape; bootstrap-fork header citing github/gh-aw/dead-code-remover.md @ 1924e4f8; cargo-machete + cargo-udeps + rustc dead_code lint detector suite; agent-side triage per upstream's gatekeeping-not-detection pattern (~70% raw FP rate). - decisions/0009-side-repo-ops-distribution.md: three-role split (ch-oracles = source-of-record, min-aw = operator, consumer = recipient). Cross-repo writes use the existing gominimal-aw-bot App (min-aw ADR 0002). quick-setup.sh shrinks to label seeding + optional relay workflows only. Refs: 99-ADOPTION-PLAN-ch-oracles.md (POC scope per the side-repo-ops pattern from github.github.com/gh-aw/patterns/side-repo-ops/). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughSummary by CodeRabbitRelease Notes
WalkthroughThis PR establishes a new side-repo-ops distribution pattern for GitHub chores by documenting the architectural decision (ADR 0009) and providing a concrete reference implementation via a Rust deadcode detection workflow. Chores shift from wrapper-based distribution to source-of-record authoring with cross-repo outputs, moving scheduling and credential management to a dedicated operator repo. ChangesNew Chore Distribution Model and Implementation
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Skipping ch-oracles for the side-repo-ops POC. ch-oracles CI (chore-consistency, dogfood-mirror check, label-classes writer glob) enforces the consumer-install distribution model; the new model is fundamentally incompatible and resolving it is out of POC scope. Will revisit ch-oracles' role (source-of-record file location, CI carve-out, or pure policy repo) in a follow-up. ADR 0009 stays as planning; min-aw PR #245 carries the live POC. |
Summary
workflows/chore-deadcode-rust.md— Rust port of gh-aw'sdead-code-remover, scaffolded as a reusableworkflow_callper the existing ch-oracles pattern. Bootstrap-fork header per ADR 0007 citesgithub/gh-aw/.github/workflows/dead-code-remover.md @ 1924e4f8.decisions/0009-side-repo-ops-distribution.md— codifies the three-role split (ch-oracles = source-of-record, min-aw = operator, consumer = recipient of issues/PRs only) and the App-based cross-repo credential per min-aw ADR 0002.Why this PR exists
POC for the new distribution model described in
99-ADOPTION-PLAN-ch-oracles.md. The plan moves the 20 catalogued workflow ports off the consumer-install model (wrappers shipped viaquick-setup.sh) onto the side-repo-ops pattern from https://github.github.com/gh-aw/patterns/side-repo-ops/ — min-aw runs every chore against external targets viasafe-outputs.target-repo.This is the source half of the pair. The operator-side companion PR is in
gominimal/min-aw.Scope of the chore (Round 1, Rust only)
Detector suite (deterministic precompute):
cargo machete --with-metadata— unused workspace deps (stable).cargo +nightly udeps --workspace --output json— unused deps + unreachable items (optional; skipped if nightly unavailable).RUSTFLAGS=\"-W dead_code\" cargo check ... --message-format=json— rustcdead_codelint output for unreachable fns/structs/variants.Triage gates (LLM-side, per upstream's gatekeeping pattern):
#[cfg]-rescued — skip.pub usere-export — skip.#[allow(dead_code)]— skip.mode: reportfiles one advisory issue per finding-group with the<!-- finding-id: deadcode::rust::<crate>::<identity> -->marker (pershared/safe-output-create-issue.mdidempotency contract).mode: autofixopens one PR with at most 5 high-confidence removals + a verification gate (cargo build,cargo test,cargo machetere-run).Out of scope here
-python,-go) — Round 1 of the adoption plan after POC.Test plan
gominimal/min-aw.gominimal/minimallands an advisory issue in the target with the dedup marker.gominimal/min-awornorrietaylor/ch-oraclesitself.🤖 Generated with Claude Code