Files
openprose__prose/spec/00-Tenets.md
Jose Montes de Oca 2c338823f3 feat: de-brand the run-phase model and release skill 0.16.0 (#167)
With the Reactor harness in its own repository, the language describes
its run-phase model for what it is rather than after one implementation
of it.

- concepts/reactor.md → concepts/reconciler.md; spec/02 keeps only the
  contract any conforming harness must satisfy (02-Harness.md) and
  spec/03 becomes 03-AuthoringPattern.md. "Reactor" in the model sense
  is now "the reconciler" across the Skill, std, and the examples.
- The example corpus is harness-neutral: authored intent plus the
  observable behaviour a harness must preserve. Quick Start examples
  carry the Skill's own flow (prose compile → promote → prose serve)
  and say what serve waits for; expanded-topology examples state what
  src/ ships and what a harness's expansion produces from it.
- The Skill's run-flow docs agree with each other and with the spec:
  serve defines the manifest promotion step, compile names what
  ir-v0.md emits, ir-v0.md is the authoritative IR contract, and the
  spec lists compile/serve/status as in-session verbs that a conforming
  harness may deliver durably outside the session.
- A harness-surface conformance test keeps product tokens out of the
  Skill, spec, std/co, and root docs, outside the README's Harnesses
  section and the Skill changelog.

Skill 0.16.0; runtime_contract stays 2. The Skill changelog records the
migration so prose upgrade can route workflows that used prose react.
2026-08-25 21:21:03 -04:00

4.5 KiB

OpenProse Tenets

Load-bearing principles that constrain every architectural decision. Read alongside 01-Language.md, 02-Harness.md, and 03-AuthoringPattern.md.

These are the commitments that make OpenProse what it is. They are not feature requirements; they are constraints that shape every downstream decision, evaluated before any new capability is considered.

When the system is in tension with a tenet, the tenet wins. When two tenets collide, the lower-numbered tenet wins — the order below is descending precedence. The numbered order decides which tenet wins. The operational stack correctness > safety > cost > interrupt-minimization is how that order projects onto the decisions actually made. Correctness is non-negotiable and flows from Tenets 1, 2, and 5 (authored intent, bounded determinism, verifiable evidence); by design it is realized where decisions are frozen — at compile, where the canonicalizer and postcondition validators are fixed, and at the commit gate, whose admissibility check keeps an inadmissible render from corrupting the truth (correctness) and whose fail-closed default makes a render that cannot satisfy its obligations commit nothing rather than act (safety, Tenet 4). Below that floor the stack is the resolution rule for the safety → cost → silence trade-offs — Tenet 4's "safety outranks cost; cost outranks silence": safety is Tenet 4, cost is the spend weighed against safety and silence — observed, never an enforced budget the gates run against — and interrupt-minimization is a downstream goal rather than an authority the other tenets bend around. The stack is not a separate runtime policy dial and does not override the numbered precedence — it projects that precedence onto the operational decisions; the numbered precedence governs everything else.


1. Intent lives only in the contract.

The *.prose.md is the single authored source of meaning. Everything else — compiled artifacts, projections, operational policy — is derived and reconcilable; when a derived artifact disagrees with the contract, the contract is right. There is no second authored surface for intent: not a prompt, a config, or a separate scoring artifact.

2. Intelligence is the model's; determinism only bounds it.

The model acts as a bounded agent — with an environment, a filesystem, and the ability to read, write, and run code — that dynamically explores rather than consuming a one-shot context. Intelligence lives in exactly two layers it authors: the compilation (the Forme topology, the per-node canonicalizer, and the postcondition validators, frozen once per contract) and the render (the bounded session that computes the next world-model). Deterministic code validates, schedules, records, and executes what the agent authored, and constrains it with limits the agent cannot override — it never decides meaning itself.

3. Continuity lives in the trail, not a session.

Every unit of work is bounded; nothing depends on a process that runs forever. Standing intent is the program and persists across bounded runs in durable state — a one-shot run is its degenerate case.

4. Fail safe.

Under uncertainty the system escalates or stops rather than acts, and asks a human only when one is genuinely needed. Safety outranks cost; cost outranks silence.

5. Trust is demonstrated, not claimed.

Every decision leaves verifiable evidence; that evidence is at once the audit record, the composition edge, and the exit ticket. Consumers verify it independently rather than trusting the producer.

6. Nothing is held hostage.

A contract and its trail can leave for any compliant host with no lost meaning. Portability is the discipline that keeps every host honest.

7. One bounded run, one session; the DAG composes.

An activation is one bounded run in one runtime — one render that commits one world-model, even when it spawns isolated sub-sessions to get there. What looks like orchestration inside it — wiring, delegation, sub-task isolation, choreography — is the agent honoring the contract with the runtime's own primitives. The only seam where multiple runs meet is the world-model DAG, where activations communicate through durable artifacts anchored by signed receipts. There is no third tier.


Governance — not a numbered tenet: the OpenProse language, runtime, and skill are MIT-licensed and free, forever. Commerce is out of scope of this specification and nothing in it depends on it.