Filed unassigned by the dev seat that installed the half-state patrol (#5791, PR #5984). ⛔ Not a defect and not a request to backfill anything — a standing ambiguity that a mechanism now depends on, recorded so it is findable instead of buried in a landed card's thread.
The measurement
Taken 2026-08-24 while porting the patrol:
| Measurement | Value |
|---|
Closed cards carrying pm:dispatched, repo-wide | 815 |
Of the 400 most-recently-updated closed issues, those carrying a pm:* state label | ≈ 347 (~87%) — pm:dispatched 259, pm:queue 86, pm:blocked 1, pm:on-hold 1 |
For contrast, objectstack measured 129 of 500 (26%) on its own board and treats recent closed-card residue as a live duty its patrol should report.
Why it is now load-bearing
The ported sweeper's H22 predicate reports a closed card that still carries a pm:* state label. At ~87% density it would report the convention, not a defect — ~347 rows that exhaust the anchor body budget and trim every other predicate's findings out of the report. So PR #5984 ships with that reader switched off (PM_SWEEP_CLOSED_WINDOW_PAGES: '0'), and the rendered summary says the closed surface is UNREAD, not clean.
That is a deliberate hold, not a resolution. Re-enabling H22 here is gated on this question.
The question
Two seats have read the same corpus and landed on opposite conventions (recorded on #5791):
- Stripping
pm:* on close is the rule — then ~815 closed cards are in violation, essentially nobody does it, and re-enabling H22 requires a backfill first. - Stripping is not the rule — then the seats that stripped it were the deviation, and H22 is simply not a predicate this repo wants; it should stay off and the reason should be written down where a re-sync from objectstack will not quietly undo it.
Either answer is actionable and cheap. What is expensive is the current state, where two seats can read the same board and land on opposite conventions — which is what happened.
What a resolution should produce
- The convention, stated once, in whichever protocol document this lane treats as authoritative.
- A decision on H22 here: leave disabled, or backfill-then-enable.
- If enabled, drop
PM_SWEEP_CLOSED_WINDOW_PAGES from .github/workflows/half-state-patrol.yml; the sweeper's own default is already upstream's 4 pages, so no code change is involved.
Refs: #5791 · PR #5984 · objectstack-ai/objectstack#11294
Filed unassigned by the dev seat that installed the half-state patrol (#5791, PR #5984). ⛔ Not a defect and not a request to backfill anything — a standing ambiguity that a mechanism now depends on, recorded so it is findable instead of buried in a landed card's thread.
The measurement
Taken 2026-08-24 while porting the patrol:
pm:dispatched, repo-widepm:*state labelpm:dispatched259,pm:queue86,pm:blocked1,pm:on-hold1For contrast, objectstack measured 129 of 500 (26%) on its own board and treats recent closed-card residue as a live duty its patrol should report.
Why it is now load-bearing
The ported sweeper's H22 predicate reports a closed card that still carries a
pm:*state label. At ~87% density it would report the convention, not a defect — ~347 rows that exhaust the anchor body budget and trim every other predicate's findings out of the report. So PR #5984 ships with that reader switched off (PM_SWEEP_CLOSED_WINDOW_PAGES: '0'), and the rendered summary says the closed surface is UNREAD, not clean.That is a deliberate hold, not a resolution. Re-enabling H22 here is gated on this question.
The question
Two seats have read the same corpus and landed on opposite conventions (recorded on #5791):
pm:*on close is the rule — then ~815 closed cards are in violation, essentially nobody does it, and re-enabling H22 requires a backfill first.Either answer is actionable and cheap. What is expensive is the current state, where two seats can read the same board and land on opposite conventions — which is what happened.
What a resolution should produce
PM_SWEEP_CLOSED_WINDOW_PAGESfrom.github/workflows/half-state-patrol.yml; the sweeper's own default is already upstream's 4 pages, so no code change is involved.Refs: #5791 · PR #5984 · objectstack-ai/objectstack#11294