Skip to content
26 changes: 12 additions & 14 deletions .claude/skills/pm-dispatch/references/compile-surfaces.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
# 过滤 / 谓词语义的编译面清单(references —— 按需加载)
# 过滤与谓词语义的编译面清单

出处:主文件「派发」
的过滤/谓词语义标准条款 —— 命中该条款的派发令把本清单**逐面抄进去**,PR 逐面申报。
维护纪律与派发前复核串在正文内,
一并适用:**这张表由 PR 维护、派发前先跑复核串重验,⛔ 不凭记忆抄**。
见 SKILL.md 〈派发〉的过滤与谓词语义条款;命中它的派发令逐面抄进本清单,PR 逐面申报。
维护纪律与复核串一并适用:这张表由 PR 维护、派发前先跑复核串重验,⛔ 不凭记忆抄。

编译面清单(逐面实测 @ `main` `48f98b0`,2026-08-07):
编译面清单(行号每天在动,派发前按下方复核串重验):

| # | 面 | 落点(file:line) | 备注 |
| --- | --- | --- | --- |
Expand All @@ -15,12 +13,12 @@
| 4 | service-analytics filter-normalizer | `packages/services/service-analytics/src/strategies/filter-normalizer.ts:1235`(`lowerAnalyticsWhere`) | analytics / cube 侧 |
| 5 | `formula` | `packages/formula/src/matches-filter.ts:73`(`matchesFilterCondition`) | RLS 写侧 `check` 与公式求值;JS 两值语义的基准面 |
| 半面 | objectql `having-filter` | `packages/objectql/src/having-filter.ts:92` / `:98`(`applyHaving` / `matchesHaving`) | 聚合**后**过滤。算半面是因为词表是子集,**但申报义务不打折** —— 它是**唯一没有 conformance 表覆盖的面**(`FILTER_LOGIC_CASES` 不驱动 HAVING 路径),所以漏了它连门禁都不会红 |
| 已解冻 | `driver-memory` / `driver-mongodb` | `packages/drivers/driver-memory/src/memory-matcher.ts:134`(`checkCondition`)、`packages/drivers/driver-mongodb/src/mongodb-filter.ts:700`(`translateFieldOperators`) | 2026-08-05 投入冻结,**2026-08-11 两条裁决解除** ⇒ 「不在范围 + 冻结指令」作废,按普通面申报 |
| 已解冻 | `driver-memory` / `driver-mongodb` | `packages/drivers/driver-memory/src/memory-matcher.ts:134`(`checkCondition`)、`packages/drivers/driver-mongodb/src/mongodb-filter.ts:700`(`translateFieldOperators`) | 冻结指令与不在范围的旧判定均已作废,按普通面申报 |

**这张表本身由 PR 维护 —— 与域表同一纪律
** 增删一面(新驱动、新求值器、某面被合并或退役、冻结状态变化)的那个 PR 顺手改这里,
不留给下一次裁决重新数。清单**会**过期是必然的,清单**没有维护者**才是缺陷

⚠️ 派发前复核一遍再抄,⛔ 不要凭这张表的记忆填派发令:本仓的包路径搬过家(驱动进
`packages/drivers/`、服务进 `packages/services/`),行号更是每天在动。一条够用的复核串:`grep
-rn 'matchesFilterCondition\|buildWhereSQL\|compileScopedFilterToSql' packages --include=*.ts | grep -v node_modules`。
增删一面的那个 PR 顺手改这里,不留给下一次裁决重新数
触发增删的四种事件:新驱动、新求值器、某面被合并或退役、冻结状态变化
清单会过期是必然的,清单没有维护者才是缺陷
派发前复核一遍再抄,⛔ 不凭本表的记忆填派发令:包路径搬过家,行号更是每天在动。
一条够用的复核串:
`grep -rn 'matchesFilterCondition\|buildWhereSQL\|compileScopedFilterToSql'
packages --include=*.ts | grep -v node_modules`。
32 changes: 15 additions & 17 deletions .claude/skills/pm-dispatch/references/lanes/cli.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,29 @@
# 车道岗位说明:domain:cli(references/lanes —— 座位贴指针指向本文件)
# 车道岗位说明:domain:cli

岗位说明版本化于此,升级走技能 PR;现值状态恒在座位贴,⛔ 不迁入本文件
见 SKILL.md 〈座位贴协议〉;本文是本车道岗位说明,现值状态恒在座位贴,⛔ 不迁入本文

## 范围

- `packages/cli`、`runtime`、`verify`、`qa`、`types`、`packages/rest`、
`packages/mcp`、`packages/observability`、`packages/client*`、
`cloud-connection`、`create-objectstack`、`packages/adapters/*`、
`plugin-hono-server`、`plugin-dev`。
- 红线:按落点判归属 —— 标题挂 cli 而落点在别包的卡只上报误标不改签;
`packages/spec` 恒归 spec 座位;`/meta` 路由**本体**归本席,元数据格式/接受面归
`domain:spec`。
- 红线:按落点判归属 —— 标题挂 cli 而落点在别包的卡只上报误标,⛔ 不改签。
- `packages/spec` 恒归 spec 座位
- `/meta` 路由本体归本席,元数据格式与接受面归 `domain:spec`。

## 常设承诺

- **PR 侧绿 ≠ 队列侧绿**;队列分支读法与边界在 platform-readings(条目名
`main/pr-{number}-{parent sha}`,parent sha 可重建队序;⚠️ ref 在出队后滞留)。
- `dispatch-gates.mjs` 只报**路径推导**的地板 —— 条款②从卡**内容**判且优先于它;已知盲
区:它不点名 `pnpm lint` 族 ⇒ 本车道派发令恒补一句「跑 `pnpm lint`」。
- ⛔ 永不削弱门禁 —— 棘轮上跳是门禁在报你的改动有缺陷;规则文案里自带的逃生舱只用
于它描述的那种情形。
- PR 侧绿不等于队列侧绿;队列分支条目名、队序重建与出队滞留住 `../platform-readings.md`。
- `dispatch-gates.mjs` 只报路径推导的地板,条款②从卡内容判且优先于它。
- 已知盲区:它不点名 `pnpm lint` 族 ⇒ 本车道派发令恒补一句跑 `pnpm lint`。
- ⛔ 永不削弱门禁:棘轮上跳是门禁在报你的改动有缺陷。
- 规则文案里自带的逃生舱只用于它描述的那种情形。

## 席内判断

- **探针的 baseline 也是测量**,而且是没人复查的那个 —— 判据恒读命中行本身,⛔ 不
读命中数;断言「文本被删」的探针要锚在消失的那段上(被删串的前缀在删除后仍然幸
存是构造使然)。
- 静默时长是**发探针**的门槛,永不是判死的(本车道实测基线:派发 → draft PR ≈
35–50 分钟);分支无提交 + SendMessage 探针便宜,且实测能复活假死的 dev —— ⛔ 永
不往可能活着的 worktree 派第二个 agent。
- 探针的 baseline 也是测量,而且是没人复查的那个 ⇒ 判据恒读命中行本身,⛔ 不读命中数。
- 断言文本被删的探针要锚在消失的那段上:被删串的前缀在删除后仍幸存是构造使然。
- 静默时长是发探针的门槛,永不是判死的门槛;基线自本车道实录,⛔ 不写成常数。
- 分支无提交加 SendMessage 探针便宜,且能复活假死的 dev。
- ⛔ 永不往可能活着的 worktree 派第二个 agent。
51 changes: 25 additions & 26 deletions .claude/skills/pm-dispatch/references/lanes/devx.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,38 @@
# 车道岗位说明:domain:devx(references/lanes —— 座位贴指针指向本文件)
# 车道岗位说明:domain:devx

岗位说明版本化于此,升级走技能 PR;现值状态恒在座位贴,⛔ 不迁入本文件
见 SKILL.md 〈座位贴协议〉;本文是本车道岗位说明,现值状态恒在座位贴,⛔ 不迁入本文

## 范围

- `packages/lint`、`packages/sdui-parser`、`content/docs/**`、`apps/docs`、
`scripts/`(门禁类)、`.github/workflows/`(门禁接线)、`.githooks/`、
`examples/**` 测试基建面、`docker/README.md`。
- objectui 的本域面同辖:`.github/`、`scripts/`、构建/发布管线与门禁工具(objectui 卡三流分流,判
据见 SKILL.md 多仓协调)。
- 边界:守护 skills 的门禁脚本在 `scripts/` 下时归本席 —— 判据是**被改文件的路
径**,SUBJECT 例外与 spec 三面切分在 SKILL.md 域车道表;`.claude/workflows/`
≠ `.claude/skills/`;**范围内的文件 ≠ 范围内的卡**,归属按卡的 `domain:*` 判,反向亦然(本席卡
的落点溢进他席文件面时,由此产生的人工合并等后果照单接受)。
- objectui 的本域面同辖:`.github/`、`scripts/`、构建与发布管线、门禁工具。
- 边界:守护 skills 的门禁脚本在 `scripts/` 下时归本席,判据是被改文件的路径。
- SUBJECT 例外与 spec 三面切分在 SKILL.md 域车道表;`.claude/workflows/` 不是 `.claude/skills/`。
- 范围内的文件不等于范围内的卡:归属按卡的 `domain:*` 判,反向亦然。
- 本席卡的落点溢进他席文件面时,由此产生的人工合并等后果照单接受。

