{
  "api_version": "v1",
  "dataset_version": "AdityaNet_v2_dataset_r1",
  "dataset_sha256": "43fd0e228b28ae6bc7e468c3acf68722768bd62b73798eb6631e9e6233b71ed9",
  "generated_at": "2026-07-29T13:34:16.816116+00:00",
  "source_commit": "99af630",
  "data": {
    "id": "CONTRADICTION-005",
    "slug": "contradiction-005",
    "title": "the archive-wide build falsifies three frozen rules",
    "state": "CLOSED",
    "date": "2026-07-17",
    "reason": "Archive-wide build falsified three frozen rules. RESOLVED by spec r5.",
    "resolving_revision": "r5",
    "status_line": "Status: CLOSED 2026-07-17 \u2014 the owner ruled the three defects independent and adjudicated them separately. Applied as PARSER_SPECIFICATION.md r5 (\u00a710). Milestone VII rebuilt; 188/188 tests pass.",
    "declined_amendment": true,
    "lead": "**Status: CLOSED 2026-07-17 \u2014 the owner ruled the three defects independent and adjudicated them separately. Applied as PARSER_SPECIFICATION.md r5 (\u00a710). Milestone VII rebuilt; 188/188 tests pass.**\n\n**Defect A: APPROVED in full.** \u00a72.7 now validates `DETCHANS` against a family allowlist (CZT 341, CdTe 511, both PHA); \u00a73 T5 carries `detchans` explicitly and never merges CZT/CdTe arrays; F-11 restated over three incommensurable spaces. **A-13** added.\n\n**Defect B: PARTIALLY APPROVED \u2014 the owner's ruling is narrower than my proposal, and better.** The equality is replaced by the **logical implication `NaN(COUNTS) \u21d2 GTI-excluded`**: a NaN inside GTI-good time remains F-09; a GTI-excluded second is **permitted** to hold a finite count. My proposal to record the measured statistics in the contract was **DECLINED** \u2014 no archive statistics, no percentages, no median excess. **A-9 recorded as discharged at M-VII; A-14 created.**\n\n*Why the owner was right:* the implication is the **strong half** of the bijection \u2014 it forbids the dangerous direction while asserting nothing the archive supports. Encoding the excess statistics would have written an unvalidated observation into the contract: the same refusal as CONTRADICTION-003. **Measurements belong in the profile and this record; invariants belong in the contract.**\n\n**Defect C: no amendment.** F-19 unchanged. Recorded as an archive-quality finding for Milestone VIII.\n\nThe first archive-wide build ran to completion and **reported its own failure rather than hiding it**: SoLEXS 353/436 built, **HEL1OS 0/391 built**, 474 products skipped, every skip logged with its rule id. The build driver catches per-product terminations and records them as data (builders and parsers still fail loud); this is what surfaced all three defects at once.\n\n| Rule | Skips | Defect |\n|---|---|---|\n| **F-07** | **391** | **A** \u2014 \u00a72.7's `DETCHANS=341` is wrong for CdTe |\n| **F-09** | **71** | **B** \u2014 the r2 NaN\u27faGTI bijection does not hold archive-wide |\n| **F-19** | **12** | **C** \u2014 GTI intervals with `STOP <= START` |\n\n---",
    "sections": [
      {
        "heading": "DEFECT A \u2014 \u00a72.7 asserts one HEL1OS channel space; the archive has two",
        "body": "**The rule (\u00a72.7):** `DETCHANS=341`, enforced by the M-V parser and the T5 builder.\n\n**`OBSERVED`:** HEL1OS has **two distinct PHA channel spaces**:\n\n| Detector family | `DETCHANS` | `CHANTYPE` |\n|---|---|---|\n| **CZT** (CZT1, CZT2) | **341** | PHA |\n| **CdTe** (CdTe1, CdTe2) | **511** | PHA |\n\nEvery one of the 391 orbits contains CdTe spectra, so **every orbit terminates** and **T3/T4/T5 are empty archive-wide**.\n\n**Root cause \u2014 mine, and the fourth instance of one pattern.** I wrote \u00a72.7 after inspecting exactly one file (`hel1os_czt_spectra_czt2.fits`) and generalised its `DETCHANS` to all HEL1OS spectra. CONTRADICTION-001 (GTI convention), -003 (LC/spectrum relation), -004 Defect A (R-1 hypotheses) and now -005 A share a single root: **asserting a property from a single reading without checking it across the population.** The A-8/A-9/A-11/A-12 scoping discipline exists precisely because of this pattern; \u00a72.7's `DETCHANS` was never given a scoping assumption, and that omission is what let it through.\n\n**Consequence for F-11.** The contract treats channel-space separation as binary (SoLEXS PI 340 vs HEL1OS PHA 341). There are **three** incommensurable spaces: **SoLEXS PI 340**, **HEL1OS CZT PHA 341**, **HEL1OS CdTe PHA 511**. F-11's intent is unchanged and strengthened; its arithmetic is incomplete.\n\n### Proposed amendment (NOT applied)\n1. **\u00a72.7** \u2014 replace the scalar `DETCHANS=341` with a per-family allowlist: **CZT \u2192 341, CdTe \u2192 511**, both `CHANTYPE='PHA'`; an unlisted `(family, DETCHANS)` pair terminates via **F-07**, exactly as an unlisted band terminates via F-10.\n2. **\u00a73 T5** \u2014 `hel1os_spec_1min` must carry a `detchans` column and **must not** stack CZT and CdTe spectra into one array column; the channel space is a property of the detector family.\n3. **\u00a75 F-11** \u2014 restate over **three** spaces rather than two.\n4. **\u00a78** \u2014 new assumption **A-13**: the per-family channel counts are **VERIFIED on a sample of 8 orbits**; Milestone VIII must verify across all 391; any deviation terminates validation.\n\n---"
      },
      {
        "heading": "DEFECT B \u2014 A-9 discharged early, and **VIOLATED**",
        "body": "**The rule (\u00a72.1 r2, owner-approved):** *`NaN(COUNTS)` set MUST equal the GTI-excluded second set exactly; mismatch \u2192 F-09.* Scoped by **A-9** to the reference archive, with Milestone VIII obliged to verify all 436 and **terminate on any violation**.\n\n**The T1 builder runs this check per day, so A-9's obligation was discharged at M-VII rather than M-VIII.** The archive-wide result:\n\n| Relationship | Days |\n|---|---|\n| `NaN == GTI-excluded` \u2014 **the r2 bijection holds** | **344** |\n| `NaN \u2282 GTI-excluded` \u2014 **strict subset; bijection FAILS** | **70** |\n| `NaN \u2283 GTI-excluded` | **0** |\n| Neither | **0** |\n| **`NaN \u2286 GTI-excluded`** | **414 / 414 (100%)** |\n\n(414 days checked; 22 unparseable \u2014 12 by Defect C, 10 by F-01.)\n\n**Excess GTI-excluded seconds carrying finite counts:** min 2, **median 758**, max 43,199, **total 266,919**.\n\n**`OBSERVED`:** the bijection is **false archive-wide** (70/414 = 17% violate it). The relationship that *does* hold on every single day is the **one-directional** `NaN \u2286 GTI-excluded`: every NaN second is GTI-excluded, but a GTI-excluded second may carry a finite count.\n\n**This is exactly the outcome A-9 was written to catch**, and the reference day was unrepresentative: 2024-05-14 happens to sit in the 83% where the sets coincide.\n\n**Note the direction matters.** `NaN \u2286 GTI-excluded` is still a strong, useful invariant \u2014 it forbids the dangerous case (a NaN inside good time, i.e. missing data silently treated as observed). What it does not support is *equality*, which the r2 rule asserts.\n\n**`HYPOTHESIS` (not for the contract):** GTI may exclude seconds for reasons beyond data absence \u2014 the excess is large (median 758 s/day, max 43,199 s \u2248 half a day) and looks structured rather than incidental. **Establishing why is a scientific-validation question, not a parser one**, and belongs with CONTRADICTION-003 in Milestone VIII. **No mechanism is asserted here.**\n\n### Proposed amendment (NOT applied)\n1. **\u00a72.1 r2 / \u00a77** \u2014 replace the bijection with the measured, one-directional invariant: **`NaN(COUNTS) \u2286 GTI-excluded` (F-09 on any NaN inside good time)**. Do **not** replace it with a tolerance and do **not** encode the excess statistics.\n2. **\u00a78 A-9** \u2014 mark **DISCHARGED at M-VII** and **VIOLATED**: record 344 equal / 70 strict-subset / 0 violations of the subset direction. Replace with **A-14**: *the excess of GTI-excluded seconds over NaN seconds is unexplained; owner Milestone VIII (with CONTRADICTION-003).*\n3. **\u00a73 T1** \u2014 `live_time_s` continues to come from GTI and `n_seconds_present` from finite counts. **They are already carried independently and neither is derived from the other**, so no builder change follows from this defect.\n\n---"
      },
      {
        "heading": "DEFECT C \u2014 12 SoLEXS days have `STOP <= START` in GTI",
        "body": "**`OBSERVED`:** 12 of 436 archives terminate at F-19 (`GTI row N has STOP <= START`), e.g. `AL1_SLX_L1_20240422_v1.0` row 2. A further 10 terminate at F-01 (unreadable/gzip).\n\n**No amendment proposed.** F-19 is behaving exactly as designed: a GTI interval that ends before it starts is not a convention question, it is an archive defect. These 22 days are **correctly excluded and individually logged**. Milestone VIII should report them as an archive-quality finding.\n\n---"
      },
      {
        "heading": "What is NOT affected",
        "body": "SoLEXS **T1/T2 built cleanly for 353 archives**, and every invariant held on them: NaN\u27faGTI (on those days), finite-only aggregation, `live_time_s` == `EXPOSURE`, 1440 rows/day, no duplicate minutes, complete provenance. **T6: 2,130 GTI intervals. T7: 1,556 provenance rows.** The Version Resolution Engine ran correctly (1,065,572 owned pairs, 48,604 conflicts resolved) \u2014 its output is simply unused because no HEL1OS product survived Defect A.\n\n**186/186 unit tests pass**, including the D1 acceptance criterion: T1's `rate_total` peaks at **2024-05-14 16:49 UTC**, within the frozen \u00b12 min of the GOES X8.7 at 16:51 \u2014 **the project's first genuine Aditya-L1 observation.**"
      },
      {
        "heading": "State of the work",
        "body": "Milestone VII is **paused with the code committed and every rule terminating exactly as frozen**. Nothing weakened: `DETCHANS` is still 341, the bijection is still equality, F-19 still fires. The build's own statistics are the evidence.\n\n**RESOLVED.** All three defects closed by r5. Defect C required no amendment.\n\n**Milestone VIII is now the final validation milestone.** It shall discharge **A-8, A-11, A-12, A-13, A-14** and resolve **CONTRADICTION-003** through archive-wide scientific validation. A-9 is already discharged (here)."
      }
    ],
    "source": "artifacts/v2/phase05/CONTRADICTION-005.md"
  }
}
