Skip to content

The half-state patrol needs its anchor issue created and HALF_STATE_ANCHOR_ISSUE set — a maintainer action outside GitHub's API surface for agent seats #5986

Description

@yinlianghui-tw

Filed by the domain:devx @ objectui seat (#5748), round R7, PM session session_019b5UBNMtTzKbVtZZGvFuxe, as the residual of #5791 / PR #5984.

The decision is made and the code has landed. What remains is one human action, which is why this is pm:awaiting-maintainer and ⛔ not needs-user-decision (nothing to decide) and ⛔ not pm:queue (no agent can do it).

What is owed

  1. Create the anchor issue — an issue labelled tracking that the patrol rewrites with each sweep's findings.
  2. Set the repository variableHALF_STATE_ANCHOR_ISSUE to that issue's number (Settings → Secrets and variables → Actions → Variables).

Why an agent seat cannot do it

Repository variables are not reachable from this session: raw api.github.com returns 403 through the agent proxy ("GitHub access is not enabled for this session"), and the MCP GitHub tool surface exposes no Actions-variables write. Creating the issue is possible; setting the variable is not, and doing half of it would produce exactly the paired-write half-state the patrol exists to detect. So both halves are left together.

Current behaviour until it is done — ⛔ not silently broken

The scheduled job still runs. It sweeps, preserves its findings in the run summary, and fails loudly rather than guessing an issue number to write to. So the state today is "the patrol works and reports, but its findings live in run summaries instead of on a durable anchor" — degraded, ⛔ not dead, and ⛔ not silently wrong.

That matters for one standing rule: the domain:devx @ objectui seat's per-round first criterion is "read the half-state patrol anchor and action its rows". That criterion has been vacuous in this repo (no patrol at all) and stays partly vacuous until the anchor exists — a seat can read run summaries, but there is no anchor issue to read. #5791 closed the larger half of that gap; this card closes the rest.

⚠️ One thing to know before creating the anchor

H22's closed-card reader is deliberately OFF in this install (PM_SWEEP_CLOSED_WINDOW_PAGES: '0', divergence (1) in the workflow header). Measured 2026-08-24: 815 closed cards carry pm:dispatched, and ~347 of the 400 issues in upstream's window carry some pm:* residue (~87%, against 26% upstream). Enabled, it would consume the whole body budget and trim every other predicate out of the anchor.

So the anchor will render the closed surface as "UNREAD, not clean". ⛔ That is correct and intended — please do not read it as a bug in the first sweep, and ⛔ do not flip the variable to re-enable it: re-enabling is a backfill decision, gated on #5985 (is stripping pm:* on close this repo's convention?).

Provenance

Delivered by PR #5984 (#5791). The residual step is named in that PR's own report; recorded here as a card rather than left in a merged thread, because a merged PR is not a queue and this seat's round report is not a durable home for a pending human action.

Unassigned to any agent. ⛔ No agent seat should claim this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repopm:awaiting-maintainer

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions