{
  "virtues": [
    {
      "name": "wisdom",
      "knowledge": "what is good, bad and neither",
      "in_ocx": "the model we act on matches what is there: facts from their source, causes seen, parts decoupled"
    },
    {
      "name": "courage",
      "knowledge": "what is to be endured and feared, and what not",
      "in_ocx": "deviance is named, not normalized: every check runs, can fail, and is read; the line stops when it fails"
    },
    {
      "name": "temperance",
      "knowledge": "what is to be chosen and avoided",
      "in_ocx": "restraint over appetite: design before building, act only on causes, keep limits and slack"
    },
    {
      "name": "justice",
      "knowledge": "what is due to each",
      "in_ocx": "nothing is pushed onto another part of the whole: failures surface where they happen, and nothing is shared that one fault could break for all"
    }
  ],
  "fundamentals": [
    {
      "name": "control",
      "statement": "What we send, our code, our record and our guards are up to us; what comes back from the network, the host, other programs, agents, models and people is not."
    },
    {
      "name": "verdict",
      "statement": "A check can refute but never certify: a guard that passes has only not refuted."
    },
    {
      "name": "assent",
      "statement": "Every failure begins as assent without a check; assent is given only to what has been checked."
    },
    {
      "name": "whole",
      "statement": "Sessions, the maintainer, Stone and the reviewers are parts of one record; what one part leaves undone falls on another."
    },
    {
      "name": "cause",
      "statement": "Every behavior has a cause and runs because of it; nothing happens on its own."
    }
  ],
  "failures": [
    {
      "name": "entanglement",
      "source": "Perrow, Normal Accidents: interactive complexity and tight coupling",
      "description": "parts depend on each other's internals, so a change or fault in one runs through the rest"
    },
    {
      "name": "divergence",
      "source": "Leveson, STAMP: inadequate control and feedback",
      "description": "the model acted on differs from the state of the process"
    },
    {
      "name": "drift",
      "source": "Vaughan and Dekker: normalization of deviance, drift into failure",
      "description": "warnings become normal and are no longer read"
    },
    {
      "name": "monoculture",
      "source": "common-cause failure",
      "description": "one shared thing fails, and everything that shares it fails with it"
    },
    {
      "name": "incubation",
      "source": "Reason: latent conditions (the Swiss cheese model)",
      "description": "a hazard lies dormant until an ordinary act aligns it into a failure downstream"
    },
    {
      "name": "oversteering",
      "source": "system dynamics: dynamic delays and policy resistance",
      "description": "acting faster than feedback returns, so corrections overshoot"
    }
  ],
  "precepts": [
    {
      "name": "brevity",
      "subject": "file",
      "either": "brief",
      "or": "long",
      "observable": "every source and spec file has at most 400 lines",
      "virtues": [
        "wisdom",
        "temperance"
      ],
      "fundamental": "assent",
      "prevents": "entanglement",
      "cohesion": "a part is known only when it can be read whole, and a file longer than one sitting cannot be read whole",
      "guard": "spec/guards/size_spec.cr",
      "violation": "refutes a long file",
      "evidence": []
    },
    {
      "name": "sourcing",
      "subject": "fact",
      "either": "sourced",
      "or": "inferred",
      "observable": "every fact Fossil holds is read from Fossil through the facts registry",
      "virtues": [
        "wisdom",
        "justice"
      ],
      "fundamental": "assent",
      "prevents": "divergence",
      "cohesion": "a fact inferred where its source could be read is an assent without a check",
      "guard": "spec/guards/sourcing_spec.cr",
      "violation": "refutes an inferred fact",
      "evidence": [
        "b66630b162",
        "3cf7ddaa0d",
        "90114c0ff8"
      ]
    },
    {
      "name": "structure",
      "subject": "parsed input",
      "either": "structured",
      "or": "parsed",
      "observable": "whatever OCX parses outside a database record is JSON",
      "virtues": [
        "wisdom"
      ],
      "fundamental": "control",
      "prevents": "entanglement",
      "cohesion": "text parsed by prefix couples reader and writer to one spelling, which neither controls alone",
      "guard": "spec/guards/structure_spec.cr",
      "violation": "refutes a parsed notation",
      "evidence": [
        "6dadb2569d",
        "679ed48a98"
      ]
    },
    {
      "name": "typing",
      "subject": "value",
      "either": "typed",
      "or": "cast",
      "observable": "src/ reads JSON::Any only at MCP's edge, builds a value by naming its fields, and derives every exception from Refusal",
      "virtues": [
        "wisdom"
      ],
      "fundamental": "control",
      "prevents": "divergence",
      "cohesion": "the compiler checks a typed value where it is made, but a cast is checked only when it runs, and two values of one type built by position swap unseen",
      "guard": "spec/guards/typing_spec.cr",
      "violation": "refutes a cast value",
      "evidence": [
        "4bb787403b"
      ]
    },
    {
      "name": "schema",
      "subject": "JSON kind",
      "either": "described",
      "or": "undescribed",
      "observable": "every JSON kind has a schema in the tree, checked when written and when read",
      "virtues": [
        "wisdom",
        "courage"
      ],
      "fundamental": "assent",
      "prevents": "divergence",
      "cohesion": "JSON without a schema can be read only by assuming its shape",
      "guard": "spec/guards/schema_spec.cr",
      "violation": "refutes an undescribed kind",
      "evidence": [
        "1484fa3062"
      ]
    },
    {
      "name": "legibility",
      "subject": "JSON file",
      "either": "pretty",
      "or": "packed",
      "observable": "every JSON file is written through one writer, two spaces, one member per line",
      "virtues": [
        "wisdom",
        "justice"
      ],
      "fundamental": "whole",
      "prevents": "divergence",
      "cohesion": "what the maintainer cannot see the structure of, he cannot check",
      "guard": "spec/guards/legibility_spec.cr",
      "violation": "refutes a packed file",
      "evidence": []
    },
    {
      "name": "derivation",
      "subject": "description",
      "either": "generated",
      "or": "copied",
      "observable": "a document describing facts is generated from them, and CI fails when the committed text differs",
      "virtues": [
        "wisdom"
      ],
      "fundamental": "assent",
      "prevents": "divergence",
      "cohesion": "a copy edited by hand drifts from its source as soon as either changes alone",
      "guard": "spec/guards/derivation_spec.cr",
      "violation": "refutes a copied description",
      "evidence": [
        "6c310118c5"
      ]
    },
    {
      "name": "singularity",
      "subject": "executable",
      "either": "one",
      "or": "many",
      "observable": "each external program is started in exactly one place in src/",
      "virtues": [
        "wisdom",
        "justice"
      ],
      "fundamental": "control",
      "prevents": "entanglement",
      "cohesion": "a program started in many places is configured in many ways, and fails in many places",
      "guard": "spec/guards/external_programs_spec.cr",
      "violation": "refutes many call sites",
      "evidence": []
    },
    {
      "name": "comparison",
      "subject": "native implementation",
      "either": "compared",
      "or": "trusted",
      "observable": "where OCX implements a tool's feature itself, the specs run the reference tool on the same inputs and compare",
      "virtues": [
        "wisdom",
        "courage"
      ],
      "fundamental": "verdict",
      "prevents": "monoculture",
      "cohesion": "an implementation checked only against itself shares every one of its own mistakes",
      "guard": "spec/guards/comparison_spec.cr",
      "violation": "refutes a trusted implementation",
      "evidence": []
    },
    {
      "name": "exercise",
      "subject": "statement",
      "either": "exercised",
      "or": "idle",
      "observable": "the specs run the statements of src/, held by the coverage ratchet",
      "virtues": [
        "wisdom",
        "courage"
      ],
      "fundamental": "verdict",
      "prevents": "incubation",
      "cohesion": "a statement no spec runs has no demonstrated purpose, and its faults lie dormant",
      "guard": "spec/coverage/ratchet_spec.cr",
      "violation": "refutes an idle statement",
      "evidence": [
        "077b0f2bbf"
      ]
    },
    {
      "name": "causation",
      "subject": "behavior",
      "either": "caused",
      "or": "timed",
      "observable": "every behavior the survey names is started by an event of a kind its schema allows, none a timer; nothing sleeps or polls",
      "virtues": [
        "wisdom",
        "temperance"
      ],
      "fundamental": "cause",
      "prevents": "oversteering",
      "cohesion": "a behavior started by time has no cause to answer to, and races the one that has",
      "guard": "spec/guards/causation_spec.cr",
      "violation": "refutes a timed behavior",
      "evidence": [
        "ecd90ccf1e",
        "81d3ba4e02"
      ]
    },
    {
      "name": "idempotence",
      "subject": "behavior",
      "either": "once",
      "or": "repeated",
      "observable": "a behavior run twice for the same causing artifact writes once",
      "virtues": [
        "temperance",
        "justice"
      ],
      "fundamental": "cause",
      "prevents": "incubation",
      "cohesion": "a behavior that writes again for the same cause multiplies its effects on others",
      "guard": "spec/guards/idempotence_spec.cr",
      "violation": "refutes a repeated write",
      "evidence": []
    },
    {
      "name": "explicitness",
      "subject": "setting",
      "either": "stated",
      "or": "ambient",
      "observable": "configuration is an argument or a registry entry, never an environment variable",
      "virtues": [
        "wisdom",
        "justice"
      ],
      "fundamental": "control",
      "prevents": "entanglement",
      "cohesion": "an ambient setting is controlled by whoever starts the process, not by the code that reads it",
      "guard": "spec/guards/environment_spec.cr",
      "violation": "refutes an ambient setting",
      "evidence": []
    },
    {
      "name": "isolation",
      "subject": "session",
      "either": "separate",
      "or": "shared",
      "observable": "each session has its own login and state; no login or mutable state is shared between sessions",
      "virtues": [
        "justice",
        "wisdom"
      ],
      "fundamental": "whole",
      "prevents": "monoculture",
      "cohesion": "what two sessions share, one fault breaks for both, and each hides the other's posts",
      "guard": "spec/guards/isolation_spec.cr",
      "violation": "refutes a shared login",
      "evidence": [
        "36b942fc75"
      ]
    },
    {
      "name": "vigilance",
      "subject": "guard",
      "either": "checked",
      "or": "unchecked",
      "observable": "every guard runs in the default CI run; none is pending or run elsewhere",
      "virtues": [
        "courage"
      ],
      "fundamental": "verdict",
      "prevents": "drift",
      "cohesion": "a guard that does not run in CI is not read, and its failures become normal",
      "guard": "spec/guards/vigilance_spec.cr",
      "violation": "refutes an unchecked guard",
      "evidence": [
        "4e3e88e04c"
      ]
    },
    {
      "name": "falsifiability",
      "subject": "guard",
      "either": "refutable",
      "or": "vacuous",
      "observable": "every guard has an example showing it rejects a violation",
      "virtues": [
        "courage",
        "wisdom"
      ],
      "fundamental": "verdict",
      "prevents": "drift",
      "cohesion": "a guard never seen to fail may never fail, and then it proves nothing",
      "guard": "spec/guards/precepts_spec.cr",
      "violation": "refutes a vacuous guard",
      "evidence": []
    },
    {
      "name": "candour",
      "subject": "gap",
      "either": "listed",
      "or": "ignored",
      "observable": "every known gap is listed, and CI fails when the gaps found differ from the list",
      "virtues": [
        "courage"
      ],
      "fundamental": "verdict",
      "prevents": "drift",
      "cohesion": "a gap not listed is a deviance already normalized",
      "guard": "spec/guards/survey_spec.cr",
      "violation": "refutes an ignored gap",
      "evidence": [
        "bba733b216"
      ]
    },
    {
      "name": "independence",
      "subject": "audit",
      "either": "another's",
      "or": "one's own",
      "observable": "an audit is a tag by a login other than the check-in's author, with a JSON value",
      "virtues": [
        "courage",
        "justice"
      ],
      "fundamental": "verdict",
      "prevents": "monoculture",
      "cohesion": "an author judging their own work shares the blind spots that made it",
      "guard": "spec/guards/audit_spec.cr",
      "violation": "refutes one's own audit",
      "evidence": [
        "0a002aa92f"
      ]
    },
    {
      "name": "deliberation",
      "subject": "module",
      "either": "designed",
      "or": "improvised",
      "observable": "every module in src/ is named in the design document, and every module named there exists",
      "virtues": [
        "temperance",
        "wisdom"
      ],
      "fundamental": "assent",
      "prevents": "oversteering",
      "cohesion": "a module built before it is designed answers to appetite, not to a purpose anyone agreed",
      "guard": "spec/guards/deliberation_spec.cr",
      "violation": "refutes an improvised module",
      "evidence": [
        "0acc750f28",
        "270045e5dd"
      ]
    },
    {
      "name": "measure",
      "subject": "limit",
      "either": "bounded",
      "or": "unbounded",
      "observable": "every limit is a named constant with a spec at its edge; no unnamed numeric literal in src/",
      "virtues": [
        "temperance",
        "justice"
      ],
      "fundamental": "control",
      "prevents": "incubation",
      "cohesion": "an unnamed limit hides where behavior changes, and an absent one lets any input take everything",
      "guard": "spec/guards/measure_spec.cr",
      "violation": "refutes an unbounded limit",
      "evidence": [
        "679ed48a98",
        "dbff1ddacc"
      ]
    },
    {
      "name": "pace",
      "subject": "suite",
      "either": "quick",
      "or": "slow",
      "observable": "the whole CI run finishes under its stated time",
      "virtues": [
        "temperance"
      ],
      "fundamental": "cause",
      "prevents": "oversteering",
      "cohesion": "a suite too slow to run is not run, and its feedback arrives after the next change",
      "guard": "spec/guards/pace_spec.cr",
      "violation": "refutes a slow suite",
      "evidence": []
    },
    {
      "name": "loudness",
      "subject": "wrapper",
      "either": "raised",
      "or": "swallowed",
      "observable": "a wrapper of an external program raises on failure or returns a result the caller must take apart; none returns a bare Bool",
      "virtues": [
        "justice",
        "wisdom"
      ],
      "fundamental": "control",
      "prevents": "incubation",
      "cohesion": "a failure returned as false can be ignored, and then it surfaces downstream as something else",
      "guard": "spec/guards/loudness_spec.cr",
      "violation": "refutes a swallowed failure",
      "evidence": [
        "0a002aa92f",
        "b740ea4307"
      ]
    },
    {
      "name": "provenance",
      "subject": "release",
      "either": "committed",
      "or": "uncommitted",
      "observable": "stage stages only a tree with no uncommitted changes",
      "virtues": [
        "justice",
        "courage"
      ],
      "fundamental": "whole",
      "prevents": "incubation",
      "cohesion": "a release of uncommitted code carries a name that does not describe it",
      "guard": "spec/guards/provenance_spec.cr",
      "violation": "refutes an uncommitted release",
      "evidence": [
        "281777e74c"
      ]
    },
    {
      "name": "response",
      "subject": "outcome",
      "either": "answered",
      "or": "orphaned",
      "observable": "an outcome is a new artifact referring to the artifact that caused it, never a new thread or ticket",
      "virtues": [
        "justice",
        "wisdom"
      ],
      "fundamental": "cause",
      "prevents": "divergence",
      "cohesion": "an outcome away from its cause cannot be traced back to why it happened",
      "guard": "spec/guards/outcome_home_spec.cr",
      "violation": "refutes an orphaned outcome",
      "evidence": []
    },
    {
      "name": "stewardship",
      "subject": "manual step",
      "either": "handed over",
      "or": "dropped",
      "observable": "every step left to a person is listed with a check that it was done, and accepting a release runs the host checks",
      "virtues": [
        "justice",
        "courage"
      ],
      "fundamental": "whole",
      "prevents": "incubation",
      "cohesion": "a step handed over without a check becomes a latent condition in someone else's hands",
      "guard": "spec/guards/stewardship_spec.cr",
      "violation": "refutes a dropped step",
      "evidence": []
    },
    {
      "name": "reproducibility",
      "subject": "toolchain",
      "either": "pinned",
      "or": "floating",
      "observable": "CI prints the dependency ledger and the compiler is pinned",
      "virtues": [
        "wisdom",
        "justice"
      ],
      "fundamental": "control",
      "prevents": "divergence",
      "cohesion": "a floating toolchain makes the same tree a different program on another host",
      "guard": "spec/guards/dependency_ledger_spec.cr",
      "violation": "refutes a floating toolchain",
      "evidence": []
    },
    {
      "name": "demonstration",
      "subject": "merge",
      "either": "shown",
      "or": "asserted",
      "observable": "a merge needs every parity row demonstrated and marked shown by the maintainer's tag",
      "virtues": [
        "courage",
        "justice"
      ],
      "fundamental": "verdict",
      "prevents": "drift",
      "cohesion": "a merge on asserted parity moves what is unproven into trunk, where others depend on it",
      "guard": "spec/gate/parity_gate_spec.cr",
      "violation": "refutes an asserted merge",
      "evidence": []
    },
    {
      "name": "reception",
      "subject": "reply",
      "either": "checked",
      "or": "assumed",
      "observable": "nothing received is acted on until checked against its schema; a reply that fails is recorded and not acted on",
      "virtues": [
        "wisdom",
        "courage"
      ],
      "fundamental": "control",
      "prevents": "divergence",
      "cohesion": "a reply is an impression we did not make; acting on it unchecked is acting on opinion",
      "guard": "spec/guards/reception_spec.cr",
      "violation": "refutes an assumed reply",
      "evidence": [
        "9dbb5e6067"
      ]
    },
    {
      "name": "tolerance",
      "subject": "reply",
      "either": "recorded",
      "or": "refused",
      "observable": "whatever arrives is kept, and a failure to understand it is noted in the record, not raised at the sender",
      "virtues": [
        "justice",
        "temperance"
      ],
      "fundamental": "control",
      "prevents": "incubation",
      "cohesion": "a reply thrown away hides the sender's failure until it harms whoever comes next",
      "guard": "spec/guards/tolerance_spec.cr",
      "violation": "refutes a refused reply",
      "evidence": []
    },
    {
      "name": "delineation",
      "subject": "topic",
      "either": "held once",
      "or": "repeated",
      "observable": "knowledge-map.json names every document and data file once with the topics it alone holds, every document is reached from README.md by links, and a document named in another is a link to it",
      "virtues": [
        "wisdom",
        "justice"
      ],
      "fundamental": "whole",
      "prevents": "divergence",
      "cohesion": "a topic written in two places drifts as soon as one is edited alone, and a reader cannot tell which to trust",
      "guard": "spec/guards/delineation_spec.cr",
      "violation": "refutes a repeated topic",
      "evidence": []
    }
  ]
}
