msuiter roadmap (ROADMAP) – v3 (dual-track versioning + organizational action gates)
Source:vignettes/articles/roadmap.qmd
v3 (2026-09-28): restructured per the five-expert review adjudication (vignettes/articles/review-00-synthesis.qmd) – the original M0-M8 estimates were systematically underestimating by ~3x and carried no minimal-shareable-version cut line; this revision adopts the dual-track versioning scheme and makes the organizational action items that require the author’s own push explicit as the G-gates. Principles unchanged: every deliverable is in releasable state; TDD first; the three paper pillars are bound to milestones. Executable decomposition (work units / dependency graph / v0.1 week-by-week schedule / G-gate actions / kickoff checklist): vignettes/articles/implementation-plan.qmd.
Version-track overview
| Version | Duration (realistic estimate) | Content | Release |
|---|---|---|---|
| v0.1 | ~6 weeks | minimal usable core (see M0+M1s) | r-universe + GitHub Releases |
| v0.2 | further ~12 weeks | complete SBS/DBS/ID method chain | r-universe |
| v1.0 | further ~3-4 months | MSU-Fit calibration + HRD reporting + release engineering | CRAN submission launched |
| v1.x | rolling | see the “deferred list” | rolling |
Honest total for one person + AI agents: ~12-18 months to submission-grade benchmark completeness (editorial review #3).
Organizational action gates (G-gates – non-documentation work, author-driven)
- G0 (immediately, 2 weeks): leading coverage experiment – nominal vs actual coverage of 2 competing tools x the TMB grid. Kill-criterion gate: the outcome decides whether the paper headline runs Framing A (calibrated statistics) or Framing B (ecosystem). Precedes all paper narrative writing.
- G1 (before M1s): find a co-maintainer (needed threefold: bus factor + CRAN + reviewers).
- G2 (during / before close of M3b): statistics co-author (conformal / CoDA theory) + clinical/cohort collaborator (treatment records / RNA-only / FFPE panel, one of the three) locked in; otherwise the case study is destined to be decorative and the GB/NC ceiling is actively accepted.
- G3 (each quarter): competitive-landscape re-review (Cornet/MuSiCal/SPA dynamics), kill criteria re-estimated.
v0.1 (~6 weeks)
M0 – engineering foundations (2 weeks; the original 0.5-1 week estimate was rejected by review)
Acceptance: check fully green; S7 validation tests pass; RNG golden pass; the vendor size numbers land in the ADRs.
M1s – v0.1 engine and catalog (4 weeks; the full “engine and catalog” split into M1s/M1c/M2, with M1c/M2 continuing in v0.2)
Acceptance (v0.1 release): catalog generation >=50x SPMG; NMF >=100x R NMF -> Plan-A calibration (PI adjudication 2026-10-05): the original multipliers were written against an unmeasured baseline (brunet is already a C kernel; SPMG on clean input is already vectorized); recalibrated against the measured C baseline – catalog 2.6x SPMG (3.73s, <5s ✓), NMF 2.3x R NMF brunet (C core), NNLS 1.8x scipy; the original 50x/100x/10x rhetoric moved to the naive R/Python implementation caliber (the full-pipeline dense arm at the SPMG 46s caliber would still support 50x; to be revisited when the hardware-pinned bench lands). All fixtures green; installable from r-universe. M1s 14/14 ✅ closed.
Retired ruling original – English twin of the byte-frozen CJK verbatim (CJK corpus phase-2, issue #25, 2026-10-19; the Chinese original lives in git blob sha256 8b905eb8151cde0c75dee4b3d3b61f5efb72cffa0e38729b6119d74615718a91). Acceptance (v0.1 release):
catalog generation >=50x SPMG; NMF >=100x R NMF-> Plan-A caliber (PI adjudication 2026-10-05): the original multipliers were written against an unmeasured baseline (brunet is already a C kernel; SPMG on clean input is already vectorized); recalibrated against the measured C baselines – catalog 2.6x SPMG (3.73s, <5s OK), NMF 2.3x R NMF brunet (C core), NNLS 1.8x scipy; the original 50x/100x/10x rhetoric moved to the naive R/Python implementation caliber (the full-pipeline dense arm at the SPMG 46s caliber may still support 50x; re-check at the hardware-pinned bench). All fixtures green; installable from r-universe. M1s 14/14 closed.
v0.2 (further ~12 weeks)
M1c – catalog completeness + ID83 (3 weeks)
M2 – unified extraction pipeline (5 weeks)
M3a – fitting three methods + bootstrap (4 weeks)
v0.2 acceptance (release): the Jiang-protocol benchmarking evidence is delivered (bench/jiang, 4b3c8b4: the multinomial arm PASS – CS min 2.72 >= 2.3 and aggregate specificity 0.864 >= 0.85; the nb8 stress arm passes CS at 2.41 while spec 0.743 does not pass – attribution of the kappa=8 stress value vs the bbaf042 per-tool calibration plus the two PI options are written into result.md, pending PI endorsement of the judgment basis); refdb v1 delivered (U-M3a-06: the COSMIC v3.6 BSD-2 mirror pin ff61b0f byte-verified bundled + precedence/schema_version/manifest governance + the build_independent declaration, fully offline tests).
v1.0 (further ~3-4 months)
M3b – MSU-Fit calibration statistics (6 weeks; the G2 gate must be reached in this period)
M4 – similarity calibration library + viz (3 weeks)
-
- canonical order + vector) + the exposure embedding (UMAP/kmeans) first version +
ms_convert()opportunistic conversion (exome done; the panel built-in table hourglass – no [V] anchor; opportunistic within the likelihood hourglass v1.x) (U-M4-03, dca484a+4a133e9+35d712a audit closed: the render-path guard / error protocol / graphic correctness all fixed)
- canonical order + vector) + the exposure embedding (UMAP/kmeans) first version +
M6s – HRD workflow (3 weeks; the scope-safety contract in force)
M7 – benchmark completeness + paper (8-10 weeks)
M8 – release engineering (M8a materials week + M8b CRAN iteration (wall clock 4-8 weeks rolling))
Deferred to v1.x (hard non-goals, review adjudication)
- the ID89/476 (Koh 2025) channels and PRRDetect – deferred under the precondition of the mapping table first
- MSU-Infer extensions (DM hurdle / structural zeros, survival / longitudinal), MSU-LowCount (Mondrian conformal full scope)
- the correlation engine (kept or dropped by outcome once pre-registered falsifiable claims qualify; the five-modal display covers SBS+DBS only)
- mutational-rhythm analysis, the NTF tensor engine (exploratory), MsLda/MsSupervised, CN/SV fitting
- the RNA workflow (conditional upgrade: pulled forward when the G2 cohort collaboration is RNA-only), therapy forensics
- Shiny / portal, deep learning, a native Bayesian backend (unchanged)
Dependency graph and the G-gates
G0 (pilot experiment, immediately) ───────────────────┐ (outcome decides the paper headline)
M0 ─ M1s ─(v0.1)─ M1c ─ M2 ─ M3a ─(v0.2)
└─ G1 (co-maintainer)
M3b (incl. the G2 cohort gate) ─ M4 ─ M6s ─ M7 ─ M8 ─(v1.0)
G3 (quarterly competitive review) ───────────────────┘
SigProfiler parity campaign (P0-P7) and the P8 face: mapping onto the M/G vocabulary
The parity campaign is specified in vignettes/articles/research-09-sigminer-v3-parity-plan.qmd section 5 (one phase, one issue, one PR) and its phases are named P0-P7 there. That is a campaign vocabulary, not a milestone vocabulary; this section is the single index between the two, so a phase can be located in the version track above without re-reading the plan. Sigminer-side phases land in ShixiangWang/sigminer; msuiter-side phases land here. This section changes no version and no gate above it.
| Phase | Lands in | This roadmap | Acceptance gate (plan sec. 5) |
|---|---|---|---|
| P0 Interop hygiene | sigminer | M0 top / M1c adapter floor | version-pin matrix CI over {1.2.x, 1.4.0, >=1.5} against the official image; the #470 Windows-path trace reproduced; import/export round-trip on fixtures; type='refit' re-verified |
| P1 Kernel swap (closes sigminer #478) | sigminer, after the msuiter kernel-extension PR | M1s (the certified KL-MU kernel, U-M1s-14) | bit-equivalence to R NMF::nmf(brunet), relative Frobenius error < 1e-10 on a fixed platform; thread-count invariance identical(); sigminer arm wall-clock <= 2x sigprofiler arm |
| P2 K arbitration + seed law | sigminer | M2 (the ms_select_k arbiter) |
K agreement with the msuiter arbiter on the three-tier calibration cells; >= baseline 2.3.3 on Hungarian-matched P/R/F1; byte-identical rerun from one seed |
| P3 Refit upgrade | sigminer | M3b (the 198-cell calibration protocol) | presence-test null calibration inside the judgment window; no regression on flat-signature cells; the bootstrap speed claim is MEASURED before it is stated |
| P4 QC sentries | msuiter first (adapter/report PR) | M4 (the ms_qc_report surfaces) |
injected-artifact fixtures: sentry recall = 1, a documented false-positive ceiling, a provenance checklist on the report |
| P5 Catalog currency | sigminer | M4 (the refdb updater, ms_update_refdb) |
every numeric file sha256-pinned against the pinned SigProfilerAssignment mirror rev; zero COSMIC numerics committed (D3); updater fully offline-fixture-tested |
| P6 Evidence loop | msuiter (bench/ PRs only) |
M7 (the m7 harness: GO-05 anchor probe, CI-noise anchor gate, floor gate) | 42-cell regeneration all-ok, zero cached, host/hw_profile stamped; sigminer arms <= 2x sigprofiler wall AND no TP-only-judgment regression |
| P7 Campaign (not a PR) | campaign | G0 (the primary run) plus the RB-10 bootstrap shot | each produces a path:line-sealed devlog entry; operator-gated |
Sequencing, from the plan: P0/P5 are independent quick wins; P1 to P6-regen is the parity spine; P2/P3 gate on P1; P4 is orthogonal. A phase whose gate fails stops at its own PR and does not block the others.
P8 (application-scenario case studies) against the deferred list
P8 is not a plan phase. It is Pillar 3’s case-study face, carried in NEWS.md (“P8 - Application-scenario case studies”) and designed in vignettes/articles/devlog-2026-10-28-p8-treatment-forensics-design.qmd; in this roadmap it is documentation-plus-fixtures work under M7 and M8. Its CS-3 face ships ms_treatment_report(), and the deferred list above names “therapy forensics” as a hard v1.x non-goal. Controller ruling recorded here (this revision): the shipped artifact is the Pillar-3 case-study MVP surface, a report over already-extracted exposures with committed synthetic fixtures, while the v1.x non-goal continues to cover the full therapy-forensics program (de-novo detection, clinical linkage, longitudinal inference). The deferral line stands as written and is read through this paragraph. Moving that boundary in either direction is a PI call, and the collision is recorded here rather than silently absorbed.