executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
subagentsUse when a plan has parallel tasks and the harness supports dispatching subagents.
Independent GitHub snapshot · Automated classification · Original documentation governs
If topology=multi-module (triage announcement or coordinator spec/plan declaration), read ../references/multi-module.md.
Fresh context per task. No session history.
Subagents have file-read tools. Don't inline what they can read.
TASK: <one sentence>
ROLE: <implementer | spec-reviewer | quality-reviewer>
MODEL: <fast | balanced | strongest>
REPOSITORY: <registered repo id and path>
MODULE: <module id and root>
FILES: <paths>
SPEC: <docs/staging/specs/...#anchor>
ACCEPTANCE: <test or cmd>
EXTRA: <only what's NOT in referenced files>
ROLE is required. See role charters below for what each role owns and does not own.
MODEL is optional. Omitted → uses harness default. Resolution: .praxis/model-tiers.yaml in project root or user home maps the three tiers (fast, balanced, strongest) to concrete model IDs. No config file → all subagents use harness default.
Pasting >10 lines from the spec? Stop - let the subagent read it.
Expand milestone → atomic steps at dispatch time, not in the plan.
One task has one repository and module write scope. Agents may read shared coordinator contracts, but must not edit another module or repository. Never dispatch two writers to overlapping module roots. Integration tasks are dispatched only after every required module reports local acceptance.
implementer → on DONE: spec-reviewer (matches spec?) → quality-reviewer (review) → mark complete, continue.
The coordinator marks - [x], never the subagent.
DONE_WITH_CONCERNS - address if correctness; note if observation.NEEDS_CONTEXT - supply the fact, re-dispatch.BLOCKED - diagnose (missing context / stronger model / too big / plan wrong). Never silently retry.MODEL: fast | balanced | strongest — optional, omitted → harness default.
Resolved via .praxis/model-tiers.yaml in project root or user home. Template at Praxis repo root: model-tiers.example.yaml.
The coordinator decides the tier at dispatch time based on task complexity — it is not hardcoded per role. The role charters below list defaults; override when:
| Scenario | Tier | Examples |
|---|---|---|
| Mechanical edits, simple checks | fast | rename a constant, fix a typo, pattern-match review |
| Standard implementation, single-file feature | balanced | add a function, modify one module, write routine tests |
| Multi-file refactor, concurrency/state-machine, safety review | strongest | implement a protocol, review crash-recovery, cross-module integration |
balanced. Override to fast for mechanical edits, strongest for multi-file protocol/state-machine implementation.fast. Override to balanced when spec has ≥3 cross-referencing rules or state enums.review skill against the diff — convention compliance, simplification opportunities, idiomatic patterns, security, scope.strongest. Override to balanced for single-file changes where deep reasoning is unnecessary.- [x].All done → review whole diff → ship.