Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ jobs:
- run: python -m pip install --upgrade pip
- run: python -m pip install -e .
- run: python -m unittest discover -s tests -v
- run: python -m pip install build
- run: python -m build --wheel --outdir /tmp/ravel-wheel
- run: python -m pip install --force-reinstall /tmp/ravel-wheel/*.whl
- run: python -m pip check
- run: cd /tmp && python -c "import ravel; assert 'site-packages' in ravel.__file__; from ravel.policy import load_frozen_policy; print(load_frozen_policy().threshold_identity)"

ravel-06-c:
runs-on: ubuntu-latest
Expand All @@ -35,4 +40,4 @@ jobs:
- run: python -m pip install --upgrade pip
- run: python -m pip install -e .
- run: make -f ravel_versions/0.6/Makefile policy-test
- run: make -f ravel_versions/0.6/Makefile build behavioral-test transaction-test component-test decomposition-test negative-test provider-test evaluator-test forge-test receipt-test compiler-matrix sanitizers
- run: make -f ravel_versions/0.6/Makefile build behavioral-test transaction-test component-test decomposition-test negative-test provider-test evaluator-test forge-test receipt-test abi-test compiler-matrix sanitizers
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
__pycache__/
*.py[cod]
.mncs-forge/
build/
dist/
*.egg-info/

# Local build and evidence diagnostics
ravel_versions/**/ravel
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ RAVEL — the **Recursive Adaptive Vector Execution Lattice** — is an experime

RAVEL operates beneath the technical authority of the Machine-Native Complexity Standard (MNCS) and the Machine-Native Complexity Development Standard (MNCDS). It is not intended to replace a language model, compiler, static analyzer, test framework, or the MNCS Forge. Its role is to decide what evidence should be gathered, what action should follow, and what experience should be retained for later use without redefining the governing status of that evidence.

> **Project status:** RAVEL is research software. Historical RAVEL 0.4 and 0.5 results remain development `FAIL`; RAVEL 0.6 candidate-001 now has a digest-bound frozen-policy loader, matched-compute development observations, a first separately compiled checkpoint contract with unity parity, two real C providers, an optional Forge CLI adapter, delegated MNCS receipt validation, negative parity fixtures, and lifecycle/memory integration. It remains unfrozen and has not been selection-evaluated, independently evaluated, or promoted. Formal MNCS/MNCDS conformance, independent attestation, protected custody, production safety, and general recursive self-improvement remain `UNKNOWN`.
> **Project status:** RAVEL is research software. Historical RAVEL 0.4 and 0.5 results remain development `FAIL`; RAVEL 0.6 candidate-001 now has digest-bound policy/evaluator surfaces, separately compiled checkpoint and world/provider contracts, branching/ring unity parity, a Forge-governed development configuration, official MNCS bundle/receipt adapters, and lifecycle/memory integration. It remains unfrozen and has not been selection-evaluated, independently evaluated, or promoted. Formal MNCS/MNCDS conformance, independent attestation, protected custody, production safety, and general recursive self-improvement remain `UNKNOWN`.

## Place in the MNCS ecosystem

Expand Down
15 changes: 15 additions & 0 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,21 @@ These modules are tested scaffolding and are not claims that RAVEL 0.6 has been
evaluated, selected, independently evaluated, certified, promoted, or made
production-safe.

## Current modular evidence boundary

The generated C candidate has two separately compiled development contracts:

- `ravel-0.6-checkpoint-abi/1` for byte-identical checkpoint comparison; and
- `ravel-0.6-world-abi/1` for bounded provider identity, init/reset,
observation, and transition facts.

Branching and ring provider objects are substituted behind the same header and
run through the same unity/separate parity matrix. Build provenance distinguishes
source, contract/header, object, binary, and execution identities. The local
Forge project configuration records this work as development workflows; Forge
does not become RAVEL's evaluator and its normal process runner is not a
sandbox.

## Separation of statuses

RAVEL must not collapse different state spaces into one score.
Expand Down
11 changes: 11 additions & 0 deletions docs/EVIDENCE_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,17 @@ RAVEL reports several different questions that must not be collapsed:

A `PASS` in one row does not imply `PASS` in another.

### Forge receipts and immutable bundles

RAVEL delegates execution-receipt and experimental execution-bundle structure
to the installed MNCS sibling packages. A Forge verifier result is not a raw
process record: it cannot supply an exit code, termination category, argv,
stdout/stderr state, resource enforcement, or bundle execution fact unless the
provider actually observed and returned that field. Missing or malformed
runner material is `UNKNOWN`. Bundle logical identity, archive identity,
manifest validation, and receipt/bundle binding are retained as sibling-owned
facts; RAVEL does not duplicate those validators.

## Preserved RAVEL outcomes

- RAVEL 0.4: execution produced evidence, but zero of eight frozen trials passed
Expand Down
9 changes: 7 additions & 2 deletions docs/PROJECT_MAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,15 @@ regenerating the frozen records.
- `src/ravel/providers.py` includes an optional subprocess adapter for the
current Forge JSON CLI; `src/ravel/mncs_receipts.py` delegates optional
receipt construction/validation to sibling MNCS packages.
- `mncs-forge.toml` declares the Forge-governed development workflows;
`src/ravel/mncs_bundles.py` delegates immutable execution-bundle operations
to MNCS when that optional sibling is installed.
- `tools/ravel_0_6_decompose.py` losslessly emits generated C component units
and a unity wrapper; `ravel_versions/0.6/ravel_0_6/README.md` documents the
current unity-build limitation. `ravel_0_6_checkpoint.[ch]` is the first
separately compiled C contract and is included in object/binary provenance.
current ABI boundary. `ravel_0_6_checkpoint.[ch]` and
`ravel_0_6_world.h` are separately compiled contracts and are included in
object/binary provenance; branching and ring providers implement the same
world ABI.
- [`MIGRATION.md`](MIGRATION.md) records the standalone extraction provenance.

## Build and verification entry points
Expand Down
8 changes: 6 additions & 2 deletions docs/PROVIDER_RUNTIME.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,12 @@ normal test suite fail.

The local Forge `0.1.0a2` checkout was inspected and exercised for this
iteration. Its current CLI exposes typed project, provider, verifier, candidate,
and lifecycle operations; the available provider listing reports the project
micro-verifier provider and the precedence `FAIL > UNKNOWN > PASS`.
workflow, bundle, and lifecycle operations; RAVEL's project-local configuration
declares 13 development workflows in a fresh local Forge ledger; twelve
bounded workflows passed and live family compatibility remained
`UNKNOWN` for unavailable sibling producer checkouts. The project-scoped Forge readiness policy is separate from the frozen
RAVEL preregistration and does not consume selection data. The precedence is
`FAIL > UNKNOWN > PASS`.
`ForgeCliProvider` invokes that JSON interface when explicitly configured and
preserves lifecycle rejection as raw `UNKNOWN`. Forge remains optional for the
core package and is not reimplemented by RAVEL.
154 changes: 154 additions & 0 deletions mncs-forge.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
version = 1
environment_allowlist = ["PATH", "LANG", "LC_ALL", "PYTHONPATH", "CC", "RAVEL06_PROVIDER"]

[project]
name = "RAVEL 0.6 development"
identity = "ravel-0.6-development-forge-v1"
root = "."

[paths]
candidates = []
generated = ["build"]
contracts = ["ravel_versions/0.4", "ravel_versions/0.5", "ravel_versions/0.6/ravel-0.6-preregistration.json", "ravel_versions/0.6/ravel-0.6-preregistration.schema.json"]
references = ["docs", "README.md"]
evaluators = ["src/ravel/development_evaluator.py"]
acceptance_policies = ["ravel_versions/0.6/ravel-0.6-forge-development-policy.json", "ravel_versions/0.6/ravel-0.6-preregistration.json"]
development_evidence = ["ravel_versions/0.6/ravel-0.6-development-record.json"]
protected = ["ravel_versions/0.6/ravel_0_6"]
outputs = ["build"]

[limits]
timeout_seconds = 180
output_bytes = 2097152

[authority.development]
may_write_candidates = true
may_write_generated = true
may_run_providers = true

[authority.evaluator]
candidate_read_only = true
authority_read_only = true
require_frozen_identities = true
withhold_repair_feedback = true

[policies]
selection = "ravel_versions/0.6/ravel-0.6-forge-development-policy.json"
useful_benefit_objective = "ravel_versions/0.6/ravel-0.6-preregistration.json"

[[workflows]]
name = "frozen-identities"
category = "inspection"
mode = "development"
command = ["python3", "tools/ravel_forge_check.py", "frozen-identities"]
provider_protocol = false
subject = "project"
disclosure = "compact"

[[workflows]]
name = "policy"
category = "inspection"
mode = "development"
command = ["python3", "tools/ravel_forge_check.py", "policy"]
provider_protocol = false
subject = "project"
disclosure = "compact"

[[workflows]]
name = "build"
category = "build"
mode = "development"
command = ["python3", "tools/ravel_forge_check.py", "build"]
provider_protocol = false
subject = "project"
disclosure = "compact"

