Install
openclaw skills install @lanyasheng/auto-improvement-executor当需要把已批准的改进候选应用到目标文件、回滚之前的变更、或预览变更效果时使用。支持 4 种 action(append/replace/insert_before/update_yaml),每次变更前自动备份。不用于打分(用 improvement-discriminator)或门禁验证(用 improvement-gate)。
openclaw skills install @lanyasheng/auto-improvement-executorApplies accepted candidates with automatic backup and rollback.
--dry-run 预览变更improvement-discriminatorimprovement-gateimprovement-orchestrator# Apply a candidate (requires ranking artifact + candidate ID)
python3 scripts/execute.py \
--input ranking.json \ # REQUIRED: ranking artifact from discriminator
--candidate-id cand-01-docs \ # REQUIRED: which candidate to execute
--state-root /path/to/state \ # default: lib/state_machine.DEFAULT_STATE_ROOT
--output result.json \ # default: {state-root}/executions/{run-id}-{candidate-id}.json
--force # execute even if recommendation != accept_for_execution
# Rollback a previous change
python3 scripts/rollback.py --receipt receipt.json [--dry-run]
| Param | Default | When to change |
|---|---|---|
--input | (required) | Always: path to ranking artifact JSON from discriminator |
--candidate-id | (required) | Always: the id field of the candidate to execute |
--force | false | Use to execute candidates with recommendation=hold (bypasses critic check) |
--output | auto | Set for custom output location |
| Action | Trigger | Behavior |
|---|---|---|
append_markdown_section | execution_plan.action | Appends heading + bulleted content lines at EOF. No-op if heading already exists |
replace_markdown_section | execution_plan.action | Finds section by heading match, replaces all lines until next same-or-higher-level heading |
insert_before_section | execution_plan.action | Inserts content lines before a matched heading |
update_yaml_frontmatter | execution_plan.action | Merges frontmatter_updates dict into YAML frontmatter (requires PyYAML) |
Every execution creates a backup at {state-root}/executions/backups/{run-id}/{candidate-id}-{filename} BEFORE modifying the target. The backup path is stored in result.rollback_pointer.backup_path for gate-driven rollback.
recommendation != accept_for_execution (use --force to override)EXECUTOR_SUPPORTED_CATEGORIES (docs, reference, guardrail) are auto-executable; others return status=unsupportedexecution_trace dict with action, status, diff_summary for GEPA feedback loop{"stage": "executed", "status": "success", "candidate_id": "cand-01-docs",
"result": {"status": "success", "modified": true, "diff": "--- a/...",
"backup_path": "...", "rollback_pointer": {"method": "restore_backup_file",
"backup_path": "...", "target_path": "..."}},
"execution_trace": {"type": "execution_trace", "action": "append_markdown_section", ...},
"next_step": "apply_gate", "next_owner": "gate"}
accept_for_execution onesrollback_pointer