## 常设承诺

- `content/docs/releases/**` 是 release-owned,恰两条通道:完整性缺口逐卡批准
(⛔ 不构成先例);事实错误走专用 docs-only PR。发布页作用域只管 v16 及以后
- ⛔ 不做任何发布动作,含改根 `version` 脚本链;**能点绿的门禁不等于该点绿**
- governed 面 PR 照 SKILL.md「ACCEPT 之后的路径分叉」执行(⛔ 此处不另抄);设计如此的红门禁必
须在 PR 上说明红因并声明不修。
- changeset 按 publish 面判:根 `scripts/` / docs / test-only ⇒ `skip-changeset`;
落进已发布包的源 ⇒ 真 changeset;**收窄接受集**须 lint+spec 双侧语义登记,尤须
慎重
- `content/docs/releases/**` 是 release-owned,恰两条通道;发布页作用域只管 v16 及以后。
- 通道一:完整性缺口逐卡批准,⛔ 不构成先例。通道二:事实错误走专用 docs-only PR。
- ⛔ 不做任何发布动作,含改根 `version` 脚本链;能点绿的门禁不等于该点绿。
- 受管面 PR 照 SKILL.md 〈复核〉的路径分叉执行,⛔ 此处不另抄
- 设计如此的红门禁必须在 PR 上说明红因并声明不修。
- changeset 按 publish 面判:根 `scripts/`docstest-only ⇒ `skip-changeset`
- 落进已发布包的源 ⇒ 真 changeset
- 收窄接受集须 lint 与 spec 双侧语义登记,尤须慎重

## 席内判断

- **卡片正文冻结在立卡那一刻**,而本仓刻意把裁定/更正/`Blocked-by:` 放在评论里 ——
超过一天的卡,正文是页面上最不当前的东西;先读晚于正文的评论再判可派性。
- **量具在共享 checkout 上会静默说谎**:读内容用 `git show origin/main:` 带路径,跑脚本必须在自
己的 worktree,复核 diff 用具名 ref,⛔ 不用 `FETCH_HEAD`(它是共
享的,会被别的 agent 的 fetch 在两条命令之间冲掉)
- **门禁的自述必须为真** —— 理由为假的门禁比没有门禁更坏(下一个读者会相信某风险
已被覆盖);新门禁靠**故意复现伤害**自证,语料已被修干净时加反空转肢(某个面读
不出具名 pin 即判失败),⛔ 让枚举静默退化成 no-op。
- 派发词给出的实测值必须同时给「自己重测」的指令(PM 清单会错,dev 重推导是兜
底);先例给的是「怎么想」,不是「怎么改」
- 卡片正文冻结在立卡那一刻,而本仓刻意把裁定、更正与 `Blocked-by:` 放在评论里
- ⇒ 超过一天的卡,正文是页面上最不当前的东西;先读晚于正文的评论再判可派性。
- 量具在共享 checkout 上会静默说谎:读内容用 `git show origin/main:` 带路径
- 跑脚本必须在自己的 worktree;复核 diff 用具名 ref,⛔ 不用 `FETCH_HEAD`
- `FETCH_HEAD` 是共享的,会被别的 agent 的 fetch 在两条命令之间冲掉。
- 门禁的自述必须为真:理由为假的门禁比没有门禁更坏,读者会相信某风险已被覆盖。
- 新门禁靠故意复现伤害自证;语料已被修干净时加反空转肢,某面读不出具名 pin 即判失败。
- ⛔ 不让枚举静默退化成 no-op。
- 派发词给出的实测值必须同时给自己重测的指令:PM 清单会错,dev 重推导是兜底。
- 先例给的是怎么想,不是怎么改
Loading
Loading