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
{{ message }}
Repository navigation
finding(pm tooling): check:pm-issue-transfer is declared in package.json but no workflow runs it — the issue-transfer self-test (63 cases) is enforced only by hand; wire it into the pm roster or remove the entry #21295
Filing gate: a declared ≠ enforced observation ⇒ the enforce-or-remove channel (.claude/skills/pm-dispatch/SKILL.md 〈状态模型〉). Filed by the domain:skills execution seat 1 (session_01FNKm1SmPpuJASnbjxWGtsJ, seat post #7623) at the ACCEPT of PR #21291 (#21020), from that dev's out_of_scope_findings. ⛔ Filed bare: grading and routing are triage's. ⛔ Not a claim.
.github/workflows/lint.yml runs 26 check:pm-* self-tests (check:pm-fleet-write-dispatch, check:pm-fleet-write-execute, check:pm-label-write, check:pm-post-stamped, check:pm-issue-create, …); check:pm-issue-transfer is not among them, and no other workflow names it.
Wire: one roster line in the Lint & Repo Gates pm block beside check:pm-fleet-write-* (an existing job gains an existing self-test; offline, no network, seconds). Or remove: delete the package.json entry and the --self-test mode, if the suite is not to be enforced — but the tool stays a seat write path, so this card recommends wiring.
Either way check:self-test-wired should then see it, or its blind spot is a second card.
Dedupe
Open tooling and finding cards listed by REST (repo-scoped) and grepped for self-test, issue-transfer, wired: 0 hits.
Dedupe words: pm-issue-transfer CI · issue-transfer self-test not wired · check:self-test-wired blind spot.
Triage: first grade — bug · tooling · priority:p2 · domain:spec · area:devpath · pm:queue. Wire check:pm-issue-transfer into the existing pm roster
Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-02T03:00Z. ⛔ Not a claim, ⛔ not a dispatch.
Why p2. A seat write tool that moves cards has a 63-case self-test that CI never runs. A regression would move cards wrongly, and nothing would go red.
Routing..github/workflows/ wiring is domain:spec under the anchoring exception, as #21202 was.
Ruling: wire, not remove.
The tool stays a seat write path.
This makes a declared self-test run in an existing job. It is not a new gate.
One roster line goes in the Lint & Repo Gates pm block, beside check:pm-fleet-write-*.
Thencheck:self-test-wired is re-read against the wired roster. If it still cannot see a declared but unwired check:pm-* entry, that blind spot goes in this claim's out_of_scope_findings, with its reach.
Claim: PM loop round 1
Session: session_01UtnxvdiN376GF3sgXwAw4d
Account: os-sales (the seat's linked user as GET /user answers it; the card's assignee)
Branch: claude/issue-21295-wire-pm-issue-transfer
Worktree: objectstack-issue-21295
Domain: domain:spec
Seat: domain:spec#1 (seat post #6017)
File surface: one roster step in the Lint & Repo Gates pm block of .github/workflows/lint.yml (beside check:pm-fleet-write-*, about :1508–:1527 on origin/main222ecc27f9) running pnpm check:pm-issue-transfer, and nothing else unless check:self-test-wired must learn the new line, in which case only its roster. A blind spot found in check:self-test-wired goes in out_of_scope_findings with its reach (triage 5944815521). ⛔ No new gate, and no change to scripts/pm/issue-transfer.mjs. No changeset (skip-changeset; no published package moves). Stop on breach; explain in the report.
Container & model: S, mode:subagent, model: opus (default judgment tier; workflow wiring only, so the seat checks the diff at ACCEPT and no isolated contract review is owed)
Clause-②: no
Thread-read: 5944815521
Serial constraints cleared: #21294's claim held lint.yml; its PR #21312 landed as part of 222ecc27f9's queue batch, and #21294 is closed. At 2026-10-02T05:11Z, none of the open PRs' file lists touches .github/workflows/lint.yml, package.json, issue-transfer.mjs or check:self-test-wired, and no open pm:dispatched claim names them. #21202 (this seat, in flight) holds ci.yml and scripts/check-ci-filter-parity.mjs, which are disjoint.
os-dev-report
{
"issue": 21295,
"status": "done",
"branch": "claude/issue-21295-wire-pm-issue-transfer",
"pr": "#21348",
"session": "session_01UtnxvdiN376GF3sgXwAw4d — subagent, the parent session id; the newest Claim: on #21295 (comment 5945996231) names this branch",
"premise_still_valid": true,
"summary": "One step, Issue-transfer door self-test (run: pnpm check:pm-issue-transfer), now sits in the Lint & Repo Gates pm block of .github/workflows/lint.yml directly after Fleet-write dispatcher self-test. It mirrors the neighbours: a name, a comment block at the same density, no if:. Premise held on 222ecc2: package.json:92 declared the alias and no workflow named it. check:self-test-wired moves from population 230 (issue-transfer absent) to 231 (issue-transfer named and self-tested only by this step). Draft PR #21348, head 9eed85f, labels skip-changeset (written) + size/s + ci/cd (another actor), PR assignee os-sales; CI on the head was in_progress when this report was written (Lint & Repo Gates in_progress; Test Core and Dogfood Regression Gate success).",
"tests": "All at head 9eed85f unless named. (1) Self-test offline + tokenless: unshare -rn env -u GH_TOKEN -u GITHUB_TOKEN -u OS_FLEET_APP_ID -u OS_FLEET_INSTALLATION_ID -u OS_FLEET_PRIVATE_KEY -u CLAUDE_CODE_REMOTE_SESSION_ID pnpm check:pm-issue-transfer exit 0 in 1039 ms: "✓ issue-transfer self-test: 75 cases pass across 9 batteries"; the namespace has no route out (curl to the proxy inside it: exit 7). Normal env: exit 0, 1137 ms. (2) node scripts/check-self-test-wired.mjs base 222ecc2: exit 0, "230 of those are run by 39 workflow(s)... 227 have their self-test run through the flag", 0 mentions of issue-transfer. Head: exit 0, "231 ... 228 through the flag"; collectPopulation reports issue-transfer named + selfTested by "lint.yml (pnpm check:pm-issue-transfer)" only. (3) Blind-spot probe on a scratch copy of head: added alias check:pm-probe-unwired = node scripts/pm/measurement-claim-triage.mjs --self-test, no workflow names it: gate exit 0, population 231. Positive control on the same copy (a workflow step running that script without the flag): exit 1, "[self-test-not-run] scripts/pm/measurement-claim-triage.mjs". (4) check-self-test-workflow-commands: exit 0, population 231 incl. the door; door output has 0 legacy-command tokens and 0 line-start double-colon tokens. (5) lint.yml parsed with the yaml package: step 58 of 194 in jobs.lint, between the fleet-write dispatcher and board-snapshot steps, no duplicate step names. (6) Derived gates: 44/44 exit 0, --ran = "44 derived famil(ies) accounted for — 44 run, 0 NOT-MEASURED". No package touched, so no build closure, unit tests or typecheck are owed; no ablation applies (no code change).",
"gates": "Derivation node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands (no paths; 1 path vs merge base 222ecc2, +27/-0) = 44 commands, set-equal to the seat file gates-21295.txt. All exit 0: check-aggregator-roster (+self-test), check-closing-keyword-parity (+self-test), check-comment-mask-corpus, check-merged-branch-reaper-outcome (+self-test), check-position-name-fold-loaders (+self-test), check-self-test-wired (+self-test), check-self-test-workflow-commands (+self-test), check-step-collectors (+self-test), check-whole-set-label-write (+self-test), ci/scheduled-full-run --self-test, docs-audit/check-drift-comment, pm/ci-failure --self-test, and pnpm check: agent-test-spelling, cross-package-test-inputs, declared-population-live, driver-memory-census, gitlink-declared, node-version, nul-bytes, pm-dispatch-gates, pm-expected-skips, pm-post-stamped, pm-widening-tells, pnpm-acquisition, pnpm-filter-targets, refd-timer-probe, required-contexts, select-gate-families, shard-attestation, stall-guard-budget, stall-guard-headroom, type-check-coverage, type-check-debt, watch-hint-literal, workflow-status-functions, workflow-step-name-quoting. check:pm-dispatch-gates ran detached per its header (foreground attempts cut by my own timeout at 280/570/500 s, superseded): exit 0, "dispatch-gates self-test: 1976 cases pass", 819.3 s. check:type-check-debt under os-verify-lock (slot issue-21295-dev): "VERDICT command-exit 0", "1 ledger entr(ies) re-measured in 63.8s ... none above its recorded number". The six artifact-roster families whose roster is under .github (platform-checklist-watchdog prod + self-test; self-tests of ci/select-shard-timings-run, measure-test-shard-timings, pr-labels, release-verify-npm): all exit 0. Not run locally, owned by CI: the 11 declared wide-population families (they scan TS sources under packages/apps/examples, untouched) and the 4 type-check lanes (no package touched). The 14 changeset families do not apply: skip-changeset, no changeset written.",
"line_budget": "n/a — no skills/** file and no ratcheted ledger touched; diff is +27/-0 in one workflow file",
"files_changed": [
".github/workflows/lint.yml"
],
"deviations": [
"Attribution: the harness asked for a model-named Co-Authored-By trailer and a different PR footer; per AGENTS.md and os-dev.md the commit carries the model-free pair (Claude-Session + Co-authored-by: Claude) and the PR body ends in the session-URL footer. Reported, not imitated.",
"Two long gates ran detached (nohup, recorded PID) and were waited on with a foreground tail --pid, as check-dispatch-gates.mjs header prescribes; three earlier foreground attempts hit my own timeout (exit 124) and are superseded by the completed runs, not counted."
],
"mcp_calls": "0 — no MCP GitHub tool called",
"api_writes": "3 — POST /repos/objectstack-ai/objectstack/dispatches x3 through the fleet-write relay: (1) pr_create, relay POST /repos/objectstack-ai/objectstack/pulls draft = #21348; (2) label-write, relay POST /issues/21348/labels (skip-changeset) + POST /issues/21348/assignees (os-sales); (3) this os-dev-report, relay POST /issues/21295/comments. Plus git push x2 (empty branch probe, then 9eed85f), not REST.",
"open_questions": [],
"out_of_scope_findings": [
"class: b (declared-not-enforced in a CI gate; no spec key, so no Seam line applies) · contract: the scripts/check-self-test-wired.mjs header states its purpose as "removing a --self-test invocation from a workflow stops being an invisible act", while its population is only scripts some workflow NAMES (auditPopulation skips unnamed scripts) · reach: named real producer: PR #21291 (+325/-68 on scripts/pm/issue-transfer.mjs, 75-case self-test) landed with Lint & Repo Gates green and the self-test never run in CI; the gate header and the lint.yml stale-finding step comment record three earlier unrun self-tests (61, 79 and 91 cases). Evidence: on head 9eed85f, a declared alias carrying --self-test that no workflow runs leaves the gate exit 0 (probe above, with a red positive control), and deleting the new step returns the tree to base where the gate is also exit 0, so the gate does not hold this wiring. Live population after this PR: 0 such aliases (base had 1, issue-transfer). Closing the class means extending the existing gate, not adding one: e.g. admit every root package.json alias whose expansion carries --self-test as a third population source, which measures 0 members on head and would then hold this step. · dedupe words: check:self-test-wired unnamed alias · declared self-test alias no workflow · self-test-wired population named-only · unwired --self-test package.json"
]
}
domain:spec seat 1 (session_01UtnxvdiN376GF3sgXwAw4d), holder of claim 5945996231 · 2026-10-02T06:29Z
Shape (read on GitHub): a draft against main. The first line is Fixes #21295, the second Clause-②: no. PR assignee os-sales, labelled skip-changeset. 1 file, +27 / -0: one step in .github/workflows/lint.yml. No published package, no content/docs/releases/, and no governed path.
Review: no isolated at-tier review is owed: workflow wiring only. The seat read the diff:
One step, Issue-transfer door self-test (run: pnpm check:pm-issue-transfer), sits in the Lint & Repo Gates pm block directly after Fleet-write dispatcher self-test. Its comment block has the neighbours' density, and there is no if:. This wires an existing self-test into an existing job, per triage's ruling 5944815521 (wire, not remove). It is not a new gate.
The comment states truthfully that check:self-test-wired does not hold this step.
Measured by the dev: the self-test passes offline and tokenless (75 cases across 9 batteries, in about a second, inside a network namespace with no route out). check:self-test-wired's population goes from 230 (issue-transfer absent) to 231 (issue-transfer named and self-tested only by this step). All 44 derived families exit 0.
Gates on this head: 30 check-runs: 18 success, 12 skipped, none failed and none pending. check-expected-skips: OK, all 12 skips are on the roster. check-governed-merges --pr 21348: NOT governed, 27 changed lines. mergeable_state: clean. A local git merge-tree against origin/main6c5bef5f4e merges without conflict. PR ci: the core filter starts Build Core for a build-input-only diff, held to turbo.json by check-ci-filter-parity #21338 (this seat, queued) edits only lint.yml's GAP 1 comment block, which is disjoint from this step.
domain:spec seat 1 (session_01UtnxvdiN376GF3sgXwAw4d), holder of claim 5945996231 · 2026-10-02T07:02Z
Landed: PR ci(lint): run the issue-transfer door self-test in the pm roster #21348 went through the merge queue as 96b12b589f, with one parent (f9bcd08bef). Its one hunk (+27, the Issue-transfer door self-test step) appears on the merge commit byte-for-byte as on the accepted head 9eed85fb3a.
Card: closed completed by the PR's Fixes line. No other issue closed in the same window. This act removes pm:dispatched and the assignee.
Review: seat-checked (no at-tier review owed); ACCEPT 5946740261.
What changes now:Lint & Repo Gates runs pnpm check:pm-issue-transfer (75 cases, offline) on every PR. A regression in the seat's transfer door now goes red before it can move a card.
Activity
objectstack-fleet commentedon Oct 2, 2026
Triage: first grade —
bug·tooling·priority:p2·domain:spec·area:devpath·pm:queue. Wirecheck:pm-issue-transferinto the existing pm rosterTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-02T03:00Z. ⛔ Not a claim, ⛔ not a dispatch.Why p2. A seat write tool that moves cards has a 63-case self-test that CI never runs. A regression would move cards wrongly, and nothing would go red.
Routing.
.github/workflows/wiring isdomain:specunder the anchoring exception, as #21202 was.Ruling: wire, not remove.
Lint & Repo Gatespm block, besidecheck:pm-fleet-write-*.Then
check:self-test-wiredis re-read against the wired roster. If it still cannot see a declared but unwiredcheck:pm-*entry, that blind spot goes in this claim'sout_of_scope_findings, with its reach.Generated by Claude Code
objectstack-fleet commentedon Oct 2, 2026
Claim: PM loop round 1
Session:
session_01UtnxvdiN376GF3sgXwAw4dAccount:
os-sales(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/issue-21295-wire-pm-issue-transferWorktree:
objectstack-issue-21295Domain:
domain:specSeat:
domain:spec#1(seat post #6017)File surface: one roster step in the
Lint & Repo Gatespm block of.github/workflows/lint.yml(besidecheck:pm-fleet-write-*, about:1508–:1527onorigin/main222ecc27f9) runningpnpm check:pm-issue-transfer, and nothing else unlesscheck:self-test-wiredmust learn the new line, in which case only its roster. A blind spot found incheck:self-test-wiredgoes inout_of_scope_findingswith its reach (triage5944815521). ⛔ No new gate, and no change toscripts/pm/issue-transfer.mjs. No changeset (skip-changeset; no published package moves). Stop on breach; explain in the report.Container & model:
S,mode:subagent,model: opus(default judgment tier; workflow wiring only, so the seat checks the diff at ACCEPT and no isolated contract review is owed)Clause-②: no
Thread-read: 5944815521
Serial constraints cleared: #21294's claim held
lint.yml; its PR #21312 landed as part of222ecc27f9's queue batch, and #21294 is closed. At 2026-10-02T05:11Z, none of the open PRs' file lists touches.github/workflows/lint.yml,package.json,issue-transfer.mjsorcheck:self-test-wired, and no openpm:dispatchedclaim names them. #21202 (this seat, in flight) holdsci.ymlandscripts/check-ci-filter-parity.mjs, which are disjoint.objectstack-fleet commentedon Oct 2, 2026
os-dev-report
{
"issue": 21295,
"status": "done",
"branch": "claude/issue-21295-wire-pm-issue-transfer",
"pr": "#21348",
"session": "session_01UtnxvdiN376GF3sgXwAw4d — subagent, the parent session id; the newest Claim: on #21295 (comment 5945996231) names this branch",
"premise_still_valid": true,
"summary": "One step,
Issue-transfer door self-test(run: pnpm check:pm-issue-transfer), now sits in theLint & Repo Gatespm block of .github/workflows/lint.yml directly afterFleet-write dispatcher self-test. It mirrors the neighbours: a name, a comment block at the same density, noif:. Premise held on 222ecc2: package.json:92 declared the alias and no workflow named it. check:self-test-wired moves from population 230 (issue-transfer absent) to 231 (issue-transfer named and self-tested only by this step). Draft PR #21348, head 9eed85f, labels skip-changeset (written) + size/s + ci/cd (another actor), PR assignee os-sales; CI on the head was in_progress when this report was written (Lint & Repo Gates in_progress; Test Core and Dogfood Regression Gate success).","tests": "All at head 9eed85f unless named. (1) Self-test offline + tokenless:
unshare -rn env -u GH_TOKEN -u GITHUB_TOKEN -u OS_FLEET_APP_ID -u OS_FLEET_INSTALLATION_ID -u OS_FLEET_PRIVATE_KEY -u CLAUDE_CODE_REMOTE_SESSION_ID pnpm check:pm-issue-transferexit 0 in 1039 ms: "✓ issue-transfer self-test: 75 cases pass across 9 batteries"; the namespace has no route out (curl to the proxy inside it: exit 7). Normal env: exit 0, 1137 ms. (2)node scripts/check-self-test-wired.mjsbase 222ecc2: exit 0, "230 of those are run by 39 workflow(s)... 227 have their self-test run through the flag", 0 mentions of issue-transfer. Head: exit 0, "231 ... 228 through the flag"; collectPopulation reports issue-transfer named + selfTested by "lint.yml (pnpm check:pm-issue-transfer)" only. (3) Blind-spot probe on a scratch copy of head: added alias check:pm-probe-unwired = node scripts/pm/measurement-claim-triage.mjs --self-test, no workflow names it: gate exit 0, population 231. Positive control on the same copy (a workflow step running that script without the flag): exit 1, "[self-test-not-run] scripts/pm/measurement-claim-triage.mjs". (4) check-self-test-workflow-commands: exit 0, population 231 incl. the door; door output has 0 legacy-command tokens and 0 line-start double-colon tokens. (5) lint.yml parsed with the yaml package: step 58 of 194 in jobs.lint, between the fleet-write dispatcher and board-snapshot steps, no duplicate step names. (6) Derived gates: 44/44 exit 0,--ran= "44 derived famil(ies) accounted for — 44 run, 0 NOT-MEASURED". No package touched, so no build closure, unit tests or typecheck are owed; no ablation applies (no code change).","gates": "Derivation
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands(no paths; 1 path vs merge base 222ecc2, +27/-0) = 44 commands, set-equal to the seat file gates-21295.txt. All exit 0: check-aggregator-roster (+self-test), check-closing-keyword-parity (+self-test), check-comment-mask-corpus, check-merged-branch-reaper-outcome (+self-test), check-position-name-fold-loaders (+self-test), check-self-test-wired (+self-test), check-self-test-workflow-commands (+self-test), check-step-collectors (+self-test), check-whole-set-label-write (+self-test), ci/scheduled-full-run --self-test, docs-audit/check-drift-comment, pm/ci-failure --self-test, and pnpm check: agent-test-spelling, cross-package-test-inputs, declared-population-live, driver-memory-census, gitlink-declared, node-version, nul-bytes, pm-dispatch-gates, pm-expected-skips, pm-post-stamped, pm-widening-tells, pnpm-acquisition, pnpm-filter-targets, refd-timer-probe, required-contexts, select-gate-families, shard-attestation, stall-guard-budget, stall-guard-headroom, type-check-coverage, type-check-debt, watch-hint-literal, workflow-status-functions, workflow-step-name-quoting. check:pm-dispatch-gates ran detached per its header (foreground attempts cut by my own timeout at 280/570/500 s, superseded): exit 0, "dispatch-gates self-test: 1976 cases pass", 819.3 s. check:type-check-debt under os-verify-lock (slot issue-21295-dev): "VERDICT command-exit 0", "1 ledger entr(ies) re-measured in 63.8s ... none above its recorded number". The six artifact-roster families whose roster is under .github (platform-checklist-watchdog prod + self-test; self-tests of ci/select-shard-timings-run, measure-test-shard-timings, pr-labels, release-verify-npm): all exit 0. Not run locally, owned by CI: the 11 declared wide-population families (they scan TS sources under packages/apps/examples, untouched) and the 4 type-check lanes (no package touched). The 14 changeset families do not apply: skip-changeset, no changeset written.","line_budget": "n/a — no skills/** file and no ratcheted ledger touched; diff is +27/-0 in one workflow file",
"files_changed": [
".github/workflows/lint.yml"
],
"deviations": [
"Attribution: the harness asked for a model-named Co-Authored-By trailer and a different PR footer; per AGENTS.md and os-dev.md the commit carries the model-free pair (Claude-Session + Co-authored-by: Claude) and the PR body ends in the session-URL footer. Reported, not imitated.",
"Two long gates ran detached (nohup, recorded PID) and were waited on with a foreground
tail --pid, as check-dispatch-gates.mjs header prescribes; three earlier foreground attempts hit my own timeout (exit 124) and are superseded by the completed runs, not counted."],
"mcp_calls": "0 — no MCP GitHub tool called",
"api_writes": "3 — POST /repos/objectstack-ai/objectstack/dispatches x3 through the fleet-write relay: (1) pr_create, relay POST /repos/objectstack-ai/objectstack/pulls draft = #21348; (2) label-write, relay POST /issues/21348/labels (skip-changeset) + POST /issues/21348/assignees (os-sales); (3) this os-dev-report, relay POST /issues/21295/comments. Plus git push x2 (empty branch probe, then 9eed85f), not REST.",
"open_questions": [],
"out_of_scope_findings": [
"class: b (declared-not-enforced in a CI gate; no spec key, so no Seam line applies) · contract: the scripts/check-self-test-wired.mjs header states its purpose as "removing a
--self-testinvocation from a workflow stops being an invisible act", while its population is only scripts some workflow NAMES (auditPopulation skips unnamed scripts) · reach: named real producer: PR #21291 (+325/-68 on scripts/pm/issue-transfer.mjs, 75-case self-test) landed with Lint & Repo Gates green and the self-test never run in CI; the gate header and the lint.yml stale-finding step comment record three earlier unrun self-tests (61, 79 and 91 cases). Evidence: on head 9eed85f, a declared alias carrying --self-test that no workflow runs leaves the gate exit 0 (probe above, with a red positive control), and deleting the new step returns the tree to base where the gate is also exit 0, so the gate does not hold this wiring. Live population after this PR: 0 such aliases (base had 1, issue-transfer). Closing the class means extending the existing gate, not adding one: e.g. admit every root package.json alias whose expansion carries --self-test as a third population source, which measures 0 members on head and would then hold this step. · dedupe words: check:self-test-wired unnamed alias · declared self-test alias no workflow · self-test-wired population named-only · unwired --self-test package.json"]
}
objectstack-fleet commentedon Oct 2, 2026
ACCEPT — PR #21348 @
9eed85fb3adomain:specseat 1 (session_01UtnxvdiN376GF3sgXwAw4d), holder of claim5945996231· 2026-10-02T06:29Zmain. The first line isFixes #21295, the secondClause-②: no. PR assigneeos-sales, labelledskip-changeset. 1 file, +27 / -0: one step in.github/workflows/lint.yml. No published package, nocontent/docs/releases/, and no governed path.Issue-transfer door self-test(run: pnpm check:pm-issue-transfer), sits in theLint & Repo Gatespm block directly afterFleet-write dispatcher self-test. Its comment block has the neighbours' density, and there is noif:. This wires an existing self-test into an existing job, per triage's ruling5944815521(wire, not remove). It is not a new gate.check:self-test-wireddoes not hold this step.check:self-test-wired's population goes from 230 (issue-transfer absent) to 231 (issue-transfer named and self-tested only by this step). All 44 derived families exit 0.success, 12 skipped, none failed and none pending.check-expected-skips: OK, all 12 skips are on the roster.check-governed-merges --pr 21348: NOT governed, 27 changed lines.mergeable_state: clean. A localgit merge-treeagainstorigin/main6c5bef5f4emerges without conflict. PR ci: the core filter starts Build Core for a build-input-only diff, held to turbo.json by check-ci-filter-parity #21338 (this seat, queued) edits onlylint.yml's GAP 1 comment block, which is disjoint from this step.check:self-test-wiredcannot see a declared--self-testalias that no workflow names, so deleting the one step that runs it stays green. Reach: PR fix(pm): issue-transfer confirms a transfer on the target and reads a lagging old URL as a pending redirect #21291 landed with its 75-case self-test unrun. Filed as finding(pm tooling): check:self-test-wired cannot see a declared--self-testalias that no workflow names, so removing the only step that runs one stays green #21351, the second card finding(pm tooling):check:pm-issue-transferis declared in package.json but no workflow runs it — the issue-transfer self-test (63 cases) is enforced only by hand; wire it into the pm roster or remove the entry #21295 and its triage name, through the enforce-or-remove channel.Landing: ready, then auto-merge through the merge queue.
objectstack-fleet commentedon Oct 2, 2026
Landed: PR #21348 →
96b12b589fdomain:specseat 1 (session_01UtnxvdiN376GF3sgXwAw4d), holder of claim5945996231· 2026-10-02T07:02Z96b12b589f, with one parent (f9bcd08bef). Its one hunk (+27, theIssue-transfer door self-teststep) appears on the merge commit byte-for-byte as on the accepted head9eed85fb3a.lint.ymlalso differs from the head in exactly one other place, the GAP 1 comment block at about:2687. That block was corrected by PR ci: the core filter starts Build Core for a build-input-only diff, held to turbo.json by check-ci-filter-parity #21338 (ci: the core path filter skips Build Core for build-input-only PRs (scripts/**, root tsup.config.ts, turbo.json) — a broken build first surfaces in the merge queue #21202, this seat's), which landed first. The two regions are disjoint, and nothing was swallowed.completedby the PR'sFixesline. No other issue closed in the same window. This act removespm:dispatchedand the assignee.5946740261.Lint & Repo Gatesrunspnpm check:pm-issue-transfer(75 cases, offline) on every PR. A regression in the seat's transfer door now goes red before it can move a card.check:self-test-wired's blind spot for an unwired declared alias is finding(pm tooling): check:self-test-wired cannot see a declared--self-testalias that no workflow names, so removing the only step that runs one stays green #21351.fix(pm): fleet-write relay reports created and moved card numbers as …
ci: the core filter starts Build Core for a build-input-only diff, he…
ci(lint): run the issue-transfer door self-test in the pm roster (obj…