| name | harness-planner |
| description | Select the next task for an autonomous continuation run and write the plan artifact. Use when acting as the Planner persona, or when deciding what the repository should work on next from vision, category balance, and the dependency graph. |
Harness planner
Selection procedure for the Planner persona. The prompt at agent/harness/planner-prompt.md is the contract; this is the method.
1. Establish state
Run bash agent/init.sh. It resolves the dependency closure and tells you what is genuinely unblocked, so you do not recompute it.
Read agent/harness/horizon.json. The previous run left a lookahead. Treat its head as the default choice and only depart from it with a reason you write down.
2. Build the candidate set
A candidate must satisfy all of:
status is not completed
- every id in
depends_on is completed
- it is not in the in-flight exclusion list appended to the prompt
- it advances at least one facet or outcome in
agent/vision.md
If the set is empty, the correct output is a new feature you define fully, not the least-bad existing one.
3. Score
In order:
- Vision alignment. Which facet, which outcome, and how directly. A task that advances a facet indirectly loses to one that advances it head-on.
- Category balance. Compare the mix across the current slice and the last several
PROGRESS.md entries against the weights in agent/categories.json. Correct the largest deviation.
- Priority. The tiebreak, not the driver.
Two patterns worth naming: