Skip to content

feat(pr-pipeline): mirror every .github status-label writer into the Work status field #13482

Description

@kyle-sexton

Refs #7577

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
  • .github/scripts/maintenance-audit-lane-runs/triage-sweep.mjs (its needs-triage add)
  • .github/scripts/maintenance-audit-lane-runs/file-findings.mjs (its agent-ready removal)
  • .github/scripts/maintenance-monitor-signals/monitor.mjs (its agent-ready removal)

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).

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 5, 2026
  2. self-assigned this
    on Nov 5, 2026
  3. kyle-sexton commented on Nov 5, 2026

    @kyle-sexton
    MemberAuthor
    No description provided.
  4. github-actions commented on Nov 5, 2026

    @github-actions
    Contributor

    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.

    Automated triage, applied by the lanes App.

  5. added
    priority: mediumReal value, no hard deadline; normal backlog flow.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 5, 2026
  6. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    on Nov 5, 2026
  7. added
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    on Nov 5, 2026
  8. github-actions commented on Nov 5, 2026

    @github-actions
    Contributor
    No description provided.
  9. github-actions commented on Nov 5, 2026

    @github-actions
    Contributor

    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.

  10. removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Nov 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

priority: mediumReal value, no hard deadline; normal backlog flow.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

Type

Fields

Work status

agent-ready

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions