Skip to content

feat(pipelines): add pipeline-evolve meta-pipeline#1611

Merged
nextlevelshit merged 2 commits into
mainfrom
1607-pipeline-evolve-impl
Apr 30, 2026
Merged

feat(pipelines): add pipeline-evolve meta-pipeline#1611
nextlevelshit merged 2 commits into
mainfrom
1607-pipeline-evolve-impl

Conversation

@nextlevelshit
Copy link
Copy Markdown
Collaborator

Summary

  • Ship internal/defaults/embedfs/pipelines/pipeline-evolve.yaml — a 4-step meta-pipeline that ingests pipeline_eval history and proposes a v+1 candidate via LLM
  • gather-eval pulls last 50 rows via sqlite3; analyze classifies failure classes (navigator/cheapest); propose drafts yaml + unified diff (craftsman/balanced); record inserts into evolution_proposal as proposed
  • Insufficient-data short-circuit prevents DB noise rows
  • New contract schemas evolution-findings + evolution-proposal mirrored into .agents/ and internal/defaults/ to satisfy TestSchemaSync
  • Coverage: internal/pipeline/pipeline_evolve_test.go exercises gather-eval, record, and skip branches against real on-disk SQLite

Related to #1607

Changes

  • internal/defaults/embedfs/pipelines/pipeline-evolve.yaml (+ .agents/pipelines/ mirror) — pipeline definition
  • internal/defaults/contracts/evolution-findings.schema.json + evolution-proposal.schema.json (+ .agents/contracts/ mirror) — typed contracts
  • internal/pipeline/pipeline_evolve_test.go — bash-script tests for gather-eval/record/skip
  • specs/1607-pipeline-evolve/{spec,plan,tasks}.md — planning artifacts

Test Plan

  • go test ./internal/pipeline/... -run PipelineEvolve against real SQLite DB
  • TestSchemaSync passes (mirrors aligned)
  • CI: full go test ./... + golangci-lint

nextlevelshit and others added 2 commits April 30, 2026 10:03
Ship the four-step pipeline-evolve.yaml that ingests pipeline_eval
history for a target pipeline and proposes an improved v+1 (yaml +
persona-prompt diffs) via LLM, recording the candidate as a 'proposed'
row in evolution_proposal for the human gate.

- gather-eval (command): pulls last 50 pipeline_eval rows via sqlite3
- analyze (navigator/cheapest): classifies failure classes, json_schema
- propose (craftsman/balanced): drafts candidate yaml + unified diff
- record (command): INSERT INTO evolution_proposal as 'proposed', with
  insufficient-data short-circuit so the DB never grows noise rows

Adds matching contract schemas (evolution-findings, evolution-proposal),
mirrors the pipeline + schemas into both .agents/ and internal/defaults/
to satisfy TestSchemaSync, and covers gather-eval + record + skip
branches with direct bash-script tests against a real on-disk SQLite.
@nextlevelshit nextlevelshit merged commit ac46090 into main Apr 30, 2026
15 checks passed
@nextlevelshit nextlevelshit deleted the 1607-pipeline-evolve-impl branch April 30, 2026 08:18
nextlevelshit added a commit that referenced this pull request May 2, 2026
…oint + compose)

Phase 4 of Epic #1565 — boots Wave + Claude Code + tea against any
Codeberg/Gitea target repo, runs onboard-project on first contact, and
exposes the webui on :8080.

Files:
- docker/Dockerfile.experiment — multi-stage: golang to build wave with
  webui_preview, debian to fetch tea, node:22-bookworm runtime with
  claude-code via npm.
- docker/entrypoint.sh — bash (#!/usr/bin/env bash; no `set -o pipefail`
  per the dash-incompatibility hit on #1611). Idempotent clone, init,
  onboard, then exec wave serve.
- docker/docker-compose.experiment.yml — single service, two named
  volumes (wave-work + wave-config) so OAuth/clone survive rebuilds.
- docker/.env.experiment.example — required env template; the real
  .env.experiment is gitignored.

Pending: 4.4 end-to-end smoke on a real Codeberg target. Will run after
Anthropic API key + Codeberg token are wired in .env.experiment.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant