Skip to content

Commit ecd26b6

Browse files
committed
docs: record the refilled newcomer backlog
Records #173 to #177 and the reasoning behind them. With positive rule coverage finished, more "cover rule X" issues would be busywork, so the backlog was refilled against a measured gap: only 3 of 21 scenarios are negative controls, while every correctness fix this project has shipped was a false positive or a spec mismatch. Also updates the station ID allocation, where 022, 023 and 024 are now reserved and the next free number is 025. Notes that #177 is deliberately not a good-first-issue, since the DOM environment and component-testing approach are maintainer decisions, and that the traces in the three scenario issues were run against the detection engine before publishing.
1 parent c9ad103 commit ecd26b6

1 file changed

Lines changed: 39 additions & 2 deletions

File tree

‎CURRENT_STATE.md‎

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,8 +410,9 @@ these fixes introduce is required across detection.
410410
- ✅ Station IDs allocated per issue so parallel work cannot collide:
411411
`CS-SYNTHETIC-016` shipped in #133, `018` in #161, `019` in #147, `020` in #170,
412412
`021` in #169. `017` is NOT free: `refused-authorization.ts` took it in `0.4.5`,
413-
which is why #108 moved off it. Live allocation is 004 through 021 all in use, so
414-
the next free number is 022.
413+
which is why #108 moved off it. Live allocation is 004 through 021 in use, `022`
414+
reserved for #173, `023` for #174 and `024` for #175, so the next free number is
415+
025.
415416
The `021` move also needed the `idTag` and `transactionId` renumbered to match,
416417
which #108 still carried from before the move; caught in review of #169.
417418
- ✅ #140 landed (PR #148): the standing invariant that every detection rule
@@ -472,6 +473,42 @@ Scenario corpus: **21**, which clears the 20+ target in the v1.0 milestone
472473
(`ROADMAP.md` line 157). That exit criterion is met; the remaining v1.0 work is API
473474
stabilization, the docs overhaul and release hardening.
474475

476+
### Newcomer Backlog Refill (2026-08-10)
477+
478+
With positive rule coverage finished, more "cover rule X" issues would be busywork,
479+
so the backlog was refilled against a measured gap instead. Only 3 of the 21
480+
scenarios are negative controls (`firmware-update-success`, `meter-value-zero`,
481+
`unexpected-stop-reason`), yet every correctness fix this project has shipped was a
482+
false positive or a spec mismatch: #127, #128 and #155 on
483+
`STATUS_TRANSITION_VIOLATION`, #154 on `FIRMWARE_UPDATE_FAILURE`, #156 on
484+
`FAILED_AUTHORIZATION`. #155 alone found the rule flagging 22 transitions the
485+
section 4.9 table permits, and nothing in the corpus would have noticed. Negative
486+
controls are the guard for that class.
487+
488+
- 🔜 #173 legal status transitions stay quiet (`CS-SYNTHETIC-022`). The highest
489+
value of the three, given the two prior bugs in that rule.
490+
- 🔜 #174 boots outside the five minute repeat window (`023`). #139 covers the
491+
inside of the window; nothing covered the outside, so widening it or making the
492+
comparison inclusive would pass the suite today.
493+
- 🔜 #175 healthy heartbeat cadence (`024`), guarding both heartbeat rules at once.
494+
- 🔜 #176 make coverage measurable. `vitest.config.ts` configures coverage and
495+
`CONTRIBUTING.md` states a 70% target for core, but `@vitest/coverage-v8` is not
496+
a dependency, so `vitest run --coverage` fails with a missing-dependency error and
497+
the stated target has never been checked. The issue asks for the real number and
498+
explicitly does not change thresholds or gate CI, both of which are separate
499+
decisions.
500+
- 🔜 #177 the `react` module: five published components across 388 lines with no
501+
test file, and untestable as configured, since the vitest environment is `node`
502+
with no jsdom or testing-library and React only a peer dependency. Deliberately
503+
not labelled `good-first-issue`: the DOM environment and component-testing
504+
approach are maintainer decisions, and `ReportViewer` renders caller-supplied
505+
HTML, so its test encodes a sanitization decision worth making deliberately.
506+
507+
The traces in #173, #174 and #175 were each built and run through the detection
508+
engine before publishing, and all three report no failures, so the specs are
509+
known-good rather than plausible. The good-first-issue backlog went from 2 unclaimed
510+
to 6.
511+
475512
### Release Log Automation (Issue #151, PR #152)
476513

477514
- ✅ This document went stale after three consecutive releases (`0.3.2`, `0.4.3`,

0 commit comments

Comments
 (0)