diff --git a/README.md b/README.md index eedfa75..42e3d24 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ bounded-loops logo

-

bounded-loops: Bounded Loops & Graphs

+

Bounded Loops & Graphs — independent gates for AI agent loops

Read the paper · arXiv:2609.27871
Research experiments: v0.6.6 · Current software: v0.7.6

@@ -27,16 +27,18 @@ Every run leaves a hash-chained record you can re-verify afterwards.

*Replay of the shipped keyless reference example: the worker is a stub, and the pytest gate is real.* ```bash -pip install bounded-loops -bl loops install bug-fix-red-green -bl run .bounded-loops/loops/bug-fix-red-green --yes # a real planted bug, a real pytest gate, no API key +python -m pip install bounded-loops +bl loops install bug-fix-red-green --dest ./loops +bl run loops/bug-fix-red-green --yes --run-id first-proof # stub worker, real pytest gate ``` -The wheel includes 69 loop packages; 65 need no API key. This repository also ships seven -digest-pinned graphs. `bl loops install` copies a package offline into your project, where -`bl run` can write its ledger. Try a [failing test](loops/bug-fix-red-green/), -[retail margin rule](loops/price-margin-floor/), or [invoice match](loops/invoice-3way-match/). -Use a graph for joins, repair routes, or approval before an effect. +The wheel ships 69 loops (65 keyless); the repository adds seven digest-pinned graphs. Install offline; +run locally. Try [tests](loops/bug-fix-red-green/), [margin rules](loops/price-margin-floor/), +or [invoice matching](loops/invoice-3way-match/). Graphs support joins, repairs and approvals. + +**[Verify receipts](docs/QUICK_PROOF.md)** · **[Product guide](https://qualixar.com/products/bounded-loops)** · **[Author](https://www.varunpratap.com/products/bounded-loops)** + +Useful in your workflow? [Star the repository](https://github.com/qualixar/bounded-loops). Access remains open without starring. **Research scope.** The [paper](https://arxiv.org/abs/2609.27871) evaluates v0.6.6; the current software is v0.7.6. Later changes are not paper results. diff --git a/docs/QUICK_PROOF.md b/docs/QUICK_PROOF.md new file mode 100644 index 0000000..a57b008 --- /dev/null +++ b/docs/QUICK_PROOF.md @@ -0,0 +1,31 @@ +# A keyless acceptance-gate proof + +Install the published package and copy the demo into an explicit writable directory: + +```bash +python -m pip install bounded-loops +bl loops install bug-fix-red-green --dest ./loops +bash loops/bug-fix-red-green/wreck.sh +# Expected exit 1: the ungated stub claims GREEN while its tests fail. +bl run loops/bug-fix-red-green --yes --run-id first-proof +``` + +The worker is a synthetic stub; the pytest gate is real. The local verification +on 1 October 2026 passed six tests and reached DONE in one lap. No hosted model, +accuracy benchmark, latency comparison or savings estimate is involved. +Use a fresh run-id for each new run. Inspect the gate and runner before using --yes. + +Record the printed ledger_head independently of the run directory, then verify: + +```bash +bl verify loops/bug-fix-red-green/.bounded-loops/runs/first-proof/ledger.jsonl --expect-head YOUR_RECORDED_HEAD --json +``` + +The local persisted proof passed chain, separate-head match and completeness. +A plain chain check without a retained head and run metadata is weaker evidence; +it should not be described as all checks verified. The external head is useful +only if the party editing the run directory cannot also replace your retained copy. + +The CLI may print its trust notice before JSON output. Consumers must distinguish +that notice from the outcome object rather than assuming all stdout is one JSON value. +The [paper](https://arxiv.org/abs/2609.27871) states the research protocol and assumptions.