Skip to content

Commit 3aac9bb

Browse files
docs: record the refilled newcomer backlog (#178)
Records #173 to #177 and why those five rather than five more of what came before. Positive rule coverage is finished, so more "cover rule X" issues would be busywork. The measured gap is the other direction: only 3 of the 21 scenarios are negative controls, while every correctness fix this project has shipped was a false positive or a spec mismatch (#127, #128, #155, #154, #156). #155 alone found the transition rule flagging 22 transitions the section 4.9 table permits, with nothing in the corpus to notice. Records the three negative controls and what each guards, #176 (coverage is configured and a 70% target stated, but the provider is not a dependency so the target has never been checked), #177 and the explicit reason it is not a good-first-issue, the station ID allocation now that 022 through 024 are reserved, and that the three traces were run against the detection engine before publishing.
1 parent c9ad103 commit 3aac9bb

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)