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
This post is the single authoritative registration of the skills seat (seat 1, domain:skills#1). Four-section template; the job description is versioned at .claude/skills/pm-dispatch/references/lanes/skills.md — ⛔ not copied here. Body r144, written 2026-10-08T05:28Z by session_01CXydFDyiQwNbGFkmwrcRQq (huangyiirene) at the R3 review (one PR awaiting a human). r143 (2026-10-08T04:08Z) and earlier revisions are in the edit history, ⛔ not restated.
Current PM
🟢 huangyiirene — session_01CXydFDyiQwNbGFkmwrcRQq, seated 2026-10-07T14:47Z on the maintainer's /pm-dispatch skills; R1 closed out (marker 6040567688); R2 closed at r143; R3 opened 2026-10-08T04:12Z (marker 6052051988) and is in its landing window. Default wake-up: patrol Routine trig_01GFMN26Th3cBV2tXspdnDhV (hourly at :23, self-bound). Batch 3; mode:subagent for S/M. Seat 2 (#19287) is ⏳ vacant since 2026-10-08T01:59Z (os-steve's brief 6050618089): this seat is the lane's only seated PM; the brief's relay list is spent (① #22120 close-out done, ② #22123 dispatched and landed, ③ the held cards still wait on a ruling). Served tier = CONTRACT_REVIEW_TIER. The lane's objectui board is objectstack-ai/objectui#11311 (domain:skills queue 0).
Harness:check-harness-current.mjs CURRENT (every harness-loaded path on origin/main is in the shared HEAD 033e5c536d; origin/main has moved past it on packages/spec only).
.claude/skills/pm-dispatch/SKILL.md · references/*.md · .claude/agents/os-dev.md: FREE. Every other file of the lane: FREE. objectui: every file FREE.
Notes
Job description and write paths.references/lanes/skills.md; content writes only through scripts/pm/post-stamped.mjs (--repo=owner/name with =; --ack-through=ID from the LAST comment page for a body refresh; every minute stamp must be {{NOW}} or {{WAS:…}}, a WAS later than the act's clock is refused) / label-write.mjs / issue-create.mjs / close-cards.mjs (--stateless after the state label is stripped; --no-skip-pr-referenced when a closed PR still references the card) and fleet-write/dispatch.mjs --actions-file (issue_patch, pr_ready, pr_draft, automerge_enable, automerge_disable, pr_request_reviewers). Route: dispatch (relay fleet-write.yml on main). ⛔ No MCP write. An accepted dispatch with no run is UNCONFIRMED (exit 6) — ⛔ never re-run blind; go read the card.
Landing. Non-governed = CI all green + the seat's at-tier read, through the queue (check-expected-skips --pr N exit 0, check-governed-merges --pr N, relay pr_ready + automerge_enable). Arm only after mergeable_state reads clean. Tier S = at-tier ## Contract review PASS in seat then the same flip. Tier H (skills/**) = four-piece set (contract review on the PR, ACCEPT on the card, needs-user-decision + 维护者速读 on the PR, review requested from os-zhuang and hotlong via relay pr_request_reviewers), the PR waits draft; on an authorized APPROVED the seat lands unless the approver already did (this shift they did: ready, arm, enqueue in 2 minutes); close-out is the seat's either way. check-expected-skips can answer exit 3 ("no reading") while a check-run is still being created on the head — re-run a minute later.
Liveness baseline (mode:subagent): dispatch → draft PR 25–31 min (one-file skill fixes at tier) and 71 min (an M probe with a 30-family gate pass and a 13-minute battery); a patch round 25 min; a container restart kills in-flight subagents but leaves worktrees, the shared checkout and the scratchpad on disk — re-dispatch from the worktree, never commit its leftovers from the seat; a running process in the worktree is positive evidence. Queue latency this shift: 24–85 min.
Platform readings (kept): the shell's working directory resets between tool calls; a relay write takes 40–90 s end to end; the 5-hour usage wall terminates in-flight subagents; git-history.mjs touch takes --path=FILE; the container's gh reports its token invalid while REST through the proxy works — read with curl; claim and body text go through quoted-heredoc files; MCP multi-label list_issues is a UNION — REST labels=a,b for AND; fetch +refs/heads/main:refs/remotes/origin/main before check-harness-current.mjs; git merge-tree --write-tree BASE HEAD answers conflict-freedom without a worktree; the shared checkout needs one pnpm install --frozen-lockfile before check-expected-skips.mjs runs; actions/runs?branch=QUEUE_REF is unreliable — read actions/runs?event=merge_group pages (one file per page) grouped by head_branch; a merge-group CI run can conclude failure with every job success when its aggregator job is never created.
This post is the single authoritative registration of the skills seat (seat 1,
domain:skills#1). Four-section template; the job description is versioned at.claude/skills/pm-dispatch/references/lanes/skills.md— ⛔ not copied here. Body r144, written 2026-10-08T05:28Z bysession_01CXydFDyiQwNbGFkmwrcRQq(huangyiirene) at the R3 review (one PR awaiting a human). r143 (2026-10-08T04:08Z) and earlier revisions are in the edit history, ⛔ not restated.Current PM
🟢 huangyiirene —
session_01CXydFDyiQwNbGFkmwrcRQq, seated 2026-10-07T14:47Z on the maintainer's/pm-dispatch skills; R1 closed out (marker 6040567688); R2 closed at r143; R3 opened 2026-10-08T04:12Z (marker 6052051988) and is in its landing window. Default wake-up: patrol Routinetrig_01GFMN26Th3cBV2tXspdnDhV(hourly at :23, self-bound). Batch 3;mode:subagentfor S/M. Seat 2 (#19287) is ⏳ vacant since 2026-10-08T01:59Z (os-steve's brief 6050618089): this seat is the lane's only seated PM; the brief's relay list is spent (① #22120 close-out done, ② #22123 dispatched and landed, ③ the held cards still wait on a ruling). Served tier =CONTRACT_REVIEW_TIER. The lane's objectui board is objectstack-ai/objectui#11311 (domain:skillsqueue 0).Inherited + running ledger
pm:queue∩domain:skills): objectstack 0 · objectui 0. In flight: 1 (awaiting a human).body(:77) and aurlaction with notarget(:176); copying either makesdefineActionthrow #22176 (p2documentation, Tier H; filed at R2 from the [Decision] published skills/** teaching errors are found by hand (21 of 109 lane cards in two weeks): run the skill evals or a schema check over skill examples in CI (a new gate), or keep maintainer-scored evals #22059 probe's catalog control): claimed 6052071147, dispatched 2026-10-08T04:15Z (mode:subagent,CONTRACT_REVIEW_TIER); draft PR docs(skills): objectstack-ui action examples and the SKILL.md action rows follow the ActionSchema refinements #22184 head28a140bb45(three files, +7/−8:rules/actions.md:77→script,:176→ the spec's pinnedscript+target+newTabUrlpair,SKILL.mdrows:212/:252, one eval sentence); file surface revised in-round (6052511643) to fold the same-familySKILL.mdrows; patch round re-dispatched after a container restart lost the first (its uncommitted edit re-verified and adopted). Four-piece set posted 2026-10-08T05:27Z: contract review PASS 6052985182, ACCEPT 6052992551,needs-user-decision+ brief 6053004773, reviewersos-zhuang+hotlong. Waits for an authorized APPROVED; CI 38/38 green,merge-treeclean.os migrate meta --from 10, which the chain refuses below MIGRATION_SUPPORT_FLOOR = 16 (MigrationFloorError) #22123, p3, Tier H) merge commitaaa4ad29bcMERGED 2026-10-08T04:04Z afteros-zhuang's APPROVED (5451008723) and own ready + arm; contract review PASS 6051399880 (in seat, at tier), ACCEPT 6051404779, brief 6051414645, landing note 6051998519. PR fix(pm): an accepted relay dispatch with no run is UNCONFIRMED under auto too, never a direct write #22101 (finding(pm tooling): label-write falls back to a direct write under the seat's personal login when an accepted relay dispatch shows no run within 90 s — the identity exchange #19774 forbade, on a second branch #21892, p1) squash172be37da7MERGED 2026-10-07T17:49Z, note 6043634469. Caretaker close-out of seat 2's skills(objectstack-upgrade): the upgrade skill saysos migrate meta"writes nothing but--out", which--write(PR #22108) now makes incomplete #22120 (PR docs(skills): objectstack-upgrade namesos migrate meta --writebeside the default run #22122 squash033e5c536d, 2026-10-08T02:10Z), note 6050995609.completed); PR feat(scripts): report-only skill-example schema probe — ruling B step one readings #22171 closed unmerged (note on it), branchclaude/issue-22059-skill-example-schema-probeate6d00e1421kept as the probe's source of record. Premise corrections acknowledged there (20 cards at filing, not 21; four gates already read examples opt-in).Restart-when:the maintainer or the director lifts 「创建卡片,暂时不派发。」; untouched. Blocked: 0. Barefinding·pm:retriage·pm:awaiting-maintainer: 0.needs-user-decisionfrom PR docs(skills): objectstack-upgrade's late-arrival example starts at the support floor #22145 after the authorized approval ("Merge Without Review"); recorded on skills(objectstack-upgrade): the "several majors late" paragraph still examplesos migrate meta --from 10, which the chain refuses below MIGRATION_SUPPORT_FLOOR = 16 (MigrationFloorError) #22123 (6051617776), not re-spelled — the same strip after the merge went through (04:07Z), so the label is gone; the refusal is a reading on the classifier, not on the rule. (2)post-stamped.mjs's size route (over 60,000 bytes underautogoes direct as the seat's own user) beside the fleet-identity rule — a ruling if one is wanted. (3) The merge-queue head stall of 2026-10-07 (merge-groupCIfailurewith every jobsuccess, aggregator never created, 63-minute wait) — single occurrence; a devx card if it recurs. (4) Neither the upgrade skill nor the CLI refusal names the "older route" for a below-floor project; andSKILL.md:93's range illustration derives--from 15— both left with the maintainer in the brief on PR docs(skills): objectstack-upgrade's late-arrival example starts at the support floor #22145, neither ordered.documentation,docs/NORTH-STAR.mdfive maintainer-worded edits, Tier H) was filed and dispatched by the director seat on the maintainer's word (「这个卡你直接用 fable派发」), assigneeos-zhuang,pm:dispatched— carried on the lane's label by another seat; ⛔ not this seat's to touch, counted in the lane's in-flight reading only.domain:specseat 1 (os-litant, [PM seat] domain:spec — 🟢 os-litant · session_01LAi5BVvQNiYzepSAcsoFLK #6017) declared PR fix(spec): the retirement sentence names--write: it applies the edits it can prove, you apply the rest #22142 (feat(cli):os migrate meta --write— the AST codemod that rewrites authored sources for the mechanicalappliedset (v18) #9591) touching.claude/skills/spec-property-retirement/SKILL.md(Convention 5's two sentence templates name--write; +4/−4, net 0 lines; Tier S, their at-tier review) — read, no objection, no reply owed (6051269948). Closed cards pm tooling: deletescripts/pm/check-widening-tells.mjs(report-only, judges no PR; ruling 208's only in-flight work is deletion — ruled by the maintainer) #21959 · skills(pm-dispatch / os-dev): user-visible UX defects are class (a) — a reproducible, fix-site-named UX defect is filed like a functional one; pure taste and redesign are not #21992 · skills(pm-dispatch): judge responsibility before dispatch, and stop a PR whose security review keeps reopening #21929 still carry the assigneeos-steve(harmless residue). Open PR feat(spec)!: refuse bare unique: true on a declared index at protocol 18 — stated scope, zero-drift conversion (ADR-0120 D2/D5a/D7) #22103 (spec lane) touchesskills/objectstack-data/rules/indexing.md.check-harness-current.mjsCURRENT (every harness-loaded path onorigin/mainis in the shared HEAD033e5c536d;origin/mainhas moved past it onpackages/speconly).Hot-file serial queue
skills/objectstack-ui/rules/actions.md·skills/objectstack-ui/SKILL.md·skills/objectstack-ui/evals/views-apps-actions-pages.json: finding(skills): objectstack-ui rules/actions.md teaches two action shapes the ActionSchema refinements refuse — a modal carrying abody(:77) and aurlaction with notarget(:176); copying either makesdefineActionthrow #22176 (PR docs(skills): objectstack-ui action examples and the SKILL.md action rows follow the ActionSchema refinements #22184 awaiting approval).docs/NORTH-STAR.md: held by docs(north-star): align the compass with the 'ontology is the software' positioning — identity line, two user classes, promise-to-step mapping, the 'you own it' row, rule 4 wording (Tier H, maintainer-directed) #22172 (director seat, dispatched) — this lane serializes behind it on that file.skills/objectstack-upgrade/SKILL.md: FREE (PR docs(skills): objectstack-upgrade's late-arrival example starts at the support floor #22145 landed).scripts/check-corpus-claim-drift.mjs·scripts/corpus-claim-drift-baseline.json: FREE ([Decision] published skills/** teaching errors are found by hand (21 of 109 lane cards in two weeks): run the skill evals or a schema check over skill examples in CI (a new gate), or keep maintainer-scored evals #22059 closed under C; nothing lands).skills/objectstack-data/rules/indexing.md: held by PR feat(spec)!: refuse bare unique: true on a declared index at protocol 18 — stated scope, zero-drift conversion (ADR-0120 D2/D5a/D7) #22103 (spec lane) — this lane serializes behind it on that file..claude/skills/spec-property-retirement/SKILL.md: held by PR fix(spec): the retirement sentence names--write: it applies the edits it can prove, you apply the rest #22142 (spec lane, declared) — this lane serializes behind it on that file.scripts/pm/label-write.mjs·issue-create.mjs·issue-transfer.mjs·post-stamped.mjs·close-cards.mjs·fleet-write/dispatch.mjs: FREE; fleet-write: no relay op for PUT /pulls/{n}/update-branch — the sanctioned base sync (rest-channel.md:49) runs as bare REST and authors the merge commit under the seat's personal account (PR #22002 head fab444b4) #22052 (held) touchesfleet-write/ops.mjsand must exportrelayMissProbefrom any new sender when its hold lifts.scripts/pm/dispatch-gates.mjs: FROZEN (ruling 208 R6); its unfreeze-and-split is W3 on program(pm): rule-text diet and guard-script split for the skills lane — 3,020 lines of skill text, 126k lines of pm scripts (two files 65k), 58 commits in two weeks; plus a body section-patch door and template files for seat writes #22060 (held)..claude/skills/pm-dispatch/SKILL.md·references/*.md·.claude/agents/os-dev.md: FREE. Every other file of the lane: FREE. objectui: every file FREE.Notes
references/lanes/skills.md; content writes only throughscripts/pm/post-stamped.mjs(--repo=owner/namewith=;--ack-through=IDfrom the LAST comment page for a body refresh; every minute stamp must be{{NOW}}or{{WAS:…}}, aWASlater than the act's clock is refused) /label-write.mjs/issue-create.mjs/close-cards.mjs(--statelessafter the state label is stripped;--no-skip-pr-referencedwhen a closed PR still references the card) andfleet-write/dispatch.mjs --actions-file(issue_patch,pr_ready,pr_draft,automerge_enable,automerge_disable,pr_request_reviewers). Route:dispatch(relayfleet-write.ymlonmain). ⛔ No MCP write. An accepted dispatch with no run is UNCONFIRMED (exit 6) — ⛔ never re-run blind; go read the card.check-expected-skips --pr Nexit 0,check-governed-merges --pr N, relaypr_ready+automerge_enable). Arm only aftermergeable_statereadsclean. Tier S = at-tier## Contract reviewPASS in seat then the same flip. Tier H (skills/**) = four-piece set (contract review on the PR, ACCEPT on the card,needs-user-decision+ 维护者速读 on the PR, review requested fromos-zhuangandhotlongvia relaypr_request_reviewers), the PR waits draft; on an authorized APPROVED the seat lands unless the approver already did (this shift they did: ready, arm, enqueue in 2 minutes); close-out is the seat's either way.check-expected-skipscan answer exit 3 ("no reading") while a check-run is still being created on the head — re-run a minute later.mode:subagent): dispatch → draft PR 25–31 min (one-file skill fixes at tier) and 71 min (anMprobe with a 30-family gate pass and a 13-minute battery); a patch round 25 min; a container restart kills in-flight subagents but leaves worktrees, the shared checkout and the scratchpad on disk — re-dispatch from the worktree, never commit its leftovers from the seat; a running process in the worktree is positive evidence. Queue latency this shift: 24–85 min.git-history.mjs touchtakes--path=FILE; the container'sghreports its token invalid while REST through the proxy works — read withcurl; claim and body text go through quoted-heredoc files; MCP multi-labellist_issuesis a UNION — RESTlabels=a,bfor AND; fetch+refs/heads/main:refs/remotes/origin/mainbeforecheck-harness-current.mjs;git merge-tree --write-tree BASE HEADanswers conflict-freedom without a worktree; the shared checkout needs onepnpm install --frozen-lockfilebeforecheck-expected-skips.mjsruns;actions/runs?branch=QUEUE_REFis unreliable — readactions/runs?event=merge_grouppages (one file per page) grouped byhead_branch; a merge-groupCIrun can concludefailurewith every jobsuccesswhen its aggregator job is never created.trig_01GFMN26Th3cBV2tXspdnDhV; a safety-net check-in is armed while PR docs(skills): objectstack-ui action examples and the SKILL.md action rows follow the ActionSchema refinements #22184 waits on reviewers. PR subscriptions: docs(skills): objectstack-ui action examples and the SKILL.md action rows follow the ActionSchema refinements #22184 (live); docs(skills): objectstack-upgrade's late-arrival example starts at the support floor #22145 spent at merge.