You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The board is authoritative. If this issue and the board disagree, the board is
right. This is a mirror, not a queue — it exists because reading a project
board needs a token with project scope, and a CI job or a repo-scope session
does not have one.
Repo-owner decision.examples/FINDINGS.md says the owner decides and the ladder never self-triages.
Backlog — real work, not yet sequenced
#226 (replay-family decision), #204 and #198 (surveys whose gaps are already
split out or parked), #407 (SQLite-shaped testing charter), #408 (mutation gate
in CI).
Open questions
Stated honestly, because these are what the sprint does not yet know.
Every coverage figure in phase 6 is provisional until coverage: scripts/coverage.sh profiles three test binaries out of nine, so include/morph/net is scored by nothing at all #403 lands. include/morph/net — 955 lines across two headers plus detail/, holding 42
of the library's 148 throw sites — contributes zero files to the report. sqlite_offline_queue.hpp's 57.04% and include/morph/qt's 13 reported lines
are measured with their own test binaries unprofiled. The library's headline
95.69% is therefore computed over a tree that silently excludes its network
stack. The targets in phase 6 will move, possibly a lot, and in both
directions.
The 99% goal has not been costed against the real denominator. From
95.69% it means closing ~190 of 246 unhit lines — but that arithmetic is over
the wrong tree (see 1). It is also not obviously reachable everywhere: codecov.yml documents an llvm-cov artifact class (a "control reached past
this block" counter on certain closing braces, with no LCOV_EXCL_LINE
equivalent) that puts several components' honest ceiling below 100%.
A literal 100% mutation score is not a coherent target. Equivalent
mutants are undecidable in general, so the honest goal is 100% of non-equivalent mutants with an allowlist carrying a reason per entry — the
shape scripts/scenario/coverage_allowlist.json already uses.
Whether the ladder's coverage gates should start blocking is a decision, not
an oversight.codecov.yml records the policy — finish the ladder, then
raise the gates together — and examples/rungs.txt now lists seven rungs. coverage: every codecov status is informational, so a component sitting below its own target still produces a green build #402 asks for that to be resolved one way or the other, because examples/IMPLEMENTATION.md's rung-exit criterion 5 already calls the gate
"blocking" and no component is.
Three Deferred items need a decision from the repo owner, not evidence.
Each is named above with its exact question. They are not blocked on work.
The board is authoritative. If this issue and the board disagree, the board is
right. This is a mirror, not a queue — it exists because reading a project
board needs a token with
projectscope, and a CI job or arepo-scope sessiondoes not have one.
gh auth refresh -s projectSnapshot — 2026-09-02
First snapshot.
Progress: 0 / 19 sequenced done. #386 and #383 are
In Review.The sequenced queue, in
Order.claude/worktrees/breaks every AUTOMOC targetT testsL forms!=back to==— PR #394T testsinclude/morph/netscored by nothingT testsT testsT testsT testsL formsonOptionsReceivedwarning on every controller without a ChoiceL formsstoull; two guards never fireN ladderN ladderN laddertryFireImpl/SubscriberEntry, neither existsD frameworkD frameworkD frameworkinclude/morph/offlineat 85.20%; one header reads 57.04%D frameworkinclude/morph/formsat 94.37%;forms.hppholds 36 of 41 missesL formsexamples/commonfell to 90.39% from the 95.85% its target came fromN ladderN ladderDeferred — sequenced, held behind something unscheduled
r5-003dispositionexamples/FINDINGS.mdsays the owner decides and the ladder never self-triages.Backlog — real work, not yet sequenced
#226 (replay-family decision), #204 and #198 (surveys whose gaps are already
split out or parked), #407 (SQLite-shaped testing charter), #408 (mutation gate
in CI).
Open questions
Stated honestly, because these are what the sprint does not yet know.
Every coverage figure in phase 6 is provisional until coverage: scripts/coverage.sh profiles three test binaries out of nine, so include/morph/net is scored by nothing at all #403 lands.
include/morph/net— 955 lines across two headers plusdetail/, holding 42of the library's 148
throwsites — contributes zero files to the report.sqlite_offline_queue.hpp's 57.04% andinclude/morph/qt's 13 reported linesare measured with their own test binaries unprofiled. The library's headline
95.69% is therefore computed over a tree that silently excludes its network
stack. The targets in phase 6 will move, possibly a lot, and in both
directions.
The 99% goal has not been costed against the real denominator. From
95.69% it means closing ~190 of 246 unhit lines — but that arithmetic is over
the wrong tree (see 1). It is also not obviously reachable everywhere:
codecov.ymldocuments an llvm-cov artifact class (a "control reached pastthis block" counter on certain closing braces, with no
LCOV_EXCL_LINEequivalent) that puts several components' honest ceiling below 100%.
No mutation tool is known to work here.
mull,dextooland friends areabsent, and their LLVM support has historically lagged; CI pins clang 20 and
this workstation runs clang 22. mutation: the framework's own C++ has never been measured against a single mutant, so an inverted if in include/morph fails no known test #405's first deliverable is settling whether
any tool builds against this tree. That is the most likely way the
mutation workstream dies, and it is named in the ticket rather than
discovered later.
A literal 100% mutation score is not a coherent target. Equivalent
mutants are undecidable in general, so the honest goal is 100% of
non-equivalent mutants with an allowlist carrying a reason per entry — the
shape
scripts/scenario/coverage_allowlist.jsonalready uses.Whether the ladder's coverage gates should start blocking is a decision, not
an oversight.
codecov.ymlrecords the policy — finish the ladder, thenraise the gates together — and
examples/rungs.txtnow lists seven rungs.coverage: every codecov status is informational, so a component sitting below its own target still produces a green build #402 asks for that to be resolved one way or the other, because
examples/IMPLEMENTATION.md's rung-exit criterion 5 already calls the gate"blocking" and no component is.
Three Deferred items need a decision from the repo owner, not evidence.
Each is named above with its exact question. They are not blocked on work.