{
  "target": "R2",
  "section": 3,
  "version": 1,
  "status": "authored design; implementation not authorized",
  "checklist-obligation": "- [ ] **R2 observation.** **PARTIAL:** independent observed authority, currency, complete observation-to-update/learn joins. WM-04. Built evidence: Structured observations and retained update envelopes",
  "nodes": [
    {
      "id": "R2-1",
      "pattern": "wm-prediction/observation-can-disagree",
      "source": "/home/joe/code/p4ng/wm-walkthroughs/collections/prediction/observation-can-disagree.flexiarg",
      "source-sha256": "f56876b75e11bc2e812f32011cd90b3fdf2c5fd1bc029cd2dd3f0d0bda500133",
      "reading-url": "/2026-09-15-wm-patterns-prediction.html#observation-can-disagree",
      "title": "Declare what can be observed",
      "application": "Take WM-04\u2019s authorized observer, criterion, entity and time boundary. Keep the observer blind to posterior and disposition where required. Produce an observation request whose literal evidence can contradict the prediction.",
      "status": "authored application, not executed or independently accepted"
    },
    {
      "id": "R2-2",
      "pattern": "wm-prediction/observation-can-disagree",
      "source": "/home/joe/code/p4ng/wm-walkthroughs/collections/prediction/observation-can-disagree.flexiarg",
      "source-sha256": "f56876b75e11bc2e812f32011cd90b3fdf2c5fd1bc029cd2dd3f0d0bda500133",
      "reading-url": "/2026-09-15-wm-patterns-prediction.html#observation-can-disagree",
      "title": "Acquire and review the exact finding",
      "application": "Retain the admitted source bytes, occurrence and cutoff, observation proposal and distinct exact-subject review. Produce an accepted finding or explicit insufficiency; an independence flag without provenance is not independent acquisition.",
      "status": "authored application, not executed or independently accepted"
    },
    {
      "id": "R2-3",
      "pattern": "wm-prediction/unobserved-is-not-zero",
      "source": "/home/joe/code/p4ng/wm-walkthroughs/collections/prediction/unobserved-is-not-zero.flexiarg",
      "source-sha256": "7d5fd6956e55f6f505b0daa74c25b055f4b22685e765b95509684868b9482b3c",
      "reading-url": "/2026-09-15-wm-patterns-prediction.html#unobserved-is-not-zero",
      "title": "Preserve missingness and eligibility",
      "application": "Keep categorical labels separate from ambiguous, conflicting and insufficient findings. Produce denominators and eligibility decisions so unobserved rows are not interpreted as zero-frequency cells or supplied invented mass.",
      "status": "authored application, not executed or independently accepted"
    },
    {
      "id": "R2-4",
      "pattern": "wm-connected-learning/observation-to-next-choice",
      "source": "/home/joe/code/p4ng/wm-walkthroughs/collections/connected-learning/observation-to-next-choice.flexiarg",
      "source-sha256": "b0407ef81dea874d78bb7697042342d4d8023592a058d66e01e6fa4813186053",
      "reading-url": "/2026-09-15-wm-patterns-connected-learning.html#observation-to-next-choice",
      "title": "Deliver to update and learning",
      "application": "Pass eligible observations with their identity to R3 and R17/WM-07 consumers. Record every admission/rejection and prevent recounting. Preserve noncategorical findings for follow-on acquisition without feeding them as labels.",
      "status": "authored application, not executed or independently accepted"
    }
  ],
  "relations": [
    {
      "from": "R2-1",
      "to": "R2-2",
      "kind": "requires-result",
      "because": "The declared criterion controls which bytes and reviewer qualify."
    },
    {
      "from": "R2-2",
      "to": "R2-3",
      "kind": "requires-result",
      "because": "Review scope controls eligibility, not the availability of a convenient label."
    },
    {
      "from": "R2-3",
      "to": "R2-4",
      "kind": "requires-result",
      "because": "Eligibility and observation identity constrain all downstream updates."
    },
    {
      "from": "R2-4",
      "to": "R2-1",
      "kind": "revision-feedback",
      "because": "A failed distinguishing control or consumer mismatch reopens the original scope/meaning; retain the failed claim rather than weakening it. Relevant controls: Reject leaked posterior, wrong reviewed subject, late evidence, duplicated observations and insufficiency-as-label. Verify both consumer admission and explicit rejection paths."
    }
  ],
  "dependencies": [
    "WM-04",
    "R3",
    "R17",
    "WM-07",
    "E02"
  ],
  "worked-situation": "A reviewer accepts that a handoff lacks sufficient criterion evidence. That is an accepted insufficiency finding. R2 retains it and requests further observation; it must not add an addressed count simply because the review itself passed.",
  "distinguishing-controls": "Reject leaked posterior, wrong reviewed subject, late evidence, duplicated observations and insufficiency-as-label. Verify both consumer admission and explicit rejection paths.",
  "open-decisions-and-limits": "Acquisition authority, freshness windows and coverage requirements come from WM-04 and the actual task; this node does not invent them.",
  "sources": [
    {
      "file": "/home/joe/code/p4ng/CHECKLIST-fundamentals.md",
      "sha256": "751ccfb00e4865c63734ac5147b9e6df66b48ee9697a7e20869d97a11467b81b",
      "scope": "dated source; statements retain their own authority and limits"
    },
    {
      "file": "/home/joe/code/futon2/holes/DESIGN-REQUIREMENTS-apex-2026-09-09.md",
      "sha256": "79228ad2299e639b427592f2eb24d4a80fadb9891271ca4bfe1211bf0a27f21c",
      "scope": "dated source; statements retain their own authority and limits"
    },
    {
      "file": "/home/joe/code/futon2/holes/labs/wm-contract/RULINGS-walkthrough-2026-09-07.md",
      "sha256": "e8034618d4677ccb3a2d14f4bae8f470d5499968fabebe2ee6446c516f4ea6b3",
      "scope": "dated source; statements retain their own authority and limits"
    },
    {
      "file": "/home/joe/code/futon2/holes/labs/wm-contract/RULINGS-walkthrough-2026-09-09.md",
      "sha256": "94222af425799985990929fd71e8dccf988ef4ced29958a96a188198964059c7",
      "scope": "dated source; statements retain their own authority and limits"
    },
    {
      "file": "/home/joe/code/futon2/holes/labs/wm-contract/RULINGS-walkthrough-2026-09-12.md",
      "sha256": "9a20cbb57e57c9c9f5c3c19e67be663de1b7f779d45b92734b01f48c53a575e0",
      "scope": "dated source; statements retain their own authority and limits"
    },
    {
      "file": "/home/joe/code/futon2/holes/labs/wm-contract/SPEC-cascade-policy-semantics-2026-09-15.md",
      "sha256": "2744a5c013a787b521b01849326a2216c477f839bf364c4920ac348391003334",
      "scope": "dated source; statements retain their own authority and limits"
    },
    {
      "file": "/home/joe/code/futon2/holes/labs/wm-contract/COMPLETION-LIST-plop2026-2026-09-12.md",
      "sha256": "cdb06820677265ee4649a6324824fffd570c4a9710cce97717b028124fdf0d20",
      "scope": "dated source; statements retain their own authority and limits"
    },
    {
      "file": "/home/joe/code/futon2/holes/labs/wm-contract/TN-row20-census-2026-09-12.md",
      "sha256": "dc7cec13147578130a875c0541c80dba65d3ffc1c21f4abf149b641d92b1a22c",
      "scope": "dated source; statements retain their own authority and limits"
    },
    {
      "file": "/home/joe/code/futon3c/holes/excursions/apex-thesis.json",
      "sha256": "4288034fd4bb9ab69c13a3744130446f90da9520806f2835940691726fc3c87d",
      "scope": "dated source; statements retain their own authority and limits"
    }
  ],
  "authored-content-sha256": "6ad6935c9196b751960a66e891a5ec562bbc77543e68999722b11b16e31e6b6f"
}
