Skip to content

feat(work-items): detect whether the tracker stores status in the Work status field or in labels #11123

Description

@kyle-sexton

Refs: #7577

Agent Brief

Type: Feature
Summary: The work-item tracker reports where an item's status is stored: the Work status organization issue field when the tracker offers it, else labels. This is the parent's status-field-adapter slice.

Current behavior:

  • plugins/work-items/tools/work-item-tracker/CONTRACT.md (around :235-255) defines set-fields and get-field-options over organization issue fields, read from GET /orgs/{org}/issue-fields. Only the GitHub adapter implements them.
  • No verb or capability tells a caller whether status is a field or labels; every status reader and writer uses labels.
  • work-items: probe org issue field for work status #7600 recorded the probe: the org field is Work status (single-select; options needs-triage, needs-reporter-info, needs-owner-decision, needs-spec, agent-ready), and a token with issues: write can set it.

Desired behavior:

  • The tracker exposes status storage detection (verb or capability name left to the implementer, documented in CONTRACT.md).
  • The github adapter reports field storage when the Work status organization issue field exists, read from the same issue-fields listing set-fields uses. It reports labels when the field is absent, or when the listing cannot be read (user-owned repository, no read:org).
  • The local-markdown adapter always reports labels.

Done when

  • CONTRACT.md documents the detection and its output.
  • Conformance or tracker test cases, fixtures only, cover: github with the field present (field), github with it absent (labels), github with the listing unreadable (labels), and local-markdown (labels).
  • The tracker test suite and the conformance suite pass for github and local-markdown.
  • scripts/check-changelog-fragments.sh passes with a work-items fragment.

Out of scope:

  • The agent-ready label migration and moving work-resolve-issue.yml's trigger to issues: field_added (the parent's status-migration slice).
  • Creating or changing organization issue fields (owner stop).

Activity

  1. added
    priority: mediumReal value, no hard deadline; normal backlog flow.
    work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.
    on Oct 30, 2026
  2. github-actions commented on Oct 30, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: scoped
    Basis: automated intake triage; a maintainer confirms or changes it.

    Size: Medium
    Complexity: Low
    Uncertainty: Known
    Flags: none
    Blocked by: none

    Understood: add status-storage detection to the work-item tracker. The github adapter reports "field" when the Work status organization issue field exists and "labels" when it is absent or the listing is unreadable. The local-markdown adapter always reports "labels". The detection and its output are documented in CONTRACT.md, with fixture-only test cases for the four scenarios and a work-items changelog fragment. The scope and done-when items are clear, and I found no likely duplicate among the open issues.

    Automated triage. A maintainer reviews it.

  3. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    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 Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.

    Fields

    No fields configured for Feature.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions