Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Recurgent Contract Specs

This directory defines runtime-agnostic behavior contracts for Recurgent Agent.

Purpose:

  • Keep one canonical behavioral contract across runtimes.
  • Let each runtime (Ruby, Lua) implement local mechanics while preserving identical semantics.
  • Make parity testable before and during Lua implementation.

Layout

specs/contract/
  README.md
  v1/
    agent-contract.md    # normative behavioral contract
    programs.yaml        # abstract generated-program semantics
    scenarios.yaml       # runtime-agnostic test scenarios
    tolerant-delegation-profile.md    # tolerant delegation profile
    tolerant-delegation-scenarios.yaml  # tolerant profile scenarios
    recurgent-log-entry.schema.json    # machine-readable schema for one JSONL log entry
    recurgent-log-stream.schema.json   # schema for jq-slurped JSONL stream arrays
    simulation-preparedness.contract.yaml   # readiness gate contract for simulation activation
    simulation-run-ledger.schema.json       # schema for simulation run evidence records
    simulation-scenario-pack.schema.json    # schema for scenario-pack contract surface
    simulation/
      scenario-packs/
        calculator-core-v1.yaml             # class-1 deterministic calculator core pack
        calculator-edge-v1.yaml             # class-1 deterministic calculator edge/error pack
    conformance.md       # harness guidance for runtime implementations

How Runtimes Use This

Each runtime should implement a local contract harness that:

  1. Loads v1/scenarios.yaml and v1/tolerant-delegation-scenarios.yaml.
  2. Maps program_id values to runtime-local generated code (Ruby or Lua).
  3. Executes scenarios against that runtime's Agent.
  4. Reports pass/fail per scenario id.

Versioning

  • v1/ is the current baseline.
  • New incompatible contract changes require a new version directory (v2/).
  • Runtime implementations should explicitly declare which contract version they pass.