with one click
autodev
Manage the PROGRAM.md/AUTODEV.md contract consumed by evolve/factory ticks. Use for loop rules, boundaries, or PROGRAM.md repair.
Menu
Manage the PROGRAM.md/AUTODEV.md contract consumed by evolve/factory ticks. Use for loop rules, boundaries, or PROGRAM.md repair.
Resume sessions across Claude Code, Codex, Gemini, and other providers when switching agents or migrating active chat history.
Run AGY headlessly via scheduled ticks or `agy -p`, capture agentapi JSONL evidence, and validate automated AGY loops or event streams.
Wire MCP servers and AgentOps plugin bundles into the AGY image with least-privilege access, rollback evidence, and validation hooks.
Audit SKILL.md files against the AgentOps template and readiness checks. Use for quality reviews or template compliance.
Run AGY headlessly via scheduled ticks or `agy -p`, capture agentapi JSONL evidence, and validate automated AGY loops or event streams.
Wire MCP servers and AgentOps plugin bundles into the AGY image with least-privilege access, rollback evidence, and validation hooks.
| name | autodev |
| description | Manage the PROGRAM.md/AUTODEV.md contract consumed by evolve/factory ticks. Use for loop rules, boundaries, or PROGRAM.md repair. |
| practices | ["cmm-process-maturity","ai-assisted-dev","dora-metrics"] |
| hexagonal_role | supporting |
| consumes | ["evolve","rpi"] |
| produces | [] |
| context_rel | [] |
| skill_api_version | 1 |
| user-invocable | true |
| context | {"window":"inherit","intent":{"mode":"task"},"intel_scope":"topic"} |
| metadata | {"tier":"execution","dependencies":["evolve","rpi"]} |
| output_contract | validated PROGRAM.md/AUTODEV.md contract or clear evolve/RPI execution handoff |
/autodev manages the repo-local operational contract for autonomous development.
It does not replace evolve or rpi.
The config/intent layer the operating loop reads each tick — NOT a loop itself. /autodev defines and validates the contract declared in PROGRAM.md/AUTODEV.md — mutable scope, immutable scope, validation commands, escalation rules, stop conditions. The drivers (evolve and Factory, the daemon) consume that contract and run the loop; autodev does not run it. Loop discipline still applies under autonomy: no parallel wave without the wave-validity check; no slice closes without a passing test mapped to a Given/When/Then; capture goes through the promotion ratchet, not into a landfill.
PROGRAM.md or AUTODEV.md defines the contract: mutable scope, immutable
scope, experiment unit, validation commands, decision policy, escalation rules,
and stop conditions.ao autodev creates, inspects, and validates that contract.evolve runs the v2 autonomous improvement loop.ao rpi runs one research -> plan -> implement -> validate lifecycle.Use this split when the user asks whether the old evolve flow should become a new command or skill:
| Intent | Action |
|---|---|
| define or repair the repo-local autonomous policy | use /autodev and ao autodev |
| run the autonomous improvement loop | use evolve or evolve |
| run one bounded lifecycle | use rpi or ao rpi |
PROGRAM.md takes precedence over AUTODEV.md. Treat AUTODEV.md as the
compatibility alias.
if [ -f PROGRAM.md ]; then
PROGRAM_PATH=PROGRAM.md
elif [ -f AUTODEV.md ]; then
PROGRAM_PATH=AUTODEV.md
else
PROGRAM_PATH=
fi
If a contract exists, validate before using it:
ao autodev validate --json ${PROGRAM_PATH:+--file "$PROGRAM_PATH"}
If no contract exists and the user asked to initialize or define the loop, create one:
ao autodev init "<objective>"
Infer the objective from the user request when it is clear. Ask only when the objective cannot be discovered from repo context and inventing it would make the contract misleading.
When validation fails, inspect the missing fields and patch the program file if the user asked to create or fix the contract. Required sections:
ObjectiveMutable ScopeImmutable ScopeExperiment UnitValidation CommandsDecision PolicyEscalation RulesStop ConditionsPrefer narrow mutable scope and concrete validation commands. If the needed work crosses immutable scope, create or update a bead instead of silently widening the contract.
After ao autodev validate passes:
/rpi "<goal>" or ao rpi ....evolve (skill-driven) or dispatch it via NTM for out-of-session runs.PROGRAM.md and GOALS.md exist, GOALS.md is strategic fitness and
PROGRAM.md is the operational execution layer.Do not mark an autonomous cycle successful only because the main tests pass. The program validation bundle and stop conditions must also be satisfied.
User: turn this postmortem/analyze/plan/pre-mortem/implement/validate loop into
a v2 command.
Agent: Explain that `evolve` runs the loop, then create or validate
`PROGRAM.md` with `/autodev` so the loop has explicit scope and gates.
ao autodev init "Continuously improve AgentOps skills within explicit scope."
ao autodev validate
# then run the repeated loop: /evolve (skill-driven; /evolve CLI retired, ag-llni)
| Problem | Response |
|---|---|
PROGRAM.md not found | Run ao autodev init "<objective>" when setup is requested. |
| validation reports missing sections | Patch the missing required sections, then rerun ao autodev validate --json. |
| requested work is outside immutable scope | Stop direct edits and create a bead or ask for an explicit contract change. |
| user asks "is this evolve?" | Answer: autodev defines the loop contract; evolve runs the loop. |
ao autodev CLI command behavior, linked to cmd tests (soc-jnfgi)