gsxdsm
cef1b08af3
U12: the census baseline follows the count down — and goes in the merge gate ( #2661 )
...
Coordinator item 2. The census had the right mechanism and no teeth.
## The gap
`--strict` already fails on a rise **and** on an unrecorded drop — that
logic was correct. But nothing blocking ran it, so the baseline drifted
to **854 while the tree held 787**. That is **67 guards of regression
that would have merged silently**: a high-water mark wearing a ratchet's
name.
This is the same shape as the ceilings I tightened in #2647 , one level
up. Worth saying plainly: I fixed the vitest ratchet's slack by hand and
did not check whether the *authoritative* instrument had the same
problem. It did, and by a much larger margin.
## Three changes
1. **`--strict` runs in `test:gate`.** The baseline cannot go stale
again without a red gate.
2. **Baseline re-recorded: 854 → 785** across 14 files (`triage` 38 →
9).
3. The single RISE is resolved honestly rather than absorbed.
## The +3 investigation
One file rose: `register-task-workflow-routes.ts` **22 → 23**. #2621
replaced one `task.column === "todo"` with `task.column === "triage" ||
task.column === "todo"` — a net **+1** that also reintroduced a `triage`
literal, while the PR title reported *"count 0 → 0"*.
Not an accusation. There was no gate for the author to check against,
and a hand-counted claim in a PR title is exactly the thing that goes
wrong without one. Change 1 is the fix.
**The literal is justified and stays**, marked `DELIBERATE-LITERAL`
rather than converted. It is the **v1-IR arm**: a v1 workflow yields no
role assignments, so `resolveLifecycleColumns` returns nothing and the
legacy pre-implementation ids are the only pre-WIP signal available. The
`else` branch directly below already resolves intake/hold for every v2
workflow. Converting this arm would not finish anything — it would
delete the only answer v1 boards have and admit
`in-progress`/`in-review` cards into a rebound that clears worktree,
branch and retry counters, which is the regression #2621 was fixing.
## Both directions proven
| direction | probe | result |
|---|---|---|
| rise | add `t.column === 'in-review'` | `live-agent-count.ts: 6 -> 7`,
exit 1 |
| drop | convert one guard | `self-healing.ts: allows 111, tree has
110`, exit 1 |
**The drop probe took three attempts to test honestly, and the first two
"passed" while proving nothing:**
1. I renamed a receiver (`task.column` → `Probe`) — the classifier is
**fail-closed**, so an unknown receiver is still counted and the number
never moved.
2. I targeted a site in `hold-release.ts` that carries a
`DELIBERATE-LITERAL` marker — not counted as a column guard at all, so
removing it changed nothing.
Only removing a counted comparison outright moved the number. Both false
negatives came from me assuming the probe worked because the command
exited the way I expected.
## On auto-rewrite vs fail-and-instruct
You offered either. The script already does **fail-and-instruct**, with
`--update-baseline` as the explicit re-record, and I kept it that way
rather than making the test rewrite the baseline during a run.
Reason: a silent downward rewrite means a conversion PR's own diff never
shows the number moving, so "census before/after in the PR body" becomes
unverifiable — the reviewer would have to re-derive it. Failing with the
new number in the message puts it in the diff where a human sees it, and
it costs one command.
## Verification
`pnpm lint` clean. `pnpm test:gate` green with the census in it — `every
file matches its baseline exactly` (10 / 132 / 487 / 71).
Note for the fleet launch: with `--strict` gating, **every** conversion
PR must now re-record the baseline in the same PR. That is the intended
cost, and it makes the fleet's "baseline must shrink by exactly the
converted count" rule mechanically enforced instead of a review
instruction.
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-30 00:47:31 -07:00
..
2026-07-30 00:37:08 -07:00
2026-07-14 08:23:11 -07:00
2026-07-30 00:47:31 -07:00
2026-07-29 22:39:14 -07:00
2026-07-05 11:31:48 -07:00
2026-07-29 23:34:41 -07:00
2026-06-19 04:27:01 -07:00
2026-07-08 15:24:01 -07:00
2026-07-16 12:36:03 -07:00
2026-07-09 19:58:07 -07:00
2026-07-16 12:36:03 -07:00
2026-07-26 14:37:35 -07:00
2026-07-26 14:37:35 -07:00
2026-07-26 20:04:33 -07:00
2026-07-26 20:04:33 -07:00
2026-07-12 17:54:21 -07:00
2026-07-26 18:57:02 -07:00
2026-06-03 17:14:42 -07:00
2026-07-26 18:57:02 -07:00
2026-07-26 18:57:02 -07:00
2026-07-04 10:42:21 -07:00
2026-07-29 22:39:14 -07:00
2026-06-25 08:34:44 -07:00
2026-06-03 19:06:53 -07:00
2026-07-26 18:57:02 -07:00
2026-07-23 13:38:41 -07:00
2026-07-09 19:58:07 -07:00
2026-06-20 05:04:25 -07:00
2026-06-03 20:52:44 -07:00
2026-06-19 04:27:01 -07:00
2026-06-17 21:37:18 -07:00
2026-06-20 05:04:25 -07:00
2026-06-20 05:04:25 -07:00
2026-07-26 19:18:53 -07:00
2026-07-26 19:18:53 -07:00
2026-06-27 17:11:13 -07:00
2026-06-03 19:06:53 -07:00
2026-07-23 21:59:55 -07:00
2026-06-03 19:06:53 -07:00
2026-06-21 23:07:55 -07:00
2026-07-18 04:44:53 -07:00
2026-07-18 02:05:35 -07:00
2026-06-29 15:34:06 -07:00
2026-06-03 19:06:53 -07:00
2026-06-03 19:06:53 -07:00
2026-06-22 16:21:03 -07:00
2026-07-30 00:13:58 -07:00
2026-06-08 13:32:58 -07:00
2026-07-02 13:07:16 -07:00
2026-07-02 13:07:16 -07:00
2026-06-03 19:06:53 -07:00
2026-07-26 14:37:35 -07:00
2026-07-10 18:14:09 -07:00
2026-07-06 19:03:06 -07:00
2026-07-06 19:03:06 -07:00
2026-07-24 00:35:34 -07:00
2026-07-24 23:02:16 -07:00
2026-07-25 05:15:02 -07:00
2026-06-15 12:43:08 -07:00
2026-06-19 04:27:01 -07:00
2026-07-02 23:49:43 -07:00
2026-06-19 04:27:01 -07:00
2026-07-12 17:54:21 -07:00
2026-06-05 02:38:38 -07:00
2026-07-30 00:13:58 -07:00
2026-06-21 03:53:43 -07:00
2026-07-18 20:30:42 -07:00
2026-07-25 05:15:02 -07:00
2026-06-03 01:08:09 -07:00
2026-07-17 00:29:48 -07:00
2026-07-26 14:37:35 -07:00
2026-07-16 02:07:43 -07:00
2026-07-16 02:07:43 -07:00
2026-07-26 19:52:32 -07:00
2026-07-26 19:52:32 -07:00
2026-07-16 04:15:18 -07:00
2026-07-08 23:39:33 -07:00
2026-07-23 13:38:41 -07:00
2026-07-17 00:48:36 -07:00
2026-06-03 20:52:44 -07:00
2026-07-08 13:09:10 -07:00
2026-07-08 13:09:10 -07:00
2026-06-19 04:27:01 -07:00
2026-07-02 23:53:26 -07:00
2026-06-03 19:06:53 -07:00
2026-06-03 19:48:40 -07:00
2026-07-19 18:59:28 -07:00
2026-07-17 20:09:56 -07:00
2026-07-17 20:09:56 -07:00
2026-07-18 18:04:26 -07:00
2026-06-25 14:37:52 -07:00
2026-06-23 16:47:38 -07:00
2026-06-19 04:27:01 -07:00
2026-07-18 00:33:14 -07:00
2026-07-26 18:57:02 -07:00
2026-06-03 19:48:40 -07:00
2026-06-03 19:06:53 -07:00
2026-06-03 19:06:53 -07:00
2026-06-03 19:06:53 -07:00
2026-06-26 00:43:55 -07:00
2026-07-12 12:49:37 -07:00
2026-06-28 21:10:28 -07:00
2026-07-12 18:13:33 -07:00
2026-07-11 22:43:34 -07:00
2026-07-29 22:39:14 -07:00
2026-06-03 20:52:44 -07:00
2026-06-22 23:42:45 -07:00
2026-06-22 23:42:45 -07:00
2026-07-29 22:39:14 -07:00
2026-07-15 18:43:37 -07:00
2026-07-28 23:23:13 -07:00
2026-06-25 08:35:44 -07:00
2026-06-25 08:35:44 -07:00
2026-06-20 23:57:37 -07:00
2026-06-21 02:15:24 -07:00
2026-06-19 01:33:13 -07:00
2026-06-20 05:04:25 -07:00
2026-06-22 11:47:52 -07:00
2026-07-18 20:30:42 -07:00
2026-07-17 14:25:30 -07:00
2026-07-21 15:30:31 -07:00
2026-07-26 18:57:02 -07:00
2026-07-08 23:39:34 -07:00
2026-07-02 13:44:41 -07:00
2026-07-16 01:19:43 -07:00
2026-07-12 12:49:37 -07:00
2026-06-25 08:34:44 -07:00
2026-06-03 19:06:53 -07:00
2026-07-26 20:04:33 -07:00
2026-07-26 19:52:32 -07:00
2026-07-22 23:04:33 -07:00
2026-07-06 19:03:06 -07:00
2026-07-06 19:03:06 -07:00
2026-06-27 23:47:21 -07:00
2026-06-22 03:57:10 -07:00
2026-07-26 19:52:32 -07:00
2026-07-26 19:52:32 -07:00
2026-07-26 13:05:23 -07:00
2026-06-03 22:35:28 -07:00
2026-06-20 05:04:25 -07:00
2026-07-02 11:38:34 -07:00
2026-07-26 14:37:35 -07:00
2026-06-27 20:02:33 -07:00
2026-07-18 20:30:42 -07:00
2026-07-01 07:33:56 -07:00
2026-07-16 04:15:18 -07:00
2026-07-09 19:58:03 -07:00
2026-06-19 04:27:01 -07:00
2026-07-26 14:37:35 -07:00
2026-07-08 09:47:19 -07:00
2026-07-25 21:57:15 -07:00
2026-07-01 07:33:56 -07:00
2026-07-07 22:04:53 -07:00
2026-07-16 04:58:03 -07:00
2026-07-22 18:46:46 -07:00
2026-07-25 05:15:02 -07:00
2026-07-11 20:32:56 -07:00
2026-07-18 20:30:42 -07:00
2026-06-25 08:34:44 -07:00
2026-06-20 05:04:25 -07:00
2026-07-24 22:16:11 -07:00
2026-07-28 23:23:00 -07:00
2026-06-19 04:27:01 -07:00
2026-06-03 17:33:16 -07:00
2026-06-22 23:58:38 -07:00
2026-07-26 22:34:18 -07:00
2026-07-26 09:50:44 -07:00
2026-07-29 21:23:46 -07:00
2026-06-03 20:52:44 -07:00
2026-06-21 03:53:43 -07:00
2026-06-21 03:53:43 -07:00
2026-07-12 17:54:21 -07:00
2026-07-20 09:41:02 -07:00
2026-06-22 11:15:46 -07:00
2026-07-26 14:49:17 -07:00
2026-07-26 18:35:10 -07:00
2026-07-18 19:45:08 -07:00
2026-07-20 09:41:02 -07:00
2026-07-18 03:48:38 -07:00
2026-07-18 03:48:38 -07:00
2026-07-26 11:17:52 -07:00
2026-06-22 11:15:46 -07:00
2026-07-11 17:16:49 -07:00
2026-07-11 17:16:49 -07:00
2026-06-19 04:27:01 -07:00
2026-06-03 20:52:44 -07:00
2026-06-03 19:06:53 -07:00
2026-06-22 11:08:25 -07:00
2026-07-13 19:07:58 -07:00
2026-07-18 20:30:42 -07:00
2026-07-18 20:30:42 -07:00
2026-07-25 05:15:02 -07:00
2026-07-25 05:15:02 -07:00
2026-07-17 20:09:56 -07:00
2026-07-17 20:09:56 -07:00
2026-07-26 18:57:02 -07:00
2026-07-23 13:21:10 -07:00
2026-06-25 16:31:10 -07:00
2026-07-23 21:59:55 -07:00
2026-07-23 13:21:10 -07:00
2026-07-23 15:25:09 -07:00
2026-07-16 11:07:57 -07:00
2026-07-25 23:12:41 -07:00
2026-06-19 04:27:01 -07:00
2026-06-17 03:12:16 -07:00
2026-06-22 04:39:35 -07:00
2026-07-17 23:51:55 -07:00
2026-07-26 17:34:45 -07:00
2026-07-16 21:07:06 -07:00
2026-07-16 21:07:06 -07:00
2026-07-03 21:47:00 -07:00
2026-07-03 21:47:00 -07:00
2026-07-26 18:57:02 -07:00
2026-07-18 19:36:57 -07:00
2026-07-18 19:36:57 -07:00
2026-07-18 18:11:02 -07:00
2026-07-19 15:45:45 -07:00
2026-06-22 23:58:38 -07:00
2026-07-14 08:23:11 -07:00
2026-07-26 18:35:10 -07:00
2026-07-26 18:35:10 -07:00
2026-06-03 20:52:44 -07:00
2026-07-26 14:37:35 -07:00
2026-06-03 19:06:53 -07:00
2026-06-25 08:34:44 -07:00
2026-07-13 19:07:58 -07:00
2026-07-14 17:18:06 -07:00
2026-07-20 22:58:22 -07:00
2026-07-16 04:15:18 -07:00
2026-07-14 08:18:52 -07:00
2026-06-19 04:27:01 -07:00
2026-06-03 19:48:40 -07:00
2026-06-03 19:06:53 -07:00
2026-07-07 22:04:53 -07:00
2026-07-12 18:13:33 -07:00
2026-07-07 22:04:53 -07:00
2026-07-22 18:46:46 -07:00
2026-07-22 18:46:46 -07:00
2026-06-21 03:53:43 -07:00
2026-07-04 21:28:17 -07:00
2026-07-05 11:31:44 -07:00
2026-07-26 14:37:35 -07:00
2026-07-26 17:18:43 -07:00
2026-07-01 07:33:56 -07:00
2026-07-07 22:04:53 -07:00
2026-07-22 20:55:27 -07:00
2026-06-28 12:10:10 -07:00
2026-07-15 20:28:11 -07:00
2026-06-19 04:27:01 -07:00
2026-06-03 20:52:44 -07:00
2026-06-03 01:08:09 -07:00
2026-06-17 21:37:18 -07:00
2026-06-28 01:17:22 -07:00
2026-07-16 01:19:43 -07:00
2026-06-03 19:06:53 -07:00
2026-07-25 23:12:41 -07:00
2026-06-27 19:54:22 -07:00
2026-06-03 19:06:53 -07:00
2026-06-03 19:06:53 -07:00
2026-06-03 20:52:44 -07:00
2026-07-25 23:12:41 -07:00
2026-06-22 18:21:06 -07:00
2026-07-25 21:57:15 -07:00
2026-06-20 21:23:17 -07:00
2026-07-22 17:29:20 -07:00
2026-06-27 23:37:24 -07:00
2026-07-12 17:54:21 -07:00
2026-06-27 23:08:10 -07:00
2026-06-27 23:08:10 -07:00
2026-06-22 15:23:43 -07:00
2026-06-22 15:23:43 -07:00
2026-07-24 22:32:30 -07:00
2026-07-25 21:01:25 -07:00
2026-07-16 03:46:55 -07:00
2026-07-09 08:17:52 -07:00
2026-07-20 09:46:22 -07:00
2026-07-19 17:39:43 -07:00
2026-07-19 16:44:40 -07:00
2026-07-19 20:42:05 -07:00
2026-06-03 19:06:53 -07:00
2026-06-22 03:34:16 -07:00
2026-07-18 16:18:15 -07:00
2026-07-26 18:35:10 -07:00
2026-07-03 00:12:10 -07:00
2026-07-26 18:35:10 -07:00
2026-06-26 02:45:29 -07:00
2026-07-12 19:43:41 -07:00
2026-07-16 02:01:56 -07:00
2026-06-03 19:06:53 -07:00
2026-07-16 16:01:29 -07:00
2026-06-20 05:04:25 -07:00
2026-07-26 14:37:35 -07:00
2026-07-12 19:43:41 -07:00
2026-07-12 19:43:41 -07:00
2026-07-26 14:37:35 -07:00
2026-07-26 14:37:35 -07:00
2026-06-22 19:48:50 -07:00
2026-07-12 17:54:21 -07:00
2026-07-11 19:31:50 -07:00
2026-07-10 18:09:58 -07:00
2026-07-17 14:25:30 -07:00
2026-07-17 14:25:30 -07:00
2026-07-12 13:22:05 -07:00
2026-07-26 09:50:44 -07:00
2026-07-26 14:37:35 -07:00
2026-07-28 23:23:13 -07:00
2026-07-15 22:00:27 -07:00
2026-06-03 19:06:53 -07:00
2026-07-15 22:00:27 -07:00
2026-06-21 03:53:43 -07:00
2026-07-10 17:20:17 -07:00
2026-07-03 21:45:21 -07:00
2026-07-03 21:45:21 -07:00
2026-07-10 17:20:17 -07:00
2026-07-26 18:57:02 -07:00
2026-07-10 17:20:17 -07:00
2026-06-30 10:26:23 -07:00
2026-06-30 10:26:23 -07:00
2026-06-21 16:13:54 -07:00
2026-07-10 16:13:39 -07:00
2026-07-10 16:13:39 -07:00
2026-07-23 13:38:41 -07:00
2026-07-23 13:38:41 -07:00
2026-06-26 13:51:32 -07:00
2026-06-25 19:35:47 -07:00
2026-07-01 00:28:25 -07:00
2026-06-03 20:52:44 -07:00
2026-07-13 19:07:58 -07:00
2026-07-14 12:41:10 -07:00
2026-07-25 05:15:02 -07:00
2026-07-12 17:54:21 -07:00
2026-06-20 01:52:26 -07:00
2026-06-21 03:53:43 -07:00
2026-06-03 19:06:53 -07:00
2026-07-26 18:57:02 -07:00
2026-07-26 20:33:25 -07:00
2026-07-30 00:20:31 -07:00
2026-07-02 11:38:34 -07:00
2026-06-24 23:32:52 -07:00
2026-06-24 19:05:11 -07:00
2026-07-26 11:17:52 -07:00
2026-07-29 22:39:14 -07:00
2026-07-25 05:15:02 -07:00
2026-06-30 01:57:09 -07:00
2026-07-30 00:37:08 -07:00
2026-07-11 22:16:48 -07:00
2026-07-11 18:07:00 -07:00
2026-07-26 20:04:33 -07:00
2026-07-30 00:20:31 -07:00
2026-06-21 23:07:55 -07:00
2026-07-22 08:30:12 -07:00
2026-06-19 04:27:01 -07:00
2026-06-04 16:16:50 -07:00
2026-07-25 05:15:02 -07:00
2026-06-03 19:48:40 -07:00
2026-07-15 00:27:59 -07:00
2026-07-20 01:00:37 -07:00
2026-07-25 05:15:02 -07:00
2026-07-08 09:19:42 -07:00
2026-07-18 13:09:38 -07:00
2026-07-30 00:13:58 -07:00
2026-07-17 01:17:22 -07:00
2026-07-22 22:20:03 -07:00
2026-07-22 22:20:03 -07:00
2026-07-18 18:38:47 -07:00
2026-07-19 19:02:21 -07:00
2026-06-25 14:37:52 -07:00
2026-06-21 22:43:34 -07:00
2026-07-26 18:35:10 -07:00
2026-07-26 18:35:10 -07:00
2026-06-03 19:06:53 -07:00
2026-07-21 23:03:35 -07:00
2026-07-21 23:03:35 -07:00
2026-07-21 18:33:22 -07:00
2026-07-21 18:33:22 -07:00
2026-07-17 00:00:46 -07:00
2026-07-12 12:52:30 -07:00
2026-07-12 12:52:30 -07:00
2026-06-03 19:06:53 -07:00
2026-06-03 19:06:53 -07:00
2026-07-16 13:29:25 -07:00
2026-07-25 22:52:53 -07:00
2026-06-22 03:34:15 -07:00
2026-07-22 17:29:20 -07:00
2026-07-12 18:13:33 -07:00
2026-06-22 18:21:06 -07:00
2026-06-22 03:34:15 -07:00
2026-07-20 00:54:01 -07:00
2026-07-20 00:54:01 -07:00
2026-07-11 18:06:22 -07:00
2026-07-22 22:37:51 -07:00
2026-07-11 18:06:22 -07:00
2026-06-29 23:41:51 -07:00
2026-06-28 09:09:03 -07:00
2026-06-28 09:09:03 -07:00
2026-07-29 00:05:29 -07:00
2026-07-11 18:06:22 -07:00
2026-07-26 14:37:35 -07:00
2026-07-26 14:37:35 -07:00
2026-07-22 22:37:51 -07:00
2026-06-19 05:31:47 -07:00
2026-06-04 12:44:43 -07:00
2026-06-30 12:21:25 -07:00
2026-06-30 12:21:25 -07:00
2026-07-23 22:13:25 -07:00
2026-07-26 11:17:52 -07:00
2026-06-28 09:09:03 -07:00
2026-06-25 20:28:38 -07:00
2026-06-28 09:09:03 -07:00
2026-07-18 20:02:34 -07:00
2026-06-09 09:16:59 -07:00
2026-06-20 10:35:40 -07:00
2026-07-15 22:00:27 -07:00
2026-07-16 18:36:50 -07:00
2026-07-18 04:44:53 -07:00
2026-07-11 18:06:22 -07:00
2026-07-15 10:36:10 -07:00
2026-06-30 12:21:25 -07:00
2026-06-30 12:21:25 -07:00
2026-06-19 04:27:01 -07:00
2026-06-03 19:06:53 -07:00
2026-06-21 21:07:20 -07:00
2026-07-13 10:14:22 -07:00
2026-06-03 19:06:53 -07:00