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
pm-dispatch lanes/mobile.md: record the maintainer ruling that the mobile seat lands non-governed PRs through the merge queue #29429
Filing category ③: a direct task carrying a maintainer ruling. The ruling is recorded on objectstack-ai/mobile#160, comment 6578710331.
The ruling, verbatim
The maintainer answered three things, in the session session_01QSeKYnW1Xf6HDSWz1eGAqv on 2026-11-02:
「非受管 PR 由席位落地」. The question was: must every mobile PR wait for the maintainer's merge? Option 2 was "the seat lands non-governed PRs after ACCEPT".
「我改了配置 Allow auto-merge」
「合并对立额已经开了」, meaning the merge queue on main is on.
What the charter says today
.claude/skills/pm-dispatch/references/lanes/mobile.md, under 常设承诺, says that a merge to main runs eas-build.yml and eas-update.yml, which are treated as release actions. It concludes: 「本仓 PR 的合并恒归维护者」.
What changed on the platform (measured on objectstack-ai/mobile)
Item
State
allow_auto_merge
true
Ruleset on main
merge_queue plus required check Lint & Type Check
merge_group triggers in ci.yml and lint-typecheck.yml
Every build and publish step is skipped, because EXPO_TOKEN is unset
Ask
Amend lanes/mobile.md so the charter states the ruling and its terms. These are the terms the seat has operated under since the ruling (seat post comment above):
After ACCEPT, the seat lands a PR whose path surface is not governed and whose checks are green on the current head. It marks the PR ready and enables auto-merge, which enqueues it.
These PRs stay with the maintainer:
governed-surface PRs;
.github/workflows/** PRs, even though the register does not list mobile's workflows.
Release actions stay human: eas-submit.yml, store submission and version cuts.
Guard: before each landing, the seat reads the latest EAS Build and Update runs on main. If any build or publish step actually ran, which means EXPO_TOKEN is configured and a merge now pushes OTA to installed apps, the seat stops landing and asks the maintainer for a new ruling.
Device checks still go to the maintainer in 维护者速读. Landing does not mean device-verified.
Remove or rewrite the 「本仓 PR 的合并恒归维护者」 conclusion accordingly. The id-lint rule applies: no issue numbers in the operational text.
Who acts
The domain:skills seat. .claude/** is Tier S under the governed rules (contract-review-tier review, then the queue). The mobile seat does not edit this file.
Duplicate check (2026-11-02)
is:issue "lanes/mobile.md" in this repo returned 0 hits. The lane was registered the same day.
Read fresh. Records a maintainer ruling ([PM seat] repo:mobile — 🟢 os-justin mobile#160, 6578710331) in lanes/mobile.md: the mobile seat lands non-governed PRs through the merge queue. Governed pm-dispatch text, p2.
Claim: PM loop round 11 · 2026-11-02T18:15Z
Session: session_01J8VVAnMUWA9rufXzFaEh4J
Account: huangyiirene
Branch: claude/project-thread-am7qf2
Worktree: objectstack-issue-29429
Domain: domain:skills
Seat: domain:skills#1
File surface: .claude/skills/pm-dispatch/references/lanes/mobile.md (the 常设承诺 merge line replaced in place, line-ratchet ceiling 56 unchanged; a need beyond 56 stops and reports) (stop on breach)
Container & model: M, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate; the seat's review runs at CONTRACT_REVIEW_TIER: governed rules text), effort: high
Clause-②: no
Metadata-protocol: none
Responsibility: n/a — records a maintainer ruling (objectstack-ai/mobile#160, 6578710331)
Thread-read: 6581836449
Premise: holds. On origin/main, lanes/mobile.md line 42 still says 「本仓 PR 的合并恒归维护者」, and the file is at 56 lines, its ceiling.
Serial constraints cleared: no open PR touches the file.
Tier S (.claude/**), governed pm-dispatch text: draft PR, the seat reviews at tier and lands.
{
"issue": 29429,
"status": "done",
"branch": "claude/project-thread-am7qf2",
"pr": "https://github.com/objectstack-ai/objectstack/pull/29549",
"session": "session_01J8VVAkM2AcGbFkbZkwLezC",
"premise_still_valid": true,
"summary": "lanes/mobile.md now states ruling 6578710331 (objectstack-ai/mobile#160): the seat lands a PR that is not governed, does not touch .github/workflows/**, has ACCEPT and is green on the current head (new line 41, replacing the old line 42 conclusion; 席位落地 is the SKILL.md term carrying ready + auto-merge). Line 40 narrows the release-action line to eas-submit.yml and version cuts; line 42 replaces the EXPO_TOKEN assumption with the EAS guard (read the latest EAS Build/Update runs on main before each landing, stop and go to the decision box if any build or publish step actually ran); line 44 adds that landing is not device verification; line 7 drops the contradicting 落地窗口止于 ACCEPT 加交棒 and points at the landing line, every other PR stopping at ACCEPT plus hand-off. 56 lines, ceiling 56 untouched, no re-wrap used as ratchet currency; a separate line for the maintainer's half would have needed 57, so that half is carried by the landing line's conditions plus line 7.",
"tests": "No code changed; no test applies. No ablation: docs-only.",
"gates": "Local, head 8c094cf, exit codes captured before any pipe, list from dispatch-gates --commands: check:pm-skill-ratchet 0, check:pm-skill-id-lint 0, check:nul-bytes 0, check:skill-frame-sync 0, check:pm-governed-merges 0, check:doc-authoring 0, check:agent-test-spelling 0, check:cross-package-test-inputs 0, check:driver-memory-census 0, check:gitlink-declared 0, check:refd-timer-probe 0, check:watch-hint-literal 0, check-closing-keyword-parity 0 and --self-test 0, check-comment-mask-corpus 0, check-harness-current --self-test 0, lint check:doc-formula-expressions 0 (after building formula + lint under os-verify-lock, VERDICT command-exit 0). CI check-runs: in_progress at report time, not waited on.",
"dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
"mcp_calls": "3 — issue_read x2 (card body, card comments), pull_request_read x1 (PR read-back); no MCP write",
"api_writes": "2 — relay pr_create (POST /repos/objectstack-ai/objectstack/pulls + POST issues/29549/labels skip-changeset), this os-dev-report comment",
"open_questions": [],
"security_findings": "none",
"out_of_scope_findings": []
}
Activity
objectstack-fleet commentedon Nov 2, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: p2 ·
domain:skills·pm:queue· 2026-11-02T16:03Z⛔ Not a claim.
lanes/mobile.md: the mobile seat lands non-governed PRs through the merge queue. Governed pm-dispatch text, p2.Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J
Claim: PM loop round 11 · 2026-11-02T18:15Z
Session:
session_01J8VVAnMUWA9rufXzFaEh4JAccount:
huangyiireneBranch:
claude/project-thread-am7qf2Worktree:
objectstack-issue-29429Domain:
domain:skillsSeat:
domain:skills#1File surface:
.claude/skills/pm-dispatch/references/lanes/mobile.md(the 常设承诺 merge line replaced in place, line-ratchet ceiling 56 unchanged; a need beyond 56 stops and reports) (stop on breach)Container & model:
M,mode:thread,model: TIER_DEFAULT(dispatch-gates --tier: no path-derived mandate; the seat's review runs at CONTRACT_REVIEW_TIER: governed rules text),effort: highClause-②: no
Metadata-protocol: none
Responsibility:
n/a — records a maintainer ruling (objectstack-ai/mobile#160, 6578710331)Thread-read: 6581836449
Premise: holds. On
origin/main,lanes/mobile.mdline 42 still says 「本仓 PR 的合并恒归维护者」, and the file is at 56 lines, its ceiling.Serial constraints cleared: no open PR touches the file.
Tier S (
.claude/**), governed pm-dispatch text: draft PR, the seat reviews at tier and lands.Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
domain:skills#1 · huangyiirene · session_01J8VVAkM2AcGbFkbZkwLezC
os-dev-report
{ "issue": 29429, "status": "done", "branch": "claude/project-thread-am7qf2", "pr": "https://github.com/objectstack-ai/objectstack/pull/29549", "session": "session_01J8VVAkM2AcGbFkbZkwLezC", "premise_still_valid": true, "summary": "lanes/mobile.md now states ruling 6578710331 (objectstack-ai/mobile#160): the seat lands a PR that is not governed, does not touch .github/workflows/**, has ACCEPT and is green on the current head (new line 41, replacing the old line 42 conclusion; 席位落地 is the SKILL.md term carrying ready + auto-merge). Line 40 narrows the release-action line to eas-submit.yml and version cuts; line 42 replaces the EXPO_TOKEN assumption with the EAS guard (read the latest EAS Build/Update runs on main before each landing, stop and go to the decision box if any build or publish step actually ran); line 44 adds that landing is not device verification; line 7 drops the contradicting 落地窗口止于 ACCEPT 加交棒 and points at the landing line, every other PR stopping at ACCEPT plus hand-off. 56 lines, ceiling 56 untouched, no re-wrap used as ratchet currency; a separate line for the maintainer's half would have needed 57, so that half is carried by the landing line's conditions plus line 7.", "tests": "No code changed; no test applies. No ablation: docs-only.", "gates": "Local, head 8c094cf, exit codes captured before any pipe, list from dispatch-gates --commands: check:pm-skill-ratchet 0, check:pm-skill-id-lint 0, check:nul-bytes 0, check:skill-frame-sync 0, check:pm-governed-merges 0, check:doc-authoring 0, check:agent-test-spelling 0, check:cross-package-test-inputs 0, check:driver-memory-census 0, check:gitlink-declared 0, check:refd-timer-probe 0, check:watch-hint-literal 0, check-closing-keyword-parity 0 and --self-test 0, check-comment-mask-corpus 0, check-harness-current --self-test 0, lint check:doc-formula-expressions 0 (after building formula + lint under os-verify-lock, VERDICT command-exit 0). CI check-runs: in_progress at report time, not waited on.", "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm", "mcp_calls": "3 — issue_read x2 (card body, card comments), pull_request_read x1 (PR read-back); no MCP write", "api_writes": "2 — relay pr_create (POST /repos/objectstack-ai/objectstack/pulls + POST issues/29549/labels skip-changeset), this os-dev-report comment", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [] }