[[workflows]]
name = "behavior"
category = "differential_behavior"
mode = "development"
command = ["python3", "tools/ravel_forge_check.py", "behavior"]
provider_protocol = false
subject = "project"
disclosure = "compact"

[[workflows]]
name = "transactions"
category = "checkpoint_recovery"
mode = "development"
command = ["python3", "tools/ravel_forge_check.py", "transactions"]
provider_protocol = false
subject = "project"
disclosure = "compact"

[[workflows]]
name = "negative-matrix"
category = "mutation"
mode = "development"
command = ["python3", "tools/ravel_forge_check.py", "negative-matrix"]
provider_protocol = false
subject = "project"
disclosure = "compact"

[[workflows]]
name = "world-provider-parity"
category = "differential_behavior"
mode = "development"
command = ["python3", "tools/ravel_forge_check.py", "world-provider-parity"]
provider_protocol = false
subject = "project"
disclosure = "compact"

[[workflows]]
name = "component-parity"
category = "differential_behavior"
mode = "development"
command = ["python3", "tools/ravel_forge_check.py", "component-parity"]
provider_protocol = false
subject = "project"
disclosure = "compact"

[[workflows]]
name = "development-evaluator"
category = "inspection"
mode = "development"
command = ["python3", "tools/ravel_forge_check.py", "development-evaluator"]
provider_protocol = false
subject = "project"
disclosure = "compact"

[[workflows]]
name = "package"
category = "mncs_bundle_validation"
mode = "development"
command = ["python3", "tools/ravel_forge_check.py", "package"]
provider_protocol = false
subject = "project"
disclosure = "compact"

[[workflows]]
name = "live-family-compat"
category = "mncds_record_validation"
mode = "development"
command = ["python3", "tools/ravel_forge_check.py", "live-family-compat"]
provider_protocol = false
subject = "project"
disclosure = "compact"

[[workflows]]
name = "lifecycle"
category = "inspection"
mode = "development"
command = ["python3", "tools/ravel_forge_check.py", "lifecycle"]
provider_protocol = false
subject = "project"
disclosure = "compact"

[[workflows]]
name = "bundle"
category = "mncs_bundle_validation"
mode = "development"
command = ["python3", "tools/ravel_bundle_check.py"]
provider_protocol = false
subject = "project"
disclosure = "compact"
5 changes: 4 additions & 1 deletion ravel_versions/0.6/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
CC ?= cc
CFLAGS ?= -std=c11 -O3 -Wall -Wextra -Werror -pedantic

.PHONY: build behavioral-test transaction-test component-test policy-test decomposition-test negative-test provider-test evaluator-test forge-test receipt-test compiler-matrix sanitizers
.PHONY: build behavioral-test transaction-test component-test policy-test decomposition-test negative-test provider-test evaluator-test forge-test receipt-test abi-test compiler-matrix sanitizers

build:
@set -e; out=$$(mktemp -d); python3 tools/ravel_0_6_build.py build --output-dir "$$out"; \
Expand Down Expand Up @@ -37,6 +37,9 @@ forge-test:
receipt-test:
python3 -m unittest tests/test_mncs_receipts.py

abi-test:
python3 -m unittest tests/test_ravel_0_6_decomposition.py tests/test_mncs_bundles.py

