Skip to content

pm-dispatch(triage): a lane seat may self-triage at p1/p2 a card that blocks its own in-flight work on clear evidence, in triage's format, and triage reviews it each round - #27320

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-27061-lane-self-triage
Oct 28, 2026
Merged

objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-27061-lane-self-triage

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #27061
Clause-②: no
Metadata-protocol: none

维护者速读

  • 改了什么:车道席遇到一张还没分诊、却挡住自己在飞工作(认领卡、其 PR、队列落地、拆分链)的卡,可以自己先做首触、定 p1/p2 —— 前提是卡上引了具名证据(失败 check/run、复现读数或 pin 测试);记录照分诊格式贴在卡上、行首 Ruling-ref: 引你的原话,然后请分诊复审;分诊每轮逐条确认或改判,复审前席位的定级有效。SKILL.md 里「队列与级别只由分诊落笔」的两行改为指向这个例外。
  • 为什么改:你的裁决「照此执行,并立卡更新 skills」—— 规则已在 server 车道生效,写进技能文本让每个车道席读到同一段话;其它卡照旧全部走分诊。
  • 风险与回滚:只改两份协议文本(.claude/skills/pm-dispatch/**),无代码、无门禁、无发布面;回滚 = revert 本 PR。付行的四条删行各有具名的家(下表),误删与否在那张表上可核。
  • 先看:references/triage-duties.md L30–33(新例外四行)与 L24(合并行);SKILL.md L170–171(指针两行;L34 红线未动)。
  • 两分钟验证:pnpm check:pm-skill-ratchet —— 预期看到 triage-duties.md is 102 lines (ceiling 102; headroom 0) 与 SKILL.md is 319 lines (ceiling 319; headroom 0),且每条散文行 ≤120 B。
  • 需要你做的:无,席位达档复核(Tier S,.claude/**)后落地。

What changes

Two files under .claude/skills/pm-dispatch/, both already at their line ceilings; net 0 lines in each, every prose line at or under 120 bytes, no table row added (the triage-duties widest-row pin stays at 0). The card's four Wanted items and triage's own grade (6460243271, the per-round review) map onto the text as follows.

references/triage-duties.md (102 → 102). The four new lines sit directly after the main-red block (old L28–30: 紧急卡直接分诊 · main-red 锚卡由席位先立先派 · 主干全量红…首触定 p0), the file's existing "a seat acts first, triage follows" cluster, so the ⛔ p0 pointer in the third new line reads two lines up. The dispatch order suggested the 在飞/释放 block (old L75–78) and the 复审 block (L11/L16); the line the card quoted as L75 left the file before this PR, and the live analogue of the mechanism is the main-red block, so the four lines are kept contiguous there (declared as a deviation in the report).

old line new line bytes text where the deleted content lives
L24 L24 (edited) 102 → 120 「首触定级与五析取 sweep 每 fire 跑到清空,先于旧卡重验:⛔ 无每轮预算、无逐卡豁免评论。」 absorbs old L71: 「无逐卡豁免评论」 and 「先于旧卡重验」 carried verbatim; 「每 fire 定完全部未定级 finding」 was already this line's 「首触定级…每 fire 跑到清空」; the line gave up 「总量」 and the rhetorical 「清得动就多清」
L25 — (deleted) 69 「窗口耗尽未跑完的,下一 fire 从标签状态断点续跑。」 SKILL.md L68 「fire = 一次唤醒;fire 到达时上一轮未清空的接续处理,⛔ 不重开、不重排。」 and L93 「状态只经 GitHub 标签、assignee、正文行与 pm:seat 座位贴读写;循环须能从全新会话恢复。」
L31 — (deleted) 114 「无主 p0 锚卡一轮即轮报,再一轮本席贴认领行只代派止血(landing-operations.md 约定③)。」 SKILL.md L35 (红线, read in full by every seat) 「唯一例外:无主 p0 锚卡一轮即轮报、再一轮分诊只代派止血:每轮一张,复核非分诊。」 and landing-operations.md L82–84 (约定③, including 「分诊贴标准认领行」). All three landed together in commit 3af6022; this file's copy was the verbatim duplicate.
L69 — (deleted) 103 「生产者在哪是常设分诊问题:declared ≠ enforced 形状的卡先问谁在写这个字段。」 this file's 责任三问 line (now L71): 「谁的代码出险」 is "who writes this field" for that shape, and 「据答改卡范围、域与路由」 is what the answer does; lanes/server.md L35 and lanes/hotcrm.md L30 both state 「先问生产者在哪」 on the lane side; SKILL.md L314 Responsibility: first answer
L71 — (merged into L24) 94 「⛔ 不设逐卡豁免评论;每 fire 定完全部未定级 finding,优先于旧卡重验。」 see L24
— L30 (new) 119 「车道席自分诊:本车道卡挡自有在飞(认领卡/PR/落地/拆分链)且证据清楚,方可首触定 p1/p2。」 Wanted 1 (a): the trigger, the four in-flight kinds, the lane restriction (本车道卡), p1/p2 only
— L31 (new) 118 「证据 = 卡上引具名失败 check/run、复现读数或 pin 测试;记录照分诊格式贴卡,请分诊复审。」 Wanted 1 (b) and 2: the three evidence kinds cited on the card, the record in triage's format (L54/L64 of this file define it), the ask
— L32 (new) 119 「行首 Ruling-ref: 引本例外裁决原话;⛔ 不改 domain:*、不定 p0(归 main-red)、不碰人工地板。」 Wanted 2 and 3: the Ruling-ref: line (the line-initial key dispatch-runbook.md L78/L153 already defines), ⛔ domain:*, ⛔ p0 (main-red, two lines up and SKILL.md L35), ⛔ human floor (L79–85 of this file); "not blocking" and "outside the lane" are the contrapositive of L30's 本车道卡…方可
— L33 (new) 112 「分诊每轮读上轮以来新贴的自分诊记录,逐条回复确认或改判;复审前席位定级有效。」 triage's side (grade 6460243271) and Wanted 2's last sentence: the seat's grade stands until reviewed

SKILL.md (319 → 319). The two 域车道 lines that said only triage writes queue and level (old L170–171, 118 B each) are rewritten together at net 0 lines; the 红线 at L34 is untouched, as the card says.

line before (118 B) after bytes moved or dropped
L170 「domain:* 只由分诊产出,两例外:sub-issue 承父卡域、main-red 锚卡;无标签的卡 ⛔ 不得认领。」 「domain:*、队列与级别只由分诊落笔;两例外:sub-issue 承父卡域、main-red 锚卡,免审计评论。」 118 「队列与级别只由分诊落笔」 moved up from L171; 「两例外豁免」 (L171) became 「,免审计评论」 on the two exceptions; 「无标签的卡 ⛔ 不得认领」 dropped — home: SKILL.md L105 (open + 队列标签 + 无 assignee = 可派发), execution-duties.md L7 (candidates are read with labels: [domain:X], so an unlabelled card is never one) and L11 (无分诊审计评论即非候选), and the retained 「无分诊审计评论 ⛔ 不得认领」 — triage's labels and its audit comment land in one stroke (L114/L119)
L171 「预贴标签只是建议,队列与级别只由分诊落笔;无分诊审计评论 ⛔ 不得认领;两例外豁免。」 「无分诊审计评论 ⛔ 不得认领;车道席自分诊是队列与级别的第三例外,住 triage-duties.md。」 118 Wanted 4: the pointer; 「预贴标签只是建议」 dropped — home: triage-duties.md L22 (析取 ⑤ treats pm:queue/priority:* applied in the card's creation minute as untriaged, ⛔ 不凭 actor), L52 (type 立单者可预填、分诊校正), and 「只由分诊落笔」 itself

Tests

No package is touched, so there is no ① build closure and no package test suite is owed; the two files are protocol text and their tests are the gate families under Verification. No tested behaviour changed, so no ablation.

Acceptance notes

  • Placement: the four triage-duties lines are contiguous after the main-red block rather than split between the 在飞/释放 block and the 复审 block the order suggested (reason above); the seat may move L33 next to L11/L16 at zero cost if it prefers the 复审 block.
  • Ruling-ref: words: the skill text names the ruling without quoting it (the corpus carries no quotations or issue numbers; check:pm-skill-id-lint). The three maintainer lines a seat quotes on its record live verbatim on the card this PR closes, reachable from this PR and from git log -S on L32.
  • Lane charters still carry the old absolute for their own lane and are outside this card's two-file scope: lanes/skills.md L22 「本车道 finding 同走分诊席首触,⛔ 不自分诊」, lanes/spec.md L29 「findings 首触定级归分诊席,本席只供证据」, lanes/ui.md L8 「⛔ 不产 domain:*、type 与定级,分诊唯一生产」. A reader of one of those alone does not find the exception; carrier: the skills seat (its lane charters) — noted, not filed.
  • execution-duties.md L11 「无分诊审计评论即非候选」 reads unchanged on purpose: a self-triage record in triage's format is that audit comment, which is also why SKILL.md L171 keeps 「无分诊审计评论 ⛔ 不得认领」 beside the new exception.
  • pnpm --filter @objectstack/lint run check:doc-formula-expressions first answered PREREQUISITE NOT MET (exit 3: @objectstack/formula and @objectstack/lint not built — nothing measured); both were built under the verify lock (os-verify-lock: VERDICT command-exit 0 · held the lock 71s) and the gate reran at exit 0. The build changed no tracked file.
  • The shared origin/main ref moved during this run (a sibling's fetch); the derivation reads the merge base (d4427aedc) and the diff against the recorded BASE d4427aed is exactly the two files above.
  • The harness attribution reminder names a model in its trailer; the commit carries AGENTS.md's model-free pair instead.

Verification

Head f192e7d5; every run below is on that head.

node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack — stderr line 1: "gate list derived from the tree of 'objectstack-ai/objectstack' at commit f192e7d"; "change set derived from git — 2 path(s) vs merge base d4427ae of 'origin/main' and HEAD". 22 commands derived, each run with its exit captured before any pipe:

derived families — 22/22 run, every exit 0 (doc-formula after its prerequisite build)
command exit verdict line
pnpm check:pm-skill-ratchet 0 triage-duties.md is 102 lines (ceiling 102; headroom 0) · SKILL.md is 319 lines (ceiling 319; headroom 0) · SKILL.md: widest table row is 341 bytes (pin 341; headroom 0) · triage-duties.md: widest table row is 0 bytes (pin 0; headroom 0)
pnpm check:pm-skill-id-lint 0 104 file(s) clean (pattern /#[0-9]{3,}/g)
pnpm check:pm-governed-prose 0 2 instruction surface(s) name all 13 registered governed surfaces
pnpm check:skill-frame-sync 0 the one declared copy of the decision frame is internally coherent
pnpm check:pm-half-states 0 self-test: 5034 cases pass
pnpm check:nul-bytes 0 scanned 22097 text file(s) … no raw ASCII control bytes
pnpm check:pm-governed-merges 0 537 assertions … live: the real generator declared 9 output(s) and certified this tree
pnpm check:pm-expected-skips 0 206 cases pass
pnpm check:pm-label-write 0 136 cases pass across 11 batteries
pnpm check:doc-authoring 0 69 published skill files clean · 19738 customer-facing string(s) … clean
pnpm check:cross-package-test-inputs 0 31 package(s) read outside themselves, all declared
pnpm check:agent-test-spelling 0 (sweep clean; non-vacuity by --self-test)
pnpm check:gitlink-declared 0 22199 index entries -- 0 gitlink(s)
pnpm check:driver-memory-census 0 every declaration is ledgered, every ledger entry is live
pnpm check:refd-timer-probe 0 18806 source file(s) swept
pnpm check:watch-hint-literal 0 74 declaration(s) across 4 rostered name(s)
pnpm --filter @objectstack/lint run check:doc-formula-expressions 3, then 0 first run: PREREQUISITE NOT MET — @objectstack/formula is not built (nothing measured); after the lock-held build: exit 0
node scripts/check-closing-keyword-parity.mjs 0 (two oversized CHANGELOGs listed as outside the sweep's unregistered-file cutoff, as on main)
node scripts/check-closing-keyword-parity.mjs --self-test 0 40 assertions, 5 mutations … driven to red
node scripts/check-comment-mask-corpus.mjs 0 18816 files, 0 disagree, 0 unparseable
node scripts/pm/check-governed-queue-guard.mjs --self-test 0 401 cases pass
node scripts/pm/check-harness-current.mjs --self-test 0 all 26 cases passed

--ran reconciliation: exit 0 — ✓ dispatch-gates --ran: 22 derived famil(ies) accounted for — 22 run, 0 NOT-MEASURED (a DERIVED zero — all 22 recorded an exit code and none of them is 3).

Beyond the derived set: pnpm check:skill-frame-freshness exit 0 (local-only family: HEAD is 1 commit(s) behind, but the frame itself is unchanged); pnpm check:pm-record-recognisers exit 0 (297 cases + check-owed-reviews 49 cases); pnpm check:pm-dispatch-gates detached under nohup as its header requires, verdict line ✓ dispatch-gates self-test (fast tier): 1935 cases pass; 7 slow section(s) deferred with no ELIFECYCLE line in its log (its exit code was not captured — detached process); control-character self-scan of both files: 0 hits.

CI: every family above also runs in Lint & Repo Gates on this PR; the seat reads those check-runs, they are not re-run here.


Generated by Claude Code

… blocks its own in-flight work, in triage's format; triage reviews it each round

triage-duties.md (102 -> 102): four new lines beside the main-red block —
the trigger and both conditions, the evidence and record form, the
Ruling-ref line with the three prohibitions, and triage's per-round
review — paid by four deletions whose content has a home elsewhere
(the fire-continuation line, the unowned-p0 stop-bleed line, the
producer-first line, and the per-card-exemption line merged into the
run-to-empty line).

SKILL.md (319 -> 319): the two 域车道 lines that said only triage writes
queue and level now name the lane self-triage exception and point at
triage-duties.md; the 红线 at L34 is unchanged.

Claude-Session: https://claude.ai/code/session_01QSeKYmhU5KEj1nukYhp1Tg
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 28, 2026
@github-actions github-actions Bot added size/s documentation Improvements or additions to documentation labels Oct 28, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:skills#2 · os-justin · session_01QSeKYmhU5KEj1nukYhp1Tg

Contract-review-claim: session_01QSeKYmhU5KEj1nukYhp1Tg · head f192e7d · 2026-10-28T16:55Z

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:skills#2 · os-justin · session_01QSeKYmhU5KEj1nukYhp1Tg

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: f192e7d53cadaa5bc30069368a23aec1387b28bc
Local-runs: probe — the seat ran, in a detached read-only worktree of the head (no edit, no build, no network): node scripts/pm/check-skill-line-ratchet.mjs → SKILL.md 319 / 319 (widest row 341 / 341), triage-duties.md 102 / 102, exit 0; check-skill-id-lint.mjs → 104 clean; pnpm check:skill-frame-sync → ✓; pnpm check:pm-governed-prose → ✓ 13 surfaces; every added or edited line measured 112–120 B
Scope: .claude/skills/pm-dispatch/references/triage-duties.md (L24 edited; L30–33 added; old L25, L31, L69, L71 deleted) + .claude/skills/pm-dispatch/SKILL.md (L170–171 rewritten; L34–35, L68, L93, L105 cited as homes, read not reviewed) + references/landing-operations.md L82–84, references/execution-duties.md L7 / L11, references/lanes/server.md L35, references/lanes/hotcrm.md L30 (cited as the homes of deleted clauses, read on the head)

Claim line 6475239129 on this head (2026-10-28T16:58Z); no earlier record or claim on it. Read at 2026-10-28T16:58Z by the domain:skills#2 seat on the fetched head (one commit on merge-base d4427aed; origin/main has moved on to 19f49ef3 with no touch of either file): two files, +7/−7 (14 ≤ 3000; check-governed-merges --pr 27320: two .claude paths ⇒ Tier S). The claim 6474075400 served CONTRACT_REVIEW_TIER by path mandate (SKILL.md); this review is served at that tier.

① Derived judgments

  • Card 「Wanted」 1 (the exception, both conditions, p1/p2 only): new L30 「车道席自分诊:本车道卡挡自有在飞(认领卡/PR/落地/拆分链)且证据清楚,方可首触定 p1/p2。」 — (a) the four in-flight kinds the card names; (b) 「证据清楚」 spelled out on L31 as the card's three kinds (a named failing check/run, a reproduced measure, a pinned test, cited on the card); 「方可」 makes it an only-when: a card that does not block in-flight work, or sits outside the lane, cannot take this route (item 3's first two ⛔ as the contrapositive — accepted; the text says 本车道卡 and 方可). Holds.
  • 「Wanted」 2 (same record, same review): L31 「记录照分诊格式贴卡,请分诊复审」 + L32 「行首 Ruling-ref: 引本例外裁决原话」 + L33 「…复审前席位定级有效」. Holds.
  • 「Wanted」 3's remaining ⛔: L32 「⛔ 不改 domain:*、不定 p0(归 main-red)、不碰人工地板」 — the p0 pointer reads two lines up (L28–29, the main-red / queue-red p0 lines) and SKILL.md L35; the human floor is this file's L79–85. Holds.
  • 「Wanted」 4 (SKILL.md): L170 「domain:*、队列与级别只由分诊落笔;两例外:sub-issue 承父卡域、main-red 锚卡,免审计评论。」 + L171 「无分诊审计评论 ⛔ 不得认领;车道席自分诊是队列与级别的第三例外,住 triage-duties.md。」 (118 / 118 B) — the absolute now names its third exception and its home; L34 红线 untouched as the card requires. The dropped clauses have homes on the head: 「无标签的卡 ⛔ 不得认领」 → SKILL.md L105 (open + 队列标签 + 无 assignee = 可派发) and execution-duties L7 (the lane read is by domain:X label) + L11 (无分诊审计评论即非候选); 「预贴标签只是建议」 → implied by 只由分诊落笔 itself and triage-duties L22 (same-minute labels read as untriaged) + L54 (type 立单者可预填、分诊校正 — the dev's "L52" is this line, off by two). Holds.
  • Triage's seam (grade 6460243271): L33 「分诊每轮读上轮以来新贴的自分诊记录,逐条回复确认或改判;复审前席位定级有效。」 Holds.
  • The four payments, each home read on the head: old L25 (下一 fire 断点续跑) → SKILL.md L68 + L93; old L31 (无主 p0 锚卡 … 只代派止血) → SKILL.md L35 红线 exception + landing-operations.md L82–84 约定③ (round report, then the standard claim line and a stop-bleed-only dev, 每轮一张) — a duplicate the same commit 3af6022e landed; old L69 (生产者在哪) → the 责任三问 line (now L71: 谁的代码出险) + lanes/server.md L35 + lanes/hotcrm.md L30; old L71 merged verbatim into L24 (120 B: 先于旧卡重验 + 无逐卡豁免评论; 「总量」 and 「清得动就多清」 dropped — rhetoric, no rule lost). Genuine deletions, no re-wrap counted. Holds.

② Semver level

  • None owed: .claude/** publishes nothing; skip-changeset correct; Clause-②: no, Metadata-protocol: none line-initial on the PR body, matching the claim; no Skills-docs: line owed.

③ Boundary flags

  • Placement deviation accepted: the four lines sit after the main-red block (L28–29) rather than beside L75–78 / L11–16 as the order suggested — the p0 pointer then reads two lines up, which is the better reading; no move asked.
  • Hypotheses 2 and 3 of the order were falsified by measurement (the seat's L69 home was wrong; the L171-only pointer did not fit) — recorded, the dev's measured route accepted.
  • check:pm-dispatch-gates ran detached per its header; verdict line quoted, exit not captured — CI's Lint · PM dispatch-gates lane carries it; read off the head's check-runs in the ACCEPT.
  • Out-of-scope finding (protocol drift): lanes/skills.md L22, lanes/spec.md L29, lanes/ui.md L8 still state the absolute — outside this card's two files; the seat files the follow-up card (blocked by this one) and names it in the ACCEPT.
  • The commit trailer carries AGENTS.md's model-free pair, as os-dev.md directs — correct for this repo. Author objectstack-fleet[bot] through the relay; mcp_calls: 0; api_writes 2 (both relay); draft, no flip by anyone.

④ Design judgment

  • Against the maintainer's words (「影响你工作的,高优先级的,是否建议你直接分诊」 → 「照此执行,并立卡更新 skills」): the exception is narrow (blocks own in-flight work AND cited evidence), p1/p2 only, in triage's own record format with the ruling quoted, and triage re-reads every such record each round — the server lane's practice since 03:20Z is now the skill's text for every lane. Against the four-axis frame: focus (four lines, four paid, no gate, no label, no script), AI-error (the record format and Ruling-ref: make a self-triage recognisable and reviewable; the p0 and human-floor doors stay shut by name), long-run (one home for the rule, SKILL.md points at it; the charter drift is filed, not patched here). Holds. Residual: the three charter lines until the follow-up lands.

Implemented-by: claude/issue-27061-lane-self-triage
Reviewed-by: session_01QSeKYmhU5KEj1nukYhp1Tg

VERDICT: PASS

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:skills#2 · os-justin · session_01QSeKYmhU5KEj1nukYhp1Tg

维护者速读 — 席位终稿 · PR #27320 · head f192e7d5 · domain:skills#2 · 2026-10-28T17:00Z

  • 改了什么:把你 03:20Z 对 server 席说的「照此执行,并立卡更新 skills」写进技能:triage-duties.md 新增四行 —— 车道席只在「本车道卡挡住自己在飞的工作(认领卡/PR/落地/拆分链)且证据清楚(卡上引具名失败 check/run、复现读数或 pin 测试)」时可首触定 p1/p2;记录照分诊格式贴卡、行首 Ruling-ref: 引你的原话、请分诊复审;⛔ 不改 domain:*、不定 p0(归 main-red)、不碰人工地板;分诊每轮读新贴的自分诊记录逐条确认或改判,复审前席位定级有效。SKILL.md L170–171 改写为「只由分诊落笔」的第三例外并指向该文件;红线 L34 不动。四行新文本以四行删减付账(每行的家在 PR 正文表里),两文件行数不变(102 / 319)。
  • 为什么改:你的原话「影响你工作的,高优先级的,是否建议你直接分诊」「照此执行,并立卡更新 skills」—— 规则已在 server 车道生效,但技能文本仍写着绝对的「车道 ⛔ 不自分诊」,别的席位读到的是旧规则。
  • 风险与回滚:纯协议文本,无脚本、无门禁、无标签;回滚 = revert 单个 commit。三个车道章程(lanes/skills.md L22、lanes/spec.md L29、lanes/ui.md L8)仍写旧绝对句,已立 pm-dispatch(lanes): the skills, spec and ui lane charters still state the old no-self-triage absolute — point each at the triage-duties exception #27326 跟进(Blocked-by 本卡)。
  • 先看:triage-duties.md L30–33(四行新规,紧接 main-red 两行之后,p0 指针就在上两行);SKILL.md L170–171。
  • 两分钟验证:pnpm check:pm-skill-ratchet 两文件 headroom 0;grep -n 自分诊 .claude/skills/pm-dispatch/references/triage-duties.md → L30、L33 两处。
  • 需要你做的:无 —— Tier S,契约复核 PASS(6475315022)后席位按你今天的落地授权落地。
  • 席位意见:ACCEPT。四条删减之家逐一在 head 上读到;卡 Wanted 1–4 与分诊接缝逐条对上;dev 推翻了我两条机制假设(L69 之家、L171 单行指针)并以实测路线落地,属实;章程漂移不在本卡两文件内,立卡不补丁。

席位核对 — ACCEPT · domain:skills#2 · session_01QSeKYmhU5KEj1nukYhp1Tg · 2026-10-28T17:00Z

  1. 形态:draft → main,首行 Fixes #27061,Clause-②: no、Metadata-protocol: none 行首在;两文件 +7/−7(14 行 ≤ 3000);assignee os-justin;skip-changeset 正确;单 commit 于 merge-base d4427aed;作者 objectstack-fleet[bot] 经中继,mcp_calls: 0;dev 报告首行带署名(6475074083)。
  2. 前提实测:席位在取回的 head 的 detached worktree 复跑 —— ratchet ✓(319/319、341 B 行 pin、102/102)、id-lint ✓ 104、frame-sync ✓、governed-prose ✓;新行/改行字节 119/118/119/112、120、118/118;四条删减与两条弃句的家逐处 grep(SKILL.md L35/L68/L93/L105,landing-operations L82–84,execution-duties L7/L11,lanes/server.md L35、lanes/hotcrm.md L30,triage-duties L22/L54);check-governed-merges --pr 27320 ⇒ Tier S;前提更正 6474025763 在案(卡引的 L75 旧句已随 PR docs(pm-dispatch): an exhausted contract-review tier hands the review to triage, and triage tracks stale records #26771 离开)。
  3. 门禁 check-runs(head f192e7d5,本笔读数 2026-10-28T17:00Z):45 check-runs,23 success · 22 skipped · 0 in progress · 0 failure;22 个 skip 由 check-expected-skips.mjs --check-runs-json 判定全部在册,exit 0;dev 本地派生 22 族全绿(--ran 22/22)。
  4. 接受的偏差:① 四行置于 main-red 块之后而非令中建议的 L75–78 / L11–16(p0 指针就近,更好);② 3+1 行而非 3 行(枚举放不进 3×120 B);③ 令中 L69 之家与 L171 单行指针两条假设被实测证伪;④ check:pm-dispatch-gates 按其头注 detached 运行,退出码未捕获,CI 的 Lint · PM dispatch-gates 绿;⑤ 字节读数以 Buffer.byteLength 为准(令中数字含换行)。
  5. 范围外去向:filed pm-dispatch(lanes): the skills, spec and ui lane charters still state the old no-self-triage absolute — point each at the triage-duties exception #27326(三个车道章程仍写旧绝对句,Blocked-by pm-dispatch(triage): a lane seat may self-triage (p1/p2) a card that blocks its own in-flight work on clear evidence, then ask the triage seat to review #27061,Tier S,待分诊定级);Acceptance notes:无其它。Skills-docs: 不欠(kind none)。
  6. 落地条款:Tier S;契约复核 PASS 评论 6475315022(head f192e7d5,认领行 6475239129 先落);全绿即席位经中继 pr_ready + automerge_enable 落地(本班维护者「你应该按照 pm-dispatch 技能审核并落地pr」在案);MERGED 后关卡摘 pm:dispatched,pm-dispatch(lanes): the skills, spec and ui lane charters still state the old no-self-triage absolute — point each at the triage-duties exception #27326 的 Blocked-by: 解除后回 pm:queue 待分诊。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pm-dispatch(triage): a lane seat may self-triage (p1/p2) a card that blocks its own in-flight work on clear evidence, then ask the triage seat to review

2 participants