Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .claude/skills/pm-dispatch/references/contract-review.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 契约复核细则(按面)

见 landing-operations.md 〈入队与落地〉的条款②闸门;本文只放复核归属与资格。
见 landing-operations.md 〈入队与落地〉的条款②闸门;本文只放复核归属、资格与等复核标记。

## 复核归属与资格(按面)

Expand All @@ -26,3 +26,11 @@
- 例外:纯重生成 head 后移原记录继续管;判据机读已提交树;PR 落 `Regen-provenance:` 行。
- ② PR check 全绿,⛔ 非 required 子集;例外:merge-base 同签名的红不计、按设计而红见 SKILL.md。
- 签名 = 失败步 + 首错行,读 base check runs 的 API ⛔ 不凭口述;主干红止血立单不变。

## 等复核标记 `needs:contract-review`

- 只作等复核标记,⛔ 不是闸门;单载体 = PR,卡上副本在规则外、不是要求。
- 挂:ACCEPT 时条款②任一肢命中而现 head 无同形 PASS 在案 ⇒ 派发席同笔挂于 PR。
- 摘:现 head 同形 PASS 在案 ⇒ 写记录的席同笔摘;PR 合并或关闭 ⇒ 派发席摘;FAIL 不摘。
- 读者 = 维护者过滤 `is:pr is:open label:needs:contract-review` 与席位巡查、交接。
- ⛔ 无 check、workflow、队列守卫或巡查脚本读它;入队只认同形记录,标记有无不改判。
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
- 路径肢 = diff 触及契约面 `packages/spec/src/**` 非测试,含 error-code-ledger、`*.zod.ts` 契约 schema。
- 声明肢 = 认领评论声明 `Clause-②: yes`,与路径无关;错误的 `no` 是可审计的假申报。
- 交付后复核按面欠 ⛔ 不按车道(五面见 `references/contract-review.md`);双肢命中即 spec 车道。
- 子代理起不来 ⇒ 复核缺席,PR 留 draft 队列外等档;唯一旁路是维护者亲审,逐次为准。
- 子代理起不来 ⇒ 复核缺席,PR 带 `needs:contract-review` 留 draft 队列外;旁路仅维护者逐次亲审
- PASS ⇒ ready、auto-merge;FAIL ⇒ 补丁轮;⛔ 免复核不放行。
- DELIBERATE CORRECTION 红(`check-empty-changeset`):同 head 达档复核 PASS 记录即确认,⛔ 不等维护者。
- 记录须点名被改 note、逐句判改写句,缺一不算;算即按 SKILL.md 三条件带红入队,门禁不改。
Expand Down
18 changes: 18 additions & 0 deletions scripts/pm/ensure-pm-labels.sh
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,24 @@ done
# would assert a kinship the paragraph above spends its length denying.
gh label create needs:pack-smoke -R objectstack-ai/objectstack -c 006b75 -d "Opt-in pre-merge pack smoke: self-declared breaking auth/audience change (see CONTRIBUTING.md)" 2>/dev/null || true

# needs:contract-review — a MARKER, never a gate; rules in
# .claude/skills/pm-dispatch/references/contract-review.md 〈等复核标记〉. The
# dispatching seat hangs it on the PR at ACCEPT when either clause-② limb hits
# and no same-form PASS is on the current head; the seat posting that PASS, or
# the dispatching seat at merge/close, clears it (a FAIL leaves it on). Named
# readers: the maintainer's PR-list filter
# `is:pr is:open label:needs:contract-review` and each seat's patrol and
# handover. ⛔ No check, workflow, queue guard or patrol script reads it — the
# queue releases on the `## Contract review` record alone.
# Restored by the maintainer's instruction recorded on #19973, verbatim:
# 「恢复 needs:contract-review,把这句原话写进一张 skills 车道的卡」 — answering a
# question that proposed a marker, not a gate. The gate role, `--pair`, the
# double carrier and the independence pair that ruling record 5770886272
# retired stay retired. Main repo only: the clause-② contract surface lives
# here. Colour bfdadc sits outside the state and red (blocked / decision)
# families.
gh label create needs:contract-review -R objectstack-ai/objectstack -c bfdadc -d "Marker only — PR awaits its at-tier Contract review PASS; no check reads it, the record decides" 2>/dev/null || true

# Routing labels exist only on the main backlog repo, and mark SEAM cards only
# (file-at-destination ruling: pure sibling-repo fixes live in the target repo).
#
Expand Down
Loading