| name | autoevoeda-adapter |
| description | Create or update a lean AutoEvoEDA project adapter. Handles evo.yaml, prompts, evaluator scripts, memory injection, single/multi-repo workspaces, staged evaluation, and the run/promote/config CLI.
|
| argument-hint | <project-repo> [goal] |
Create A Lean AutoEvoEDA Adapter
AutoEvoEDA is alpha. Present it as a framework-level harness, not as completed paper QoR reproduction.
1. Inspect The Project
If editing the framework itself, read references/project-internals.md first.
Find concrete project facts before writing config: repo layout, mutable source paths, immutable evaluator assets, build/regression/perf commands, result JSON paths, reward rule, and whether the project is single-repo or multi-repo.
Do not invent benchmark logic. Use explicit placeholders when project scripts are not available.
2. Build The Adapter Layout
Create or update:
evo.yaml
prompts/{planner,coder,reviewer,repair}.md
scripts/{build.sh,run_regression.sh,compare_regression.py,run_perf.sh,reward.py}
planner and reviewer are prompt guidance injected into the single coding-agent prompt. They are not separate agent invocations.
3. Write evo.yaml
Supported top-level sections are:
project, agent, workspace, guards, pipeline, runner, result_files,
memory, human, repair, roles, pool, budget, promotion
Key rules:
guards.allowed_paths contains implementation scopes only.
guards.forbidden_paths includes evaluator scripts, config, generated results, benchmark/golden assets, and CI.
- Candidate self-tests must write build/output artifacts only under injected
/tmp/autoevo-* directories.
- Evaluator scripts should build under
AUTOEVO_RUNNER_BUILD_ROOT and leave framework-collected JSON under configured result paths.
- Leave
agent.model/profile/config empty in public examples unless generic overrides are required.
- Use
runner.preflight for CUDA-only or host-specific evaluator checks.
- Use
pipeline.stages for multi-suite evaluation.
- Use
memory.inject_files for required project knowledge; missing files fail fast.
- Use
human.stop_after_consecutive_rejects to stop and write an intervention report after repeated rejects.
4. Explain Commands And State
Use only the lean CLI:
evo config validate --config evo.yaml
evo run --config evo.yaml --cycles 1
evo run --config evo.yaml --continue --cycles 1
evo run --config evo.yaml --cycles 10 --chain-promote
evo promote --config evo.yaml --cycle 1
The durable state is .evo/history.jsonl, .evo/events.jsonl, .evo/session/active_run.json, per-run stdout/stderr/returncode logs, patch.diff, evaluator_results.json, and reject-streak reports.
5. Framework Edits
Keep patches small and edit the narrow module that owns the behavior. Do not add project-specific EDA logic under autoevoeda/.
6. Verify
For adapters:
evo config validate --config evo.yaml
For framework edits:
python3 -m compileall autoevoeda
python3 -m autoevoeda.cli --help