Skip to content

🟢 os-litant (session_01UjujZN219uFzBhSYfMykCd) · R39 派发中 · 上限 5 · 在飞 1 · 落地 37 · 待合 1 · 待闸门 4 #6024

Description

@claude

Sole authority for the domain:cli seat. Single writer: only the sitting PM edits the body. Read side: body + comments newer than the body's last edit. Compacted at the R39 takeover — every R37/R38 addendum is now older than this body and is archive, not current state. Durable readings appendix: comment 5350278135. Everything still live is restated here.

1. 当前 PM

Session session_01UjujZN219uFzBhSYfMykCd, identity os-litant. Took over 2026-08-26T00:5xZ on the maintainer's instruction: 「前任已交班」.

The previous holder os-trump (session_01HbG3rGVLjZStHQxHDtzJdJ) released the seat explicitly at 00:49:37Z (comment 5419019215, "Seat released", in-flight 0, six cards merged). ⛔ Nothing of theirs is left running and none of their Routines will wake this session.

⚠️ This is the seat's THIRD account, not just a third session. os-litantos-trumpos-zhuang:

In-flight ceiling 3 (maintainer 「并发降到3」/「当前任务处理完后,并发降到3」, comment 5409654386). ⛔ The R37 ceiling of 5 in the archived body is superseded.

2. 继承台账 (inherited, still live)

📌 Job description: references/lanes/cli.md — ⛔ read from origin/main, not the working tree.

  • Patrol's FIRST criterion: read half-state anchor [Half-state patrol] check-half-states live sweep — generated view (please pin) #9857, handle every H-row naming this lane, ⛔ then dispatch.
  • ⭐⭐ A contract-review verdict is recorded on the CARD, never on the PR (references/contract-review.md). The lane's single most expensive error: R34 searched the PRs, found nothing, held two green PRs 26 hours and escalated twice. General rule: a zero-hit is reverse-checked against the PROTOCOL that defines where a positive would appear — not against a term that merely exists in whatever population you searched.
  • The clause-② gate is a TIER gate, not an IDENTITY gate. Fuse (⛔ self-report is not a reading): get_session (no args) → external_metadata.last_served_model vs CONTRACT_REVIEW_TIER (scripts/pm/dispatch-gates.mjs). ⛔ session_context.model is the configured tier and is NOT a fuse input.
  • Clause ② is the CLAIMING seat's call at claim time — including against triage, and the gate is hung in the same stroke as the claim.
  • claude-fable-5 unavailable to this lane (maintainer 2026-08-20) ⇒ Clause-② cards dispatch at opus under the quota exemption, keeping needs:contract-review.
  • domain:* and type are TRIAGE's to produce. File findings unlabelled. ⛔ finding is OBSERVATION-class only — a concrete measured defect is filed unlabelled.
  • ACCEPT path fork: governed surfaces (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md) ⇒ ⛔ never flip ready / enqueue / arm; human merge is the audit record.
  • pm:retriage coexists with the existing pm:* label, ⛔ never replaces it; a pm:queue card carrying it is ⛔ skipped.
  • Seat title vocabulary is a closed set (check-half-states.mjs): 🟢 (holder MUST equal an assignee) · ⏳ vacant · /⏸️. ⛔ is not in it.

Seat rulings in force. same-package EXEMPT, same file HARD SERIAL, no region exemptionenqueued ≠ released; the MERGE (or a CLOSE) releases a serial. discretionary downgrade SPENT. landing attaches to the SESSION. ceiling 3. 家族派发 needs all five gates. #9936 Option B.
Fold vs serial: file adjacency forces a serial; only a shared question justifies a fold.

Platform readings that have cost this lane a cycle each:

  • ⚠️ A label write on a PR can ADD check runs — re-read CI after ANY label change preceding an arm (measured 38→41, 31→37).
  • A comment citing another comment must not be issued in the SAME BATCH as it — the calls run concurrently, so neither id exists when either body is written.
  • ⚠️ API rate limit already exceeded is a STATE, not a race. ⛔ Do not retry into it.
  • ⚠️ The shared verify lock is a real lane constraintqueue-timeout (exit 99) and exit 143 (container ~10-min foreground SIGTERM cap) both mean "no turn": nothing ran, and neither is a pass. ⇒ launch long locked runs detached and poll the VERDICT in-round. ⚠️ The task harness reports exit-99 tickets as "exit code 0"; the lock's VERDICT line is the authority.
  • ⚠️ issue_read get_labels REFUSES a PR number · list_issues treats multiple labels as OR · list_pull_requests can return merged: false beside a populated merged_at (pull_request_read method:get is authoritative) · search_issues in:title zero-hit is not an absence · get_status does NOT cover check runs (1 Vercel status against 41 real runs) — use get_check_runs.
  • ⚠️ Issue bodies silently strip the bare attribution footer; comments get one injected; a PR-body PATCH appends a second. The os-dev-report HTML-comment marker is stripped in issue comments ⇒ collection must also accept the literal-text first-line form.
  • Restart-when: is the exit predicate of a pm:on-hold card. A pm:queue card carrying one is dispatchable.
  • ⚠️ A scheduled check-in carries the instruction that was correct when it was written. The board outranks any timer's text. Container clock disagrees with the scheduler's ⇒ only relative delay_minutes is safe for arming a check-in.
  • A dispatch order's numbers are the first thing a dev should falsify. Keep "report what you measure, ⛔ do not reconcile" verbatim in every order; distrust the numbers beside it, including your own.
  • The FALSE GREEN is the dangerous direction. Prove the instrument produces a positive before trusting its negative — and ⛔ never reverse-check with a substring of the term under test (publish matches inside published).
  • mergeable_state: unknown is not "arm anyway" — re-read, or better, probe locally with git merge-tree --write-tree origin/main refs/remotes/pr/NNNNN. Zero quota, one command. A green PR its neighbours have overtaken gets that probe first.
  • A missing report is not evidence of missing work, and an empty git ls-remote is not either — a merged branch is deleted. Check ls-remote and the card's closed_by_pull_requests.
  • Raising a debt ledger's ceiling to absorb your own new errors is the gate-weakening floor.
  • Repo-scoped REST is 403 in this session class while /rate_limit answers ⇒ label writes fall back to MCP whole-set replace. objectstack-ai/cloud is NOT attachable from this seat (add_repo → "you don't have access"), re-confirmed at R39.

3. 热文件串行队

R39 correction to the inherited fence list. R37 handed over packages/rest/src/rest-server.ts with the queue #11473#11719#11735#11926. Read against the cards' own measured regions, only #11926 actually edits that file:

packages/rest/src/rest-server.ts — FENCED by #11926 (R39, in flight). Behind it: nothing that has been measured to need it. ⚠️ This correction is derived from card bodies, the same instrument R37 used; every R39 dev declares its actual surface and stops on breach, which is what settles it.

packages/cli/test/** spawner neighbourhood — SERIAL, ⛔ NOT a fold (gate ① fails: "no env option" ≠ "childEnv forwards NODE_PATH" ≠ "a gate over the class"). #11595 · #11464 · #11707. ⛔ Before any is dispatched, measure it file-by-file against #12294's landed diff (packages/cli/test/helpers/serve-process.ts, packages/cli/test/vitest-resolution-base-collapse.e2e.test.ts, scripts/check-test-source-alias.mjs). ⛔ Not assumed clear. #11595 additionally still owes an answer on its domain:devx face (scripts/check-cli-test-child-env.mjs).
All three are LATENT, not live. Deprioritised below live defects on that ground, ⛔ not on effort.

H17 on-hold trigger-file index touching this lane (#7898): packages/core/src/security/auth-gate.ts · packages/runtime/src/http-dispatcher.ts. ⛔ Any dispatch whose surface reaches either must stop and report before touching it.

R39 in flight (this seat, os-litant), file surfaces disjoint by construction:

card type landing surface Clause ② model
#11624 Bug packages/cli/src/utils/i18n-extract.ts · packages/lint/** · content/docs/ui/translations.mdx no opus
#11719 Bug packages/types/src/response-envelope.ts no opus
#11926 Bug packages/client/src/index.ts · packages/rest/src/rest-server.ts yes opus + gate

#11624 and #11926 both read packages/spec but ⛔ neither may edit it — a fix requiring a packages/spec edit stops and transfers to the spec seat. #11624 and #11719 share no file; ruling ① exempts same-package adjacency. None intersects the H17 index or the packages/cli/test neighbourhood.

4. 说明

Queue: 16 pm:queue unassigned (3 now claimed ⇒ 13 free). Take with the lane's full order: priority:p0 > pm:blocking > target: > type Bug > age. ⛔ 优先是排序,不是豁免.

Patrol rows handled at R39 takeover: H19 #10938 and H11 #8343 were both disposed by R37 ~15h earlier with current readings, and nothing has changed — cloud is still unattachable (independently re-confirmed) and ghcr still needs a credential this session lacks. ⛔ Confirmed rather than re-posted; re-issuing the same disposition is noise, not diligence. Both holds stand unchanged. #7898 is the H17 trigger-file index, carried into §3 as a dispatch constraint.

⚠️ The lane's structural constraint remains the contract-review chain, not throughput. This seat's fuse bars it from clearing needs:contract-review; #11926 will land ACCEPTED-and-gated. The chain is not a dead end — R37 measured #11925, #12047 and #11718 all clearing and merging through it.

Round ledger. R23 4·4 · R24 2·2 · R25 5·5 · R26 3·3 · R27 1·1 · R28 3·3 · R29 2·1 · R30 5 claimed · R31 15·13 · R32 24·22 · R33 9/10 all landed · R34 5 cards / 4 PRs · R35 8·8 ALL MERGED · R36 6 cards, 2 merged, 3 handed over, 11 dev findings · R37 (os-trump) 6 cards landed, 3 filed · R38 folded into R37's wind-down · R39 (os-litant) 3 dispatched.
⛔ Patrol heartbeats are not rounds.

Metadata

Metadata

Assignees

Labels

pm:seatPM seat registry issue - single-writer body, index = this label

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions