fix: refactor AGENTS.md into progressive-disclosure structure (#184)
- Root AGENTS.md: 350+ lines → 68 lines (map, not encyclopedia) - New docs/dev-environment.md (67 lines): Docker, dev.sh, ports, pitfalls - New docs/ci-pipeline.md (73 lines): Woodpecker setup, monitoring, debugging - New docs/testing.md (41 lines): Foundry, E2E, version validation - New docs/codeberg-api.md (32 lines): .netrc auth, API usage - Updated stale model refs in .claude-code-supervisor.yml files - Sub-component AGENTS.md files unchanged - Context docs (PRODUCT-TRUTH, ARCHITECTURE, UX-DECISIONS) unchanged
This commit is contained in:
parent
2751bee747
commit
58c3e62f3d
8 changed files with 268 additions and 172 deletions
41
docs/testing.md
Normal file
41
docs/testing.md
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Testing
|
||||
|
||||
## Contract Tests (Foundry)
|
||||
Run inside `onchain/`:
|
||||
```bash
|
||||
forge build # compile contracts
|
||||
forge test # run unit + fork tests
|
||||
forge snapshot # gas snapshot
|
||||
```
|
||||
|
||||
## Fuzzing
|
||||
Scripts under `onchain/analysis/` generate replayable scenarios:
|
||||
```bash
|
||||
./analysis/run-fuzzing.sh [optimizer] debugCSV
|
||||
```
|
||||
|
||||
## Integration Testing
|
||||
After the stack boots via `dev.sh`:
|
||||
- Anvil logs: check for revert errors
|
||||
- Ponder GraphQL: `http://localhost:8081/api/graphql`
|
||||
- txnBot health: `http://localhost:8081/api/txn/status`
|
||||
|
||||
## E2E Tests (Playwright)
|
||||
Full-stack tests in `tests/e2e/` verify complete user journeys (mint ETH → swap KRK → stake).
|
||||
|
||||
```bash
|
||||
npm run test:e2e # from repo root
|
||||
```
|
||||
|
||||
- Tests use a mocked wallet provider with Anvil accounts.
|
||||
- In CI, the Woodpecker `e2e.yml` pipeline runs these against pre-built service images.
|
||||
- See [docs/ci-pipeline.md](ci-pipeline.md) for CI-specific E2E details.
|
||||
|
||||
## Version Validation System
|
||||
The stack enforces version compatibility across contracts, indexer, and frontend:
|
||||
|
||||
- **Contract VERSION**: `Kraiken.sol` exposes a `VERSION` constant (currently v2) that must be incremented for breaking changes to TAX_RATES, events, or core data structures.
|
||||
- **Ponder Validation**: On startup, Ponder reads the contract VERSION and validates against `COMPATIBLE_CONTRACT_VERSIONS` in `kraiken-lib/src/version.ts`. Fails hard (exit 1) on mismatch to prevent indexing wrong data.
|
||||
- **Frontend Check**: Web-app validates `KRAIKEN_LIB_VERSION` at runtime (currently placeholder; future: query Ponder GraphQL for full 3-way validation).
|
||||
- **CI Enforcement**: Woodpecker `release.yml` pipeline validates that contract VERSION matches `COMPATIBLE_CONTRACT_VERSIONS` before release.
|
||||
- See `VERSION_VALIDATION.md` (repo root) for complete architecture, workflows, and troubleshooting.
|
||||
Loading…
Add table
Add a link
Reference in a new issue