fix: Kraiken.sol and Stake.sol absent from agent context across all runs (#829)
Inject Kraiken.sol (outstandingSupply, mint/burn mechanics) and Stake.sol (snatch, withdrawal, KRK exclusion from floor denominator) into the red-team agent prompt so agents can reason from actual source rather than guesses. - red-team.sh: read SOL_KRAIKEN and SOL_STAKE from onchain/src/ alongside the other six contracts already injected - red-team-program.md: add ### Kraiken.sol and ### Stake.sol sections in the Source Code reference block (after PriceOracle.sol) - AGENTS.md: document the full list of injected contracts in a new "Red-team Agent Context" section; both files are now listed as in-scope Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
682d55f00a
commit
13d5b40564
3 changed files with 24 additions and 1 deletions
11
AGENTS.md
11
AGENTS.md
|
|
@ -18,7 +18,7 @@ KRAIKEN couples Harberger-tax staking with a dominant Uniswap V3 liquidity manag
|
||||||
| `web-app/` | Staking UI | [web-app/AGENTS.md](web-app/AGENTS.md) |
|
| `web-app/` | Staking UI | [web-app/AGENTS.md](web-app/AGENTS.md) |
|
||||||
| `kraiken-lib/` | Shared TypeScript helpers for clients and bots | [kraiken-lib/AGENTS.md](kraiken-lib/AGENTS.md) |
|
| `kraiken-lib/` | Shared TypeScript helpers for clients and bots | [kraiken-lib/AGENTS.md](kraiken-lib/AGENTS.md) |
|
||||||
| `services/txnBot/` | Automation bot for `recenter()` and `payTax()` upkeep | [services/txnBot/AGENTS.md](services/txnBot/AGENTS.md) |
|
| `services/txnBot/` | Automation bot for `recenter()` and `payTax()` upkeep | [services/txnBot/AGENTS.md](services/txnBot/AGENTS.md) |
|
||||||
| `scripts/` | `dev.sh`, bootstrap, build helpers | — |
|
| `scripts/` | `dev.sh`, bootstrap, build helpers; `harb-evaluator/` red-team agent | — |
|
||||||
| `tests/e2e/` | Playwright end-to-end tests | — |
|
| `tests/e2e/` | Playwright end-to-end tests | — |
|
||||||
| `docs/` | Architecture, product truth, environment, ops guides | — |
|
| `docs/` | Architecture, product truth, environment, ops guides | — |
|
||||||
|
|
||||||
|
|
@ -30,6 +30,15 @@ KRAIKEN couples Harberger-tax staking with a dominant Uniswap V3 liquidity manag
|
||||||
```
|
```
|
||||||
See [docs/dev-environment.md](docs/dev-environment.md) for restart modes, ports, Docker topology, and common pitfalls.
|
See [docs/dev-environment.md](docs/dev-environment.md) for restart modes, ports, Docker topology, and common pitfalls.
|
||||||
|
|
||||||
|
## Red-team Agent Context
|
||||||
|
The red-team agent (`scripts/harb-evaluator/red-team.sh`) injects the following Solidity sources into the agent prompt so it can reason from exact contract logic:
|
||||||
|
- `LiquidityManager.sol` — three-position manager, recenter, floor formula
|
||||||
|
- `ThreePositionStrategy.sol` — position lifecycle abstractions
|
||||||
|
- `Optimizer.sol` / `OptimizerV3.sol` — current candidate under test
|
||||||
|
- `VWAPTracker.sol` / `PriceOracle.sol` — price oracle and VWAP mechanics
|
||||||
|
- `Kraiken.sol` — `outstandingSupply()`, KRK mint/burn, transfer mechanics
|
||||||
|
- `Stake.sol` — `snatch()`, withdrawal, KRK exclusion from floor denominator
|
||||||
|
|
||||||
## Key Patterns
|
## Key Patterns
|
||||||
- **ES Modules everywhere**: The entire stack uses `"type": "module"` and `import` syntax.
|
- **ES Modules everywhere**: The entire stack uses `"type": "module"` and `import` syntax.
|
||||||
- **`token0isWeth`**: Flips amount semantics; confirm ordering before seeding or interpreting liquidity.
|
- **`token0isWeth`**: Flips amount semantics; confirm ordering before seeding or interpreting liquidity.
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,16 @@ Do NOT attempt to deploy or modify contracts — these are for reference only.
|
||||||
{{SOL_PRICE_ORACLE}}
|
{{SOL_PRICE_ORACLE}}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Kraiken.sol
|
||||||
|
```solidity
|
||||||
|
{{SOL_KRAIKEN}}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Stake.sol
|
||||||
|
```solidity
|
||||||
|
{{SOL_STAKE}}
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Cast command patterns
|
## Cast command patterns
|
||||||
|
|
|
||||||
|
|
@ -400,6 +400,8 @@ SOL_OPTIMIZER=$(< "$ONCHAIN_SRC/Optimizer.sol")
|
||||||
SOL_OPTIMIZERV3=$(< "$ONCHAIN_SRC/OptimizerV3.sol")
|
SOL_OPTIMIZERV3=$(< "$ONCHAIN_SRC/OptimizerV3.sol")
|
||||||
SOL_VWAP=$(< "$ONCHAIN_SRC/VWAPTracker.sol")
|
SOL_VWAP=$(< "$ONCHAIN_SRC/VWAPTracker.sol")
|
||||||
SOL_PRICE_ORACLE=$(< "$ONCHAIN_SRC/abstracts/PriceOracle.sol")
|
SOL_PRICE_ORACLE=$(< "$ONCHAIN_SRC/abstracts/PriceOracle.sol")
|
||||||
|
SOL_KRAIKEN=$(< "$ONCHAIN_SRC/Kraiken.sol")
|
||||||
|
SOL_STAKE=$(< "$ONCHAIN_SRC/Stake.sol")
|
||||||
|
|
||||||
# Build Previous Findings section from memory file
|
# Build Previous Findings section from memory file
|
||||||
MEMORY_SECTION=""
|
MEMORY_SECTION=""
|
||||||
|
|
@ -574,6 +576,8 @@ PROMPT=${PROMPT//\{\{SOL_OPTIMIZER\}\}/$SOL_OPTIMIZER}
|
||||||
PROMPT=${PROMPT//\{\{SOL_OPTIMIZERV3\}\}/$SOL_OPTIMIZERV3}
|
PROMPT=${PROMPT//\{\{SOL_OPTIMIZERV3\}\}/$SOL_OPTIMIZERV3}
|
||||||
PROMPT=${PROMPT//\{\{SOL_VWAP\}\}/$SOL_VWAP}
|
PROMPT=${PROMPT//\{\{SOL_VWAP\}\}/$SOL_VWAP}
|
||||||
PROMPT=${PROMPT//\{\{SOL_PRICE_ORACLE\}\}/$SOL_PRICE_ORACLE}
|
PROMPT=${PROMPT//\{\{SOL_PRICE_ORACLE\}\}/$SOL_PRICE_ORACLE}
|
||||||
|
PROMPT=${PROMPT//\{\{SOL_KRAIKEN\}\}/$SOL_KRAIKEN}
|
||||||
|
PROMPT=${PROMPT//\{\{SOL_STAKE\}\}/$SOL_STAKE}
|
||||||
PROMPT=${PROMPT//\{\{CROSS_CANDIDATE_SECTION\}\}/$CROSS_CANDIDATE_SECTION}
|
PROMPT=${PROMPT//\{\{CROSS_CANDIDATE_SECTION\}\}/$CROSS_CANDIDATE_SECTION}
|
||||||
PROMPT=${PROMPT//\{\{MEMORY_SECTION\}\}/$MEMORY_SECTION}
|
PROMPT=${PROMPT//\{\{MEMORY_SECTION\}\}/$MEMORY_SECTION}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue