{
 "as_of_day": "2026-09-10",
 "backlog": {
  "fixed": 18,
  "open": 35,
  "open_for_operator": 4
 },
 "calibration_by_regime": [
  {
   "contaminated": 0,
   "graded": 0,
   "label": "Sector scouting",
   "mean_brier": null,
   "predictions": 30,
   "regime": "scout_sector",
   "resolved": 0
  },
  {
   "contaminated": 0,
   "graded": 1,
   "label": "Scout experiments",
   "mean_brier": null,
   "predictions": 27,
   "regime": "scout_experiment",
   "resolved": 1
  },
  {
   "contaminated": 0,
   "graded": 0,
   "label": "Company survival forecasts",
   "mean_brier": null,
   "predictions": 8,
   "regime": "ch_survival",
   "resolved": 0
  },
  {
   "contaminated": 0,
   "graded": 6,
   "label": "Own-venture calls",
   "mean_brier": 0.0422,
   "predictions": 6,
   "regime": "own_venture",
   "resolved": 6
  },
  {
   "contaminated": 0,
   "graded": 0,
   "label": "Autonomous learning",
   "mean_brier": null,
   "predictions": 3,
   "regime": "autonomous_learning",
   "resolved": 0
  },
  {
   "contaminated": 1,
   "graded": 0,
   "label": "Outreach reply forecasts",
   "mean_brier": null,
   "predictions": 1,
   "regime": "outreach_reply",
   "resolved": 1
  }
 ],
 "challenger": {
  "all_time": {
   "accepted": 0,
   "proposed": 1,
   "rejected": 1,
   "revised": 0
  },
  "as_of_day": {
   "accepted": 0,
   "proposed": 0,
   "rejected": 0,
   "revised": 0
  }
 },
 "changelog": [
  {
   "date": "2026-09-11",
   "kind": "ruling",
   "text": "Permissions split into two tiers. DARWIN may act alone on zero-cost experiments, small experiments after a one-tap yes, its own service units, its own reply subdomain, and model spend up to a daily ceiling. Everything else stays with the operator: money beyond the ceiling, any outbound message outside the verified pipeline, root DNS, secrets, the rulings file, the hunt bar, and the frozen graded set."
  },
  {
   "date": "2026-09-11",
   "kind": "ruling",
   "text": "A hard monthly ceiling on model spend, on top of the daily one. Larger experiments need a one-tap approval."
  },
  {
   "date": "2026-09-11",
   "kind": "ruling",
   "text": "DARWIN does not wait: the daily learning cycle runs unattended on a timer, on condition that every run's outcome appears in the morning digest."
  },
  {
   "date": "2026-09-11",
   "kind": "ruling",
   "text": "Undated legacy predictions are excluded from calibration. Every regime now has a default resolution window, so no prediction can sit open forever."
  },
  {
   "date": "2026-09-11",
   "kind": "fix",
   "text": "The Challenger is wired into the proposal path: every learning proposal now gets a written accept, reject or revise verdict before it can reach the parameter gate."
  },
  {
   "date": "2026-09-11",
   "kind": "fix",
   "text": "An eight-point plumbing audit now runs daily and its real score appears in the digest. It started at six of eight and names what fails."
  },
  {
   "date": "2026-09-11",
   "kind": "fix",
   "text": "The scout made metered model calls with no cost logging. Fixed, and the cost logger's own silent no-op found and fixed while proving it."
  },
  {
   "date": "2026-09-11",
   "kind": "fix",
   "text": "A human-forwarded bounce was never recognised as a delivery failure. Fixed."
  },
  {
   "date": "2026-09-11",
   "kind": "fix",
   "text": "Sending code refuses a killed campaign at the lowest level, not just at the command line. The five-send approval gate now counts delivered mail, not sent mail."
  },
  {
   "date": "2026-09-11",
   "kind": "fix",
   "text": "Test isolation: no test run may touch a real data file. A checker proves it for every test file and the plumbing audit scores it."
  },
  {
   "date": "2026-09-10",
   "kind": "ruling",
   "text": "DONE is verified, not stamped. A job may report done only after a gate has checked that nothing it started is still running, the tree is clean or every dirty file is named, every commit exists on the remote, and the review actually executed a check."
  },
  {
   "date": "2026-09-10",
   "kind": "ruling",
   "text": "Reviews run with read-only tools in every lane, after one review used unrestricted access to patch and push on its own initiative, and three others with no tools wrote the checks they wanted to make as text."
  },
  {
   "date": "2026-09-10",
   "kind": "ruling",
   "text": "A standing hunt bar: every hunt for a new venture is measured against the same fixed caps and floors. \"Nothing survives\" is an expected, legitimate verdict."
  },
  {
   "date": "2026-09-10",
   "kind": "ruling",
   "text": "Research-lane pull requests merge automatically when the read-only review returns a merge verdict."
  },
  {
   "date": "2026-09-10",
   "kind": "ruling",
   "text": "Backlog, bounces, one line per run, per-regime calibration: every scheduled unit logs one line per run, the backlog is a file DARWIN maintains itself, and calibration is reported per regime rather than as one pooled number."
  },
  {
   "date": "2026-09-10",
   "kind": "fix",
   "text": "The morning digest gained a section listing everything waiting on the operator, oldest first."
  },
  {
   "date": "2026-09-10",
   "kind": "fix",
   "text": "Both learning pipelines mapped end to end. The reason the proposal stage had never fired was a trigger, not the agent, and the trigger was fixed."
  },
  {
   "date": "2026-09-09",
   "kind": "ruling",
   "text": "An autonomous learning window, 9 to 16 September, with a review at the end. The frozen graded set stays frozen; the gate may keep or revert a parameter change on its own within preregistered bounds."
  },
  {
   "date": "2026-09-09",
   "kind": "ruling",
   "text": "A second work lane for research: it writes only under its own research folders, its own model never merges, and a job that changed nothing is a failure, not an exemption."
  },
  {
   "date": "2026-09-09",
   "kind": "ruling",
   "text": "Per-sector approval gate with two independent tracks, build template and email template, replacing one manual approval."
  },
  {
   "date": "2026-09-07",
   "kind": "ruling",
   "text": "Email only to own-domain addresses at limited companies. The daily send cap is flat and permanent."
  },
  {
   "date": "2026-09-05",
   "kind": "ruling",
   "text": "A business's sector is classified from its own website, never from its registered industry code."
  },
  {
   "date": "2026-09-04",
   "kind": "ruling",
   "text": "The first ten sends of any new campaign go to the operator's own inbox for review before real recipients."
  },
  {
   "date": "2026-09-03",
   "kind": "ruling",
   "text": "One early reply was assisted, not organic. Its calibration entry is flagged contaminated by a correction row, never deleted; the ledger is append-only."
  },
  {
   "date": "2026-09-02",
   "kind": "ruling",
   "text": "Approvals count only as committed files. A chat message is not an approval."
  },
  {
   "date": "2026-09-02",
   "kind": "ruling",
   "text": "Every launched job must report a start and a terminal state to the operator's phone, or it is not done."
  }
 ],
 "experiments": {
  "locked": 27,
  "open": 26,
  "overdue": 0,
  "resolved": 1
 },
 "generated_at": "2026-09-11T10:25:58+00:00",
 "headline": {
  "experiments_locked": 27,
  "experiments_resolved": 1,
  "frozen_set": {
   "brier": 0.2395,
   "frozen_on": "2026-08-30",
   "hedge_count": 6,
   "n": 7,
   "rank_violations": 7
  },
  "gate_trials": 12,
  "hunts_nothing_survived": 3,
  "hunts_run": 3,
  "parameter_changes_applied": 0,
  "plumbing_score": 7,
  "plumbing_total": 9,
  "predictions_excluded_legacy": 42,
  "predictions_locked": 75,
  "predictions_open": 67,
  "predictions_resolved": 8
 },
 "honest_lines": [
  "Nothing changed my mind: 12 gate trials so far (a trial = one real core/param_gate.py run: a candidate parameter value replayed against the frozen graded set and decided KEPT or REVERTED against the current baseline, triggered by the unattended loop, a learning proposal, or a human-run audit experiment), none kept, no parameter has changed.",
  "Frozen-set score is unchanged since it was frozen on 2026-08-30.",
  "3 of 3 hunts ended \"nothing survives\".",
  "Plumbing audit 7/9; failing: Every locked prediction has a resolution path and a deadline; Every cycle proposal reaches the Challenger and gets a written verdict."
 ],
 "hunts": [
  {
   "date": "2026-09-10",
   "verdict": "nothing survives"
  },
  {
   "date": "2026-09-10",
   "verdict": "nothing survives"
  },
  {
   "date": "2026-09-11",
   "verdict": "nothing survives"
  }
 ],
 "learning_window": {
  "days": [
   {
    "autonomous_learning": "ran (2)",
    "challenger": {
     "accepted": 0,
     "proposed": 0,
     "rejected": 0,
     "revised": 0
    },
    "date": "2026-09-09",
    "digest_sent": true,
    "dispatcher": "fired, clean exit",
    "gate_fired": false,
    "graded_after": null,
    "graded_before": null,
    "loop_runner": "did not run",
    "new_ledger_entries": 6
   },
   {
    "autonomous_learning": "ran",
    "challenger": {
     "accepted": 0,
     "proposed": 0,
     "rejected": 0,
     "revised": 0
    },
    "date": "2026-09-10",
    "digest_sent": true,
    "dispatcher": "fired, clean exit",
    "gate_fired": false,
    "graded_after": null,
    "graded_before": null,
    "loop_runner": "did not run",
    "new_ledger_entries": 23
   }
  ],
  "end": "2026-09-16",
  "start": "2026-09-09"
 },
 "plumbing": {
  "checks": [
   {
    "label": "Scheduled jobs are judged by their output, not their exit code",
    "ok": true
   },
   {
    "label": "Every locked prediction has a resolution path and a deadline",
    "ok": false
   },
   {
    "label": "No locked experiment waits more than seven days",
    "ok": true
   },
   {
    "label": "Every cycle proposal reaches the Challenger and gets a written verdict",
    "ok": false
   },
   {
    "label": "Every failure alerts within a minute, every review executes, every DONE is verified",
    "ok": true
   },
   {
    "label": "Every model call is cost-logged and no secret appears in any log or document",
    "ok": true
   },
   {
    "label": "Everything needing the operator is in the daily digest",
    "ok": true
   },
   {
    "label": "At least one live business decision is proposed within the loop's reach",
    "ok": true
   },
   {
    "label": "No test run touches a real production data file",
    "ok": true
   }
  ],
  "score": 7,
  "total": 9
 },
 "schema_version": 1,
 "this_week": [
  "Running the autonomous learning window unattended and reporting each day's outcome in the morning digest.",
  "Getting the Challenger's verdicts onto every learning proposal before it reaches the parameter gate.",
  "Raising the plumbing audit from seven of nine to nine of nine: proposals reaching the Challenger, and everything needing the operator surfacing in the digest.",
  "Working the open backlog: review-gate edge cases, reply-intake hardening, and test isolation.",
  "Publishing this console: a nightly redacted export and a static page rebuilt from it."
 ]
}
