feat(plan): execute strategize and execute via actors #305

Closed
opened 2026-02-22 23:41:07 +00:00 by freemo · 1 comment
Owner

Metadata

  • Commit: feat(plan): execute strategize and execute via actors
  • Branch: feature/m1-plan-execute

Subtasks

  • Add local-only Strategize/Execute stub actors for M1 (no LLM) with interfaces compatible with the actor registry.
  • Connect PlanLifecycleService to actor execution for Strategize and Execute phases.
  • Ensure Strategize is read-only and records decisions without modifying resources.
  • Ensure Execute uses sandbox resources and tool calls routed through ToolRunner + ChangeSet capture; persist changeset_id in plan metadata.
  • Add phase start/complete/fail status updates with error_message + error_details capture on failures.
  • Persist decision tree root id and strategy decisions into Plan metadata after Strategize completes.
  • Propagate project/action invariants into strategize context and record enforcement decisions (stubbed until D2 reconciliation).
  • Capture execution metadata (tool_calls count, sandbox_refs) into Plan metadata.
  • Add streaming hooks for --stream to emit interim status updates during Strategize/Execute.
  • Add guard to prevent Execute when Plan is not in Strategize COMPLETE state.
  • Add execute/strategize integration notes, error handling, and retry guidance to docs/reference/plan_execute.md.
  • Tests (Behave): Add features/plan_actor_integration.feature for strategy/execute flows.
  • Tests (Robot): Add robot/plan_actor_integration.robot for end-to-end actor execution.
  • Tests (ASV): Add benchmarks/plan_actor_integration_bench.py for execution overhead.
  • Verify coverage >=97% via nox -s coverage_report. If coverage is <97% then review the current unit test coverage report at build/coverage.xml and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun nox -s coverage_report to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%.
  • Run nox (all default sessions, including benchmark), fix any errors if needed ensuring nox passes.

Section: ### Section 6: Execution Pipeline, Decisions & Invariants [M1-M4]
Status: Completed

## Metadata - **Commit**: `feat(plan): execute strategize and execute via actors` - **Branch**: `feature/m1-plan-execute` ## Subtasks - [x] Add local-only Strategize/Execute stub actors for M1 (no LLM) with interfaces compatible with the actor registry. - [x] Connect PlanLifecycleService to actor execution for Strategize and Execute phases. - [x] Ensure Strategize is read-only and records decisions without modifying resources. - [x] Ensure Execute uses sandbox resources and tool calls routed through ToolRunner + ChangeSet capture; persist `changeset_id` in plan metadata. - [x] Add phase start/complete/fail status updates with `error_message` + `error_details` capture on failures. - [x] Persist decision tree root id and strategy decisions into Plan metadata after Strategize completes. - [x] Propagate project/action invariants into strategize context and record enforcement decisions (stubbed until D2 reconciliation). - [x] Capture execution metadata (tool_calls count, sandbox_refs) into Plan metadata. - [x] Add streaming hooks for `--stream` to emit interim status updates during Strategize/Execute. - [x] Add guard to prevent Execute when Plan is not in Strategize COMPLETE state. - [x] Add execute/strategize integration notes, error handling, and retry guidance to `docs/reference/plan_execute.md`. - [x] Tests (Behave): Add `features/plan_actor_integration.feature` for strategy/execute flows. - [x] Tests (Robot): Add `robot/plan_actor_integration.robot` for end-to-end actor execution. - [x] Tests (ASV): Add `benchmarks/plan_actor_integration_bench.py` for execution overhead. - [x] Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - [x] Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes. **Section**: ### Section 6: Execution Pipeline, Decisions & Invariants [M1-M4] **Status**: Completed
freemo added this to the v3.2.0 milestone 2026-02-22 23:41:07 +00:00
freemo self-assigned this 2026-02-22 23:41:07 +00:00
Author
Owner

Implementation Notes — D0b.execute: Plan Execute via Actors

2026-02-20: D0b.execute — Plan Execute via Actors (M1 Critical Blocker)

  • Created PlanExecutor orchestrator with StrategizeStubActor (read-only, produces decisions) and ExecuteStubActor (sandbox resources, routes tool calls).
  • Strategize phase is read-only. Execute phase uses sandbox resources and routes tool calls through ToolRunner.
  • Phase guards prevent Execute when Plan is not in Strategize COMPLETE state.
  • Streaming hooks emit interim status updates.

(Migrated from docs/implementation-notes.md)

## Implementation Notes — D0b.execute: Plan Execute via Actors **2026-02-20**: D0b.execute — Plan Execute via Actors (M1 Critical Blocker) - Created `PlanExecutor` orchestrator with `StrategizeStubActor` (read-only, produces decisions) and `ExecuteStubActor` (sandbox resources, routes tool calls). - Strategize phase is read-only. Execute phase uses sandbox resources and routes tool calls through ToolRunner. - Phase guards prevent Execute when Plan is not in Strategize COMPLETE state. - Streaming hooks emit interim status updates. *(Migrated from `docs/implementation-notes.md`)*
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#305
No description provided.