Summary¶
The journal is the framework's memory and the evidence base for every rule amendment. Three append-only logs, each in a machine-readable JSONL record-per-line form plus a daily markdown narrative. The JSONL schemas are frozen at v0 for the fields v0 defined: existing fields never change meaning. v1 is additive (new fields only, records carry their version); early v0 history stays processable forever. Canonical unit note: the term-structure variable is the VIX/VIX3M ratio (vix_term_ratio, >1 backwardation / <1 contango) — v0's vix_term_slope name is retired to avoid ratio/difference ambiguity.
Schema v0 — Regime Journal (regime.jsonl)¶
{"v":0, "date":"YYYY-MM-DD", "vix":20.1, "vix_term_ratio":0.89,
"vrp_sign":"pos", "rv_percentile":62,
"regime_label":"calm-contango-vrp+", "transition":false,
"data_missing":false, "notes":"..."}
Schema v0 — Decision Log (decisions.jsonl)¶
{"v":1, "date":"YYYY-MM-DD", "candidate":"condor-4500/4400",
"gates":{"fit":"pass","ev":"pass","risk":"pass","approval":"pending"},
"verdict":"proposed|approved|rejected|watchlist|deferred|dismissed",
"mapping_version":"v0", "risk_version":"v0",
"precedent_refs":["2026-09-02:condor-..."],
"amendment_id":null, "ev_receipt_ref":"references/receipts/YYYY-MM-DD-condor.json",
"inbox_resolutions":["2026-09-09-cpi-preview"],
"reason":"..."}
Schema v0 records (day-1) remain valid history; **v1 is additive**: `mapping_version`/`risk_version` tie each decision to the exact rule version, `precedent_refs` make the consistency check machine-checkable, `verdict` gains the watchlist/deferred/dismissed states, and amendment records carry `amendment_id`. v0 records lack these fields by definition.
Schema v0 — Outcome Log (outcomes.jsonl)¶
{"v":1, "date":"YYYY-MM-DD", "playbook_id":"2026-09-09-<slug>",
"realized_pnl": -120.0, "ev_predicted": -95.0, "edge_predicted": -5.75,
"predicted_direction":"short-vol-loss", "realized_direction":"short-vol-loss",
"slippage_note":"...", "regime_label_at_entry":"calm-contango",
"mapping_version":"v0", "lesson":"..." }
The outcome log — not the playbook — is the append-only source of truth for results. Filed playbooks are immutable; they link to outcome records.
Rules¶
- Append-only: records are never edited; corrections are new records with
corrects: <date+key>, filed indecisions.jsonlwhichever log they correct. Key forms:YYYY-MM-DD:<candidate>for a decision record,YYYY-MM-DD:regimefor a regime record. A correction MAY carrycorrected: {field: value}— the replacement values in machine-readable form (additive v1 field), so that precedent lookups can overlay corrections instead of reading them out of prose. - Every inbox item resolves into the decision log (including "no action, because X") — the anti-hoarding rule from the learning function.
- EV receipts are filed under
references/receipts/YYYY-MM-DD-<slug>.jsonand referenced, never inlined. - Amendments to the regime→strategy mapping and risk posture tables cite ≥3 concordant records (the concordance quorum); the mapping concept carries a version table linking the amendment notes.
- Regime records (additive v1, 2026-09-17) carry
raw_label(today's computed label),confirmed_label(after hysteresis) andtransition_reason(pending-confirmation|cooling-off day k/N| null) besideregime_label, so no consumer has to parse the transition string, andforecast_window_end(the last close in the HAR input) so each input's as-of is auditable. The snapshot is idempotent: a record identical to one already journaled for its date is not appended again; a changed observation (e.g. a fail-closed run followed by a successful re-run) is. For any date, the last record is authoritative. - No
stale_afteron journal records — they are history, not claims. (Inbox items keep their staleness discipline.)
Directory Layout¶
YYYY-MM-DD.md— the day's narrative (one file per day, the human-readable journal)regime.jsonl,decisions.jsonl,outcomes.jsonl— the machine-readable logsreferences/receipts/(in the wikireferences/tree) — filed EV receipts
Links¶
- Learning function — the rules this journal serves
- Operating rhythm — step 7 writes here
References¶
- Framework learning function: ../88-framework/learning-function.md