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:
          - `file` — filename of the `.push3` seed (e.g. `"llm_my_strategy.push3"`)
          - `fitness` — raw integer score from the evaluator, or `null` if not yet evaluated
          - `origin` — one of `"hand-written"`, `"llm"`, or `"evolved"`
          - `run` — evolution run ID (integer), or `null` for hand-written/LLM seeds
          - `generation` — generation index within the run (integer), or `null` for hand-written/LLM seeds
          - `date` — ISO date the entry was added (e.g. `"2026-03-14"`)
          - `note` — one-sentence description of the strategy and any known caveats
    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)"
