{
  "version": "riddle.good-catch-lab.neon-active-lane-receipt.v1",
  "target": "https://riddlenode.com/neon-lab/",
  "source": {
    "repo": "davisdiehl/lilarcade",
    "pullRequest": 534,
    "commit": "706cdc8"
  },
  "status": "active_lane_receipts_visible",
  "evidenceRolePattern": "interaction_snapshots",
  "catchCard": {
    "title": "Neon stopped hiding missing parts behind a generic guardrail.",
    "summary": "The human-review packets now show whether required active lanes stayed measurable in each proof window, so a candidate cannot quietly pass review with a required musical part missing.",
    "whatWentWrong": "The earlier review packet could say required_instruments_preserved, but a reader had to inspect nested JSON to understand whether the required lanes were actually active in every proof window.",
    "whatRiddleCaught": "The new active-lane receipt exposes active_lanes_preserved or missing_required_active_lanes directly in the compact packet.",
    "whyItMatters": "This makes review packets safer without claiming that the mix sounds better.",
    "whatChanged": "LilArcade now adds activeLaneReceipt to compact claim-candidate packets, makes required_instruments_preserved depend on that receipt, and renders an Active Lane Receipts table in Markdown review packets.",
    "whatThisDoesNotProve": "It does not prove subjective mix quality, does not prove the candidate is musically preferred, and does not replace listening review.",
    "technicalReceipt": "activeLaneReceipt.status=active_lanes_preserved with requiredWindowCount=2, windowCount=2, requiredTracks=bass,chord,guitar,rhythmSynth, and missingRequiredActiveCount=0 for bass, guitar, and chord live RiddleNode packets."
  },
  "liveReceipt": {
    "intents": [
      {
        "id": "bass-down-little",
        "recommendation": "bass -0.05",
        "supportedCandidates": 3,
        "rejectedCandidates": 0,
        "activeLaneStatus": "active_lanes_preserved",
        "requiredWindowCount": 2,
        "windowCount": 2,
        "requiredTracks": ["bass", "chord", "guitar", "rhythmSynth"],
        "missingRequiredActive": []
      },
      {
        "id": "guitar-down-little",
        "recommendation": "guitar -0.02",
        "supportedCandidates": 3,
        "rejectedCandidates": 0,
        "activeLaneStatus": "active_lanes_preserved",
        "requiredWindowCount": 2,
        "windowCount": 2,
        "requiredTracks": ["bass", "chord", "guitar", "rhythmSynth"],
        "missingRequiredActive": []
      },
      {
        "id": "chord-down-little",
        "recommendation": "chord -0.035",
        "supportedCandidates": 3,
        "rejectedCandidates": 0,
        "activeLaneStatus": "active_lanes_preserved",
        "requiredWindowCount": 2,
        "windowCount": 2,
        "requiredTracks": ["bass", "chord", "guitar", "rhythmSynth"],
        "missingRequiredActive": []
      }
    ],
    "findingCount": 0,
    "reviewWarningCount": 0
  },
  "validation": [
    "node --test src/proof/__tests__/neonProofContract.test.mjs scripts/__tests__/neonReviewPacket.test.mjs passed 20/20",
    "npm run proof:sequencer:check-profiles passed with 12 profiles and no drift",
    "npm run proof:sequencer:riddlenode-fast-loop passed against https://riddlenode.com/neon-lab/",
    "npm run test:neon passed 106/106",
    "npm run build passed locally",
    "GitHub CI passed for LilArcade PR #534 at 706cdc8"
  ],
  "artifacts": [
    "intent-matrix-summary.md",
    "intent-matrix-summary.json",
    "guitar-active-lane-human-review-packet.md",
    "guitar-active-lane-human-review-packet.json",
    "bass-active-lane-human-review-packet.md",
    "chord-active-lane-human-review-packet.md",
    "intent-matrix-surrogate-review.md",
    "active-lane-intent-matrix.png"
  ],
  "boundary": "This is proof-backed candidate review. The receipt says declared active lanes stayed measurable while candidates were ranked for review. It does not prove that any candidate sounds better."
}
