{
  "ok": true,
  "schema": "kelly-sector-lab-window-v1",
  "lensId": "hypothesis",
  "service": "Hypothesis Lab",
  "shortName": "Hypothesis Lab",
  "accent": "#86efac",
  "domain": "hypothesis generation, causal chains, falsifiers, and research intent",
  "positioning": "A professional KELLY lens for watching observations become causal hypotheses and reality checks.",
  "userPromise": "See how KELLY creates questions from data, what it wants to test, and what would make it change its mind.",
  "kellyEdge": "KELLY does not just answer. It creates testable hypotheses, names the causal chain, finds falsifiers, watches reality, and preserves the proof trail.",
  "profile": {
    "windowLabel": "Unknown forge",
    "windowRole": "Unknown ledger, causal gap, value-of-information, and experiment planner",
    "workflowTitle": "Unknowns become test plans",
    "pulseTitle": "Discovery organ pulse",
    "askTitle": "Ask about a gap KELLY should test",
    "questionLabel": "Unknown, surprise, or causal gap",
    "evidenceLabel": "Hypothesis evidence",
    "evidenceTitle": "Unknowns, hypotheses, source plans, and closure targets",
    "sourceTitle": "Discovery inputs",
    "outputTitle": "Discovery outputs",
    "objectTitle": "Objects on the bench",
    "receiptTitle": "Required receipts",
    "stageLabels": [
      "surprise",
      "hypothesis",
      "test",
      "closure"
    ],
    "operatorObjects": [
      "unknown_ledger_entry",
      "missing_variable",
      "causal_bridge",
      "source_plan"
    ],
    "receiptObjects": [
      "voi_score",
      "experiment_receipt",
      "closure_receipt",
      "memory_mutation_candidate"
    ],
    "askBoundary": "This window turns uncertainty into a bounded inspection request. It cannot directly promote a hypothesis into durable memory."
  },
  "canonicalPostgres": "Use canonical KELLY Neon/Postgres for unknown_ledger, hypotheses, source_plans, experiment_tests, and closure_receipts.",
  "objectStorage": "Use R2/object storage for evidence bundles, source-plan packets, test traces, and immutable closure receipts.",
  "volumePolicy": "No dedicated persistent volume required. Runtime state must be reconstructable from canonical receipts.",
  "operatorQuestion": "Which fresh hypothesis can be checked against reality fastest?",
  "primaryProofTarget": "24-hour hypothesis closure",
  "primaryHorizon": "24 hours",
  "primarySignal": "new observation, hypothesis, reality check, closure receipt",
  "pipeline": [
    "Detect surprise, missing variables, stale loops, and contradiction pressure.",
    "Create unknown-ledger objects with value-of-information scoring.",
    "Generate causal bridges, falsifiers, source plans, and closure targets.",
    "Hand closed, weakened, killed, or promoted hypotheses to Memory/Lineage and GraphState review."
  ],
  "outputs": [
    "unknown_ledger_entries",
    "active_hypotheses",
    "value_of_information_scores",
    "source_plans",
    "test_closure_receipts"
  ],
  "runtimeRoutes": [
    {
      "label": "Unknown ledger",
      "url": "https://www.causalea.com/api/discovery/unknown-ledger"
    },
    {
      "label": "Discovery engine",
      "url": "https://www.causalea.com/api/intellectual-kernel/discovery-engine"
    },
    {
      "label": "Causal gap organ",
      "url": "https://www.causalea.com/api/intellectual-kernel/causal-gap-organ"
    },
    {
      "label": "Runtime gap organs",
      "url": "https://www.causalea.com/api/intellectual-kernel/runtime-gap-organs"
    }
  ],
  "sources": [
    "KELLY observation ledger",
    "approved public data feeds",
    "contradiction queue",
    "forecast deltas",
    "settlement and replay receipts"
  ],
  "proofPoints": [
    "Every hypothesis needs a falsifier.",
    "Old data can become new evidence under a new causal question.",
    "User questions can guide research intent without writing ground truth.",
    "Reality, not confidence, closes the loop."
  ],
  "humanAudit": {
    "plainPurpose": "This window shows what KELLY is doing in Hypothesis Lab: what it is reading, what it thinks might matter, what proof exists, and what is still waiting.",
    "howToAudit": [
      "Read the answer in this lab first.",
      "Open the proof shelf or JSON packet for the evidence behind it.",
      "Check the route status and last-checked timestamp before trusting freshness.",
      "Look for the mind-changer: the fact that would make KELLY revise the answer.",
      "If evidence is waiting, treat the output as a question or watch item, not a settled answer."
    ],
    "evidenceStatus": "Live evidence appears only when KELLY exposes proof-linked sector output. Empty states are intentional waiting states, not filler.",
    "mindChanger": "New approved evidence, a falsifier, settlement, replay drift, calibration movement, or memory-lineage revision.",
    "writeBoundary": "This lab communicates with KELLY as an inspection window. It cannot write ground truth, memory, GraphState, provider state, or reality receipts."
  },
  "tracks": [
    {
      "id": "hypothesis-preset-1",
      "title": "24-hour hypothesis closure",
      "horizon": "24 hours",
      "question": "Which fresh hypothesis can be checked against reality fastest?",
      "value": "Short-term proof that KELLY can generate and close its own questions.",
      "signal": "new observation, hypothesis, reality check, closure receipt",
      "artifact": "artifact pending until KELLY emits proof"
    },
    {
      "id": "hypothesis-preset-2",
      "title": "Causal bridge discovery",
      "horizon": "7-60 days",
      "question": "Which two systems appear linked, and what hidden loop could connect them?",
      "value": "Medium-term proof that KELLY can discover useful causal structure.",
      "signal": "two loops, bridge hypothesis, falsifier, settlement plan",
      "artifact": "artifact pending until KELLY emits proof"
    },
    {
      "id": "hypothesis-preset-3",
      "title": "Recursive theory refinement",
      "horizon": "90+ days",
      "question": "Which theory has mutated the most under evidence while remaining replayable?",
      "value": "Long-term proof that KELLY can self-correct without losing lineage.",
      "signal": "theory lineage, confirmations, weakenings, memory cell trail",
      "artifact": "artifact pending until KELLY emits proof"
    }
  ],
  "readOnly": true,
  "publicMutationAllowed": false,
  "publicUserWriteAllowed": false,
  "groundTruthWriteAllowed": false,
  "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=hypothesis",
  "localAskEndpoint": "/api/lens-ask-kelly",
  "labWindowEndpoint": "/api/lab-window",
  "labWindowPulseEndpoint": "/api/lab-window/pulse",
  "artifactSpineEndpoint": "/api/lens-artifact-spine",
  "pulseEndpoint": "/api/lab-window/pulse",
  "generatedAt": "2026-07-08T06:23:50.312Z"
}