Repository navigation
Commit 5bd8cb1
chore(pm): delete report-only check-widening-tells.mjs and its wiring (ruling 208) (#22002)
Fixes #21959
Clause-②: no
Deletes the report-only widening-tell instrument
`scripts/pm/check-widening-tells.mjs` (6,528 lines) with all of its
wiring, under ruling 208 (report-only instruments get no dev; their only
in-flight work is deletion) and the maintainer's answer to decision
batch 2 item 2, verbatim 「同意」. ⛔ Nothing replaces it, no gate is added,
no workflow step is added.
## What changed — the full list (12 hunks in 8 files; nothing outside
them)
Line numbers are at base `6befe19c` (`origin/main` when the worktree was
cut).
| # | where (base) | before | after |
|--:|:--|:--|:--|
| 1 | `scripts/pm/check-widening-tells.mjs` | the instrument, 6,528
lines | deleted |
| 2 | `package.json:85` | the `check:pm-widening-tells` script | removed
|
| 3 | `.github/workflows/lint.yml:1324-1336` | the "Widening-tell gate
self-test" step with its 10-line comment | removed |
| 4 | `.github/workflows/lint.yml:1693` | "same split as the
widening-tell and prior-ruling steps above" | "same split as the
prior-ruling step above" (bounded in-place fix, see below) |
| 5 | `scripts/pm/measurement-claim-triage.mjs:57-62` | scope docblock
names two excluded files | names only `scripts/pm/dispatch-gates.mjs` |
| 6 | `scripts/pm/measurement-claim-triage.mjs:122-125` | `EXCLUDED` row
for the instrument | removed |
| 7 | `scripts/pm/check-half-states.mjs:1336-1339` | docblock says the
register is the instrument's `SCHEMA_PROPERTY_FORMS` | the register is
described on its own terms; no file or constant named |
| 8 | `scripts/pm/check-prior-rulings.mjs:215-217` | comment says the
instrument takes the same import | clause dropped |
| 9 | `.claude/skills/pm-dispatch/references/instrument-discipline.md:7`
| 放宽 tell(C5)由 `scripts/pm/check-widening-tells.mjs` 印 file:line,归达档复核裁。
| 放宽 tell(C5)不设仪器,Clause-② 的方向由达档复核裁。 |
| 10 |
`.claude/skills/pm-dispatch/references/instrument-discipline.md:6` |
判意图的仪器(放宽 tell、半状态巡查)… | 判意图的仪器(半状态巡查)… (bounded in-place fix, see
below) |
| 11 | `docs/audits/gate-census-2026-09.md:246` | verdict `retire` |
`retire` · **deleted 2026-10** (ruling 208; 「同意」) — row kept |
| 12 | `docs/audits/gate-census-2026-09.md:353` | retirement-list row |
same row, marked **deleted 2026-10** — row kept |
`instrument-discipline.md` stays at 12 lines (both edits are in place).
**Bounded in-place fixes beyond the dispatch's list (rows 4 and 10).**
Both are the same defect class as the card (a live sentence naming the
deleted instrument), mechanical, in a file this PR already edits, and in
the same gate family. Row 4: after row 3 the comment pointed at a step
that no longer exists. Row 10: line 6 listed 放宽 tell as an existing
intent-judging instrument. Without this edit it would contradict the
rewritten line 7 on the line below.
## Premise checks (the card body is a lead, not a spec)
- **"`check-half-states.mjs` and `check-prior-rulings.mjs` import
`SCHEMA_PROPERTY_FORMS` from it": false at base.** Probe `git grep -n -E
"(import|from|require|import\()[^;]*check-widening-tells" 6befe19`
returns exactly 1 hit, and that hit is a comment:
`check-prior-rulings.mjs:215`. The control is the same shape on
`check-half-states`. It returns 33 hits, real imports among them,
`check-prior-rulings.mjs:218` and the instrument's own `:1484` included.
Outside the instrument, `SCHEMA_PROPERTY_FORMS` appears only in the
`check-half-states.mjs:1336` docblock. The import direction is the
reverse of the card's reading. The instrument imported from
`check-half-states.mjs`, `dispatch-gates.mjs` and `regen-artifacts.mjs`,
and nothing imported from it. The "move the constant" item therefore
became rows 7–8, which rewrite the two comments. No code moved.
- **Pin, "a repo-wide grep returns only historical changelog lines":**
`git grep -n -E "widening-tells|SCHEMA_PROPERTY_FORMS"` over the whole
tree at HEAD returns 4 lines, and none is in a CHANGELOG. No CHANGELOG
ever named it. The 4 lines are: census `:246` and `:353` (marked
deleted, kept per dispatch), census `:398` (the historical drift
paragraph, deliberately untouched) and
`scripts/pm/dispatch-gates.mjs:3895`. That file is frozen by ruling 208:
its own `--self-test` is green with the instrument gone (below), so the
word stays.
## Verification (HEAD `95c510eb`, worktree `objectstack-issue-21959`)
- `node scripts/pm/dispatch-gates.mjs --self-test` → `✓ dispatch-gates
self-test: 1976 cases pass.` EXIT=0 (`nohup` + `tail --pid`)
- `pnpm check:pm-dispatch-gates` → `✓ check:pm-dispatch-gates
--self-test: the exit contract holds in all three directions.` · `✓
dispatch-gates self-test: 1976 cases pass.` · `the battery took 842.7s
on this box.` EXIT=0. It ran under `nohup` + `tail --pid`. A first
attempt inside my sequential runner hit that runner's own 540 s
per-command timeout, so it was re-run on its own, and that run is the
one recorded here.
- `node scripts/pm/check-half-states.mjs --self-test` → `✓
check-half-states self-test: 4912 cases pass.` EXIT=0
- `node scripts/pm/check-prior-rulings.mjs --self-test` → `✓
check-prior-rulings self-test: 155 cases pass` EXIT=0
- `node scripts/check-self-test-wired.mjs` EXIT=0 and `node
scripts/check-self-test-workflow-commands.mjs` EXIT=0. The three wiring
pieces went out together.
- `node scripts/check-scripts-symbol-anchors.mjs` → `3722 anchors across
281 scripts resolve` EXIT=0
- `pnpm check:pm-skill-ratchet`, `check:pm-skill-id-lint`,
`check:pm-governed-prose`, `check:pm-governed-merges`,
`check:pm-expected-skips`, `check:doc-authoring`, `check:nul-bytes`,
`check:issue-citations` → all EXIT=0
- `node scripts/pm/measurement-claim-triage.mjs --self-test` → EXIT=1
**identically at base `6befe19c` and at HEAD**. The failure in both is
`UNTRIAGED scripts/check-dts-references.mjs:74`, which predates this PR
and is unrelated to it. The report run's only difference base→HEAD is
the dropped `NOT SWEPT … check-widening-tells.mjs` line; the population
is unchanged (`88 claim(s) over 49 file(s)`). The tool is not wired into
CI.
- `dispatch-gates --commands` (no paths; change set from the merge base)
derived 82 commands. I ran all 82, plus the six the dispatch named on
top: 80 EXIT=0. **NOT MEASURED** (exit 3, `PREREQUISITE NOT MET`, no
`dist/` in a fresh worktree): `check:dts-closure`,
`check:dual-build-cjs-loads`, `check:lean-entry-closure`,
`check:sourcemap-no-sources-content`, `@objectstack/lint
check:doc-formula-expressions`. Declared narrowing: these read built
workspace packages, this diff touches no workspace package, and CI runs
them.
- `--ran` reconciliation: `✓ dispatch-gates --ran: 82 derived famil(ies)
accounted for — 77 run, 5 NOT-MEASURED (5 DERIVED from a recorded exit
3).` 0 UNRUN.
- Lint, run on the edited files only (a proved narrowing; the repo-wide
`pnpm lint` belongs to CI). `eslint --no-inline-config --format json` on
the 3 edited `.mjs` files: 3 files linted, 0 errors, 0 warnings, and
none was reported ignored, so all 3 sit inside the config's population.
Invariance: `eslint.config.mjs` never enables type-aware linting (no
`parserOptions.project`, no typed rules). Nothing imported the deleted
file. So this diff cannot move the verdict on any untouched file.
## Landing
- Governed **Tier S**
(`.claude/skills/pm-dispatch/references/instrument-discipline.md`). The
PR stays draft until the seat's contract-tier review.
- Changed lines are 6,580 (+17 / −6,563), over the 5,000 human-merge
threshold (AGENTS.md §7 class c). Almost all of it is the one deleted
file.
- `skip-changeset`: nothing here ships in any package's `files[]`
(`scripts/pm/**`, `.github/**`, `.claude/**`, `docs/audits/**`, root
`package.json` scripts).
## Acceptance notes (observed, not filed)
- `scripts/pm/dispatch-gates.mjs:3895` still lists
`check-widening-tells` among "five" live prose mentions; four remain.
The file is frozen and its self-test is green, so the mention was left.
Carrier: none.
- `measurement-claim-triage.mjs --self-test` has been red on `main`
since before this PR (`scripts/check-dts-references.mjs:74` untriaged).
The tool is report-only and unwired. Carrier: none.
- `instrument-discipline.md` has no row in
`check-skill-line-ratchet.mjs` `CEILINGS`, so no gate holds its line
count. It is kept at 12 regardless. Carrier: none.
- `.claude/skills/pm-dispatch/references/triage-duties.md:64` still
names 放宽 tell among report-only instruments whose fix cards are closed
on first touch. The rule stays true for any stray card about the deleted
file, so it was left. Carrier: none.
## 维护者速读(草稿)
**改了什么**:删掉一个只报告、不挡任何 PR 的 PM 内部检查脚本(放宽 tell 仪器,6528 行),连同它的
`package.json` 脚本行和 CI 里跑它自测的一步;再把仓里所有还点名它的地方改成不再指向一个不存在的文件(两处脚本注释、一处 CI
注释、一份工具的排除表、PM 技能的仪器纪律两行、门禁普查表两行标「已删」)。
**为什么改**:裁决 208 定了只报告的仪器在途工作只有删除;维护者在决策批 2 第 2 项答「同意」删它。它在普查窗口里零拦截,却每次
CI 都要跑自测、隔三岔五还要派人修。
**风险与代价(含回滚)**:不替换、不新增门禁;Clause-②
方向的判断回到达档复核席位手里(原本也是席位裁,脚本只是印读数)。相关自测与门禁本地均绿。回滚 = revert 本 PR 一次即恢复脚本与
CI 步。
**席位意见**:
**你要做的**:本 PR 触受管面(Tier S)且改动行数超过 5000(几乎全是删一个文件),按规则需要一次授权 APPROVED
审阅后由席位落地;无需其它动作。
## Synced: the parked red cleared (landing-operations §C, released)
This PR was parked as a draft behind PR #22016 (the OSV fix for #22013)
with an expected-red list for `Validate Package Dependencies`. The
release condition was met: PR #22016 merged into `main` as `289ff6d4`.
The seat then ran the one `update-branch` that list named: head
`fab444b4` is the merge of `main` `289ff6d4` into the reviewed head
`95c510eb`, with no file authored by anyone; the net diff against `main`
is unchanged (8 files, +17 / −6563, every added and removed line
byte-identical to the reviewed diff).
- **Checks on `fab444b4`:** 37 check-runs completed, 0 failures, 0
cancelled; the 4 skips are all in the expected-skips roster
(`check-expected-skips --pr 22002` exit 0). `Validate Package
Dependencies` is green on the fixed lockfile.
- **Contract review on this head:** PASS, comment 6025638745 (successor
to 6019414425 on `95c510eb`).
- **What remains is the Tier H terminal:** the diff is over the
5000-line human-merge threshold (`check-governed-merges --pr 22002` exit
3), so this PR stays a draft until an authorized APPROVED from
`os-zhuang` or `hotlong`; the seat then clears `needs-user-decision`,
flips ready and arms auto-merge, and the PR lands through the queue.
_Section written by the `domain:skills` seat 2 PM
(`session_0181E4ZeZmWyknawnauxD2CE`); everything above it is the dev's._
---
_Generated by [Claude
Code](https://claude.ai/code/session_0181E4ZeZmWyknawnauxD2CE)_
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Steve Jobs <steve@objectstack.ai>1 parent 93125ae commit 5bd8cb1
8 files changed
Lines changed: 17 additions & 6563 deletions
File tree
- .claude/skills/pm-dispatch/references
- .github/workflows
- docs/audits
- scripts/pm
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
7 | | - | |
| 6 | + | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1321 | 1321 | | |
1322 | 1322 | | |
1323 | 1323 | | |
1324 | | - | |
1325 | | - | |
1326 | | - | |
1327 | | - | |
1328 | | - | |
1329 | | - | |
1330 | | - | |
1331 | | - | |
1332 | | - | |
1333 | | - | |
1334 | | - | |
1335 | | - | |
1336 | | - | |
1337 | 1324 | | |
1338 | 1325 | | |
1339 | 1326 | | |
| |||
1690 | 1677 | | |
1691 | 1678 | | |
1692 | 1679 | | |
1693 | | - | |
| 1680 | + | |
1694 | 1681 | | |
1695 | 1682 | | |
1696 | 1683 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
246 | | - | |
| 246 | + | |
247 | 247 | | |
248 | 248 | | |
249 | 249 | | |
| |||
350 | 350 | | |
351 | 351 | | |
352 | 352 | | |
353 | | - | |
| 353 | + | |
354 | 354 | | |
355 | 355 | | |
356 | 356 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
85 | | - | |
86 | 85 | | |
87 | 86 | | |
88 | 87 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1333 | 1333 | | |
1334 | 1334 | | |
1335 | 1335 | | |
1336 | | - | |
1337 | | - | |
1338 | | - | |
1339 | | - | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
1340 | 1340 | | |
1341 | 1341 | | |
1342 | 1342 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
212 | 212 | | |
213 | 213 | | |
214 | 214 | | |
215 | | - | |
216 | | - | |
217 | | - | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
218 | 218 | | |
219 | 219 | | |
220 | 220 | | |
| |||
0 commit comments