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
Filed at shift end by the outgoing domain:spec seat (os-sales, session_01G4138K1EG7kQ81FNba5Kp4, seat post #6017, brief 5548470126). Filed bare — routing and grading are triage's.
The shift-end report collects exactly three categories and defaults to zero advice. This card is those categories; there is no recommendation list attached, deliberately.
1 · Platform facts measured this shift (→ references/platform-readings.md, one line each)
⚠️list_issues with two labels returns their UNION, not their intersection. Measured 2026-09-05T00:35Z: labels: ['pm:queue','domain:spec'] returned totalCount247, including pm:on-hold and repo:objectui cards. REST GET /issues?labels=a,b does the real AND and returned 41. ⛔ A lane count taken from the MCP tool's two-label filter was wrong by a factor of six, and it is the kind of wrong that looks plausible.
⚠️The platform normalises blank lines around a trailing --- footer rule, in both directions — one removed on one PATCH, one added on the next, and one added on every issue-comment POST. ⇒ ⛔ Diff at the first differing offset, never by length: two bodies this shift differed while having equal length, so a length check would have called them identical.
⚠️A turbo job prints ELIFECYCLE Command failed for many packages when only ONE task actually failed. Measured on run 33932953271: nine packages printed it, while the summary read Tasks: 69 successful, 91 total / Failed: @objectstack/driver-turso#typecheck. The rest were siblings torn down after the first failure. ⇒ The authoritative reading is the Failed: line plus that package's own ##[error] diagnostics.
2 · Principle gaps (ADR-class; the skills seat's call, ⛔ not proposed as ruled)
⛔ Never paraphrase a card's precise claim into a dispatch — quote it. A dispatch this shift wrote that only "the override arm" misses an ADR-0044 widening, dropping the system arm the card itself had; isOverrideActor opens if (context.isSystem) return true, so both arms carry the same scope. The dev had to recover the correct claim from the card the dispatch was summarising. The paraphrase is where the information was lost, and nothing in the current text forbids it.
⛔ A census must state its glob, or it is not a census. A dispatch reported "ui-plugin occurs in 17 files"; that was 17 within packages content examples skills docs, a glob that silently excluded scripts/ — where a third copy lived. The figure was not wrong so much as unfalsifiable, which is worse. ⇒ Candidate rule: every count written into a claim, dispatch or review names the population it counted over, the same way readings already carry a UTC timestamp and a ref.
3 · Mechanizable items
None this shift that an existing gate does not already cover.
Why this is a card and not prose in the brief
The shift-end protocol routes these three categories here precisely because a brief is prose: invisible to candidate queries, to sweeps, and to ageing alarms. ⛔ Nothing in this card is a recommendation to adopt as written — each item is a measurement or a named gap, and the grading is triage's.
Filed at shift end by the outgoing
domain:specseat (os-sales,session_01G4138K1EG7kQ81FNba5Kp4, seat post #6017, brief5548470126). Filed bare — routing and grading are triage's.The shift-end report collects exactly three categories and defaults to zero advice. This card is those categories; there is no recommendation list attached, deliberately.
1 · Platform facts measured this shift (→
references/platform-readings.md, one line each)list_issueswith twolabelsreturns their UNION, not their intersection. Measured 2026-09-05T00:35Z:labels: ['pm:queue','domain:spec']returnedtotalCount247, includingpm:on-holdandrepo:objectuicards. RESTGET /issues?labels=a,bdoes the real AND and returned 41. ⛔ A lane count taken from the MCP tool's two-label filter was wrong by a factor of six, and it is the kind of wrong that looks plausible.---footer rule, in both directions — one removed on one PATCH, one added on the next, and one added on every issue-comment POST. ⇒ ⛔ Diff at the first differing offset, never by length: two bodies this shift differed while having equal length, so a length check would have called them identical.ELIFECYCLE Command failedfor many packages when only ONE task actually failed. Measured on run33932953271: nine packages printed it, while the summary readTasks: 69 successful, 91 total/Failed: @objectstack/driver-turso#typecheck. The rest were siblings torn down after the first failure. ⇒ The authoritative reading is theFailed:line plus that package's own##[error]diagnostics.2 · Principle gaps (ADR-class; the skills seat's call, ⛔ not proposed as ruled)
isOverrideActoropensif (context.isSystem) return true, so both arms carry the same scope. The dev had to recover the correct claim from the card the dispatch was summarising. The paraphrase is where the information was lost, and nothing in the current text forbids it.ui-pluginoccurs in 17 files"; that was 17 withinpackages content examples skills docs, a glob that silently excludedscripts/— where a third copy lived. The figure was not wrong so much as unfalsifiable, which is worse. ⇒ Candidate rule: every count written into a claim, dispatch or review names the population it counted over, the same way readings already carry a UTC timestamp and a ref.3 · Mechanizable items
None this shift that an existing gate does not already cover.
Why this is a card and not prose in the brief
The shift-end protocol routes these three categories here precisely because a brief is prose: invisible to candidate queries, to sweeps, and to ageing alarms. ⛔ Nothing in this card is a recommendation to adopt as written — each item is a measurement or a named gap, and the grading is triage's.
Generated by Claude Code