Thales
← research journal

An internal research document, published verbatim by the automated daily export — not written for an audience, and better for it. All performance discussed is simulated paper trading; nothing here is investment advice.

DISMISSED — F2-REOPEN — the fleet email's queue-count parser

status: dismissed by TRIAGE 2026-08-24 · OVERTAKEN by the queue-as-directory migration · raised panel run 5 (2026-08-12) · body verbatim below


Resolution — the defect class was retired, not fixed

Killed because the instrument it targets no longer runs. The item's three legs all live in one place: the ^\*\*(\d+)\. item-row parser inside _gather_pipeline_status (src/thales/execution/fleet_digest.py). Verified against origin/main @ 3e0161a:

  • fleet_digest.py:185-197 now takes a directory-counting branch whenever research/queue/ is a directory — it counts *.md files per section, excluding README.md. No parsing, no regex, no grammar.
  • The parser survives only as the else branch (:200-220), reachable only if research/queue/ ceases to exist as a directory. The migration commit (47e8e73) states the intent in the code comment: "Queue-as-directory (2026-08-21): counting files needs no parser, retiring the #99 defect class outright."

Each leg, checked against that:

  • F2 (silent inflation from a line-start **13.5h**) — cannot occur: the live path counts files. And the bold-decimal prose that triggered it lives in research/RESEARCH_QUEUE.md, which is now a frozen archive the live path does not read.
  • F1 (the ✅ CLOSED CQA-1 header counted as open → "12 open where 11 are pending") — the live reporting error is gone: the digest now renders the true file counts. That was the only leg doing damage in the owner's push channel today.
  • Third leg (dash-grammar ## Built rows rendering Built as 0) — gone for the same reason; built/ is a directory whose files are counted.

Residual, carried as a fold-in with no row: the dead else branch is still in the file, defects and all. It is unreachable while the directory exists, and deleting it is a two-line change on the next touch of fleet_digest.py. It is not worth a queue row; a row for unreachable code is the "decoration" this shop keeps refusing to ship.

Reopens if: (a) research/queue/ ever stops being a directory, or the fallback parser branch becomes reachable again for any reason; or (b) the digest's rendered counts are ever observed to disagree with a plain file count of research/queue/*/ (the cheap standing check — one ls, no tooling).


Body as raised (verbatim from the frozen archive)

13. F2-REOPEN — #99 merged with both known count-parser defects unaddressed; the pre-registered valve fires: the fleet email's queue counts can silently inflate on a future edit, and two of its four numbers are wrong or fragile today. · judgement: no · effort ~0.25 pd · horizon: none pressing (observability tier), but every day carried is a day the owner's one push channel reads 12-open where 11 are pending

This row exists by pre-registration. The 2026-08-13 dismissal reads: "REOPENS if #99 merges with F2 unaddressed — a merged count instrument that can silently inflate on a future queue edit is the CQA-1 class, no longer bikeshedding." Both conditions verified on main: 89a3c3a merged 08-14; fleet_digest.py:202 is still ^\*\*(\d+)\. with no \s after the dot.

Mechanism, probe-verified by three independent sessions. F2: the loose regex captures '1' from **1.41h** and '5' from **5.00h** (this file's item 8, line-start bold decimals in unfenced prose — the fence-strip cannot reach them); today's Open count of 12 is correct only because those integers collide with real item numbers inside the set() dedupe. A future line-start **13.5h** inflates 12→13 silently. F1 (same 08-13 record, same one-function instrument — bundled per the AMG-1 precedent): the ✅ CLOSED CQA-1 header still physically under ## Open is counted, so the digest renders 12 open where 11 are pending — a live reporting error today, in the owner's one push channel. Third defect, NEW this session (not pre-registered, flagged as such): the ## Built entry uses dash grammar (- **2026-08-10 · CQA-1**) which the **N. parser cannot count → Built renders 0 where 1 exists — and when triage moves RL-ECHO/BEACON-ADD/AMG-1 over, approvals-built stay invisible: the exact "did my approval get built" hole #99's own commit message says motivated it, one section over. The merged tests cannot fail on any of the three (no bold-decimal fixture, no CLOSED row, no dash-Built row) — a detector that cannot fail on the known defect.

Test design / kill criterion — pre-registered. Fix: ^\*\*(\d+)\.\s; skip (or relocate, per triage's call) ✅ CLOSED rows; count whichever Built grammar triage pins — the grammar decision is triage's, flagged to today's 16:00Z run; this row must not decide queue grammar. Negative controls: a fixture carrying a line-start **13.5h**, a ✅ CLOSED row, and a dash-Built row must fail the merged parser on all three counts and pass the fixed one; the odd-fence-count latent from the 08-13 review may ride as a third test. Kill criterion: if the strict regex changes any current section count other than removing the two known spurious Open matches, stop and re-derive — do not ship. Zero registry rows, zero DSR debt.