compiler-matrix:
@set -eu; for compiler in gcc clang; do \
if command -v "$$compiler" >/dev/null 2>&1; then \
Expand Down
44 changes: 29 additions & 15 deletions ravel_versions/0.6/RAVEL_0_6_IMPLEMENTATION_STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,27 +34,40 @@ This is a development status record, not RAVEL 0.6 evaluation evidence.
fixture also forces a retention gate failure and observes rollback.
- **R6-04 physical extraction and providers:** the generated source is
losslessly emitted as ten component units plus a deterministic unity wrapper.
The C mechanism has explicit branching and ring providers selected by a
recorded compile flag; provider identity and evidence change while core
source remains unchanged.
The world/provider surface is now separately compiled under
`ravel-0.6-world-abi/1`; branching and ring implement the same fixed-size
init/reset/observe/transition contract. Provider selection is a linked object
choice, not a mechanism source macro.
- **R6-04 bounded surfaces:** `world`, `transition`, `planning`,
`mechanism_state`, and `checkpoint` provide dependency-free, deterministic
interfaces with two independently defined toy providers. These surfaces
reproduce the tested slot-one/unknown-route behaviors and detect checkpoint
corruption. The generated C candidate now has an explicit transaction and
observation surface. The checkpoint byte-comparison boundary is now compiled
as a separate object under `ravel-0.6-checkpoint-abi/1`; unity and separate
binaries are parity-tested. The remaining surfaces are still unity include
units, so full independent C decomposition is not claimed.
- **Forge boundary and evaluator:** `ravel.providers.ForgeCliProvider` invokes
the installed Forge JSON CLI when configured, preserving raw responses and
returning `UNKNOWN` for lifecycle/provider failures. A separately maintained
`ravel.development_evaluator` derives development gate results from raw C and
matched-compute observations without trusting executable verdict fields.
- **MNCS receipt delegation:** `ravel.mncs_receipts` delegates receipt building
and validation to optional MNCS Fabric/validator packages. Local sibling
validation was exercised; receipt structural validity remains distinct from
assurance, conformance, custody, or promotion.
binaries are parity-tested. Build records now retain contract header,
implementation/provider source, object, compile argv, compiler, dependency,
unity-source, separate-binary, and unity-binary identities. Transition,
planning, adaptation, and driver surfaces remain unity units.
- **Forge boundary and evaluator:** the project-local `mncs-forge.toml`
declares bounded build, behavior, transaction, negative-matrix, parity,
evaluator, bundle, package, lifecycle, and family-compatibility workflows.
Its separate `ravel-0.6-forge-development-policy.json` is a project-scoped
readiness plan only; it explicitly does not consume selection data.
Forge 0.1.0a2 executed all declared workflows in a fresh local development
ledger. Twelve bounded workflows were `PASS`; live family compatibility was
`UNKNOWN` because sibling producer checkouts were unavailable. `ravel.development_evaluator` now reports
mechanism, execution-integrity, matched-compute, evidence-completeness,
provider, receipt, bundle, and aggregate statuses. Identity drift, malformed
evidence, and missing required observations remain `UNKNOWN`; genuine hard
mechanism failures remain `FAIL`.
- **MNCS evidence delegation:** `ravel.mncs_receipts` delegates receipt building
and validation to optional MNCS Fabric/validator packages and carries only an
explicitly observed execution record. Verifier `PASS`/`FAIL` never supplies
exit code, argv, termination, streams, enforcement, or bundle-use facts.
`ravel.mncs_bundles` delegates immutable bundle construction, archive
validation, and receipt binding to MNCS; the local Forge runner is not claimed
to have executed from a bundle unless it actually reports that fact.
- **R6-05 lifecycle infrastructure:** `ravel.lifecycle.CandidateLedger` is an
append-only, hash-chained, gap-resistant development ledger with the
preregistered candidate limit, freeze identities, partition separation,
Expand All @@ -78,7 +91,8 @@ This is a development status record, not RAVEL 0.6 evaluation evidence.
formal evidence status; missing external disposition remains `UNKNOWN`.
- Additional separately compiled C ABI contracts, full cross-project evaluator
lifecycle integration, and an absolute compute budget remain incomplete or
are not declared by the frozen contract.
are not declared by the frozen contract. Forge/RAVEL lifecycle mapping is
reference-only and does not collapse the two state machines.
- R6-05 selection evaluation and promotion logic have not been consumed. The
ledger is infrastructure only; no candidate is frozen or selected by it.
- R6-06 external final custody/evaluation remains unavailable and `UNKNOWN`.
Expand Down
17 changes: 8 additions & 9 deletions ravel_versions/0.6/RAVEL_0_6_NEXT_STEPS.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,20 +74,19 @@ exact boundary.
- **R6-03:** behavioral and C/Python negative fixtures complete for declared
constraints; source-constant mutations are intentionally distinguished from
Python frozen-policy mutations and remain manifest-detectable.
- **R6-04:** the first checkpoint boundary is separately compiled and parity
tested against unity; provider/world, transition, planning, adaptation, and
driver surfaces remain unity units. Further reviewed C ABI extraction is the
next step.
- **R6-04:** checkpoint and world/provider boundaries are separately compiled
and parity-tested against unity for both branching and ring. Transition,
planning, adaptation, and driver surfaces remain unity units. The next safe
ABI candidate is observation/reporting, after dependency review.
- **R6-05:** ledger infrastructure is hardened and exercised only with
development fixtures. Candidate-001 remains unfrozen because further
implementation changes are still expected.
- **R6-06:** external custody and evaluation remain unavailable/`UNKNOWN`.

The next logical implementation task is to promote the world/provider boundary
to a separately compiled C contract and compare both providers through the
same unity/separate parity oracle. Do not freeze candidate-001 or consume
selection partitions until that work, policy parity, and the full development
trial matrix are stable.
The next logical implementation task is to review and, if independently
falsifiable, promote the observation/reporting boundary. Do not freeze
candidate-001 or consume selection partitions until further implementation,
policy parity, and the full development trial matrix are stable.

## Codex next steps

Expand Down
Loading
Loading