You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(pr-pipeline): mirror every .github status-label writer into the Work status field #13482
Slice 1 of 5 of #7577: label to Work status field cutover.
Outcome
Each .github script listed under Change, when it adds or removes an issue status label, also writes the issue's Work status field, through statusMirror (.github/actions/resolve-config/write-status.mjs), the same way admit.mjs, apply-verdict.mjs, refine.mjs and label-unblocked.mjs already do. Labels stay the source of truth: a failed field write only warns.
Change
Wire a mirrorStatus callback, defaulting to a no-op in tests, into each status-label writer that lacks one:
.github/scripts/work-resolve-issue/report-outcome.mjs, including the label changes stop-routes drive
Each entry point builds the callback with statusMirror({ env, github, repository }). Its job must already carry what that needs: the base config read and an issues: write token. If a job lacks either, give it the same inputs the four mirrored writers' jobs have.
Done when
Each of the four files calls a mirror after every status-label add or remove, and its test file has a case asserting the mirror receives the had, add and remove labels of that write.
git grep -n "statusMirror" -- .github ':!*.test.mjs' lists every file named above.
bash scripts/check-affected.sh --tests passes on the branch.
Out of scope
intake-reenter and security-outside-actor (#13489, since intake-reenter.yml is a held path), readers (slice 2), the plugin-side writers (plugins/source-control/skills/babysit-prs/scripts/babysit_verify_evidence.py, slice 2), the trigger (slice 3), migration (slice 4) and label removal (slice 5).
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Medium
Complexity: Medium
Uncertainty: Known
Flags: none
Blocked by: none
Understood: slice 1 of 5 of #7577. Five .github scripts that add or remove an issue status label should also write the Work status field through statusMirror, as admit.mjs and the other mirrored writers already do. Labels stay the source of truth, and a failed field write only warns. Each file gets a mirrorStatus callback that defaults to a no-op in tests, and its test file gets a case covering the had, add and remove labels. The scope, the done-when items and the out-of-scope list are exact, so nothing is missing. The later slices #13483, #13484, #13485 and #13486 are related follow-ups, not duplicates.
Activity
kyle-sexton commentedon Nov 5, 2026
github-actions commentedon Nov 5, 2026
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Medium
Complexity: Medium
Uncertainty: Known
Flags: none
Blocked by: none
Understood: slice 1 of 5 of #7577. Five
.githubscripts that add or remove an issue status label should also write the Work status field throughstatusMirror, asadmit.mjsand the other mirrored writers already do. Labels stay the source of truth, and a failed field write only warns. Each file gets amirrorStatuscallback that defaults to a no-op in tests, and its test file gets a case covering thehad,addandremovelabels. The scope, the done-when items and the out-of-scope list are exact, so nothing is missing. The later slices #13483, #13484, #13485 and #13486 are related follow-ups, not duplicates.Automated triage, applied by the lanes App.
github-actions commentedon Nov 5, 2026
github-actions commentedon Nov 5, 2026
already-leased: another session holds a live lease on #13482, so run https://github.com/melodic-software/claude-code-plugins/actions/runs/42000366144 ran no model.