Skip to content

feat(workflow): experimental self-evolving workflow loop#165

Open
justrach wants to merge 1 commit into
release/0.2.17from
feat/workflow-self-evolution
Open

feat(workflow): experimental self-evolving workflow loop#165
justrach wants to merge 1 commit into
release/0.2.17from
feat/workflow-self-evolution

Conversation

@justrach

@justrach justrach commented Jun 4, 2026

Copy link
Copy Markdown
Owner

What

Adds the workflow orchestrator agent + a workflow-evolver meta-agent that closes a run -> telemetry -> learnings loop, plus helper scripts. Experimental.

  • workflow (built-in) — decomposes a goal, fans out parallel task sub-agents (sage read-only, forge for edits), synthesizes. Carries a machine-owned Learnings section + emits a run-telemetry block.
  • workflow-evolver (built-in) — reads accumulated run telemetry and proposes evolved Learnings; a deterministic splice (_evolve_apply.py) applies them between markers (version bump + changelog), with a constitution guard (refuses self-sabotaging learnings: disabling telemetry, suppressing task, hiding failures) and an append-only generation archive.
  • scripts/run-workflow.sh (capture telemetry), evolve-workflow.sh + _evolve_apply.py (read-only evolver -> deterministic splice).

Honest caveats (why experimental)

  • Telemetry is currently self-reported by the agent — gameable, per the Darwin-Goedel-Machine analysis. The sound version sources the same objective signal from the data.codegraff.com trajectory feed every workflow run already flows to (tagged agent_id); that rewire is the obvious follow-up.
  • The loop evolves a project-local .forge/agents/workflow.md drop-in (built-in = frozen baseline, drop-in = evolving instance). Runtime artifacts (telemetry jsonl, evolution log, generations) are gitignored.
  • No selection/regression gate yet (mutate-and-accept).

Verification

cargo check -p forge_repo clean (all 5 agents embed). The workflow orchestrator is verified end-to-end on a built binary (fans out sage/forge sub-agents, no hangs); the evolver loop was demonstrated v1->v3 on seeded + real telemetry.

🤖 Generated with Claude Code

Adds the dedicated `workflow` orchestrator agent and a `workflow-evolver`
meta-agent that closes a run -> telemetry -> learnings loop, plus scripts.

- workflow (built-in): decomposes a goal into independent subtasks, fans
  them out to parallel `task` sub-agents (sage for read-only, forge for
  edits), synthesizes. Carries a machine-owned Learnings section and emits
  a run-telemetry block.
- workflow-evolver (built-in): reads accumulated run telemetry and proposes
  evolved Learnings; a deterministic splice applies them (version bump +
  changelog), with a constitution guard that refuses self-sabotage
  (disabling telemetry, suppressing `task`, hiding failures) and an
  append-only generation archive.
- scripts/: run-workflow.sh, evolve-workflow.sh, _evolve_apply.py.

EXPERIMENTAL. Telemetry is currently self-reported (gameable, per the
Darwin-Goedel-Machine analysis); the sound version sources the same
objective signal from the data.codegraff.com trajectory feed every workflow
run already flows to. Runtime artifacts are gitignored.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown

Action required: PR inactive for 5 days.
Status update or closure in 10 days.

@github-actions github-actions Bot added the state: inactive No current action needed/possible; issue fixed, out of scope, or superseded. label Jun 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state: inactive No current action needed/possible; issue fixed, out of scope, or superseded.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant