Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
ed46390
test: pin the legacy zero-host silent-skip behavior (issue #29 regres…
JasperSeehofer Jul 10, 2026
8db6c6e
[PHYSICS] zero-host events contribute the pure-completion likelihood …
JasperSeehofer Jul 10, 2026
f29a5e7
[PHYSICS] cap the selection integrals at max_redshift (#30 groundwork)
JasperSeehofer Jul 10, 2026
e19fcb2
docs: register the seed1000 rail + #29/#30 fixes + seed600 Omega_m er…
JasperSeehofer Jul 10, 2026
fa50ad5
docs(260710-sjm): pre-dispatch plan for pp_coverage catalogue-support…
JasperSeehofer Jul 10, 2026
a9733bb
test(260710-sjm): pin z_support=None golden behaviour before truncate…
JasperSeehofer Jul 10, 2026
e0eddd3
feat(260710-sjm): add z_support catalogue-support-truncated mode to p…
JasperSeehofer Jul 10, 2026
a8100f1
docs(260710-sjm): author the pp_coverage deep-venue sweep RUNBOOK
JasperSeehofer Jul 10, 2026
cfce571
chore: merge quick task worktree (260710-sjm pp_coverage deep-venue m…
JasperSeehofer Jul 10, 2026
616aeed
results(260710-sjm): pp_coverage deep-venue sweep — fallback estimato…
JasperSeehofer Jul 10, 2026
e0c429e
docs(quick-260710-sjm): pp_coverage catalogue-support-truncated mode …
JasperSeehofer Jul 10, 2026
e520f3b
results(L-B): seed600 A/B — 1D drift gate PASS exact; 2D shift = docu…
JasperSeehofer Jul 10, 2026
711c1b7
docs: correct A/B analysis date stamps (all runs completed 2026-07-10…
JasperSeehofer Jul 10, 2026
0f6f914
feat(260711-07n): add Gray-mixture + conditioned estimator branches a…
JasperSeehofer Jul 10, 2026
995e781
results(260711-07n): EXP-41 gray-mixture 8-cell sweep + conditioned c…
JasperSeehofer Jul 10, 2026
32323ac
docs(quick-260711-07n): EXP-41 gray-mixture quick task — plan, summar…
JasperSeehofer Jul 10, 2026
6a3c8ab
feat(260711-117): exact membership-truncated-kernel mode + --n-z-quad…
JasperSeehofer Jul 10, 2026
b794fa4
results(260711-117): pp_coverage exact-mode 24-cell sweep + N-2c/N-2d…
JasperSeehofer Jul 10, 2026
22797ee
docs(quick-260711-117): exact-kernel quick task — plan, summary, state
JasperSeehofer Jul 10, 2026
e5b8383
feat(260711-1ps): inference-side w_pop prior-tilt knob (gamma) + --h-…
JasperSeehofer Jul 10, 2026
c78c2f5
results(260711-1ps): pre-register prior-tilt ladder + floor-discrimin…
JasperSeehofer Jul 10, 2026
724fc29
results(260711-1ps): prior-tilt ladder + floor discriminator — lever …
JasperSeehofer Jul 10, 2026
f494762
docs(quick-260711-1ps): N-3 prior-tilt quick task — plan, summary, state
JasperSeehofer Jul 10, 2026
0d08992
feat(260711-27m): pdet-in-numerator latent-detection exact-inverse fl…
JasperSeehofer Jul 11, 2026
52be115
results(260711-27m): p_det-in-numerator probe — hypothesis REFUTED, f…
JasperSeehofer Jul 11, 2026
b89d3b7
docs(quick-260711-27m): session wrap — 27m plan/summary, state, [L7] …
JasperSeehofer Jul 11, 2026
66ff434
docs: next-session kickoff prompt — floor noise-model probe, N-4 shal…
JasperSeehofer Jul 11, 2026
77ee9d1
feat(260711-hx1): model-distance sigma in GW likelihood (floor noise-…
JasperSeehofer Jul 11, 2026
03438d8
results(260711-hx1): noise-model floor probe — H_sigma CONFIRMED as t…
JasperSeehofer Jul 11, 2026
ec182d7
docs(quick-260711-hx1): floor noise-model probe — plan, state, [L7] l…
JasperSeehofer Jul 11, 2026
baeaa1c
feat(260711-iic): tunable detection horizon (d50_gpc/w_pdet_gpc) for …
JasperSeehofer Jul 11, 2026
4f603af
results(260711-iic): N-4 shallow-venue probe — shallow 1D offset is e…
JasperSeehofer Jul 11, 2026
038bf82
docs(quick-260711-iic): N-4 shallow-venue probe — plan, state, [L8] l…
JasperSeehofer Jul 11, 2026
78e18a0
docs: next-session kickoff prompt — bias story CLOSED (deep floor + s…
JasperSeehofer Jul 11, 2026
d966156
results(260712): N-4 shallow attribution CLOSED — seed600 low-z hosts…
JasperSeehofer Jul 11, 2026
45398f4
docs(scoping): production host-z kernel correction — /physics-change …
JasperSeehofer Jul 11, 2026
7a3f318
results(260712 N-5): 2D subsample well-behaved post-D_g-fix; Eddingto…
JasperSeehofer Jul 11, 2026
6581d45
docs: next-session handoff — all LOCAL bias work exhausted (N-4 close…
JasperSeehofer Jul 11, 2026
8a6f015
docs(decisions): user calls on D1-D5 + production kernel fix (impleme…
JasperSeehofer Jul 12, 2026
bb9edf2
docs(scoping): Part-1 volume_trunc implementation spec (approved, rea…
JasperSeehofer Jul 12, 2026
821cc30
docs: volume_trunc execution kickoff (Option B — fresh focused session)
JasperSeehofer Jul 12, 2026
2784ed2
docs(planning): sim/eval convention coverage + advisory tracer verdic…
JasperSeehofer Jul 12, 2026
c4a1c7d
[PHYSICS] volume_trunc host-z kernel (Part 1) — implemented, empirica…
JasperSeehofer Jul 12, 2026
320a115
docs(planning): record Part 1 volume_trunc FALSIFIED at seed600 gate …
JasperSeehofer Jul 12, 2026
793786c
docs: CHANGELOG entry for the experimental/falsified volume_trunc mode
JasperSeehofer Jul 12, 2026
5d82f21
results: host-mass kernel truncation biases the 2D H0 channel HIGH (H…
JasperSeehofer Jul 13, 2026
87d7dc0
results: H1 shallow bias is the z>=0 photo-z CLAMP, not the volume co…
JasperSeehofer Jul 13, 2026
79e1370
results(h1): catalogue photo-z is smooth/unclamped near 0 -> harness …
JasperSeehofer Jul 13, 2026
171ab95
results(mass): firm up mass-kernel bias into the real loose-photo-z r…
JasperSeehofer Jul 13, 2026
70bee1f
[PHYSICS] mass_trunc host-mass kernel (EXP-45) — implemented, exonera…
JasperSeehofer Jul 13, 2026
01af724
docs(bias): scope the mass_trunc/volume_trunc exonerations to their s…
JasperSeehofer Jul 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
218 changes: 218 additions & 0 deletions .planning/BIAS-INVESTIGATION-20260710.md

Large diffs are not rendered by default.

68 changes: 68 additions & 0 deletions .planning/CONVENTIONS-MANIFEST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# CONVENTIONS-MANIFEST — MasterThesisCode (SKELETON)

> **STATUS: SKELETON — NOT the full manifest.** This is the 4-incident-derived seed
> (+ HOST_DRAW_Z_MAX row + 2 verifiable bonus rows) mandated by
> [[orbiter-upgrade-design]] Part 4, C.6, as the standing floor for the sim/eval
> convention-consistency task-area. It enumerates only the convention-bearing
> quantities that have *already caused a dated incident* or are *flagged live*.
> **The full manifest — every convention-bearing quantity across the sim↔eval
> boundary — is domain archaeology estimated at 2–3 days of MTC/GPD-session
> context and is a separate named task (owner: Jasper / MTC sessions).** A class
> absent from this table is invisible to the tracer that consumes it; that
> incompleteness is declared in every tracer verdict.

- **Schema**: `conventions-manifest/skeleton-v0`
- **Seeded**: 2026-07-12 (advisory tracer run, pre-Phase-2-submission)
- **Boundary modelled**: INJECTION (sim: `main.injection_campaign`, `dark_siren_injection`, FEW/CRB) → STORAGE (injection CSV, GLADE+ reduced catalogue, CRB CSV) → P_DET GRID (`simulation_detection_probability`) → INFERENCE (`bayesian_statistics`, `posterior_combination`)
- **Convention on how to read the table**: each cell records the convention *as the code actually implements it at that stage*, with a `file:line` anchor where read from source, or `UNKNOWN — needs domain confirmation` where it could not be verified by reading code in one pass.
- **Paired-test column**: the invariant test that *should* guard this row per the C.6 floor (astropy round-trip · "a fix must produce different values" · every-output invariant · schema/provenance gate). `NONE FOUND` means no such guard was located — a manifest-upkeep action, not necessarily a bug.

---

## Table 1 — Convention-bearing quantities (incident-seeded)

| # | Quantity | Incident origin | AT INJECTION | AT STORAGE | AT P_DET GRID | AT INFERENCE | Paired invariant test | Verified? |
|---|----------|-----------------|--------------|------------|---------------|--------------|-----------------------|-----------|
| M1 | Sky-angle frame `qS`/`phiS` (θ,φ) | Coordinate-frame bug 2026-04-21 (0.0% apparent bias / 6 milestones) | ecliptic `BarycentricTrueEcliptic(J2000)`; host angles → `parameter_space.qS/phiS`; `ResponseWrapper(is_ecliptic_latitude=False)` (`waveform_generator.py:64`) | CRB CSV `qS/phiS` ecliptic rad; catalogue on disk is **equatorial ICRS deg** (raw cols 8/9), rotated **in place** to ecliptic at load (`handler._rotate_equatorial_to_ecliptic`, COORD-03/Phase 36, `handler.py:251`) | (sky enters via equal-\|sin β\| ecliptic-latitude bands; `bayesian_statistics.py:339`) | ecliptic; `Detection.phi/theta`; `get_possible_hosts_from_ball_tree` ecliptic (`bayesian_statistics.py:1175`) | astropy `SkyCoord.transform_to` round-trip at ingestion (COORD-03); FRAME-AUDIT.md 4/4 claims CONFIRMED | **YES — CONSISTENT** |
| M2 | BH mass frame `M` (source `M` vs redshifted `M_z=M(1+z)`) | Redshifted-mass bug 2026-06-20 (passed 568 tests, W-CONF-13) | **`M_z = M·(1+z)` lifted once at injection** (`main.py:899`); FEW sees `M_z`; source-frame `sample.M` NOT stored | injection CSV `"M"` column = **`M_z`** observer-frame (`main.py:980-983`); `Detection.M` documented `M_z` (`detection.py:60,85`); catalogue `host.M` = **source-frame** `M_g` (`handler.py:105`, `_rate_weight` note) | grid mass axis = **observer-frame `M_z`** (`_M_arr = pooled_df["M"]` = injection `M_z`; `simulation_detection_probability.py:139,272`) | numerator rate-weight uses source-frame `host.M` (matches draw); selection query **lifts** `M_z_g = M_g·(1+z_g)` to match grid axis (`bayesian_statistics.py:768`) | "a fix must produce different values" (M_z ≠ M); every-output invariant across CRB CSV **and** injection CSV (W-PRE-12 lesson); `test_parameter_space_h` guards CRB path | **YES — CONSISTENT (post-Design-B + H3 fix)** |
| M3 | In-catalogue likelihood `L_cat` form | `L_cat` mean-of-ratios bug, commit `816f904` | n/a (generative) | n/a | n/a | **ratio-of-sums** `(Σ_g w·N_g)/(Σ_g w·D_g)` — Gray (2020) Eq. A.9/A.10; `weighted_ratio_of_sums` (`bayesian_statistics.py:212-260`); constant-weight limit = plain ratio of sums | equivalence test that the ratio-of-sums (not mean-of-ratios) is canonical; `--catalog_only` ablation sign-test | **YES — CONSISTENT (post-816f904)** |
| M4 | `p_det` placement in the per-event ratio | p_det-in-numerator / incomplete-fix, commit `341ca62`, W-PRE-12 | detection = deterministic SNR≥threshold at injection | injection CSV stores `SNR`,`d_L` (raw, ungated; `PRE_SCREEN_SNR_FACTOR=0.0`, `constants.py:63`) | p_det = detection-horizon **survival** `P(d_hor≥d_L)`, `d_hor=SNR·d_L/thr` (`simulation_detection_probability.py:334`) | `p_det` appears **only in denominator** `D(h)=β_G+β_Ḡ` (`precompute_completion_denominator:389`); numerator `single_host_likelihood` has **no** `p_det`; `p_i=(β_G·L_cat + B_num)/D(h)` | integrand re-derivation invariant ("p_det in denominator only"); `--catalog_only` ablation | **YES — CONSISTENT (post-341ca62)** |
| M5 | Host-draw population depth `HOST_DRAW_Z_MAX` | **LIVE item** flagged 2026-07-02 (`CAMPAIGN-PREP-PHASE2.md`): "`0.5` horizon-stale" | `z_cut = HOST_DRAW_Z_MAX` (`main.py:825`); injections drawn to this depth | `constants.HOST_DRAW_Z_MAX = 1.5`; `GALAXY_CATALOG_REDSHIFT_UPPER_LIMIT = 1.55`; injection CSV carries `z_cut` provenance column | `expected_z_max=HOST_DRAW_Z_MAX` passed at construction; **hard `raise ValueError`** on shallow (`pool_z_max < 0.9·1.5`) or mixed-`z_cut` pool (`simulation_detection_probability.py:290-322`) | `cosmological_model.max_redshift = 1.5` asserts `HOST_DRAW_Z_MAX ≤ max_redshift` (`cosmological_model.py:189`); D(h) integrals capped at `max_redshift` (`f29a5e7`, #30) | provenance/schema gate: `z_cut` uniqueness + `code_rev` check + shallow-pool `ValueError` | **RESOLVED → 1.5 (fix #20, `b52ff8d`, 2026-07-03); CONSISTENT if campaign pool regenerated (hard-gated)** |

## Table 2 — Verifiable bonus rows (read from code this pass; not incident-seeded)

| # | Quantity | AT INJECTION | AT STORAGE | AT INFERENCE | Verified? |
|---|----------|--------------|------------|--------------|-----------|
| B1 | Redshift frame (heliocentric vs CMB vs cosmological) | population z is cosmological (synthetic, frame-neutral) | catalogue **`z_cmb`** (GLADE+ col 28, PV-corrected; migrated from `z_helio` col 27) fed to `d_L(z,h)` & `M_z=M(1+z)` (`handler.py:153-158`) | residual host peculiar velocity marginalized into host-z kernel `σ_z_pv=(1+z)·200km/s/c` (issue #16, `constants.py:71-83`) | **CONSISTENT in-code; RECENT migration — see WATCH (verify campaign catalogue is the z_cmb rebuild)** |
| B2 | SNR detection threshold | `SNR_THRESHOLD=20` (`main.py:1308,1409`) | injection CSV `SNR` ungated | horizon `d_hor=SNR·d_L/20` (`snr_threshold=SNR_THRESHOLD`, `posterior_combination.py:583`); CRB filter `SNR≥20` (`bayesian_statistics.py:1027`) | **CONSISTENT (uniform 20)** |
| B3 | Distance unit `d_L` | Gpc | injection CSV Gpc; CRB CSV Gpc | `dist()`/`dist_vectorized()` return Gpc (`physical_relations.py:141,235`); `d_hor` Gpc | **CONSISTENT (Gpc uniform)** |

---

## Declared incompleteness (mandatory)

This skeleton covers **8 rows** across a boundary that certainly carries more
convention-bearing quantities. Known gaps NOT modelled here (candidates for the
full-manifest archaeology task):

- Fisher/CRB covariance conventions (which parameters are `log`-scaled; units of
`delta_*_delta_*` covariance entries; correlation sign conventions).
- Prior/population weight conventions (`w_pop ∝ dV_c/dz/(1+z)`; the Eddington-shift
`eddington_shifted_host_mass`; the volume-deconvolution `normalization_mode`).
- Completeness `f(z)`/`m_th` HEALPix conventions (magnitude system, NSIDE, apparent
vs absolute threshold).
- Photo-z vs spec-z error-model conventions (`σ_z` floors, the σ_z/z shallow-venue
regime flagged in SCV 2026-07-11).
- `pp_coverage` validation-harness population ceiling (`Z_MAX_POP=0.95`) vs the
production campaign depth (`1.5`) — see tracer verdict Q7 (UNKNOWN).

**An `UNKNOWN` or a flagged row in this manifest is a valid, valuable output. A
false "all covered" is the exact W-CONF-13 failure mode this artifact exists to
prevent.**

## Upkeep contract (C.6 floor)

Per the layered-ownership recommendation: any `/physics-change` (or equivalent)
edit touching a convention-bearing quantity above **updates its manifest row and
its paired invariant test in the same change**. Manifest staleness is the tracer's
input — an unmaintained manifest produces false assurance.
58 changes: 58 additions & 0 deletions .planning/COVERAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: "Coverage Map — MasterThesisCode"
schema: coverage-map/v1
seeded: 2026-07-12 (advisory tracer run — hand-seeded, pre-Phase-2; NOT via /project-init or /gardener --coverage)
last_full_audit: 2026-07-12 (partial — sim/eval area only; full 6-step audit pending gardener --coverage retrofit)
blind_spot: "Covers named task-areas only. A class absent from the inventory is
invisible; the inventory is re-tested at every full audit (commit- and
incident-classification), and any unclassifiable incident files a WATCH row.
WATCH latency is bounded by full-audit cadence, not drift-check cadence. This
seed populated ONE finding (the sim/eval divergence class); the other 6
task-areas are inventory-only and their owners are not yet audit-verified."
---

## Task-areas (5–9 rows, MECE; changes to THIS table are propose-class)

Inventory transcribed from [[orbiter-upgrade-design]] C.6 Step-1 output (7 areas).
Owners are the C.6-documented state; only Area 2's UNCOVERED status is (re)confirmed
by this pass. The other rows are carried forward, not independently re-audited.

| # | Task-area | Owner (artifact) | Rung | Trigger set (globs/events/keywords) | Constitution pointer | Coverage evidence | Review-by | Status |
|---|-----------|------------------|------|-------------------------------------|----------------------|-------------------|-----------|--------|
| 1 | Repo+cluster interaction (bwUniCluster preflight/submit/retrieve; don't-cancel) | `cluster` skill (`disable-model-invocation`) | skill | `cluster/**`, `*.sbatch`, submit/scancel/sacct events | `cluster` SKILL runbook | COVERED | 2026-10 | COVERED |
| 2 | **Sim/eval convention consistency** (frames, units, redshift/mass conventions, likelihood structure across sim↔eval) | **manifest floor (`CONVENTIONS-MANIFEST.md`) + campaign-gated advisory tracer** — *proposed this pass; not yet ratified* | tool + sub-agent (proposed) | `bayesian_statistics.py`, `simulation_detection_probability.py`, `main.injection_campaign`, `handler.py`, `physical_relations.py`; event: pre-campaign | `.planning/CONVENTIONS-MANIFEST.md` (skeleton) | **was UNCOVERED — 4 incidents;** proposed owner pending Jasper ratification (open decision 5) | 2026-08-01 (Phase-2 submit) | **UNCOVERED → owner PROPOSED (advisory)** |
| 3 | Physics theory & formula change control | `physics-change` (advisory, description-triggered, no hard gate) | skill | 7 trigger files | `physics-change` SKILL | COVERED — scoped to single-file changes, not boundary consistency | 2026-10 | COVERED (WATCH: advisory-only triggering) |
| 4 | HPC implementation & provenance | `run-pipeline`, `gpu-audit` | skill + tool | pipeline/GPU globs | run-pipeline SKILL | COVERED | 2026-10 | COVERED |
| 5 | Quality & regression | `check`, `integration-test-eval` | skill + tool | `tests/**`, CI events | check SKILL | COVERED — declared blind spot: self-consistent wrong conventions pass it (568/568) | 2026-10 | COVERED |
| 6 | Known-bug triage | `known-bugs` | skill | issue/known-bug keywords | known-bugs SKILL | COVERED | 2026-10 | COVERED |
| 7 | State/docs upkeep | `pre-commit-docs` + Layer-1 STATE.md | skill + convention | `*.md`, `STATE.md`, docs CI | `.planning/STATE.md` | COVERED | 2026-10 | COVERED (CONSTITUTION finding — see C-MTC-20260712-002) |

## Findings (append-only; each row carries a unique id: C-<host>-YYYYMMDD-<seq>)

| id | date | kind | area | evidence rows (dated, cited) | cost of last incident | proposed owner + rung | status |
|----|------|------|------|------------------------------|-----------------------|-----------------------|--------|
| C-MTC-20260712-001 | 2026-07-12 | UNCOVERED | 2 (Sim/eval convention consistency) | **≥2 dated (4 total):** (a) coordinate-frame 2026-04-21 — [[scientific-computing-validation]]:36, 0.0% apparent bias / 6 shipped milestones; (b) mass-redshift 2026-06-20 — SCV:38, W-CONF-13, passed all 568 tests; (c) `L_cat` mean-of-ratios — commit `816f904`, SCV:203; (d) `p_det` denominator / incomplete-fix — commit `341ca62`, W-PRE-12 | **one full retired data inventory** (`simulations/_RETIRED_20260620_pre_massfix_lcat/`) **+ full re-simulation campaigns** (weeks of cluster GPU time + days of human orchestration) | manifest + invariant tests (tool/convention) as standing floor **+** standing pre-campaign advisory tracer (sub-agent, event-gated at campaign boundaries), human-ratified pre-PASS (anchor-1) | **OPEN — this is the organism's FIRST missing-coverage finding; owner proposed, pending Jasper ratification (open decision 5). Tracer run 2026-07-12: no live divergence found on the 4 seeded classes + HOST_DRAW_Z_MAX; verdict ADVISORY (see tracer-verdict-2026-07-12.md).** |
| C-MTC-20260712-002 | 2026-07-12 | CONSTITUTION | 7 (State/docs upkeep) | [[master-thesis-code]] entity page ~3 months stale (C.6 Step-5); live state migrated into registry Key-Conventions cell; [[scientific-computing-validation]] frontmatter `updated: 2026-05-04` lags its own body (entries through 2026-07-11) | none (documentation drift, no wrong result) | refresh entity page + SCV frontmatter at next `/wiki-caretaker` | WATCH |
| C-MTC-20260712-003 | 2026-07-12 | WATCH | 2 (Sim/eval convention consistency) | `pp_coverage.Z_MAX_POP = 0.95` (validation harness) vs production `HOST_DRAW_Z_MAX = 1.5`; SCV 2026-07-11 shows estimator bias is depth- and σ_z/z-dependent | none yet (calibration-depth mismatch, not a shipped result) | confirm per-seed `pp_coverage` runs at campaign depth, not the hardcoded 0.95 | **WATCH — under active exploration (Jasper 2026-07-12): both depth scenarios (0.95 vs 1.5) are being run and evidence collected before the final setup is decided. Not a submission blocker; revisit when the setup is finalized.** |
| C-MTC-20260712-004 | 2026-07-12 | WATCH | 2 (Sim/eval convention consistency) | tracer refuter 2026-07-12: the injection catalog `"M" = M_z` write (`main.py:899/983`) has **no paired invariant test** asserting the column is redshifted — only the CRB path is guarded; consistency is held by a runtime comment, not CI, so a future revert of the M_z lift fails silently (the W-PRE-12 "every-output invariant" gap) | none yet (latent) | **paired invariant test in CI** asserting the injection catalog `"M"` column == `M_source·(1+z)` (tool/convention rung) — the standing-floor half of finding C-001's owner | **APPROVED FOR IMPLEMENTATION (Jasper 2026-07-12).** A future MTC session should add this test; it operationalises the C-001 "manifest + invariant tests" floor for the M_z boundary. |

## Archive (drained/superseded findings move here under a dated '### YYYY-MM' heading with a supersession pointer appended — never edited in place, never deleted, never left only to git history)

_(empty)_

## Routing notes

Trigger-set semantics are AUDIT-TIME in v1: the map is documentation agents read
and auditors join against — no hook or router evaluates triggers during a live
session. Escalation convention: work matching no owner → session default; the
session files a WATCH row at the next classification pass. Determinism rule:
trigger sets pairwise disjoint; overlap is an OVERLAP finding.

**Seed provenance / honesty note.** This map was hand-seeded during the 2026-07-12
advisory tracer run to emit the organism's first missing-coverage finding
(C-MTC-20260712-001) before Phase-2 submission — it is NOT the output of the
`/gardener --coverage` full 6-step retrofit (which is propose-class and estimated
30–60 min in a fresh context). Areas 1,3–7 are transcribed from the C.6 worked
example, not independently re-audited here. The proper retrofit (commit-classification
+ incident-classification MECE tests, RACI-lite owner assignment, rung + governance
pressure test) remains outstanding and should supersede this seed.
Loading