RAV-1703: Agentropy v1.0.1 — verify Overmier review claim-by-claim, patch paper and code, response dossier - #3
Open
nwalker85 wants to merge 12 commits into
Open
RAV-1703: Agentropy v1.0.1 — verify Overmier review claim-by-claim, patch paper and code, response dossier#3nwalker85 wants to merge 12 commits into
nwalker85 wants to merge 12 commits into
Conversation
…ep for v1.0.1 Claim-by-claim verification of the 2026-08-22 draft open technical review against main@91df6c0 (= v1.0.0). 26/28 items confirmed, 2 overstated (regeneration clock is a one-tick offset, not absent; the definition-of-life claim is explicitly deferred in Appendix C), 1 nuance (battery gate exists, not exercised). Includes the three reproduction scripts, the root cause of cross-process nondeterminism (set iteration in Topology.reachable_from), and a scoped fix list + paper-wording list for the v1.0.1 patch. Working notes only — not the author response. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QaKo4dUDPoqteBphoTjJo3
… review (RAV-1703) Round 2 against the Zenodo bytes: identity proof (md5 + 25/25 sha256 vs tag v1.0.0), reviewer's harness run under 3.14/46.0.4, 3.10/50.0.1 and 3.10/3.4.8 (byte-identical JSON), all five demos + 50k scale run reproduced, evidence matrix mapped row by row. 31 CONFIRMED / 2 OVERSTATED / 3 NUANCE / 0 NOT-REPRODUCED. New finding: the IoT mass gate floor (512,000 B) exceeds the heaviest demo agent (94,461 B) ~5x, so load-shedding cannot occur in the reported experiment. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUNbhZicXvn3Ar6ViX8LPQ
…dependent (RAV-1703) Topology.reachable_from iterated a set[str]; its order depends on PYTHONHASHSEED and AgentBehavior.choose_node draws over the list in order, so the same seeded run produced different results in different processes (paper 2,113 calls / 91 survivors; reviewer 2,090-2,206 / 100-106). One sorted() restores determinism: token demo now 2,574 / 195 under hash seeds 0, 1 and 2; 2,000-agent scale run identical across seeds. Overmier review, reproducibility section, item 24. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUNbhZicXvn3Ar6ViX8LPQ
interact() and Node.process() gain max_layers (None keeps the v1.0.0 drain-everything behaviour). ToolGateway.process_tool_call now counts the agent's layers of the tool's class against base_cost: fewer than the price is rejected as insufficient_funds BEFORE any layer is consumed; otherwise exactly base_cost layers are stripped and the rest survive (asserted). Adds LAYER_OVERHEAD = 28 to amt_core as the named GCM geometry constant. The budget-agent demo's KEY INSIGHT is now derived from the call log instead of asserted; the scale section prints calls by outcome. Closes review items 3, 5, 6, 7, 9 (1-layer payment recorded as success against a 3-layer price; 12 layers stripped for one call). Does NOT close item 8: a copied agent that holds the full price still pays twice — uniqueness needs an authority outside the scheme (v2). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUNbhZicXvn3Ar6ViX8LPQ
…ted nutrients as cycled (RAV-1703) ResourcePool.last_tick defaulted to wall-clock time.time(), so the first simulation tick's regeneration was lost (elapsed clamped to 0) and regenerate(0.0) fell through 'or' to wall-clock. last_tick is now None until MarketplaceTopology.add_node sets it to simulation time; the first tick regenerates (0 -> 5 -> 10 -> 15 -> 20 in verify_03). This was a one-tick offset, not absent regeneration (review item 16, OVERSTATED); the reviewer's single tick(10) now yields 100. NutrientCycler.cycle(max_layers=) generates what will be accreted and counts as cycled only the payload bytes embodied; unused nutrients stay in the pool; GCM overhead minted per layer is tracked separately and reported by the scale demo as system-level mass (measured, not enforced). v1.0.0 counted the whole budget as cycled and accreted three specs (items 17, 18): the reported 77.3 % recycling rate becomes ~29 %. Speciation KEY INSIGHT is now stated from the measured survivors and says 'niche-differential survival', not 'thrive' (item 19). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUNbhZicXvn3Ar6ViX8LPQ
… gate-blocked count (RAV-1703) demo_6_scale rebuilt the route inside the per-agent loop, so no agent saw battery another agent had drawn down (review item 13). One topology is now shared. The demo prints the requested-vs-decoded budget table (item 12: -9.2 % / +28 % / -9.2 % / -10.1 % / -12.4 %) and states the survival-distance insight from the measured bins instead of asserting it (item 15). It also reports the gate-blocked count and, when the heaviest agent is under the 512,000 B gate floor (it is, by ~5x), says plainly that load-shedding is not exercised. Interaction and layer totals are unchanged (750 / 32,486 / 0 violations). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUNbhZicXvn3Ar6ViX8LPQ
…-MATCHED control (RAV-1703) The RANDOM condition assigned signal = consumed // 2 (review item 21). Both random variants now derive signal from the real layer geometry (mass - LAYER_OVERHEAD, 0 for empty layers), exactly as interact() measures it. With that alone the v1.0.0 'stratification degrades to 1.9x under RANDOM' becomes 3.1x: the degradation was an artifact of the invented split. RANDOM (kept for comparability) still removes ~1 layer per environment key, so its depletion rate is not matched to CONTROL (item 20). The new RANDOM-MATCHED removes exactly as many layers as CONTROL would have decrypted, chosen class-blind: stratification 2.9x, niche score 1.00 (identical to CONTROL for pure-class agents by construction), per-class audit 0 %. The summary interpretation now reads against the measured rows and stops claiming the fixtures establish necessity. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUNbhZicXvn3Ar6ViX8LPQ
…claims (RAV-1703) 31 tests: conservation identity and layer geometry, bounded interact(), gateway price enforcement (12 layers = exactly 4 calls), cross-process determinism under different PYTHONHASHSEED values, marketplace clock and nutrient accounting, ablation control parity, and a known-limitations module whose tests PASS while the limitation is PRESENT (copy-replay, plaintext key_class, mutable public ledger, lossy IoT round trip) so each is stated in code next to the code. requirements*.txt and pyproject.toml pin the verified cryptography floor (3.4.8, the reviewer's version). GitHub Actions runs the suite on 3.10/3.12/3.13 and once more on 3.10 with cryptography==3.4.8. Overmier review, reproducibility section, item 26; recommendation #10. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUNbhZicXvn3Ar6ViX8LPQ
… reproducible (RAV-1703) AgentBehavior.choose_node draws from the module-level random, which the marketplace demo never seeded, so every run differed (reviewer: 0/0 then 2/1 speciation survivors; author: 2/0/1). Seeds it with AMT_SEED (default 42). With the neighbour-order fix the demo is now byte-identical across PYTHONHASHSEED values apart from wall-clock timing lines. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUNbhZicXvn3Ar6ViX8LPQ
… review (RAV-1703) Adds paper/ERRATA-v1.0.1.md (E1-E15 corrections, F1-F9 code changes, v2 scope, and what the review got wrong) and marks every correction inline as "v1.0.1 erratum" / "v1.0.1 wording" so the deposited v1.0.0 text remains legible. Headline changes: double-spending is not prevented (E1); the gateway now enforces its price and the token scenarios/tables are re-reported (E2, E3, E14); key-class presence is visible (E4); "Without Trust" narrowed to "without a trusted intermediary for the arithmetic" and non-repudiation withdrawn (E5); IoT mapping is lossy and the gate cannot bind (E6, E7, E8); marketplace regeneration is a one-tick offset, recycling is 29.3% not 77.3%, and the ecological vocabulary is replaced by what a birthless model can show (E9-E11); the ablation, with controls repaired, is consistent with rather than establishes necessity, and RANDOM's 1.9x degradation was an accounting artifact (E12); zero violations is a bookkeeping statement (E13); threat model stated (E15). Appendix C is unchanged. README and CITATION.cff bumped to 1.0.1. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUNbhZicXvn3Ar6ViX8LPQ
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUNbhZicXvn3Ar6ViX8LPQ
…" note (RAV-1703) docs/review/OVERMIER-RESPONSE-DOSSIER.md — the receipts pile Nate writes the author response from, in Kurt's four buckets: (1) factual corrections (regeneration is a one-tick offset; Appendix C defers the "law of life" claim) plus nuances and the author's own findings; (2) misread intent / threat model, with the paper text he missed quoted; (3) twelve substantive disagreements framed as questions for Nate, with evidence on both sides and no answers; (4) post-v1 work with every honesty constraint attached verbatim, the paper-λ vs grammar-λ collision named first, the mimir-grammar state corrected (v0.7.0 is PR #4, open, not on main), and Kurt's six-layer stack mapped stage for stage onto the v0.6.1 §3.5 control surface. Not a draft of the response; nothing is addressed to Kurt. docs/review/WHAT-WOULD-TEST-THE-THEORY.md — one page, [CS], not ratified: why the CFO standing-office direction (2026-09-04) is the first place the theory can lose, with a stated falsifier and the discipline it inherits. No design. VERIFICATION-NOTES §3.1 now records what shipped, by commit. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUNbhZicXvn3Ar6ViX8LPQ
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Kurt Overmier's open technical review of v1.0.0 (received 2026-08-22, verdict major revision) asked for factual corrections, misread intent, disagreements in the author's own words, and post-v1 work clearly distinguished. This PR is the verification, the patch, and the dossier the author response is written from. It does not contain the author response — that is Nate's byline.
Linear: RAV-1703.
What is in it
Verification (
docs/reviews/2026-08-22-overmier-v1.0.0/) — every claim in the review's eleven sections and every row of the 23-row evidence matrix has a verdict and afile:lineor script receipt. Run against the bytes downloaded from Zenodo (md5 match; 25/25 files sha256-identical to tagv1.0.0=main@91df6c0). Kurt's harness reproduced byte-identically under Python 3.14 / cryptography 46.0.4, 3.10 / 50.0.1, and 3.10 / 3.4.8 (his exact version). All five demos and the 50,000-agent scale run reproduced.New finding beyond the review: the IoT mass-gate floor (512,000 B) is ~5× the heaviest agent the demo can build (94,461 B), so load-shedding cannot occur in the reported experiment at all.
v1.0.1 patch — one commit per fix, no new architecture
fix(topology): sorted neighbour iteration — seeded runs are now identical acrossPYTHONHASHSEED(the paper's integers were one process-dependent draw).fix(token-economy): gateway enforces its declared price —interact(max_layers=),insufficient_fundsrefused before consumption, exactlybase_costlayers charged (asserted). Copy-replay of a fully funded agent is not fixed and is documented as a known limitation (v2).fix(marketplace): pools on the simulation clock; nutrient accounting counts only what was accreted (77.3 % → 29.3 %); minted overhead reported, not enforced.fix(iot-demo): one shared topology; requested-vs-decoded table; gate-blocked count.fix(ablation): honest signal/loss for RANDOM (the 1.9× "degradation" was an invented 50/50 split — it is 3.1×); new rate-matched RANDOM-MATCHED control.fix(marketplace-demo): seeded behaviour RNG.test: 31 pytest tests incl. known-limitation tests that pass while the limitation is present;requirements*.txt,pyproject.toml; CI on 3.10/3.12/3.13 plus acryptography==3.4.8job.docs(paper):paper/ERRATA-v1.0.1.md(E1–E15, F1–F9) and inlinev1.0.1 erratum/v1.0.1 wordingmarks. "Establishes necessity" → "is consistent with"; "Without Trust" → "Without a Trusted Intermediary for the Arithmetic"; double-spending, key-class secrecy, non-repudiation, bidirectional mapping, carrying capacity / boom-bust / speciation withdrawn or narrowed. Appendix B and C are verbatim (diffed against91df6c0).Dossier (
docs/review/OVERMIER-RESPONSE-DOSSIER.md) — four buckets matching Kurt's four asks; §3 is twelve questions for Nate with evidence on both sides and no answers; §4 names the paper-λ / grammar-λ collision first, carries every honesty constraint verbatim (Experimental; production not authorized; expires 2026-10-24; D2 narrowed not closed; Vór designed not provisioned; G3-9 absent), corrects the lane brief (mimir-grammar v0.7.0 is PR #4, open, not onmain), and maps Kurt's six-layer stack onto the v0.6.1 §3.5 control surface.docs/review/WHAT-WOULD-TEST-THE-THEORY.md— one page, [CS], not ratified.Result-changing fixes (flagged, Nate's call — dossier Q9)
Price enforcement moves token-economy survival 45.5 % → 97.5 % and the rich/poor ratio 2.1× → 9.8×. Tables show both columns.
Not in this PR
Merge, tag, Zenodo deposit. Uniqueness/settlement, signing/anchoring, hidden key classes, global mass equation, reproduction, multi-seed intervals — all v2.
🤖 Generated with Claude Code
https://claude.ai/code/session_01NUNbhZicXvn3Ar6ViX8LPQ