Repository navigation
docs(pm-dispatch): refresh a PR 15+ first-parent merges behind before enqueue - #31571
Conversation
… enqueue Before arming auto-merge or enqueueing, the landing seat reads K, the first-parent count from the last green PR run's diff base to origin/main, and at K >= 15 merges main and waits for a green re-run. The locale-label refresh rule folds into it (any K), keeping its `behind` exception. The triage branches now say an unchanged head is re-enqueued only on a flake reading. Paid by deleting two lines restated in os-dev.md and the os-regen-merge.sh header. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsR2jUrbhvWATpNtktSTgj
Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsR2jUrbhvWATpNtktSTgj
|
Contract-review-claim: session_01QsR2jV5sBSzCYNEDgpYLJw · head f4544c2 · 2026-11-08T15:44:29Z Generated by Claude Code |
|
director#1 · zhuangjianguo · session_01QsR2jV5sBSzCYNEDgpYLJw Contract reviewServed-tier: ① Wanted 1: the K rule against the readings
② Wanted 2: the L28 rewriteOld: 「四分支:已知 flaky ⇒ 原样重投;已修签名再现 ⇒ ⛔ 不重投,判新问题重新诊断。」 New: 「四分支,head 未变只凭 flake 重投:已知 flaky ⇒ 原样重投;已修签名再现 ⇒ 判新问题重诊。」 The explicit ⛔ on the second branch is gone, and the question is whether the no-re-enqueue meaning survives. It does, by the lead clause and the branches that follow: with the head unchanged, the only re-enqueue the line permits is on a flake reading, and the flake reading's sole source is the signature ledger (L26) or the three facts (L30–31). A re-appearing fixed signature is judged a new problem, which is neither, so it cannot be re-enqueued under L28 until it is re-diagnosed into the new-signature branch (L30: ⛔ 不重投 unless the three facts all hold, once) or the head changes. The invariant is now stated once at the head of the four branches instead of inside one of them, and it is the card's Wanted 2 sentence (「not re-enqueued until its head changes or the ejection is read as a flake」). 117 B, one line. Holds. ③ Deletions and survivors
④ Tier, fence and the enforcement questionTier S ( ⑤ Recorded, no finding
Must-fix: none. Should-fix: none. Nit: Implemented-by: VERDICT: PASS Generated by Claude Code |
|
domain:skills#2 · zhuangjianguo · session_01QsR2jT34CXs5fCn3BDirZw 维护者速读
席位核对Head-sha:
|
Requested by Steedos · project thread
Fixes #31548
Clause-②: no
Metadata-protocol: none
维护者速读
landing-operations.md加一条入队前规则:挂 auto-merge 或入队前先数 K(末次绿 PR 跑的 diff 基座到 main 的首父提交数),K ≥ 15 就先合 main、等重跑绿再入队;原「新语种包」标签规则并入这一条(任何 K 都刷新)。另把「被踢后同 head 只在判为 flake 时才重投」写明在四分支开头。.claude/skills/pm-dispatch/references/landing-operations.mdL28 与 L33–36(新规则),以及 §A 删去的两行。node scripts/pm/check-skill-line-ratchet.mjs,预期 exit 0,该文件 102 行、无超 120 字节行。What changes
One file,
.claude/skills/pm-dispatch/references/landing-operations.md(102 → 102 lines, ceiling 102).git rev-list --count --first-parent PRBASE..origin/main, where PRBASE is the diff base the last green PR run's Test Core prints (Affected-set diff base), not that run's start time. At K ≥ 15, mergeorigin/mainand wait for a green re-run first. The docs(pm-dispatch): merge main before landing a label PR when a new locale landed under it #31536 locale-label rule is folded into the same line rather than kept as a sibling: a label PR whose PRBASE predates a new locale bundle on main refreshes at any K. Itsbehindexception (platform-readings L88) stays on the rule. The label definition line (old L34) is kept unchanged.gen:schemain MERGE state" survives atscripts/pm/os-regen-merge.sh:14-15(the script §A already names as the step authority) and.claude/agents/os-dev.md:198.baseRevmay lag; never hand-edit the anchor to force equality" survives at.claude/agents/os-dev.md:196-197.Acceptance notes
automerge_enable/ enqueue at K ≥ 15, or on an unchanged head after a deterministic red, is a new gate. Per triage (「新增门禁默认否」) that needs a decision card first; this PR only names the option..claude/**): lands after a contract-tier review of record for the head; the seat routes it.Verification
Derived gate set (
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack), run at the PR head; results in the os-dev report on the card.Generated by Claude Code