{
  "schema": "health/1.0",
  "as_of": "2026-09-08T20:53:39Z",
  "charter": "The cadences below are the desk's own stated commitments about how often each served surface moves. health.py grades the desk against them. A LATE or STALE row is a finding, printed — the same rule every other instrument on this site lives under. Editing a cadence here is a revision to a public commitment and rides the commit history like everything else.",
  "states": {
    "OK": "age <= cadence",
    "LATE": "cadence < age <= 2x cadence",
    "STALE": "age > 2x cadence",
    "EVENT": "no cadence commitment; moves on events; age printed, never graded",
    "NO-DATE": "no internal date extractable and no git history — itself a finding"
  },
  "summary": {
    "OK": 19,
    "LATE": 0,
    "STALE": 0,
    "EVENT": 5,
    "NO-DATE": 0
  },
  "worst": "PENDING",
  "packet_lag": {
    "checkable": true,
    "newest_packet": "kkr_packet_2026-09-08_1518.md",
    "newest_packet_utc": "2026-09-08T15:18Z",
    "lag_hours": 16.1,
    "behind": true,
    "note": "register predates the newest packet — rows may be sealing against uncommitted inputs"
  },
  "surfaces": [
    {
      "name": "Ledger",
      "path": "docs/ledger.json",
      "lane": "daily task / operator",
      "cadence_hours": 26,
      "last_moved_utc": "2026-09-08T20:51Z",
      "age_hours": 0.0,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": false,
      "provenance": "internal",
      "state": "OK",
      "note": "kkr.py writes on every elicitation; 26h allows the daily window"
    },
    {
      "name": "Battle report",
      "path": "docs/report.html",
      "lane": "daily task / operator",
      "cadence_hours": 26,
      "last_moved_utc": "2026-09-07T23:14Z",
      "age_hours": 21.6,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": true,
      "provenance": "git",
      "state": "OK",
      "note": "netz.py synthesis; git-dated (no internal stamp field)"
    },
    {
      "name": "KKR report face",
      "path": "docs/kkr.html",
      "lane": "daily task / operator",
      "cadence_hours": 26,
      "last_moved_utc": "2026-09-07T23:14Z",
      "age_hours": 21.6,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": true,
      "provenance": "git",
      "state": "OK",
      "note": "mirror of forecasts/KKR_latest.html"
    },
    {
      "name": "War desk tile",
      "path": "docs/war_desk.json",
      "lane": "daily task / operator",
      "cadence_hours": 26,
      "last_moved_utc": "2026-09-08T15:16Z",
      "age_hours": 5.6,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": false,
      "provenance": "internal",
      "state": "OK",
      "note": "tg chain; grades cross-bias, so its own staleness matters double"
    },
    {
      "name": "Ohrwurm board",
      "path": "docs/ohrwurm_latest.json",
      "lane": "manual chain",
      "cadence_hours": 78,
      "last_moved_utc": "2026-09-08T15:22Z",
      "age_hours": 5.5,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": false,
      "provenance": "internal",
      "state": "OK",
      "note": "phrase propagation; three-day commitment, hand-run"
    },
    {
      "name": "Ohrwurm velocity",
      "path": "docs/ohrwurm_velocity.json",
      "lane": "manual chain",
      "cadence_hours": 78,
      "last_moved_utc": "2026-09-08T15:22Z",
      "age_hours": 5.5,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": false,
      "provenance": "internal",
      "state": "OK",
      "note": "runs with the board"
    },
    {
      "name": "Ohrwurm x WarDesk",
      "path": "docs/ohrwurm_link.json",
      "lane": "manual chain",
      "cadence_hours": 78,
      "last_moved_utc": "2026-09-08T15:22Z",
      "age_hours": 5.5,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": false,
      "provenance": "internal",
      "state": "OK",
      "note": "the join; runs with the board"
    },
    {
      "name": "Ohrwurm register",
      "path": "docs/ohrwurm_register.json",
      "lane": "event",
      "cadence_hours": null,
      "last_moved_utc": "2026-09-08T15:22Z",
      "age_hours": 5.5,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": false,
      "provenance": "internal",
      "state": "EVENT",
      "note": "origin claims append on ingest; the commit date is the proof"
    },
    {
      "name": "KFK data",
      "path": "docs/KriegForeKaster.json",
      "lane": "operator / applied observations",
      "cadence_hours": null,
      "last_moved_utc": "2026-08-08T14:47Z",
      "age_hours": 750.1,
      "disk_utc": "2026-08-08T15:08Z",
      "disk_age_hours": 749.7,
      "uncommitted": false,
      "provenance": "internal",
      "state": "EVENT",
      "note": "KFKCHARTER-2026-09-02: re-chartered from weekly to EVENT. The board is a frozen proving set for the decay model and its as_of moves only when observations are applied (add, link, enrich --apply, promote); a weekly re-confirmation was stated 2026-08-06 and not operated after 2026-08-08, so grading it graded a promise nobody kept. Per-claim decay is measured nightly on the freshness face; a dark KFK chain shows on the sightings, overlay and freshness rows within a day. History kept: went 7 days dark before 2026-08-06 and this row exists because of it."
    },
    {
      "name": "KFK freshness",
      "path": "docs/freshness.json",
      "lane": "daily task (auto.bat, KFKSWEEP-2026-09-02)",
      "cadence_hours": 26,
      "last_moved_utc": "2026-09-08T15:22Z",
      "age_hours": 5.5,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": false,
      "provenance": "internal",
      "state": "OK",
      "note": "the claim-decay layer; was the stalest tile on its own site on 2026-08-06; nightly since 2026-09-02 (KFKSWEEP), so a dead stage shows here within a day (KFKCHARTER-2026-09-02)"
    },
    {
      "name": "Packet register",
      "path": "docs/packet_register.json",
      "lane": "operator / publish",
      "cadence_hours": 30,
      "last_moved_utc": "2026-09-07T23:14Z",
      "age_hours": 21.6,
      "disk_utc": "2026-09-07T23:14Z",
      "disk_age_hours": 21.6,
      "uncommitted": false,
      "provenance": "internal",
      "state": "OK",
      "note": "packet_commit.py; the packet-loss class grows every day this lags the newest packet"
    },
    {
      "name": "Spion",
      "path": "docs/spion_state.json",
      "lane": "cron 6h (GitHub)",
      "cadence_hours": 8,
      "last_moved_utc": "2026-09-08T16:42Z",
      "age_hours": 4.2,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": false,
      "provenance": "internal",
      "state": "OK",
      "note": ":17 past every 6 hours; 8h allows one missed slot before LATE"
    },
    {
      "name": "OTS anchors",
      "path": "docs/ots_anchors.json",
      "lane": "cron daily (GitHub)",
      "cadence_hours": 30,
      "last_moved_utc": "2026-09-08T09:03Z",
      "age_hours": 11.8,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": false,
      "provenance": "internal",
      "state": "OK",
      "note": "OpenTimestamps anchor pass"
    },
    {
      "name": "Citation integrity",
      "path": "docs/cite_integrity_latest.json",
      "lane": "cron daily (GitHub)",
      "cadence_hours": 30,
      "last_moved_utc": "2026-09-08T10:04Z",
      "age_hours": 10.8,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": false,
      "provenance": "internal",
      "state": "OK",
      "note": "audit.yml at 05:41Z"
    },
    {
      "name": "Identifier audit",
      "path": "docs/ident_audit_latest.json",
      "lane": "cron daily (GitHub)",
      "cadence_hours": 30,
      "last_moved_utc": "2026-09-08T10:04Z",
      "age_hours": 10.8,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": false,
      "provenance": "internal",
      "state": "OK",
      "note": "audit.yml at 05:41Z"
    },
    {
      "name": "RPAS verdict",
      "path": "docs/rpas_verdict.json",
      "lane": "daily task / operator",
      "cadence_hours": 30,
      "last_moved_utc": "2026-09-07T18:20Z",
      "age_hours": 26.6,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": true,
      "provenance": "git",
      "state": "OK",
      "note": "conformance chain; carries no internal date — git-dated, and that gap is printed"
    },
    {
      "name": "KNP verdict",
      "path": "docs/knp_verdict.json",
      "lane": "daily task / operator",
      "cadence_hours": 30,
      "last_moved_utc": "2026-09-07T18:20Z",
      "age_hours": 26.6,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": true,
      "provenance": "git",
      "state": "OK",
      "note": "conformance chain; git-dated"
    },
    {
      "name": "Kalls hashlog",
      "path": "docs/kalls_hashlog.json",
      "lane": "event",
      "cadence_hours": null,
      "last_moved_utc": "2026-07-31T20:56Z",
      "age_hours": 935.9,
      "disk_utc": "2026-07-31T21:01Z",
      "disk_age_hours": 935.9,
      "uncommitted": true,
      "provenance": "git",
      "state": "EVENT",
      "note": "seals append on Kalls; age printed, never graded"
    },
    {
      "name": "Health face",
      "path": "docs/health.json",
      "lane": "operator / publish",
      "cadence_hours": 30,
      "last_moved_utc": "2026-09-08T15:24Z",
      "age_hours": 5.5,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": false,
      "provenance": "internal",
      "state": "OK",
      "note": "this instrument, listed under its own rule — the KFK-freshness irony, closed"
    },
    {
      "name": "KFK sightings",
      "path": "forecasts/kfk_sightings_latest.json",
      "lane": "daily task / operator",
      "cadence_hours": 26,
      "last_moved_utc": "2026-09-07T18:20Z",
      "age_hours": 26.6,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": true,
      "provenance": "git",
      "state": "PENDING",
      "note": "kfk_sightings.py; formations named in the graded WarDesk stream"
    },
    {
      "name": "KFK overlay",
      "path": "docs/kfk_map.html",
      "lane": "daily task / operator",
      "cadence_hours": 26,
      "last_moved_utc": "2026-09-07T23:14Z",
      "age_hours": 21.6,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": true,
      "provenance": "git",
      "state": "OK",
      "note": "kfk_map.py; the board's own doctrine rendered"
    },
    {
      "name": "Dialektik meter",
      "path": "forecasts/dialektik_meter_latest.json",
      "lane": "event",
      "cadence_hours": null,
      "last_moved_utc": "2026-09-07T18:20Z",
      "age_hours": 26.6,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": true,
      "provenance": "git",
      "state": "EVENT",
      "note": "dialektik_meter.py; EVENT not clock - fresh only when the statement track carried a registered figure, absence is not staleness"
    },
    {
      "name": "Verdict grounding",
      "path": "docs/urteil_latest.json",
      "lane": "event",
      "cadence_hours": null,
      "last_moved_utc": "2026-09-07T18:20Z",
      "age_hours": 26.6,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": true,
      "provenance": "git",
      "state": "EVENT",
      "note": "urteil.py moves only when a jury sits; grading it on a daily clock would print a LATE every day nobody adjudicated - a false finding, which is worse than none"
    },
    {
      "name": "Completeness audit",
      "path": "docs/luecke_latest.json",
      "lane": "daily task / operator",
      "cadence_hours": 26,
      "last_moved_utc": "2026-09-07T18:20Z",
      "age_hours": 26.6,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": true,
      "provenance": "git",
      "state": "PENDING",
      "note": "luecke.py reads the daily WarDesk render; a stale Luecke means the chain broke, which is what the board should say"
    },
    {
      "name": "Kalibrierwarte",
      "path": "docs/kalibrierwarte.html",
      "lane": "daily task / operator",
      "cadence_hours": 26,
      "last_moved_utc": "2026-09-07T23:14Z",
      "age_hours": 21.6,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": true,
      "provenance": "git",
      "state": "OK",
      "note": "warte.py renders per-arm calibration from the sealed ledger; a stale Warte means the nightly chain broke"
    },
    {
      "name": "KFK spine",
      "path": "docs/kfk_spine.json",
      "lane": "reference snapshot",
      "cadence_hours": 720,
      "last_moved_utc": "2026-09-07T18:20Z",
      "age_hours": 26.6,
      "disk_utc": "2026-09-08T20:53Z",
      "disk_age_hours": 0.0,
      "uncommitted": true,
      "provenance": "git",
      "state": "OK",
      "note": "CIA World Factbook snapshot; most military fields turn over roughly annually, so 30d is the honest cadence. The file's own freshness block carries the source-field age census, which is the measure that matters"
    }
  ]
}