feat: STATE.md — running log of what harb is and does (#680)

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 <openhands@all-hands.dev>
Reviewed-on: https://codeberg.org/johba/harb/pulls/680
This commit is contained in:
johba 2026-03-13 11:46:34 +01:00
parent f1b64a448f
commit f22fe22f80
5 changed files with 218 additions and 0 deletions

View file

@ -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)"

View file

@ -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.

View file

@ -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_<name>.push3`
- [ ] Transpiles without error: `npx tsx tools/push3-transpiler/src/index.ts <file> /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)"

View file

@ -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

22
STATE.md Normal file
View file

@ -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