This repository has been archived on 2026-10-29. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
The controller chooses exactly one primary action per step. This is meant to reduce the classic failure mode where the model is "thinking", rewriting the plan, editing files, and rationalizing the edits all at once.
## Actions
### `update_map`
Purpose:
Write stable understanding into `state/map.yaml`.
Allowed writes:
- objectives
- constraints
- invariants
- accepted design
- rejected paths
- current status
Rules:
- Do not copy raw scratch into the map.
- Do not write guesses as settled architecture.
- If the map changes, say why.
### `think_subgoal`
Purpose:
Use `state/scratch.md` for one bounded problem only.
Allowed writes:
- temporary decomposition
- open questions
- candidate checks
- local reasoning that may be wrong
Rules:
- Scope it to one subgoal.
- Prefer deletion or summarization over accumulation.
- Scratch is disposable by design.
### `propose_patch`
Purpose:
Make one bounded code or document change tied to a clear hypothesis.
Allowed writes:
- workspace files
-`state/branches.json`
Rules:
- Name the hypothesis.
- Keep the patch narrow enough to verify.
- Do not silently redefine the map through code.
### `run_verify`
Purpose:
Check whether the proposed change actually improved the thing we care about.