From f22fe22f803762c728eeaad513b9216a033ac419 Mon Sep 17 00:00:00 2001 From: johba Date: Fri, 13 Mar 2026 11:46:34 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20STATE.md=20=E2=80=94=20running=20log=20?= =?UTF-8?q?of=20what=20harb=20is=20and=20does=20(#680)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Seeded with current reality. Dev-agent appends one line per merge (before merge, on the PR branch — goes through review). Planner will collapse into compact snapshot periodically. Ref: dark-factory#5 Co-authored-by: openhands Reviewed-on: https://codeberg.org/johba/harb/pulls/680 --- .codeberg/ISSUE_TEMPLATE/bug.yaml | 49 ++++++++++++++++++++++ .codeberg/ISSUE_TEMPLATE/feature.yaml | 51 +++++++++++++++++++++++ .codeberg/ISSUE_TEMPLATE/push3-seed.yaml | 52 ++++++++++++++++++++++++ .codeberg/ISSUE_TEMPLATE/refactor.yaml | 44 ++++++++++++++++++++ STATE.md | 22 ++++++++++ 5 files changed, 218 insertions(+) create mode 100644 .codeberg/ISSUE_TEMPLATE/bug.yaml create mode 100644 .codeberg/ISSUE_TEMPLATE/feature.yaml create mode 100644 .codeberg/ISSUE_TEMPLATE/push3-seed.yaml create mode 100644 .codeberg/ISSUE_TEMPLATE/refactor.yaml create mode 100644 STATE.md diff --git a/.codeberg/ISSUE_TEMPLATE/bug.yaml b/.codeberg/ISSUE_TEMPLATE/bug.yaml new file mode 100644 index 0000000..65a8da6 --- /dev/null +++ b/.codeberg/ISSUE_TEMPLATE/bug.yaml @@ -0,0 +1,49 @@ +name: Bug Report +about: Something is broken or behaving incorrectly +labels: + - bug +body: + - type: textarea + id: what + attributes: + label: What's broken + description: What happens vs what should happen. Include error messages, logs, or screenshots. + validations: + required: true + - type: textarea + id: reproduce + attributes: + label: Steps to reproduce + description: Minimal steps to trigger the bug. + placeholder: | + 1. Run `forge test --match-test testFoo` + 2. See error: "revert: ..." + validations: + required: true + - type: textarea + id: affected-files + attributes: + label: Affected files + description: Which source files need to change? Include test files that cover this area. + placeholder: | + - onchain/src/Optimizer.sol + - onchain/test/Optimizer.t.sol + validations: + required: true + - type: textarea + id: acceptance + attributes: + label: Acceptance criteria + description: How do we know it's fixed? + placeholder: | + - [ ] Bug no longer reproduces with steps above + - [ ] Regression test added + - [ ] CI green + validations: + required: true + - type: textarea + id: deps + attributes: + label: Dependencies + description: Issues that must be merged first. Leave empty if none. + placeholder: "- #NNN (reason)" diff --git a/.codeberg/ISSUE_TEMPLATE/feature.yaml b/.codeberg/ISSUE_TEMPLATE/feature.yaml new file mode 100644 index 0000000..b498399 --- /dev/null +++ b/.codeberg/ISSUE_TEMPLATE/feature.yaml @@ -0,0 +1,51 @@ +name: Feature +about: New functionality or enhancement +labels: + - backlog +body: + - type: textarea + id: problem + attributes: + label: Problem / motivation + description: Why is this needed? What's the current limitation? + validations: + required: true + - type: textarea + id: solution + attributes: + label: Proposed solution + description: How should it work? Be specific about behavior, not just "add X." + validations: + required: true + - type: textarea + id: affected-files + attributes: + label: Affected files + description: Which files need to change? Include e2e test files that may break or need updating. + placeholder: | + - tools/push3-evolution/evolve.sh + - tools/push3-evolution/test/evolve.test.ts (new) + validations: + required: true + - type: textarea + id: acceptance + attributes: + label: Acceptance criteria + description: Checkboxes. Max 5 — if you need more, split the issue. + placeholder: | + - [ ] Feature works as described + - [ ] Tests added / updated + - [ ] CI green + validations: + required: true + - type: textarea + id: deps + attributes: + label: Dependencies + description: Issues that must be merged first. Leave empty if none. + placeholder: "- #NNN (reason)" + - type: textarea + id: context + attributes: + label: Additional context + description: Links to docs, prior art, design decisions, related issues. diff --git a/.codeberg/ISSUE_TEMPLATE/push3-seed.yaml b/.codeberg/ISSUE_TEMPLATE/push3-seed.yaml new file mode 100644 index 0000000..066f950 --- /dev/null +++ b/.codeberg/ISSUE_TEMPLATE/push3-seed.yaml @@ -0,0 +1,52 @@ +name: Push3 Seed Variant +about: Write a new optimizer strategy as a Push3 program for the evolution kindergarten +labels: + - backlog +body: + - type: textarea + id: strategy + attributes: + label: Strategy philosophy + description: One paragraph describing the optimizer's approach. What's the core idea? + placeholder: "This optimizer prioritizes floor position depth over everything else. Philosophy: if the floor never moves down, ETH is safe." + validations: + required: true + - type: textarea + id: behavior + attributes: + label: Expected behavior + description: How should each output parameter respond to inputs? Be specific. + placeholder: | + - CI: always 0 (no VWAP bias) + - anchorShare: low (10-20% of ETH) + - anchorWidth: narrow (10-30 ticks) + - discoveryDepth: minimal + - Responds to: percentageStaked (slot 0), averageTaxRate (slot 1) + validations: + required: true + - type: textarea + id: acceptance + attributes: + label: Acceptance criteria + description: Standard for all seed variants. + value: | + - [ ] Push3 file created at `tools/push3-evolution/seeds/llm_.push3` + - [ ] Transpiles without error: `npx tsx tools/push3-transpiler/src/index.ts /tmp/test.sol` + - [ ] Produced Solidity compiles: `forge build` + - [ ] Entry added to `tools/push3-evolution/seeds/manifest.jsonl` + validations: + required: true + - type: textarea + id: reference + attributes: + label: Reference files + value: | + - Push3 instruction set: `tools/push3-transpiler/README.md` + - Existing seed: `tools/push3-transpiler/optimizer_v3.push3` + - Register mapping: r40→ci, r39→anchorShare, r38→anchorWidth, r37→discoveryDepth + - Inputs: 8 dyadic rational slots (0=percentageStaked, 1=averageTaxRate, 2-7=normalized indicators) + - type: textarea + id: deps + attributes: + label: Dependencies + value: "- #667 (seed kindergarten — directory structure and manifest must exist first)" diff --git a/.codeberg/ISSUE_TEMPLATE/refactor.yaml b/.codeberg/ISSUE_TEMPLATE/refactor.yaml new file mode 100644 index 0000000..59adf25 --- /dev/null +++ b/.codeberg/ISSUE_TEMPLATE/refactor.yaml @@ -0,0 +1,44 @@ +name: Refactor / Tech Debt +about: Code improvement without changing behavior +labels: + - backlog +body: + - type: textarea + id: what + attributes: + label: What needs cleaning up + description: Current state and why it's a problem. + validations: + required: true + - type: textarea + id: approach + attributes: + label: Approach + description: How to fix it. Specifics matter — the dev-agent will follow this literally. + validations: + required: true + - type: textarea + id: affected-files + attributes: + label: Affected files + description: Every file that will change. Include test files. + validations: + required: true + - type: textarea + id: acceptance + attributes: + label: Acceptance criteria + placeholder: | + - [ ] Refactored code works identically (no behavior change) + - [ ] Existing tests still pass + - [ ] CI green + validations: + required: true + - type: textarea + id: risks + attributes: + label: Risks + description: What could break? Which e2e tests cover this area? + placeholder: | + - e2e/staking.spec.ts — exercises the staking flow that touches these files + - Risk: CSS class rename could break selectors diff --git a/STATE.md b/STATE.md new file mode 100644 index 0000000..bc2909c --- /dev/null +++ b/STATE.md @@ -0,0 +1,22 @@ +# STATE.md — What harb currently is and does + +- [2026-03-13] Evolution pipeline works end-to-end: Push3 → transpile → compile → revm fitness evaluation → selection (#665) +- [2026-03-13] Diverse seed generation for evolution population (#656) +- [2026-03-13] Crossover operator for Push3 programs (#657) +- [2026-03-13] Elitism preserves top N candidates unchanged across generations (#643) +- [2026-03-13] Gas limit as evolutionary fitness pressure (#645) +- [2026-03-13] Default bear outputs for crashed/broken Push3 programs (#651) +- [2026-03-13] Normalized inputs for Push3 optimizer (0..1e18 indicators) (#649) +- [2026-03-13] Bootstrap VWAP with seed trade during deployment (#633) +- [2026-03-13] e2e tests skip for tools-only and docs-only PRs (#641) +- [2026-03-13] Issue templates for bug, feature, push3-seed, refactor (#678) +- [2026-03-13] revm fitness evaluator with UUPS bypass and graceful attack ops (#629) +- [2026-03-12] Dark factory: dev-agent, review-agent, supervisor with cron */10 staggered +- [2026-03-12] CI: single build-and-test pipeline + e2e with path filtering +- [2026-03-12] Ponder indexing: transfers, mints, burns, staking, protocol stats +- [2026-03-12] Landing page with LiveStats, WalletCard, contract addresses +- [2026-03-12] Staking app with position dashboard and P&L tracking +- [2026-03-12] OptimizerV3 with Push3 transpiler output injection +- [2026-03-12] Three-position strategy: Floor, Anchor, Discovery +- [2026-03-12] VWAPTracker for price oracle +- [2026-03-12] Harberger tax staking mechanism