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: 4 additions & 6 deletions .claude/agents/os-dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,8 @@ model: opus

仓库根的 AGENTS.md 有约束力;第一次编辑前先读它。本文件只承载原则、查表数据、与钩子无
机械强制的条款;事故经验一律写成自含的教训 —— 不引用 issue 编号,维护者裁决保留日
期 +
原话。
机械强制的条款;事故经验一律写成自含的教训 —— 不引用 issue 编号,维护者裁决保留日期
(原话仅在引文本身即操作性判据处保留)。

## 六条基本规则

Expand Down Expand Up @@ -316,9 +315,8 @@ dispatch prompt 只携带每单增量(裁决引文、裁决 / PM-机制假设分
sanitizer 纪律」)。
- **触 `skills/**`(对外发布的技能包)的 diff:PR 正文报两个读数,并默认拒绝「小功能大扩
写」。** 两个读数缺一不可 —— 被改文件的**整文件** before/after,与**整包** before/after
(发布目录下全部 SKILL.md 之和);行数为准,姊妹门禁定义 token 计数后同报 token。维护者
2026-08-21 裁决,原文不译:「对外发布的 skills 是整个平台的最大价值,尤其要整体考虑和评
估。」「……不能为了一个小功能扩写很多。」派发词给的净增预算装不下 ⇒ 停下按 `blocked` 报
(发布目录下全部 SKILL.md 之和);行数为准,姊妹门禁定义 token 计数后同报 token
(2026-08-21 裁定)。派发词给的净增预算装不下 ⇒ 停下按 `blocked` 报
缺口,⛔ 不自行扩写、不自行抬预算 —— 预算是 PM 的,抬它是维护者裁决。
- **付行数棘轮的唯一合法货币是删内容。** 维护者 2026-08-17 裁「⛔ re-wrap(折行合并)
不得用作筹行 —— 棘轮治理的是内容体量,行数只是机读代理,新增以删减付账;密度优化仅随净减
Expand Down
139 changes: 57 additions & 82 deletions .claude/skills/pm-dispatch/SKILL.md

Large diffs are not rendered by default.

27 changes: 13 additions & 14 deletions .claude/skills/pm-dispatch/references/contract-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,30 @@

## 载体纪律(挂与清)

- **适用性 —— 内容肢及于 published `skills/**`**(维护者 2026-08-31 批 #12「同意」):作**可证伪的
- **适用性 —— 内容肢及于 published `skills/**`**2026-08-31 裁定):作**可证伪的
算子/契约语义主张**的改动挂标走本复核;⛔ 判据不是「提到契约」,纯算子清单、拼写、
格式不触发(标尺:10 处命中仅 3 处主张)。受管面人工合并 ⛔ 不替代复核,两道保障叠加。
- **claim 声明按设计临时(provisional)**(维护者 2026-09-01「同意」):`Clause-②: yes|no` 只定
- **claim 声明按设计临时(provisional)**2026-09-01 裁定):`Clause-②: yes|no` 只定
派发档位的保守方向,⛔ 非终审;真闸门在 PR/报告时的档位复核 —— 证据与成本在那里。
声明被档位推翻 = 机制按设计工作,⛔ 不作席位过失。
- **机械地板(同笔;claim 时可查树、无需判断)**:任何**新导出符号**或**已发布载荷上的
新键**恒 `yes`,直接锁契约复审档。**conformance 类 ⛔ 不机械化**(填充已声明字段、在两
个已发布码之间重选输入类):判别需档位判断,claim 拿不准 ⇒ **按 yes 派契约复审档**(假
yes 自纠、假 no 出货);⛔ 不建全量分类学与 claim 时决策程序(创业镜头:代价是复审轮)。
- **PR 与卡双载体同笔挂**(维护者 2026-08-22:「简化一点是否可以直接挂 PR 侧」「两边都挂好
」; PR 一存在即挂,报告先于 PR 到达则先挂卡侧、ACCEPT 时补齐 PR 侧),同笔在卡上记一行
- **PR 与卡双载体同笔挂**2026-08-22 裁定)(PR 一存在即挂,报告先于 PR 到达则先挂卡侧、
ACCEPT 时补齐 PR 侧),同笔在卡上记一行
条款②认定;停靠短暂(只防复核完成前误入队),⛔ 无「等外部席位」的无限期状态。
- ⛔ **不预挂**(维护者 2026-08-28 裁定):可复审增量存在前永不挂标,提前挂已废止 —— 前瞻
条款②事实住卡上裁决/分诊评论、`Clause-②` 申报与 `--tier` 输出;开载体恒 = 真实待审。
- **载体不迁移**(维护者 2026-08-18,原话:「中期把闸门迁到 PR review 的 Request Changes
上 我觉得没必要」): 闸门载体保持本标签,⛔ 不迁 PR review / Request Changes、不为迁移留门。
- **载体不迁移**2026-08-18 裁定): 闸门载体保持本标签,
⛔ 不迁 PR review / Request Changes、不为迁移留门。
- **重挂前先查裁决**:闸门标签缺失 ⇒ 先 grep 卡评论找复审结论 —— PASS +
无标 + head 未动 = 已清标非被剥;head 后移或无结论才重挂(`get_reviews` 读空 ≠ 未复审)。

## 复核归属与资格(席内)

- **归属:该卡派发席,交付后收集复核当轮席内完成**(维护者 2026-08-31 裁定,原话:「项目经
理是fable 或者可以派fable的子任务都可以自己contract view吧?」;沿 2026-08-21「你自己就是
Fable,自己就可以审核」的放宽 —— 审的是低档实现者的契约增量,非自身产物;主文件
- **归属:该卡派发席,交付后收集复核当轮席内完成**(2026-08-31 裁定)
(沿(2026-08-21 裁定)的放宽 —— 审的是低档实现者的契约增量,非自身产物;主文件
「⛔ 免复核不放行」禁的是免复核直放,不禁本路径)。
- **契约判断清单(收集复核的升格件,逐项落卡/PR 评论,⛔ 不是散文自述)**:① derived
judgments 逐项 —— diff 引出的接受集/公开面变化逐条点名判对错;② semver 定级 —— 变更
Expand All @@ -37,16 +36,16 @@
隔离的 fable 复核子代理**出第二意见,只喂卡片、既有裁决与 PR 本体,⛔ 不喂派发令与
派发席自己的结论(污染即失独立性);简报写成**对抗性**(找拒绝理由)。未达档席 ⛔ 不凭
自述复核,恒走本路径;子代理裁决按转录核验采信(下节),逐字采纳或整体作废。
- **放行 = 清标即落地**(维护者 2026-08-25,原话:「审核通过你应该直接负责合并吧,还要等原始
的项目经理吗」):PASS ⇒ 同席同笔剥标(双载体),清标评论引 2026-08-31 裁定作 provenance,按
- **放行 = 清标即落地**2026-08-25 裁定):PASS ⇒ 同席同笔剥标(双载体),
清标评论引 2026-08-31 裁定作 provenance,按
`landing-operations.md` 走落地前检 → 转 ready → 挂 auto-merge/入队;轮报设**复审清单**专
节(同代裁清单强制审计形状)。
- **落地前检三条**(维护者 2026-08-31「同意」):① 席内契约档 PASS 在案(卡上达档裁决评论);②
- **落地前检三条**2026-08-31 裁定):① 席内契约档 PASS 在案(卡上达档裁决评论);②
`needs:contract-review` 双载体已清;③ PR 全部 check 全绿(⛔ 非 required 子集)。② 逐对机读
`node scripts/pm/check-clause2-carriers.mjs --pair PR-NUMBER`:0 双肢可读且一致 · 4 不一致 · 3 环境答不
了 ⛔ 不作干净。转 ready 同笔留 provenance 评论引该 PASS;受管面不适用,draft-only 终局不变。
- **外部评审链降为可选**(改写 2026-08-27「契约复审也是很重要的职责,也是需要定时处理
的」所立的定时轮常设归属):分诊定时轮与总监席召唤非放行必要条件,在线时作**事后审计/抽
- **外部评审链降为可选**(改写2026-08-27 裁定)所立的定时轮常设归属):
分诊定时轮与总监席召唤非放行必要条件,在线时作**事后审计/抽
查**,其裁决仍被尊重 —— 审计 FAIL 按状态机 label-flip 交回派发席补丁轮;⛔ 不与席内复核
抢同一载体的放行动作;资格与档位硬门对审计者同样成立。

Expand Down
11 changes: 5 additions & 6 deletions .claude/skills/pm-dispatch/references/decision-analysis.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
# 决策分析写法 —— 四维从业务角度写

出处(维护者 2026-08-20 裁定,逐字,未译):「四维分析应该从业务的角度写我才好判断」
出处2026-08-20 裁定

## 适用面(边界)

- 只约束 **`needs-user-decision` 卡与决策箱讨论**的四维分析;内部工具卡(dev 派发用)的四维照
旧,不强加行业类比。四条轴本身不变,轴定义与绑定句在主文件「升级与决策」。
- 只适用新记录,存量分析 ⛔ 不回改(new-records-only,与四维中文化同款先例)。

## 常设决裁批流程(2026-08-26 裁;裁决原话与归席见主文件「升级与决策」)
## 常设决裁批流程(2026-08-26 裁;归席见主文件「升级与决策」)

- 每批**恰好 5 张(末批不足照呈),呈完即停等回批**(2026-09-01
裁「每批5张详细解释,不是这样一堆列给我,这个也要写入skills」),⛔ 永不一条消息投多
- 每批**恰好 5 张(末批不足照呈),呈完即停等回批**(2026-09-01 裁定),⛔ 永不一条消息投多
批;批序:在飞被阻塞 > 运营阻塞 > 用户可见 > 结构性;每卡 = 六项写法 + 四棱块;回批一行
式「1A 2B …」,「X, 但…」= 附带条件随执行落地;裁后四件原子执行不再请示,一口气跑
完;批间新入箱的卡滚入下一批,收件箱读数为零才收工。
Expand Down Expand Up @@ -45,10 +44,10 @@
构、响亮拒绝优于静默容忍);④ 创业阶段不扩散(remove 优于 declare-and-maintain,每个已声明的键
都是永久义务);一行推荐 + 字母选项(A/B/…);**一行强制置信缺口(「本分析看不见什么」)**。
四棱行同受六项约束:每行论据从业务立场写,机制名词只作括号补充。
**四棱分歧推荐序**(2026-08-27「tong y 4」):②实测拉动⇒荐①长远终态;零拉动⇒荐④不扩散;
**四棱分歧推荐序**2026-08-27 裁定):②实测拉动⇒荐①长远终态;零拉动⇒荐④不扩散;
③破余下平局向响亮/结构;安全与难逆恒人工;⛔ 只排推荐,分歧照旧升级、代裁面不扩。
**①长远权重下限**(2026-09-01 裁「四维分析中,长期合理应该权重最高,至少50%」):①恒
≥50%,推荐以①领起,其余各轴合起来投不翻①;①按本义读(缩小而非扩大特例/契约增生),⛔
不据它为投机扩张背书;⛔ 只排推荐不授权 —— 50% 不把人工地板的事变成可派发的事。
**应用仓推荐序特例**(2026-08-31 裁「既然是平台缺陷,就应该等待平台处理」):阻塞源是平台
**应用仓推荐序特例**2026-08-31 裁定):阻塞源是平台
缺陷 ⇒ 恒荐等待,⛔ 不荐绕行(形状容错/复刻平台规则)、不荐劈半落地。
37 changes: 15 additions & 22 deletions .claude/skills/pm-dispatch/references/dispatch-runbook.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,29 @@
# 派发与收集运行细则(references —— 按需加载)

出处:主文件(原则与条款住那里);本表只放细则增量 —— 原话、参数、模板、步骤 ——
在对应操作那一刻查阅;⛔ 不引用 issue 编号。
出处:主文件(原则与条款住那里);本表只放细则增量 —— 出处日期、参数、模板、步骤
—— 在对应操作那一刻查阅;⛔ 不引用 issue 编号。

## 车道取卡全序与 `pm:blocking`(维护者 2026-08-13)

出处(逐字,未译):「被依赖的卡片是不是应该通过label标注提高优先级。
项目经理处理任务清单时,bug 是不是应该提高优先级。」
出处(2026-08-13 裁定)。
全序本体与 `pm:blocking` 推导在主文件;
补遗:级序理由一行 —— p0 是显式裁定,blocking 一张挡多张,bug 是已坏的不变量、先于增强,
卡龄防饿死;写入与摘除都在分诊轮 sweep,依赖者全关即摘,手工挂上的按误标处理、
sweep 对着索引校正;种子与消费者注记在 `scripts/pm/ensure-pm-labels.sh`。

## 紧急卡 fable 直接分诊(维护者 2026-08-13)

出处(逐字,未译):「对于比较紧急的卡片,是否应该使用 fable 5 子agent直接分诊」
出处(2026-08-13 裁定)
触发、授权面与同格式同效力在主文件;补遗:授权面不含派发(⛔ 不写码、不认领、
不派发);单一生产者纪律照旧(与「代扫」同界)—— 分诊座位在班且已在处理同卡即让行;
紧急通道改的是节奏,不是生产者数目。**半状态治愈积压排序**(维护者 2026-08-19「没有切换
label,导致挂了很久」;排序规则本体在主文件):限量 + 最新优先会令最老半状态结构性饿死,
紧急通道改的是节奏,不是生产者数目。**半状态治愈积压排序**2026-08-19 裁定)
(排序规则本体在主文件):限量 + 最新优先会令最老半状态结构性饿死,
活过一个 sweep 周期的半状态是治愈环自身的缺陷,不是库存;正文自报 P0/data-integrity
的命中即走本节紧急通道;机械年龄告警在半状态巡查脚本(细节以脚本头为权威)。

## 发现分诊轮细则(维护者 2026-08-13 / 08-25)

出处(逐字,未译),同日三段:「Finding 很多,是否建议集中分诊」…「按照你的建议」
= 域分批集中轮常设授权;「还有这个积压时常态,是否应该优化。」= 结构修复令;
「积压数字本身有误导 —— 47 张里大半是带重启条件的健康 hold(它们本来就该躺着),
那为什么标 finding」= 状态语义裁定。
出处(2026-08-13 裁定),同日三段:域分批集中轮常设授权;结构修复令;状态语义裁定。

- **状态转换机制**(「finding 恒 = 待首次定级」在主文件):定级出 hold
⇒ 同笔 `finding` → `pm:on-hold`(域标签保留;hold 评论照既有纪律带日期/理由/具名重启条件,
Expand Down Expand Up @@ -68,7 +64,7 @@ fire 附带一次:

## 分诊席读数成本三则(维护者 2026-08-20)

出处:三方讨论后维护者「立卡」;实测数百评论座位贴每轮全文重读数千 token。
出处(2026-08-20 裁定);实测数百评论座位贴每轮全文重读数千 token。

- **收班简报索引化**:四段模板 —— 首行机器判据(「分诊轮收尾」
起始标记,**逐字不动**,互斥守卫靠 grep 它)+ 索引表(卡号 | 一行判决)+ 健康指标 +
Expand All @@ -86,7 +82,7 @@ fire 附带一次:

## 分诊两级盘点细则(维护者 2026-08-20)

出处原话逐字住主文件「两级盘点」条。实测全量四仓 ~50k token/轮,
出处住主文件「两级盘点」条。实测全量四仓 ~50k token/轮,
`since` 等价 ~8k。小时层三读法:sweep 析取①②③ = `list_issues` + `since`(标签变更刷新 `updated_at`,
半标注照样入窗);解锁扫描反演 = 逐仓 `state=CLOSED` + `since` 与 `Blocked-by:` 反向索引求交,
命中走既有回队双查;健康指标 = 逐标签 `perPage: 1` 只读 `totalCount` ——
Expand All @@ -99,14 +95,13 @@ fire 附带一次:

## 落卡与裁决记录细则(维护者 2026-08-13)

出处(逐字,未译):「还有很多我发现分诊或者决裁后没有改状态,
这个也是问题」…「这个也需要更新项目经理技能」。实测:一张决策卡三个叠加半状态。
出处(2026-08-13 裁定)。实测:一张决策卡三个叠加半状态。

- **裁决记录四件补遗**(四件本体在主文件;原子、记录座位全责、维护者裁与代裁同规):
① 鲜度门可内联声明分歧代替调和正文,对过期正文记录的裁决按过期论。
- **出决策箱须引可取回的裁决 id**:把卡转出 `needs-user-decision` 的那一笔,评论须带台账条目
或卡上裁决评论的 comment id,且该 id **同趟取回过** —— 取这一下就是判据(两载体皆合
法:2026-08-31 裁「其他同意」定存在性归总监席每场台账,卡上评论为详注);⛔ 时间戳 + 回忆
法:2026-08-31 裁定)存在性归总监席每场台账,卡上评论为详注);⛔ 时间戳 + 回忆
不是引用,带 id 不等于可取回(两形实测:事后 404 的真 id、凭印象写出的假 id)。读侧对
称:决策复读命中无可取回 id 的出箱按**未裁**处理 —— 同笔转回、⛔ 不派;结论只落可核
性,⛔ 不断成因。
Expand All @@ -125,13 +120,12 @@ fire 附带一次:
base + PR 号,⛔ 永不用 PR head:分支一删 object 即不可达,而块读着仍可重放;PR head 确是主体时
明说,并把**输入本身**(diff 或改动 hunk)记在旁边,使运行无该 object 也可重建;② 同理**锚内
容、不锚位置** —— 行号随文件生长而漂,取症状字符串或独特标识符。
- **行文纪律**:
出处一行(日期 + 原话);实测叙事至多压成一行 —— 故事住在卡上,不进操作文本。
- **行文纪律**:出处一行(日期;原话仅限操作性判据);
实测叙事至多压成一行 —— 故事住在卡上,不进操作文本。

## 结论当轮执行(维护者 2026-08-14)

出处:维护者裁(逐字,未译)
「现在开工派发」;当日实测是成批「建议关闭」复测结论与结论表躺置多日无人执行。
出处(2026-08-14 裁定);当日实测是成批「建议关闭」复测结论与结论表躺置多日无人执行。

- **结论产生的那一轮就执行它。** 复测/审计/裁决得出结论而不在同一轮完成对应的关闭
/换标写入,本身就是半状态,与半状态家族同列 —— 记录后离场(record-and-walk-away)
Expand Down Expand Up @@ -191,8 +185,7 @@ subagent 批之前先快进:`git -C <repo-root> pull --ff-only origin main`;检

## 跨车道简单阻塞项直接接手(维护者 2026-08-13)

出处(逐字,未译):「如果当前任务依赖其他赛道的任务,
如果判断简单,是否可以直接接手而不必持续等待」。判据与认领纪律(含 `Claim:` 拼写)
出处(2026-08-13 裁定)。判据与认领纪律(含 `Claim:` 拼写)
在主文件;补遗:只覆盖「等一周 vs 做十分钟」的形状;`packages/spec` 恒归 spec 座位,
本条不豁免(唯一所有者规则更硬);「借调」墓碑在主文件多仓协调 4 —— 判据是依赖形状,
只做被本车道开卡 `Blocked-by:` 点名的那一个阻塞项,做完即回,⛔ 不顺手接第二张。
Expand Down
4 changes: 2 additions & 2 deletions .claude/skills/pm-dispatch/references/landing-operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,11 @@ job 结论,绿即转 ready + 挂 auto-merge,未绿阶梯重挂;CI success webhoo
触发条件是卡终局且报告已收复核,⛔ 合并前不归档(活会话是 dirty 自救的执行手;误归档可
unarchive,但容器现场已失,宁晚勿早);暂停/交接把在挂订阅清点进座位贴,⛔ 不留孤儿订阅。

**main-red 事故两条约定**:① **p0 fix-forward 允许跳队**(维护者 2026-08-25「同意」):main
**main-red 事故两条约定**:① **p0 fix-forward 允许跳队**2026-08-25 裁定):main
红的止血 PR(p0、机械、根因已核实)可跳队(GitHub 队列自带 jump-the-queue),或按既有
governed 例外由维护者人工直合一行修复 —— 排在事故自己堵住的队列后面是具名反模式;
仅限 main-red 修复,⛔ 不放宽其它任何 PR 的 queue-only 落地。
**一个失败 check 只锚一张卡**(维护者 2026-08-25「同意」):main-red
**一个失败 check 只锚一张卡**2026-08-25 裁定):main-red
事故按失败 check 名锚一张卡,先立者赢;后见者把读数评论到锚卡上,⛔ 不另立。

## C. 依赖前棒才能转绿的 PR:draft 停放 + 签名级预期红清单
Expand Down
Loading
Loading