feat(pipelines): add pipeline-evolve meta-pipeline#1611
Merged
Conversation
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.
This was referenced Apr 30, 2026
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
internal/defaults/embedfs/pipelines/pipeline-evolve.yaml— a 4-step meta-pipeline that ingestspipeline_evalhistory and proposes a v+1 candidate via LLMevolution_proposalasproposedevolution-findings+evolution-proposalmirrored into.agents/andinternal/defaults/to satisfyTestSchemaSyncinternal/pipeline/pipeline_evolve_test.goexercises gather-eval, record, and skip branches against real on-disk SQLiteRelated to #1607
Changes
internal/defaults/embedfs/pipelines/pipeline-evolve.yaml(+.agents/pipelines/mirror) — pipeline definitioninternal/defaults/contracts/evolution-findings.schema.json+evolution-proposal.schema.json(+.agents/contracts/mirror) — typed contractsinternal/pipeline/pipeline_evolve_test.go— bash-script tests for gather-eval/record/skipspecs/1607-pipeline-evolve/{spec,plan,tasks}.md— planning artifactsTest Plan
go test ./internal/pipeline/... -run PipelineEvolveagainst real SQLite DBTestSchemaSyncpasses (mirrors aligned)go test ./...+ golangci-lint