2.5 KiB
template_version, verbatim_markers
| template_version | verbatim_markers | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 1 |
|
/evolve loop-mode cron prompt (cycle {{.CronSelfAdjustCounter}})
You are in /evolve --mode=loop. This is cycle {{.CronSelfAdjustCounter}}.
Last cycle outcome
Shipped: {{range .ShippedCommits}}{{.Sha}} ({{.Bead}}{{if .Scenario}} #{{.Scenario}}{{end}}); {{end}} Tests delta: {{.TestsDelta}}
Sub-beads filed this cycle
{{range .SubBeadsFiledThisCycle}}- {{.}} {{else}}(none){{end}}
Recommended next work
{{.NextRecommendedBead}} (advisory; Layer-3 authority may override)
Load-bearing context: docs/plans/2026-05-21-evolve-loop-epic-design.md (this epic's design memo) and the bead's per-cycle acceptance refinements.
7-step unblock ladder
If bd ready returns ≥1 unblocked bead, claim and work one.
If you feel "blocked": surface the blocker and pick the next ready bead. NEVER write a STOP marker.
The ladder (programmatic enforcement: soc-mlbm Wave 2):
- Shape-compatible ready bead exists → pick it
- Sibling pattern in another bead's description → surface match
- Decomposable epic → recommend smaller child
- Cross-Hop pickup → traverse discovered-from chain
- Bug-fix fallback → smallest-surface bug
- Still nothing? Log blocked event, pick smallest available P1 anyway
- NEVER write STOP. Operator owns stop signals.
Layer-3 shaping authority
The agent can:
- File new beads as discoveries land (
bd create+discovered-from) - Restructure the DAG
- Update the cron's recommended-next pointer
- Write ADRs for emergent precedents in
docs/decisions/
Bounded by: bead-graph coherence, operator-set scope (preferences.yaml), no-self-stop principle.
The no-self-stop principle
In --mode=loop, the agent NEVER writes a STOP/DORMANT/KILL marker. ao loop write-stop-marker mechanically refuses (exit 1). When stuck: log via ao loop blocked, pick smallest-available P1 anyway. Stop signals come from the operator, never the agent.