harb/.codeberg/ISSUE_TEMPLATE/push3-seed.yaml

59 lines
2.8 KiB
YAML
Raw Normal View History

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` with all required fields:
- `raw_fitness` — raw numeric score returned by the evaluator (integer; `null` if not yet evaluated)
- `normalized_fitness` — score mapped to the 0..1 percentile range across the evaluated population (`null` if not yet evaluated)
- `fitness_flags` — comma-separated notes qualifying the score, e.g. `token_value_inflation`, `always_bull`, or empty string if none apply
validations:
required: true
- type: textarea
id: reference
attributes:
label: Reference files
description: Key files for understanding Push3 syntax and the transpiler.
value: |
- Transpiler source: `tools/push3-transpiler/src/transpiler.ts` (defines all Push3 opcodes)
- Existing seed: `tools/push3-transpiler/optimizer_v3.push3` (current production optimizer)
- Evolution seed: `tools/push3-transpiler/optimizer_seed.push3` (simpler starting point)
- Push3 uses named bindings via `DYADIC.DEFINE` (e.g. `PERCENTAGESTAKED DYADIC.DEFINE`)
- Outputs: 4 values left on the DYADIC stack (top to bottom): ci, anchorShare, anchorWidth, discoveryDepth
- Inputs: 8 dyadic rational slots pushed onto stack (slot 0=percentageStaked on top, slot 1=averageTaxRate, 2-7=normalized indicators)
- type: textarea
id: deps
attributes:
label: Dependencies
value: "- #667 (seed kindergarten — directory structure and manifest must exist first)"