Repository navigation
chore(agents): pm-dispatch / os-dev 纪律修订——用本周期三起真实事故固化认领、查重、标签与验证方法论 #5166
Copy link
Copy link
Closed
Labels
Description
维护者已批准(2026-08-04)。改动仅限 .claude/ 下两个文件,不碰产品代码。
目标文件
.claude/skills/pm-dispatch/SKILL.md(PM 纪律).claude/agents/os-dev.md(开发纪律)
PM 侧新增(pm-dispatch)
A. 认领协议——三个 worked example(素材在各 issue 评论链,agent 自取)
- rest: filterAppForUser treats app hidden flag as builder-only access gate — built-in account app returns 404 for all normal users #4829(选单前必须读完全部评论):PM 只读正文就建议删"隐藏访问门"并派发;评论区里有维护者 2026-08-03 的"暂缓处理"记录,且该门是 Accepted 的 ADR-0045 §3(4 条 pin 测试)。规则:评论区是裁决的落地处,跳过它等于跳过裁决。连带:限流时不允许"先 assign、评论稍后补"——认领 = assign + 含 session ID 与分支的评论,成对原子落地。
- Validate Package Dependencies 再次全线红:fast-uri / hono / undici 新 OSV 公告 —— 队列级阻塞,与 #4945 同型 #5039(立单前必须查重):未搜索即为 OSV 公告立单,
Validate Package Dependenciesis red onmain— 8 FIXABLE OSV advisories (undici / hono / fast-uri), so every PR inherits a red required-ish check #5032 已存在且分析更全。规则:立单前按关键词/CVE 号/包名/报错串各搜一遍。 Validate Package Dependenciesis red onmain— 8 FIXABLE OSV advisories (undici / hono / fast-uri), so every PR inherits a red required-ish check #5032(assign 后、动手前重读评论区):认领评论晚落 20 秒撞车。所有 agent 共享一个 GitHub 身份,assignee 字段分不出"谁的",判据只能是评论里 session ID 的先后。配套让路规程:后到者让路 + 留完整交接诊断。
B. 标签纪律
pm:on-hold语义表:needs-user-decision=决定待做(不派发,可催问);pm:on-hold=决定已做、结论暂缓(不派发,不催问,等重启条件);pm:queue=可派。- 标签+评论成对落:挂
pm:on-hold必须同时留三要素评论(日期/理由/重启条件)。 pm:blocked+ 正文Blocked-by: #N;阻塞单关闭时扫描解锁。- 标签消费者原则:标签存在当且仅当有查询/门禁读它。
- 状态变更不过夜:不在"标签挂了评论没落"的混合状态下收工或限流挂起。
C. 派单措辞
Issue 正文是线索不是规格:派发词必须明示"先验证前提";premise_still_valid:false 且不出 PR 是合法产出(实证:#4832/#4250/#5047/#4930 等 6+ 例)。
Dev 侧新增(os-dev)
- 反向验证三向判据:删死代码装回去,诊断可能变红(常规)/反而增多(别名喂 COUNT,validateOrgAxisRedLines 仍留着三条 spec 合法 stack 到不了的别名分支(objects[].rowLevelSecurity / .rls / permissionSets)—— #4984 修了 sharing 那一半 #5009)/方向倒转(规则越权、schema 才是门,validateOrgAxisRedLines 读的 sharing-rule 键是 spec 拒收的:ADR-0105 D6 ① 在 criteria 路径上从不触发 #4984)——验证前先想清该往哪个方向变。
- key-vs-value 可达性判据:守"键不可达"用
unrecognized_keys,守"值判决"用完整 safeParse,判据跟着规则性质走。 - Fixture 三分法:re-spell / add-declaration / replace(fixture 钉住的正是被删的肢、判决 1→0 时整体替换,validate-rule-compilability.ts:239 也有同形的
obj.validations ?? obj.validationRules别名读法(#5017 全包 grep 的第八处,第三个文件) #5096 的 :295)。 - 消费半径扫描:按规则的消费半径扫 fixture,不按被改包边界(fix(lint): 收敛 validate-expressions / validate-security-posture 的 spec 不声明键
??别名读法 (#5017) #5046 返工:cli 包 parity fixture 用了被拒别名)。 - 工具链陷阱:
--workspace-concurrency=2放--filter前;新 worktree 先pnpm --filter '{pkg}^...' build防假红;overrides 只认pnpm-workspace.yaml;OSV override 上界不用修复版排他写法。 - 字节纪律:控制字符一律写 `` 式转义;prompt 里描述转义不粘贴字节;PR 正文避免
<+字母(sanitizer 会吃)。 - 模板是工具不是真理:报告模板不合身时明说。
验收
- 两文件修订落地,worked example 引用真实 issue 号;
- 不碰
.claude/之外任何文件;不需要 changeset(.claude/非发布包,若 CI 要求空 changeset 按仓库惯例处理); - PR 正文列出每条纪律对应的事故实证。
Reactions are currently unavailable
Activity
xuyushun441-sys commentedon Aug 4, 2026
Claim:session_018iARDqtrhQgz6fVHDeDkbQ(PM,devx/cli/identity 车道),分支
claude/issue-5166-skill-discipline-revision。维护者 2026-08-04 明示批准本单派发(停派令下的例外单)。实施交 os-dev agent,worktree 独立。Generated by Claude Code
docs(pm-dispatch,os-dev): 认领、查重、标签与验证方法论纪律修订 —— 用本周期三起真实事故固化 (objects…