From b7260b2eafef347ff6631443b30a583531e6816a Mon Sep 17 00:00:00 2001 From: openhands Date: Fri, 13 Feb 2026 18:22:03 +0000 Subject: [PATCH] chore: analysis tooling, research artifacts, and code quality - Analysis: parameter sweep scripts, adversarial testing, 2D frontier maps - Research: KRAIKEN_RESEARCH_REPORT, SECURITY_REVIEW, STORAGE_LAYOUT - FuzzingBase: consolidated fuzzing helper, BackgroundLP simulation - Sweep results: CSV data for full 4D sweep (1050 combos), bull-bear, AS sweep, VWAP fix validation - Code quality: .gitignore for fuzz CSVs, gas snapshot, updated docs - Remove dead analysis helpers (CSVHelper, CSVManager, ScenarioRecorder) Co-Authored-By: Claude Opus 4.6 --- onchain/.claude-code-supervisor.yml | 6 + onchain/.claude/hooks/supervisor/lib.sh | 139 ++ onchain/.claude/hooks/supervisor/on-error.sh | 40 + onchain/.claude/hooks/supervisor/on-notify.sh | 44 + onchain/.claude/hooks/supervisor/on-stop.sh | 71 + onchain/.claude/hooks/supervisor/triage.sh | 72 + onchain/.claude/settings.json | 37 + onchain/.gas-snapshot | 3 + onchain/.gitignore | 2 + onchain/AGENTS.md | 110 +- onchain/README.md | 21 +- onchain/analysis/2D_FRONTIER_LOG.md | 35 + onchain/analysis/2d-frontier-results.csv | 30 + onchain/analysis/AS_SWEEP_LOG.md | 32 + onchain/analysis/BullBearSweep.s.sol | 216 +++ onchain/analysis/FUZZING_LOG.md | 1447 +++++++++++++++++ onchain/analysis/KRAIKEN_RESEARCH_REPORT.md | 414 +++++ onchain/analysis/PARAMETER_SEARCH_RESULTS.md | 654 ++++---- onchain/analysis/ParameterSweepFuzzing.s.sol | 198 +-- onchain/analysis/README.md | 248 +-- onchain/analysis/SECURITY_REVIEW.md | 225 +++ onchain/analysis/STORAGE_LAYOUT.md | 101 ++ onchain/analysis/ScarcityDiagnostic.s.sol | 191 +++ onchain/analysis/StreamlinedFuzzing.s.sol | 524 +++--- onchain/analysis/V3_FUZZING_LOG.md | 21 + onchain/analysis/V3_STEP_LOG.md | 31 + .../archive-200runs/fuzz-0GSK-000.csv | 111 ++ .../archive-200runs/fuzz-0GSK-001.csv | 110 ++ .../archive-200runs/fuzz-0GSK-002.csv | 109 ++ .../archive-200runs/fuzz-0GSK-003.csv | 110 ++ .../archive-200runs/fuzz-0GSK-004.csv | 113 ++ .../archive-200runs/fuzz-0GSK-005.csv | 108 ++ .../archive-200runs/fuzz-0GSK-006.csv | 109 ++ .../archive-200runs/fuzz-0GSK-007.csv | 109 ++ .../archive-200runs/fuzz-0GSK-008.csv | 108 ++ .../archive-200runs/fuzz-0GSK-009.csv | 110 ++ .../archive-200runs/fuzz-0GSK-010.csv | 114 ++ .../archive-200runs/fuzz-0GSK-011.csv | 111 ++ .../archive-200runs/fuzz-0GSK-012.csv | 110 ++ .../archive-200runs/fuzz-0GSK-013.csv | 112 ++ .../archive-200runs/fuzz-0GSK-014.csv | 113 ++ .../archive-200runs/fuzz-0GSK-015.csv | 113 ++ .../archive-200runs/fuzz-0GSK-016.csv | 113 ++ .../archive-200runs/fuzz-0GSK-017.csv | 117 ++ .../archive-200runs/fuzz-0GSK-018.csv | 110 ++ .../archive-200runs/fuzz-0GSK-019.csv | 111 ++ .../archive-200runs/fuzz-1F0J-000.csv | 111 ++ .../archive-200runs/fuzz-1F0J-001.csv | 111 ++ .../archive-200runs/fuzz-1F0J-002.csv | 107 ++ .../archive-200runs/fuzz-1F0J-003.csv | 109 ++ .../archive-200runs/fuzz-1F0J-004.csv | 110 ++ .../archive-200runs/fuzz-1F0J-005.csv | 111 ++ .../archive-200runs/fuzz-1F0J-006.csv | 110 ++ .../archive-200runs/fuzz-1F0J-007.csv | 112 ++ .../archive-200runs/fuzz-1F0J-008.csv | 110 ++ .../archive-200runs/fuzz-1F0J-009.csv | 112 ++ .../archive-200runs/fuzz-1F0J-010.csv | 110 ++ .../archive-200runs/fuzz-1F0J-011.csv | 114 ++ .../archive-200runs/fuzz-1F0J-012.csv | 115 ++ .../archive-200runs/fuzz-1F0J-013.csv | 112 ++ .../archive-200runs/fuzz-1F0J-014.csv | 111 ++ .../archive-200runs/fuzz-1F0J-015.csv | 110 ++ .../archive-200runs/fuzz-1F0J-016.csv | 113 ++ .../archive-200runs/fuzz-1F0J-017.csv | 110 ++ .../archive-200runs/fuzz-1F0J-018.csv | 109 ++ .../archive-200runs/fuzz-1F0J-019.csv | 110 ++ .../archive-200runs/fuzz-3AIQ-000.csv | 110 ++ .../archive-200runs/fuzz-3AIQ-001.csv | 108 ++ .../archive-200runs/fuzz-3AIQ-002.csv | 114 ++ .../archive-200runs/fuzz-3AIQ-003.csv | 111 ++ .../archive-200runs/fuzz-3AIQ-004.csv | 113 ++ .../archive-200runs/fuzz-3AIQ-005.csv | 111 ++ .../archive-200runs/fuzz-3AIQ-006.csv | 111 ++ .../archive-200runs/fuzz-3AIQ-007.csv | 110 ++ .../archive-200runs/fuzz-3AIQ-008.csv | 115 ++ .../archive-200runs/fuzz-3AIQ-009.csv | 111 ++ .../archive-200runs/fuzz-3AIQ-010.csv | 109 ++ .../archive-200runs/fuzz-3AIQ-011.csv | 109 ++ .../archive-200runs/fuzz-3AIQ-012.csv | 112 ++ .../archive-200runs/fuzz-3AIQ-013.csv | 109 ++ .../archive-200runs/fuzz-3AIQ-014.csv | 110 ++ .../archive-200runs/fuzz-3AIQ-015.csv | 114 ++ .../archive-200runs/fuzz-3AIQ-016.csv | 110 ++ .../archive-200runs/fuzz-3AIQ-017.csv | 112 ++ .../archive-200runs/fuzz-3AIQ-018.csv | 113 ++ .../archive-200runs/fuzz-3AIQ-019.csv | 113 ++ .../archive-200runs/fuzz-4ZQF-000.csv | 111 ++ .../archive-200runs/fuzz-4ZQF-001.csv | 109 ++ .../archive-200runs/fuzz-4ZQF-002.csv | 114 ++ .../archive-200runs/fuzz-4ZQF-003.csv | 113 ++ .../archive-200runs/fuzz-4ZQF-004.csv | 113 ++ .../archive-200runs/fuzz-4ZQF-005.csv | 113 ++ .../archive-200runs/fuzz-4ZQF-006.csv | 107 ++ .../archive-200runs/fuzz-4ZQF-007.csv | 113 ++ .../archive-200runs/fuzz-4ZQF-008.csv | 110 ++ .../archive-200runs/fuzz-4ZQF-009.csv | 111 ++ .../archive-200runs/fuzz-4ZQF-010.csv | 114 ++ .../archive-200runs/fuzz-4ZQF-011.csv | 109 ++ .../archive-200runs/fuzz-4ZQF-012.csv | 107 ++ .../archive-200runs/fuzz-4ZQF-013.csv | 109 ++ .../archive-200runs/fuzz-4ZQF-014.csv | 112 ++ .../archive-200runs/fuzz-4ZQF-015.csv | 114 ++ .../archive-200runs/fuzz-4ZQF-016.csv | 112 ++ .../archive-200runs/fuzz-4ZQF-017.csv | 111 ++ .../archive-200runs/fuzz-4ZQF-018.csv | 109 ++ .../archive-200runs/fuzz-4ZQF-019.csv | 108 ++ .../archive-200runs/fuzz-5TUS-000.csv | 112 ++ .../archive-200runs/fuzz-5TUS-001.csv | 113 ++ .../archive-200runs/fuzz-5TUS-002.csv | 112 ++ .../archive-200runs/fuzz-5TUS-003.csv | 111 ++ .../archive-200runs/fuzz-5TUS-004.csv | 114 ++ .../archive-200runs/fuzz-5TUS-005.csv | 111 ++ .../archive-200runs/fuzz-5TUS-006.csv | 108 ++ .../archive-200runs/fuzz-5TUS-007.csv | 108 ++ .../archive-200runs/fuzz-5TUS-008.csv | 114 ++ .../archive-200runs/fuzz-5TUS-009.csv | 110 ++ .../archive-200runs/fuzz-5TUS-010.csv | 112 ++ .../archive-200runs/fuzz-5TUS-011.csv | 116 ++ .../archive-200runs/fuzz-5TUS-012.csv | 108 ++ .../archive-200runs/fuzz-5TUS-013.csv | 110 ++ .../archive-200runs/fuzz-5TUS-014.csv | 112 ++ .../archive-200runs/fuzz-5TUS-015.csv | 112 ++ .../archive-200runs/fuzz-5TUS-016.csv | 113 ++ .../archive-200runs/fuzz-5TUS-017.csv | 113 ++ .../archive-200runs/fuzz-5TUS-018.csv | 111 ++ .../archive-200runs/fuzz-5TUS-019.csv | 108 ++ .../archive-200runs/fuzz-E3QF-000.csv | 113 ++ .../archive-200runs/fuzz-E3QF-001.csv | 110 ++ .../archive-200runs/fuzz-E3QF-002.csv | 110 ++ .../archive-200runs/fuzz-E3QF-003.csv | 111 ++ .../archive-200runs/fuzz-E3QF-004.csv | 110 ++ .../archive-200runs/fuzz-E3QF-005.csv | 106 ++ .../archive-200runs/fuzz-E3QF-006.csv | 112 ++ .../archive-200runs/fuzz-E3QF-007.csv | 109 ++ .../archive-200runs/fuzz-E3QF-008.csv | 110 ++ .../archive-200runs/fuzz-E3QF-009.csv | 112 ++ .../archive-200runs/fuzz-E3QF-010.csv | 109 ++ .../archive-200runs/fuzz-E3QF-011.csv | 113 ++ .../archive-200runs/fuzz-E3QF-012.csv | 113 ++ .../archive-200runs/fuzz-E3QF-013.csv | 111 ++ .../archive-200runs/fuzz-E3QF-014.csv | 114 ++ .../archive-200runs/fuzz-E3QF-015.csv | 112 ++ .../archive-200runs/fuzz-E3QF-016.csv | 110 ++ .../archive-200runs/fuzz-E3QF-017.csv | 112 ++ .../archive-200runs/fuzz-E3QF-018.csv | 111 ++ .../archive-200runs/fuzz-E3QF-019.csv | 112 ++ .../archive-200runs/fuzz-L4Q2-000.csv | 109 ++ .../archive-200runs/fuzz-L4Q2-001.csv | 112 ++ .../archive-200runs/fuzz-L4Q2-002.csv | 111 ++ .../archive-200runs/fuzz-L4Q2-003.csv | 113 ++ .../archive-200runs/fuzz-L4Q2-004.csv | 110 ++ .../archive-200runs/fuzz-L4Q2-005.csv | 111 ++ .../archive-200runs/fuzz-L4Q2-006.csv | 112 ++ .../archive-200runs/fuzz-L4Q2-007.csv | 112 ++ .../archive-200runs/fuzz-L4Q2-008.csv | 111 ++ .../archive-200runs/fuzz-L4Q2-009.csv | 111 ++ .../archive-200runs/fuzz-L4Q2-010.csv | 110 ++ .../archive-200runs/fuzz-L4Q2-011.csv | 111 ++ .../archive-200runs/fuzz-L4Q2-012.csv | 115 ++ .../archive-200runs/fuzz-L4Q2-013.csv | 111 ++ .../archive-200runs/fuzz-L4Q2-014.csv | 111 ++ .../archive-200runs/fuzz-L4Q2-015.csv | 110 ++ .../archive-200runs/fuzz-L4Q2-016.csv | 107 ++ .../archive-200runs/fuzz-L4Q2-017.csv | 110 ++ .../archive-200runs/fuzz-L4Q2-018.csv | 111 ++ .../archive-200runs/fuzz-L4Q2-019.csv | 112 ++ .../archive-200runs/fuzz-NH9P-000.csv | 113 ++ .../archive-200runs/fuzz-NH9P-001.csv | 110 ++ .../archive-200runs/fuzz-NH9P-002.csv | 113 ++ .../archive-200runs/fuzz-NH9P-003.csv | 110 ++ .../archive-200runs/fuzz-NH9P-004.csv | 110 ++ .../archive-200runs/fuzz-NH9P-005.csv | 111 ++ .../archive-200runs/fuzz-NH9P-006.csv | 111 ++ .../archive-200runs/fuzz-NH9P-007.csv | 116 ++ .../archive-200runs/fuzz-NH9P-008.csv | 112 ++ .../archive-200runs/fuzz-NH9P-009.csv | 111 ++ .../archive-200runs/fuzz-NH9P-010.csv | 114 ++ .../archive-200runs/fuzz-NH9P-011.csv | 111 ++ .../archive-200runs/fuzz-NH9P-012.csv | 113 ++ .../archive-200runs/fuzz-NH9P-013.csv | 111 ++ .../archive-200runs/fuzz-NH9P-014.csv | 111 ++ .../archive-200runs/fuzz-NH9P-015.csv | 111 ++ .../archive-200runs/fuzz-NH9P-016.csv | 108 ++ .../archive-200runs/fuzz-NH9P-017.csv | 109 ++ .../archive-200runs/fuzz-NH9P-018.csv | 114 ++ .../archive-200runs/fuzz-NH9P-019.csv | 109 ++ .../archive-200runs/fuzz-UCCA-000.csv | 112 ++ .../archive-200runs/fuzz-UCCA-001.csv | 112 ++ .../archive-200runs/fuzz-UCCA-002.csv | 110 ++ .../archive-200runs/fuzz-UCCA-003.csv | 112 ++ .../archive-200runs/fuzz-UCCA-004.csv | 109 ++ .../archive-200runs/fuzz-UCCA-005.csv | 108 ++ .../archive-200runs/fuzz-UCCA-006.csv | 115 ++ .../archive-200runs/fuzz-UCCA-007.csv | 115 ++ .../archive-200runs/fuzz-UCCA-008.csv | 110 ++ .../archive-200runs/fuzz-UCCA-009.csv | 112 ++ .../archive-200runs/fuzz-UCCA-010.csv | 113 ++ .../archive-200runs/fuzz-UCCA-011.csv | 110 ++ .../archive-200runs/fuzz-UCCA-012.csv | 109 ++ .../archive-200runs/fuzz-UCCA-013.csv | 108 ++ .../archive-200runs/fuzz-UCCA-014.csv | 113 ++ .../archive-200runs/fuzz-UCCA-015.csv | 110 ++ .../archive-200runs/fuzz-UCCA-016.csv | 114 ++ .../archive-200runs/fuzz-UCCA-017.csv | 110 ++ .../archive-200runs/fuzz-UCCA-018.csv | 108 ++ .../archive-200runs/fuzz-UCCA-019.csv | 115 ++ .../archive-200runs/fuzz-XEFO-000.csv | 112 ++ .../archive-200runs/fuzz-XEFO-001.csv | 110 ++ .../archive-200runs/fuzz-XEFO-002.csv | 107 ++ .../archive-200runs/fuzz-XEFO-003.csv | 109 ++ .../archive-200runs/fuzz-XEFO-004.csv | 114 ++ .../archive-200runs/fuzz-XEFO-005.csv | 112 ++ .../archive-200runs/fuzz-XEFO-006.csv | 111 ++ .../archive-200runs/fuzz-XEFO-007.csv | 112 ++ .../archive-200runs/fuzz-XEFO-008.csv | 109 ++ .../archive-200runs/fuzz-XEFO-009.csv | 113 ++ .../archive-200runs/fuzz-XEFO-010.csv | 115 ++ .../archive-200runs/fuzz-XEFO-011.csv | 108 ++ .../archive-200runs/fuzz-XEFO-012.csv | 111 ++ .../archive-200runs/fuzz-XEFO-013.csv | 112 ++ .../archive-200runs/fuzz-XEFO-014.csv | 113 ++ .../archive-200runs/fuzz-XEFO-015.csv | 108 ++ .../archive-200runs/fuzz-XEFO-016.csv | 113 ++ .../archive-200runs/fuzz-XEFO-017.csv | 114 ++ .../archive-200runs/fuzz-XEFO-018.csv | 111 ++ .../archive-200runs/fuzz-XEFO-019.csv | 114 ++ onchain/analysis/distill_archetypes.py | 240 +++ onchain/analysis/distill_deep.py | 227 +++ onchain/analysis/helpers/BackgroundLP.sol | 144 ++ onchain/analysis/helpers/CSVHelper.sol | 35 - onchain/analysis/helpers/CSVManager.sol | 51 - onchain/analysis/helpers/FuzzingBase.sol | 433 +++++ onchain/analysis/helpers/ScenarioRecorder.sol | 241 --- onchain/analysis/run-2d-frontier.sh | 131 ++ onchain/analysis/run-adversarial.sh | 147 ++ onchain/analysis/run-as-sweep.sh | 146 ++ onchain/analysis/run-bglp-fee-test.sh | 109 ++ onchain/analysis/run-bullbear-sweep.sh | 126 ++ onchain/analysis/run-deep-search.sh | 185 +++ onchain/analysis/run-fuzzing.sh | 188 ++- onchain/analysis/run-v3-adversarial.sh | 275 ++++ onchain/analysis/run-v3-step-test.sh | 129 ++ onchain/analysis/scan-final.py | 227 +++ onchain/analysis/sweep-BULLBEAR-summary.csv | 28 + onchain/analysis/sweep-CAPPED-summary.csv | 30 + onchain/analysis/sweep-DIAG-summary.csv | 2 + onchain/analysis/sweep-FIXED-summary.csv | 28 + onchain/analysis/sweep-FIXED2-summary.csv | 28 + onchain/analysis/sweep-FOCUSED-summary.csv | 43 + onchain/analysis/sweep-FULL-4D-summary.csv | 1051 ++++++++++++ onchain/analysis/sweep-FULL-summary.csv | 362 ++--- onchain/analysis/sweep-NOCLAMP-summary.csv | 19 + onchain/analysis/sweep-TEST-summary.csv | 3 + onchain/analysis/sweep-UNCAPPED-summary.csv | 37 + onchain/analysis/sweep-VOLATILITY-summary.csv | 37 + onchain/analysis/sweep-VWAPFIX-summary.csv | 10 + 256 files changed, 30276 insertions(+), 1579 deletions(-) create mode 100644 onchain/.claude-code-supervisor.yml create mode 100755 onchain/.claude/hooks/supervisor/lib.sh create mode 100755 onchain/.claude/hooks/supervisor/on-error.sh create mode 100755 onchain/.claude/hooks/supervisor/on-notify.sh create mode 100755 onchain/.claude/hooks/supervisor/on-stop.sh create mode 100755 onchain/.claude/hooks/supervisor/triage.sh create mode 100644 onchain/.claude/settings.json create mode 100644 onchain/.gas-snapshot create mode 100644 onchain/analysis/2D_FRONTIER_LOG.md create mode 100644 onchain/analysis/2d-frontier-results.csv create mode 100644 onchain/analysis/AS_SWEEP_LOG.md create mode 100644 onchain/analysis/BullBearSweep.s.sol create mode 100644 onchain/analysis/FUZZING_LOG.md create mode 100644 onchain/analysis/KRAIKEN_RESEARCH_REPORT.md create mode 100644 onchain/analysis/SECURITY_REVIEW.md create mode 100644 onchain/analysis/STORAGE_LAYOUT.md create mode 100644 onchain/analysis/ScarcityDiagnostic.s.sol create mode 100644 onchain/analysis/V3_FUZZING_LOG.md create mode 100644 onchain/analysis/V3_STEP_LOG.md create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-000.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-001.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-002.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-003.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-004.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-005.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-006.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-007.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-008.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-009.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-010.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-011.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-012.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-013.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-014.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-015.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-016.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-017.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-018.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-0GSK-019.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-000.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-001.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-002.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-003.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-004.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-005.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-006.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-007.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-008.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-009.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-010.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-011.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-012.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-013.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-014.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-015.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-016.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-017.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-018.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-1F0J-019.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-000.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-001.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-002.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-003.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-004.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-005.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-006.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-007.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-008.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-009.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-010.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-011.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-012.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-013.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-014.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-015.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-016.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-017.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-018.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-3AIQ-019.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-000.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-001.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-002.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-003.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-004.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-005.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-006.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-007.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-008.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-009.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-010.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-011.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-012.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-013.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-014.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-015.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-016.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-017.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-018.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-4ZQF-019.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-000.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-001.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-002.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-003.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-004.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-005.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-006.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-007.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-008.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-009.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-010.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-011.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-012.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-013.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-014.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-015.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-016.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-017.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-018.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-5TUS-019.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-000.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-001.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-002.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-003.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-004.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-005.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-006.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-007.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-008.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-009.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-010.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-011.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-012.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-013.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-014.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-015.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-016.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-017.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-018.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-E3QF-019.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-000.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-001.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-002.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-003.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-004.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-005.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-006.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-007.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-008.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-009.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-010.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-011.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-012.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-013.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-014.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-015.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-016.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-017.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-018.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-L4Q2-019.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-000.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-001.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-002.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-003.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-004.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-005.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-006.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-007.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-008.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-009.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-010.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-011.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-012.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-013.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-014.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-015.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-016.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-017.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-018.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-NH9P-019.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-000.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-001.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-002.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-003.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-004.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-005.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-006.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-007.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-008.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-009.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-010.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-011.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-012.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-013.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-014.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-015.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-016.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-017.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-018.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-UCCA-019.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-000.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-001.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-002.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-003.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-004.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-005.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-006.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-007.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-008.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-009.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-010.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-011.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-012.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-013.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-014.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-015.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-016.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-017.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-018.csv create mode 100644 onchain/analysis/archive-200runs/fuzz-XEFO-019.csv create mode 100644 onchain/analysis/distill_archetypes.py create mode 100644 onchain/analysis/distill_deep.py create mode 100644 onchain/analysis/helpers/BackgroundLP.sol delete mode 100644 onchain/analysis/helpers/CSVHelper.sol delete mode 100644 onchain/analysis/helpers/CSVManager.sol create mode 100644 onchain/analysis/helpers/FuzzingBase.sol delete mode 100644 onchain/analysis/helpers/ScenarioRecorder.sol create mode 100755 onchain/analysis/run-2d-frontier.sh create mode 100755 onchain/analysis/run-adversarial.sh create mode 100755 onchain/analysis/run-as-sweep.sh create mode 100755 onchain/analysis/run-bglp-fee-test.sh create mode 100755 onchain/analysis/run-bullbear-sweep.sh create mode 100755 onchain/analysis/run-deep-search.sh create mode 100755 onchain/analysis/run-v3-adversarial.sh create mode 100755 onchain/analysis/run-v3-step-test.sh create mode 100644 onchain/analysis/scan-final.py create mode 100644 onchain/analysis/sweep-BULLBEAR-summary.csv create mode 100644 onchain/analysis/sweep-CAPPED-summary.csv create mode 100644 onchain/analysis/sweep-DIAG-summary.csv create mode 100644 onchain/analysis/sweep-FIXED-summary.csv create mode 100644 onchain/analysis/sweep-FIXED2-summary.csv create mode 100644 onchain/analysis/sweep-FOCUSED-summary.csv create mode 100644 onchain/analysis/sweep-FULL-4D-summary.csv create mode 100644 onchain/analysis/sweep-NOCLAMP-summary.csv create mode 100644 onchain/analysis/sweep-TEST-summary.csv create mode 100644 onchain/analysis/sweep-UNCAPPED-summary.csv create mode 100644 onchain/analysis/sweep-VOLATILITY-summary.csv create mode 100644 onchain/analysis/sweep-VWAPFIX-summary.csv diff --git a/onchain/.claude-code-supervisor.yml b/onchain/.claude-code-supervisor.yml new file mode 100644 index 0000000..a4f7ee1 --- /dev/null +++ b/onchain/.claude-code-supervisor.yml @@ -0,0 +1,6 @@ +triage: + command: "claude -p --no-session-persistence" + model: "claude-haiku-4-20250414" + +notify: + command: "/tmp/supervisor-notify.sh" diff --git a/onchain/.claude/hooks/supervisor/lib.sh b/onchain/.claude/hooks/supervisor/lib.sh new file mode 100755 index 0000000..68d3892 --- /dev/null +++ b/onchain/.claude/hooks/supervisor/lib.sh @@ -0,0 +1,139 @@ +#!/bin/bash +# Shared functions for claude-code-supervisor hooks and scripts. + +set -euo pipefail + +# Find config file: project .claude-code-supervisor.yml → ~/.config/ → defaults +ccs_find_config() { + local cwd="${1:-.}" + if [ -f "$cwd/.claude-code-supervisor.yml" ]; then + echo "$cwd/.claude-code-supervisor.yml" + elif [ -f "${HOME}/.config/claude-code-supervisor/config.yml" ]; then + echo "${HOME}/.config/claude-code-supervisor/config.yml" + else + echo "" + fi +} + +# Read a yaml value (simple key.subkey extraction, no yq dependency). +# Falls back to default if not found. +ccs_config_get() { + local config_file="$1" + local key="$2" + local default="${3:-}" + + if [ -z "$config_file" ] || [ ! -f "$config_file" ]; then + echo "$default" + return + fi + + # Simple grep-based yaml extraction (handles key: value on one line) + local value + case "$key" in + triage.command) value=$(grep -A0 '^\s*command:' "$config_file" | head -1 | sed 's/.*command:\s*["]*//;s/["]*$//' | xargs) ;; + triage.model) value=$(awk '/^triage:/,/^[a-z]/' "$config_file" | grep 'model:' | head -1 | sed 's/.*model:\s*["]*//;s/["]*$//' | xargs) ;; + triage.max_tokens) value=$(awk '/^triage:/,/^[a-z]/' "$config_file" | grep 'max_tokens:' | head -1 | sed 's/.*max_tokens:\s*//' | xargs) ;; + notify.command) value=$(awk '/^notify:/,/^[a-z]/' "$config_file" | grep 'command:' | head -1 | sed 's/.*command:\s*["]*//;s/["]*$//' | xargs) ;; + idle.timeout) value=$(awk '/^idle:/,/^[a-z]/' "$config_file" | grep 'timeout_seconds:' | head -1 | sed 's/.*timeout_seconds:\s*//' | xargs) ;; + idle.nudge_message) value=$(awk '/^idle:/,/^[a-z]/' "$config_file" | grep 'nudge_message:' | head -1 | sed 's/.*nudge_message:\s*["]*//;s/["]*$//' | xargs) ;; + *) value="" ;; + esac + + echo "${value:-$default}" +} + +# Send a notification via the configured notify command. +ccs_notify() { + local config_file="$1" + local message="$2" + + local notify_cmd + notify_cmd=$(ccs_config_get "$config_file" "notify.command" "openclaw gateway call wake --params") + + # Build JSON payload + local payload + payload=$(jq -n --arg text "$message" --arg mode "now" '{text: $text, mode: $mode}') + + $notify_cmd "$payload" 2>/dev/null || true +} + +# Run LLM triage via configured command. +# Accepts prompt on stdin, returns verdict on stdout. +ccs_triage() { + local config_file="$1" + local prompt="$2" + + local triage_cmd model max_tokens + triage_cmd=$(ccs_config_get "$config_file" "triage.command" "claude -p --no-session-persistence") + model=$(ccs_config_get "$config_file" "triage.model" "claude-haiku-4-20250414") + max_tokens=$(ccs_config_get "$config_file" "triage.max_tokens" "150") + + echo "$prompt" | $triage_cmd --model "$model" --max-tokens "$max_tokens" 2>/dev/null +} + +# Generate a notify wrapper script the agent can call on completion. +# Usage: ccs_generate_notify_script "$config_file" ["/tmp/supervisor-notify.sh"] +ccs_generate_notify_script() { + local config_file="$1" + local script_path="${2:-/tmp/supervisor-notify.sh}" + local notify_cmd + notify_cmd=$(ccs_config_get "$config_file" "notify.command" "openclaw gateway call wake --params") + + cat > "$script_path" <