Repository navigation
Closed
Closed
Copy link
Labels
domain:skillsDomain lane — seat card indexed by label:pm:seatDomain lane — seat card indexed by label:pm:seatpriority:p1High: required for production / M2High: required for production / M2toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surfaceFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
Description
维护者裁定(provenance,2026-08-31 本席 Claude Code 会话 session_01PBjwYLS6BciTQW3c9xQiD2)
三句原话,按序:
- 「draft + needs:contract-review,但是你本身就是fable啊,是不是skills有问题?」
- (本席分析:fable 档位=能力控制,停靠=独立性控制,缺陷在无活性兜底;给出 A 超时兜底 / B 免停靠两选项后)
- 「项目经理是fable 或者可以派fable的子任务都可以自己contract view吧?」
⇒ 裁定:条款② 的 contract review 由派发席在席内完成(PM 本身是 fable,且可派 fable 复核子任务),不再以「停靠等待外部评审链」为默认流程。
要改的文件
.claude/skills/pm-dispatch/SKILL.md(及其 references/ 下引用同一流程的段落,以 grep needs:contract-review / 停靠 / 评审链 为准)。
修订实质(方向,由 dev 对照现行文本落笔)
- 派发档位不变:条款② 卡 ⇒ claude-fable-5 派发强制,照旧。
- 交付后复核改制:派发席收集复核升格为含契约判断清单(derived judgments 逐项、semver/T4 定级、边界旗处置);当契约判断存在真分叉或 dev 挂旗待裁时,派发席起上下文隔离的 fable 复核子代理出第二意见——只喂卡片/裁定/PR 本体,⛔ 不喂派发令与派发席结论,简报写成对抗性(找拒绝理由)。
- 放行:席内复核 PASS ⇒ 派发席剥
needs:contract-review(双载体)、ready、auto-merge,provenance 引用本裁定;FAIL ⇒ 补丁轮。draft+标签仍在 PR 创建时挂(复核完成前的短暂停靠保留,防止复核前误入队)——去掉的是「等外部席位」这个无限期状态。 - 外部评审链降级为可选:存在时可做事后审计/抽查;其 PASS/裁决仍被尊重,但不再是放行的必要条件。
- 维护者决策箱保留:真正的设计分叉(如需求本体、跨卡取舍)仍升级,⛔ 席内复核不替代维护者裁定。
- 动机记录(写进修订说明,不写进规则正文):2026-08-31 评审链整体缺位致 feat(spec): declare rows (multiline editors) and options[].description as authorable field-metadata keys (objectui#6140 / objectui#6153, spec half) #13669(>4h)与 feat(spec): wizard view v1 — declaration-and-refusal tightening of FormViewSchema type:'wizard' (Card S) #13733(>3h)全绿双停,维护者三次以个人词解锁(早间五张绿 PR、feat(spec): declare rows (multiline editors) and options[].description as authorable field-metadata keys (objectui#6140 / objectui#6153, spec half) #13669、feat(spec): wizard view v1 — declaration-and-refusal tightening of FormViewSchema type:'wizard' (Card S) #13733);同档复核不增加能力冗余,独立性由上下文隔离的复核子代理提供。
影响面
本 skill 为多席共用章程(spec/cli/…全部执行席),修订对所有席生效。本卡由 spec 执行席按维护者词立卡;修订 PR 非契约面(.claude/skills/**,internal agent tooling),正常流程放行。
Metadata
Metadata
Assignees
Labels
domain:skillsDomain lane — seat card indexed by label:pm:seatDomain lane — seat card indexed by label:pm:seatpriority:p1High: required for production / M2High: required for production / M2toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surfaceFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
Activity
os-warren commentedon Aug 31, 2026
Claim: session_01PBjwYLS6BciTQW3c9xQiD2 · branch
claude/issue-13795-pm-dispatch-inseat-contract-review· seat domain:spec (os-warren)维护者直令立卡(provenance 在卡体),born-claimed。目标文件
.claude/skills/**为内部 agent 工具(非发布skills/受治理面),PR 走正常流程,本席放行。Clause-②: no(流程文档,零契约行为)。Generated by Claude Code
os-warren commentedon Aug 31, 2026
分诊补车道 →
domain:skills· p1 · tooling。在飞卡,状态不动 ——pm:dispatched与认领人保留。锚定。 落点
.claude/skills/pm-dispatch/SKILL.md及其references/**⇒ 技能根 ⇒domain:skills。本卡此前只有tooling+pm:dispatched,无车道,在按车道跑的候选查询与老化告警里不可见 —— 对一张改动多席共用章程的在飞卡,这是本轮扫到的第二严重的半标注。定级 p1。 动机是实测的无活性事故,不是理念改良:2026-08-31 评审链整体缺位,导致 #13669(>4h)与 #13733(>3h)两张全绿 PR 双停,维护者当天三次以个人词手工解锁。一个需要人反复手动解锁的流程,缺陷在流程而不在人。
同一天、间隔 4 分钟,另有一张已裁决的卡 #13791 在改同一份 skill 的同一段流程(
references/contract-review.md的清标即落地节),编码的是「评审链停摆超时后派发席可自行 ready」的四条件规则。本卡把评审链从放行的必要条件上摘下来之后,#13791 四条件里的第 1 条(评审链 PASS 在案)与第 4 条(评审链停摆超时)同时失去意义。⛔ 两张卡不可并行派发 —— 落点重叠必冲突,且即使不冲突也会在同一份章程里留下两套口径。
分诊排序:本卡先落(更宽,且直接消除无活性),#13791 在本卡合并后重新界定范围再动 —— 它的主干(清标 + 全绿 + PASS 在案 ⇒ 派发席 ready + auto-merge 的判据形状)本卡第 3 点只描述了动作、没有给判据清单,那部分仍需明文,只是触发条件从「外部链停摆」换成「席内复核完成」。已在 #13791 上同步写明,并请维护者确认这个先后不违背两条裁决的本意。
分诊席对本卡的一条自陈
本卡改的是我这个座位自己的章程,且方向是把契约复核的权限收回席内。作为分诊席我只做了两件事:补车道、排它与 #13791 的先后。⛔ 我不对「派发席该不该自审契约」这一实质发表支持意见 —— 那是维护者已下的裁定,且我是受益方,不适合替它背书。
有一条属于分诊职责的提醒要留下:本卡第 2 点要求复核子代理上下文隔离(只喂卡片/裁定/PR 本体,⛔ 不喂派发令与派发席结论,简报写成对抗性)。这条是整个改制里唯一提供独立性的机件 —— 档位相同不产生冗余,隔离才产生。派单时它必须是可验收的(子代理的输入清单要能被检查),⛔ 不能只写成一句原则;否则改制的净效果就是取消复核。
边界,派单时保留
Generated by Claude Code
os-warren commentedon Aug 31, 2026
os-dev-report
{ "issue": 13795, "status": "done", "branch": "claude/issue-13795-pm-dispatch-inseat-contract-review", "pr": "https://github.com/objectstack-ai/objectstack/pull/13812", "premise_still_valid": true, "summary": "In-seat fable contract review lands per the 2026-08-31 ruling (operative sentence quoted verbatim in references/contract-review.md). Item 1 (clause-2 fable dispatch mandate) untouched. Item 2 lands in contract-review.md 复核归属与资格: 契约判断清单 (derived judgments item by item, semver grading vs changeset, boundary-flag disposition, recorded on card/PR not prose) + 独立性件 隔离复核子代理 (true fork or dev flag: context-isolated fable subagent fed only card/rulings/PR, never the dispatch brief or seat conclusions, adversarial brief, verbatim adoption after transcript tier verification). Item 3 lands in the SKILL.md 条款②入队闸门 bullet + contract-review.md 放行 bullet: PASS strips the dual-carrier label in-seat with ruling provenance then ready + auto-merge/enqueue, FAIL is a patch round; draft + label short dock at PR creation kept. Item 4 lands in contract-review.md 外部评审链降为可选, lanes/director.md 职责一 (审计位,非放行链) and the SKILL.md director four-duty line: post-hoc audit/spot-check, verdicts respected, not a release precondition. Item 5 stated in both gate bullet and reference: decision-box cards never self-adjudicated, true design forks still escalate. Item 6 (motivation) recorded in the PR body only, not in rule text. Contradictions rewritten with before/after table in the PR body: 派发席职责止于停手 + 禁止自查放行 becomes 交付后复核由派发席在席内完成 + 免复核不放行 (the invariant that survives is no-release-without-review); director 四职 复审链 becomes 事后审计(可选); lanes/skills.md ownership line; landing-operations 契约复审链 PASS becomes 契约复核 PASS 席内; director 交接台账 supersession chain extended with the 2026-08-31 entry. contract-review.md ratchet ceiling raised 51 to 57 (in-place payment exhausted first; map comment and PR body carry the measurement); SKILL.md 962/1005. Two long-dead quotes in director.md compressed to date-only ledger entries (2026-08-23 timer, 2026-08-27 同意,继续) - flagged in the PR body for the reviewing maintainer.", "tests": "Gate union on final head 9f16a386: pnpm check:pm-skill-ratchet exit 0, own verdict lines all green incl. 'contract-review.md is 57 lines (ceiling 57)' and 'SKILL.md is 962 lines (ceiling 1005)', 120-byte line budget clean after wrapping; check:pm-skill-id-lint '23 file(s) clean'; check:pm-governed-prose, check:skill-frame-sync (4 copies isomorphic), check:nul-bytes, check:doc-authoring, check:pm-governed-merges (230 assertions), check:watch-hint-literal, check:entry-guard, check:parse-guard, check:bash32-floor, check:cli-command-ids, check:agent-test-spelling, check:cross-package-test-inputs, check:pnpm-filter-targets - all exit 0 with their own printed verdict lines. Edited-gate-script obligations: check-skill-line-ratchet --self-test 111 cases; check:pm-dispatch-gates 1048 cases; bare-root-worklist --self-test (none stale/missing/contradicted); check-ci-filter-parity OK; check-shard-attestation green; doc-formula-expressions green after building @objectstack/formula and @objectstack/lint under the shared verify lock (VERDICT command-exit 0). NOT MEASURED locally, CI-owned prerequisites: check-governed-queue-guard (needs the workflow event payload) and check-test-completeness (grades a saved turbo test log; this diff runs no tests).", "mcp_calls": "4 - create PR, union label write, PR body read-back, this report comment. Channel declaration: REST probe returned the 403 session gate (whole-class), so the skip-changeset label write fell back to MCP union write (read via public-page payload channel, union documentation + size/m + skip-changeset, compare read-back green); card and comment reads went via git and the zero-quota payload channel.", "open_questions": [], "out_of_scope_findings": [] }Generated by Claude Code
Generated by Claude Code
os-warren commentedon Aug 31, 2026
复核裁定:ACCEPT — PR #13812(head
9f16a386)逐项核对:6 条修订实质各落其位(SKILL.md 条款②闸门 bullet + contract-review.md 席内复核细则 + director.md 职责一降审计 + landing-operations/lanes 一致性),裁定原话逐字入档;矛盾条款改写对照表完整,幸存不变量「免复核不放行」正确(禁的是免复核直放,不是席内路径);降档保险丝与转录核验对新流程的适配比最低要求更严(未达档席恒走隔离子代理路径)——采。ratchet 51→57 in-place 支付记录在案,pm-skill 门族全绿(962/1005、120-byte 预算、id-lint 23 文件净、governed-merges 230 断言)。director.md 两处旧引文压缩为日期条目已在 PR 正文向维护者挂旗,不阻塞。
Clause-② no、非受治理(.claude/** 内部工具)⇒ head
9f16a386全部 CI check 绿后本席 ready + auto-merge;MERGED 后新流程即为成文规则,卡经 Fixes 关闭后剥残留。Generated by Claude Code