Skip to content

Commit 6952e21

Browse files
committed
fix(pm): make dispatch-gates name the repo it answers about, and refuse a contradicted --repo assertion
The tool derives gate families from the tree it runs in and never said so. Handed a sister repo's paths it returned a confident, well-formed, exit-0 answer about the wrong repo, with no tell — and four of the five repos in scope hold no copy of the script at all, so every sister-repo dispatch was exposed to it. Every derivation now opens with a banner naming the repo and commit the answer came from, and `--repo <owner>/<name>` turns a caller's expectation into a checked assertion that refuses, naming both repos, on mismatch. Paths are repo-relative, so a path's home repo is never guessed: the banner is the unconditional tell and the assertion is the mechanical one. The no-path merge-base mode is untouched apart from the banner. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MsbKEG4LtERSLaDrbehM3e
1 parent 422f997 commit 6952e21

2 files changed

Lines changed: 378 additions & 3 deletions

File tree

.claude/agents/os-dev.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,12 @@ JSON,所以终报消息就是 JSON 本身,别无其它。
137137
半归 PM,在你报告之后读真实门禁 job 结论。⛔ 这不是跳过点名族的许可 —— 它们是你仍然欠的
138138
便宜一半;你不再欠的是报告前等 CI。
139139

140+
**该脚本只住在 objectstack,答案永远只关于它自己所在的那棵树** —— 每次推导第一行(stderr)
141+
点名答案取自哪个仓与 commit,读之前先核对。姊妹仓(objectui / cloud)没有 `scripts/pm/`,
142+
把它们的路径喂到 objectstack 的检出里,得到的是 objectstack 的门禁族:形态完整、退出码
143+
0、全错;那边的清单从该仓自己的 `package.json``.github/workflows/` 手工推导。要机械保
144+
险就加 `--repo <owner>/<name>` 申报本次答案该属于哪个仓 —— 不匹配即拒绝并同时点名两个仓。
145+
140146
**仓级扫描(以 `pnpm lint` = `eslint . --no-inline-config` 扫全仓为首)是 CI 拥有的运
141147
行,永不是你欠的。** 前台上限之内跑得完就**可以**跑(轻载实测 ~2 分钟;争用下会被 cap
142148
杀,见「资源纪律」规则 6);默认交付形态是**已证明的收窄**:定向跑受影响文件,并证明这

0 commit comments

Comments
 (0)