From 886f7a26d327257b40c050f3fabe32a0de0286cf Mon Sep 17 00:00:00 2001 From: Simon Strandgaard Date: Tue, 7 Apr 2026 17:48:33 +0200 Subject: [PATCH] refactor: rename plan/stages/ to plan/nodes/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rename directory worker_plan_internal/plan/stages/ → plan/nodes/ - Update all 443 import references from plan.stages to plan.nodes - Update extract_dag.py JSON key from "stages" to "nodes" - Update docs and AGENTS.md references Co-Authored-By: Claude Opus 4.6 (1M context) --- .../2026-04-02-split-run-plan-pipeline.md | 428 +++++++++--------- .../plans/2026-04-03-extract-constraints.md | 36 +- ...26-04-02-split-run-plan-pipeline-design.md | 2 +- .../2026-04-03-extract-constraints-design.md | 6 +- worker_plan/AGENTS.md | 2 +- .../worker_plan_internal/extract_dag.py | 8 +- .../plan/{stages => nodes}/__init__.py | 0 .../{stages => nodes}/candidate_scenarios.py | 8 +- .../consolidate_assumptions_markdown.py | 16 +- .../consolidate_governance.py | 12 +- .../constraint_checker_stages.py | 14 +- .../convert_pitch_to_markdown.py | 2 +- .../plan/{stages => nodes}/create_pitch.py | 10 +- .../plan/{stages => nodes}/create_schedule.py | 10 +- .../{stages => nodes}/create_wbs_level1.py | 2 +- .../{stages => nodes}/create_wbs_level2.py | 10 +- .../{stages => nodes}/create_wbs_level3.py | 8 +- .../{stages => nodes}/currency_strategy.py | 12 +- .../plan/{stages => nodes}/data_collection.py | 16 +- .../{stages => nodes}/deduplicate_levers.py | 8 +- .../{stages => nodes}/distill_assumptions.py | 10 +- .../draft_documents_to_create.py | 12 +- .../draft_documents_to_find.py | 12 +- .../plan/{stages => nodes}/enrich_levers.py | 8 +- .../enrich_team_background_story.py | 16 +- .../enrich_team_contract_type.py | 16 +- .../enrich_team_environment_info.py | 16 +- .../estimate_task_durations.py | 4 +- .../{stages => nodes}/executive_summary.py | 24 +- .../plan/{stages => nodes}/expert_review.py | 12 +- .../{stages => nodes}/extract_constraints.py | 2 +- .../filter_documents_to_create.py | 12 +- .../filter_documents_to_find.py | 12 +- .../{stages => nodes}/find_team_members.py | 14 +- .../focus_on_vital_few_levers.py | 8 +- .../{stages => nodes}/full_plan_pipeline.py | 130 +++--- .../governance_phase1_audit.py | 10 +- .../governance_phase2_bodies.py | 12 +- .../governance_phase3_impl_plan.py | 12 +- ...nance_phase4_decision_escalation_matrix.py | 14 +- .../governance_phase5_monitoring_progress.py | 16 +- .../governance_phase6_extra.py | 20 +- .../{stages => nodes}/identify_documents.py | 18 +- .../{stages => nodes}/identify_purpose.py | 2 +- .../plan/{stages => nodes}/identify_risks.py | 14 +- .../identify_task_dependencies.py | 10 +- .../{stages => nodes}/make_assumptions.py | 16 +- .../{stages => nodes}/markdown_documents.py | 4 +- .../{stages => nodes}/physical_locations.py | 10 +- .../plan/{stages => nodes}/plan_type.py | 4 +- .../{stages => nodes}/potential_levers.py | 8 +- .../pre_project_assessment.py | 8 +- .../plan/{stages => nodes}/premise_attack.py | 2 +- .../plan/{stages => nodes}/premortem.py | 30 +- .../plan/{stages => nodes}/project_plan.py | 10 +- .../questions_and_answers.py | 28 +- .../plan/{stages => nodes}/redline_gate.py | 2 +- .../{stages => nodes}/related_resources.py | 10 +- .../plan/{stages => nodes}/report.py | 48 +- .../{stages => nodes}/review_assumptions.py | 18 +- .../plan/{stages => nodes}/review_plan.py | 22 +- .../plan/{stages => nodes}/review_team.py | 16 +- .../{stages => nodes}/scenarios_markdown.py | 4 +- .../screen_planning_prompt.py | 2 +- .../plan/{stages => nodes}/select_scenario.py | 10 +- .../plan/{stages => nodes}/self_audit.py | 32 +- .../plan/{stages => nodes}/setup.py | 0 .../plan/{stages => nodes}/start_time.py | 0 .../strategic_decisions_markdown.py | 4 +- .../plan/{stages => nodes}/swot_analysis.py | 16 +- .../plan/{stages => nodes}/team_markdown.py | 4 +- .../wbs_project_level1_and_level2.py | 4 +- .../wbs_project_level1_level2_level3.py | 4 +- .../plan/run_plan_pipeline.py | 6 +- 74 files changed, 684 insertions(+), 684 deletions(-) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/__init__.py (100%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/candidate_scenarios.py (87%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/consolidate_assumptions_markdown.py (87%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/consolidate_governance.py (80%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/constraint_checker_stages.py (90%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/convert_pitch_to_markdown.py (95%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/create_pitch.py (85%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/create_schedule.py (91%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/create_wbs_level1.py (96%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/create_wbs_level2.py (87%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/create_wbs_level3.py (94%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/currency_strategy.py (84%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/data_collection.py (82%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/deduplicate_levers.py (86%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/distill_assumptions.py (86%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/draft_documents_to_create.py (89%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/draft_documents_to_find.py (89%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/enrich_levers.py (87%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/enrich_team_background_story.py (86%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/enrich_team_contract_type.py (84%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/enrich_team_environment_info.py (84%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/estimate_task_durations.py (96%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/executive_summary.py (79%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/expert_review.py (89%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/extract_constraints.py (94%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/filter_documents_to_create.py (84%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/filter_documents_to_find.py (84%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/find_team_members.py (84%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/focus_on_vital_few_levers.py (87%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/full_plan_pipeline.py (50%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/governance_phase1_audit.py (85%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/governance_phase2_bodies.py (84%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/governance_phase3_impl_plan.py (85%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/governance_phase4_decision_escalation_matrix.py (85%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/governance_phase5_monitoring_progress.py (83%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/governance_phase6_extra.py (82%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/identify_documents.py (83%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/identify_purpose.py (95%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/identify_risks.py (83%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/identify_task_dependencies.py (86%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/make_assumptions.py (83%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/markdown_documents.py (90%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/physical_locations.py (88%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/plan_type.py (91%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/potential_levers.py (87%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/pre_project_assessment.py (87%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/premise_attack.py (95%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/premortem.py (77%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/project_plan.py (86%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/questions_and_answers.py (78%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/redline_gate.py (94%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/related_resources.py (85%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/report.py (70%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/review_assumptions.py (82%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/review_plan.py (80%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/review_team.py (83%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/scenarios_markdown.py (89%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/screen_planning_prompt.py (94%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/select_scenario.py (86%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/self_audit.py (79%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/setup.py (100%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/start_time.py (100%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/strategic_decisions_markdown.py (89%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/swot_analysis.py (85%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/team_markdown.py (90%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/wbs_project_level1_and_level2.py (87%) rename worker_plan/worker_plan_internal/plan/{stages => nodes}/wbs_project_level1_level2_level3.py (89%) diff --git a/docs/superpowers/plans/2026-04-02-split-run-plan-pipeline.md b/docs/superpowers/plans/2026-04-02-split-run-plan-pipeline.md index 3545959ab..c4fdfb043 100644 --- a/docs/superpowers/plans/2026-04-02-split-run-plan-pipeline.md +++ b/docs/superpowers/plans/2026-04-02-split-run-plan-pipeline.md @@ -4,7 +4,7 @@ **Goal:** Extract ~66 Luigi task classes from `run_plan_pipeline.py` (4,257 lines) into individual files under `stages/`, leaving only the shared framework in the original file. -**Architecture:** Each task class moves verbatim to its own file under `worker_plan/worker_plan_internal/plan/stages/`. Each file imports `PlanTask` from `run_plan_pipeline` and its upstream task dependencies from sibling stage files. `FullPlanPipeline` moves to `stages/full_plan_pipeline.py`. `run_plan_pipeline.py` shrinks to ~280 lines keeping only `PlanTask`, `ExecutePipeline`, and supporting utilities. +**Architecture:** Each task class moves verbatim to its own file under `worker_plan/worker_plan_internal/plan/nodes/`. Each file imports `PlanTask` from `run_plan_pipeline` and its upstream task dependencies from sibling stage files. `FullPlanPipeline` moves to `stages/full_plan_pipeline.py`. `run_plan_pipeline.py` shrinks to ~280 lines keeping only `PlanTask`, `ExecutePipeline`, and supporting utilities. **Tech Stack:** Python 3.11, Luigi (task orchestration), llama_index @@ -40,18 +40,18 @@ The import block is the ONLY new code per file. The class body is a verbatim cop ### Task 1: Create stages/ directory and Phase 1-2 stages (Input, Validation, Purpose) **Files:** -- Create: `worker_plan/worker_plan_internal/plan/stages/__init__.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/start_time.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/setup.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/redline_gate.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/premise_attack.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/identify_purpose.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/plan_type.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/__init__.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/start_time.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/setup.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/redline_gate.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/premise_attack.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/identify_purpose.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/plan_type.py` - [ ] **Step 1: Create the stages directory with empty `__init__.py`** ```python -# worker_plan/worker_plan_internal/plan/stages/__init__.py +# worker_plan/worker_plan_internal/plan/nodes/__init__.py ``` (Empty file — stage files are imported directly by whoever needs them.) @@ -84,7 +84,7 @@ from llama_index.core.llms.llm import LLM from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.diagnostics.redline_gate import RedlineGate from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask +from worker_plan_internal.plan.nodes.setup import SetupTask ``` Copy `RedlineGateTask` from SOURCE lines 239-260 verbatim. @@ -97,7 +97,7 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.diagnostics.premise_attack import PremiseAttack from worker_plan_internal.llm_util.llm_executor import LLMExecutor from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask +from worker_plan_internal.plan.nodes.setup import SetupTask ``` Copy `PremiseAttackTask` from SOURCE lines 263-286 verbatim. @@ -110,7 +110,7 @@ from llama_index.core.llms.llm import LLM from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.identify_purpose import IdentifyPurpose from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask +from worker_plan_internal.plan.nodes.setup import SetupTask ``` Copy `IdentifyPurposeTask` from SOURCE lines 289-313 verbatim. @@ -123,8 +123,8 @@ from llama_index.core.llms.llm import LLM from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.identify_plan_type import IdentifyPlanType from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask ``` Copy `PlanTypeTask` from SOURCE lines 316-350 verbatim. @@ -133,14 +133,14 @@ Copy `PlanTypeTask` from SOURCE lines 316-350 verbatim. Run from `worker_plan/`: ```bash -python -c "from worker_plan_internal.plan.stages.plan_type import PlanTypeTask; print('OK')" +python -c "from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask; print('OK')" ``` Expected: `OK` - [ ] **Step 9: Commit** ```bash -git add worker_plan/worker_plan_internal/plan/stages/ +git add worker_plan/worker_plan_internal/plan/nodes/ git commit -m "refactor: extract Phase 1-2 pipeline stages to individual files Extract StartTimeTask, SetupTask, RedlineGateTask, PremiseAttackTask, @@ -152,14 +152,14 @@ IdentifyPurposeTask, PlanTypeTask into stages/ directory." ### Task 2: Phase 3 stages (Strategic Options & Scenarios) **Files:** -- Create: `worker_plan/worker_plan_internal/plan/stages/potential_levers.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/deduplicate_levers.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/enrich_levers.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/focus_on_vital_few_levers.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/strategic_decisions_markdown.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/candidate_scenarios.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/select_scenario.py` -- Create: `worker_plan/worker_plan_internal/plan/stages/scenarios_markdown.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/potential_levers.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/deduplicate_levers.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/enrich_levers.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/focus_on_vital_few_levers.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/strategic_decisions_markdown.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/candidate_scenarios.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/select_scenario.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/scenarios_markdown.py` - [ ] **Step 1: Create `stages/potential_levers.py`** @@ -170,9 +170,9 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.lever.identify_potential_levers import IdentifyPotentialLevers from worker_plan_internal.llm_util.llm_executor import LLMExecutor from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask ``` Copy `PotentialLeversTask` from SOURCE lines 352-392 verbatim. @@ -186,10 +186,10 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.lever.deduplicate_levers import DeduplicateLevers from worker_plan_internal.llm_util.llm_executor import LLMExecutor from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.potential_levers import PotentialLeversTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.potential_levers import PotentialLeversTask ``` Copy `DeduplicateLeversTask` from SOURCE lines 395-439 verbatim. @@ -203,10 +203,10 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.lever.enrich_potential_levers import EnrichPotentialLevers from worker_plan_internal.llm_util.llm_executor import LLMExecutor from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.deduplicate_levers import DeduplicateLeversTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.deduplicate_levers import DeduplicateLeversTask ``` Copy `EnrichLeversTask` from SOURCE lines 441-486 verbatim. @@ -220,10 +220,10 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.lever.focus_on_vital_few_levers import FocusOnVitalFewLevers from worker_plan_internal.llm_util.llm_executor import LLMExecutor from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.enrich_levers import EnrichLeversTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.enrich_levers import EnrichLeversTask ``` Copy `FocusOnVitalFewLeversTask` from SOURCE lines 488-532 verbatim. @@ -236,8 +236,8 @@ import json from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.lever.strategic_decisions_markdown import StrategicDecisionsMarkdown from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.enrich_levers import EnrichLeversTask -from worker_plan_internal.plan.stages.focus_on_vital_few_levers import FocusOnVitalFewLeversTask +from worker_plan_internal.plan.nodes.enrich_levers import EnrichLeversTask +from worker_plan_internal.plan.nodes.focus_on_vital_few_levers import FocusOnVitalFewLeversTask ``` Copy `StrategicDecisionsMarkdownTask` from SOURCE lines 535-561 verbatim. @@ -251,10 +251,10 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.lever.candidate_scenarios import CandidateScenarios from worker_plan_internal.llm_util.llm_executor import LLMExecutor from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.focus_on_vital_few_levers import FocusOnVitalFewLeversTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.focus_on_vital_few_levers import FocusOnVitalFewLeversTask ``` Copy `CandidateScenariosTask` from SOURCE lines 563-610 verbatim. @@ -269,11 +269,11 @@ from worker_plan_internal.lever.select_scenario import SelectScenario from worker_plan_internal.llm_util.llm_executor import LLMExecutor from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.focus_on_vital_few_levers import FocusOnVitalFewLeversTask -from worker_plan_internal.plan.stages.candidate_scenarios import CandidateScenariosTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.focus_on_vital_few_levers import FocusOnVitalFewLeversTask +from worker_plan_internal.plan.nodes.candidate_scenarios import CandidateScenariosTask ``` Copy `SelectScenarioTask` from SOURCE lines 613-665 verbatim. @@ -286,8 +286,8 @@ import json from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.lever.scenarios_markdown import ScenariosMarkdown from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.candidate_scenarios import CandidateScenariosTask -from worker_plan_internal.plan.stages.select_scenario import SelectScenarioTask +from worker_plan_internal.plan.nodes.candidate_scenarios import CandidateScenariosTask +from worker_plan_internal.plan.nodes.select_scenario import SelectScenarioTask ``` Copy `ScenariosMarkdownTask` from SOURCE lines 668-695 verbatim. @@ -295,13 +295,13 @@ Copy `ScenariosMarkdownTask` from SOURCE lines 668-695 verbatim. - [ ] **Step 9: Verify imports resolve** ```bash -cd worker_plan && python -c "from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask; print('OK')" +cd worker_plan && python -c "from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask; print('OK')" ``` - [ ] **Step 10: Commit** ```bash -git add worker_plan/worker_plan_internal/plan/stages/ +git add worker_plan/worker_plan_internal/plan/nodes/ git commit -m "refactor: extract Phase 3 pipeline stages (levers & scenarios)" ``` @@ -330,11 +330,11 @@ from llama_index.core.llms.llm import LLM from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.physical_locations import PhysicalLocations from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask logger = logging.getLogger(__name__) ``` @@ -349,12 +349,12 @@ from llama_index.core.llms.llm import LLM from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.currency_strategy import CurrencyStrategy from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.physical_locations import PhysicalLocationsTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.physical_locations import PhysicalLocationsTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask ``` Copy `CurrencyStrategyTask` from SOURCE lines 763-813 verbatim. @@ -367,13 +367,13 @@ from llama_index.core.llms.llm import LLM from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.identify_risks import IdentifyRisks from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.physical_locations import PhysicalLocationsTask -from worker_plan_internal.plan.stages.currency_strategy import CurrencyStrategyTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.physical_locations import PhysicalLocationsTask +from worker_plan_internal.plan.nodes.currency_strategy import CurrencyStrategyTask ``` Copy `IdentifyRisksTask` from SOURCE lines 816-870 verbatim. @@ -386,14 +386,14 @@ from llama_index.core.llms.llm import LLM from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.make_assumptions import MakeAssumptions from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.physical_locations import PhysicalLocationsTask -from worker_plan_internal.plan.stages.currency_strategy import CurrencyStrategyTask -from worker_plan_internal.plan.stages.identify_risks import IdentifyRisksTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.physical_locations import PhysicalLocationsTask +from worker_plan_internal.plan.nodes.currency_strategy import CurrencyStrategyTask +from worker_plan_internal.plan.nodes.identify_risks import IdentifyRisksTask ``` Copy `MakeAssumptionsTask` from SOURCE lines 873-934 verbatim. @@ -408,11 +408,11 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.distill_assumptions import DistillAssumptions from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.make_assumptions import MakeAssumptionsTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.make_assumptions import MakeAssumptionsTask ``` Copy `DistillAssumptionsTask` from SOURCE lines 937-984 verbatim. @@ -426,15 +426,15 @@ from llama_index.core.llms.llm import LLM from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.review_assumptions import ReviewAssumptions from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.physical_locations import PhysicalLocationsTask -from worker_plan_internal.plan.stages.currency_strategy import CurrencyStrategyTask -from worker_plan_internal.plan.stages.identify_risks import IdentifyRisksTask -from worker_plan_internal.plan.stages.make_assumptions import MakeAssumptionsTask -from worker_plan_internal.plan.stages.distill_assumptions import DistillAssumptionsTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.physical_locations import PhysicalLocationsTask +from worker_plan_internal.plan.nodes.currency_strategy import CurrencyStrategyTask +from worker_plan_internal.plan.nodes.identify_risks import IdentifyRisksTask +from worker_plan_internal.plan.nodes.make_assumptions import MakeAssumptionsTask +from worker_plan_internal.plan.nodes.distill_assumptions import DistillAssumptionsTask logger = logging.getLogger(__name__) ``` @@ -451,14 +451,14 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.shorten_markdown import ShortenMarkdown from worker_plan_internal.llm_util.llm_executor import LLMExecutor, PipelineStopRequested from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.physical_locations import PhysicalLocationsTask -from worker_plan_internal.plan.stages.currency_strategy import CurrencyStrategyTask -from worker_plan_internal.plan.stages.identify_risks import IdentifyRisksTask -from worker_plan_internal.plan.stages.make_assumptions import MakeAssumptionsTask -from worker_plan_internal.plan.stages.distill_assumptions import DistillAssumptionsTask -from worker_plan_internal.plan.stages.review_assumptions import ReviewAssumptionsTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.physical_locations import PhysicalLocationsTask +from worker_plan_internal.plan.nodes.currency_strategy import CurrencyStrategyTask +from worker_plan_internal.plan.nodes.identify_risks import IdentifyRisksTask +from worker_plan_internal.plan.nodes.make_assumptions import MakeAssumptionsTask +from worker_plan_internal.plan.nodes.distill_assumptions import DistillAssumptionsTask +from worker_plan_internal.plan.nodes.review_assumptions import ReviewAssumptionsTask logger = logging.getLogger(__name__) ``` @@ -468,8 +468,8 @@ Copy `ConsolidateAssumptionsMarkdownTask` from SOURCE lines 1050-1132 verbatim. - [ ] **Step 8: Verify and commit** ```bash -cd worker_plan && python -c "from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask; print('OK')" -git add worker_plan/worker_plan_internal/plan/stages/ +cd worker_plan && python -c "from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask; print('OK')" +git add worker_plan/worker_plan_internal/plan/nodes/ git commit -m "refactor: extract Phase 4-5 pipeline stages (context & assumptions)" ``` @@ -499,10 +499,10 @@ from llama_index.core.llms.llm import LLM from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.expert.pre_project_assessment import PreProjectAssessment from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask logger = logging.getLogger(__name__) ``` @@ -520,11 +520,11 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.plan.project_plan import ProjectPlan from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.pre_project_assessment import PreProjectAssessmentTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.pre_project_assessment import PreProjectAssessmentTask logger = logging.getLogger(__name__) ``` @@ -543,11 +543,11 @@ from llama_index.core.llms.llm import LLM from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.governance.governance_phase1_audit import GovernancePhase1Audit from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask logger = logging.getLogger(__name__) ``` @@ -560,12 +560,12 @@ from llama_index.core.llms.llm import LLM from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.governance.governance_phase2_bodies import GovernancePhase2Bodies from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.governance_phase1_audit import GovernancePhase1AuditTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.governance_phase1_audit import GovernancePhase1AuditTask logger = logging.getLogger(__name__) ``` @@ -580,12 +580,12 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.governance.governance_phase3_impl_plan import GovernancePhase3ImplPlan from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.governance_phase2_bodies import GovernancePhase2BodiesTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.governance_phase2_bodies import GovernancePhase2BodiesTask logger = logging.getLogger(__name__) ``` @@ -604,19 +604,19 @@ Same pattern. Imports `GovernancePhase6Extra`. Upstream includes all governance """Pipeline stage: consolidate all governance phases into one document.""" from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.governance_phase1_audit import GovernancePhase1AuditTask -from worker_plan_internal.plan.stages.governance_phase2_bodies import GovernancePhase2BodiesTask -from worker_plan_internal.plan.stages.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask -from worker_plan_internal.plan.stages.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrixTask -from worker_plan_internal.plan.stages.governance_phase5_monitoring_progress import GovernancePhase5MonitoringProgressTask -from worker_plan_internal.plan.stages.governance_phase6_extra import GovernancePhase6ExtraTask +from worker_plan_internal.plan.nodes.governance_phase1_audit import GovernancePhase1AuditTask +from worker_plan_internal.plan.nodes.governance_phase2_bodies import GovernancePhase2BodiesTask +from worker_plan_internal.plan.nodes.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask +from worker_plan_internal.plan.nodes.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrixTask +from worker_plan_internal.plan.nodes.governance_phase5_monitoring_progress import GovernancePhase5MonitoringProgressTask +from worker_plan_internal.plan.nodes.governance_phase6_extra import GovernancePhase6ExtraTask ``` - [ ] **Step 4: Verify and commit** ```bash -cd worker_plan && python -c "from worker_plan_internal.plan.stages.consolidate_governance import ConsolidateGovernanceTask; print('OK')" -git add worker_plan/worker_plan_internal/plan/stages/ +cd worker_plan && python -c "from worker_plan_internal.plan.nodes.consolidate_governance import ConsolidateGovernanceTask; print('OK')" +git add worker_plan/worker_plan_internal/plan/nodes/ git commit -m "refactor: extract Phase 6-7 pipeline stages (plan foundation & governance)" ``` @@ -656,8 +656,8 @@ Key imports per file: - [ ] **Step 2: Verify and commit** ```bash -cd worker_plan && python -c "from worker_plan_internal.plan.stages.team_markdown import TeamMarkdownTask; print('OK')" -git add worker_plan/worker_plan_internal/plan/stages/ +cd worker_plan && python -c "from worker_plan_internal.plan.nodes.team_markdown import TeamMarkdownTask; print('OK')" +git add worker_plan/worker_plan_internal/plan/nodes/ git commit -m "refactor: extract Phase 8 pipeline stages (team)" ``` @@ -701,8 +701,8 @@ Key imports per file: - [ ] **Step 2: Verify and commit** ```bash -cd worker_plan && python -c "from worker_plan_internal.plan.stages.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask; print('OK')" -git add worker_plan/worker_plan_internal/plan/stages/ +cd worker_plan && python -c "from worker_plan_internal.plan.nodes.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask; print('OK')" +git add worker_plan/worker_plan_internal/plan/nodes/ git commit -m "refactor: extract Phase 9-10 pipeline stages (analysis & documents)" ``` @@ -746,8 +746,8 @@ Key imports: - [ ] **Step 2: Verify and commit** ```bash -cd worker_plan && python -c "from worker_plan_internal.plan.stages.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task; print('OK')" -git add worker_plan/worker_plan_internal/plan/stages/ +cd worker_plan && python -c "from worker_plan_internal.plan.nodes.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task; print('OK')" +git add worker_plan/worker_plan_internal/plan/nodes/ git commit -m "refactor: extract Phase 11 pipeline stages (WBS & pitch)" ``` @@ -785,8 +785,8 @@ Key imports: - [ ] **Step 2: Verify and commit** ```bash -cd worker_plan && python -c "from worker_plan_internal.plan.stages.report import ReportTask; print('OK')" -git add worker_plan/worker_plan_internal/plan/stages/ +cd worker_plan && python -c "from worker_plan_internal.plan.nodes.report import ReportTask; print('OK')" +git add worker_plan/worker_plan_internal/plan/nodes/ git commit -m "refactor: extract Phase 12-13 pipeline stages (schedule, review & report)" ``` @@ -795,7 +795,7 @@ git commit -m "refactor: extract Phase 12-13 pipeline stages (schedule, review & ### Task 9: Create FullPlanPipeline and slim run_plan_pipeline.py **Files:** -- Create: `worker_plan/worker_plan_internal/plan/stages/full_plan_pipeline.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/full_plan_pipeline.py` - Modify: `worker_plan/worker_plan_internal/plan/run_plan_pipeline.py` - [ ] **Step 1: Create `stages/full_plan_pipeline.py`** @@ -808,82 +808,82 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_api.filenames import FilenameEnum # Phase 1-2: Input & Validation, Purpose -from worker_plan_internal.plan.stages.start_time import StartTimeTask -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.redline_gate import RedlineGateTask -from worker_plan_internal.plan.stages.premise_attack import PremiseAttackTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.start_time import StartTimeTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.redline_gate import RedlineGateTask +from worker_plan_internal.plan.nodes.premise_attack import PremiseAttackTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask # Phase 3: Strategic Options & Scenarios -from worker_plan_internal.plan.stages.potential_levers import PotentialLeversTask -from worker_plan_internal.plan.stages.deduplicate_levers import DeduplicateLeversTask -from worker_plan_internal.plan.stages.enrich_levers import EnrichLeversTask -from worker_plan_internal.plan.stages.focus_on_vital_few_levers import FocusOnVitalFewLeversTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.candidate_scenarios import CandidateScenariosTask -from worker_plan_internal.plan.stages.select_scenario import SelectScenarioTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.potential_levers import PotentialLeversTask +from worker_plan_internal.plan.nodes.deduplicate_levers import DeduplicateLeversTask +from worker_plan_internal.plan.nodes.enrich_levers import EnrichLeversTask +from worker_plan_internal.plan.nodes.focus_on_vital_few_levers import FocusOnVitalFewLeversTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.candidate_scenarios import CandidateScenariosTask +from worker_plan_internal.plan.nodes.select_scenario import SelectScenarioTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask # Phase 4-5: Context & Assumptions -from worker_plan_internal.plan.stages.physical_locations import PhysicalLocationsTask -from worker_plan_internal.plan.stages.currency_strategy import CurrencyStrategyTask -from worker_plan_internal.plan.stages.identify_risks import IdentifyRisksTask -from worker_plan_internal.plan.stages.make_assumptions import MakeAssumptionsTask -from worker_plan_internal.plan.stages.distill_assumptions import DistillAssumptionsTask -from worker_plan_internal.plan.stages.review_assumptions import ReviewAssumptionsTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.physical_locations import PhysicalLocationsTask +from worker_plan_internal.plan.nodes.currency_strategy import CurrencyStrategyTask +from worker_plan_internal.plan.nodes.identify_risks import IdentifyRisksTask +from worker_plan_internal.plan.nodes.make_assumptions import MakeAssumptionsTask +from worker_plan_internal.plan.nodes.distill_assumptions import DistillAssumptionsTask +from worker_plan_internal.plan.nodes.review_assumptions import ReviewAssumptionsTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask # Phase 6-7: Plan Foundation & Governance -from worker_plan_internal.plan.stages.pre_project_assessment import PreProjectAssessmentTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.governance_phase1_audit import GovernancePhase1AuditTask -from worker_plan_internal.plan.stages.governance_phase2_bodies import GovernancePhase2BodiesTask -from worker_plan_internal.plan.stages.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask -from worker_plan_internal.plan.stages.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrixTask -from worker_plan_internal.plan.stages.governance_phase5_monitoring_progress import GovernancePhase5MonitoringProgressTask -from worker_plan_internal.plan.stages.governance_phase6_extra import GovernancePhase6ExtraTask -from worker_plan_internal.plan.stages.consolidate_governance import ConsolidateGovernanceTask +from worker_plan_internal.plan.nodes.pre_project_assessment import PreProjectAssessmentTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.governance_phase1_audit import GovernancePhase1AuditTask +from worker_plan_internal.plan.nodes.governance_phase2_bodies import GovernancePhase2BodiesTask +from worker_plan_internal.plan.nodes.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask +from worker_plan_internal.plan.nodes.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrixTask +from worker_plan_internal.plan.nodes.governance_phase5_monitoring_progress import GovernancePhase5MonitoringProgressTask +from worker_plan_internal.plan.nodes.governance_phase6_extra import GovernancePhase6ExtraTask +from worker_plan_internal.plan.nodes.consolidate_governance import ConsolidateGovernanceTask # Phase 8: Team -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask -from worker_plan_internal.plan.stages.find_team_members import FindTeamMembersTask -from worker_plan_internal.plan.stages.enrich_team_contract_type import EnrichTeamMembersWithContractTypeTask -from worker_plan_internal.plan.stages.enrich_team_background_story import EnrichTeamMembersWithBackgroundStoryTask -from worker_plan_internal.plan.stages.enrich_team_environment_info import EnrichTeamMembersWithEnvironmentInfoTask -from worker_plan_internal.plan.stages.review_team import ReviewTeamTask -from worker_plan_internal.plan.stages.team_markdown import TeamMarkdownTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.find_team_members import FindTeamMembersTask +from worker_plan_internal.plan.nodes.enrich_team_contract_type import EnrichTeamMembersWithContractTypeTask +from worker_plan_internal.plan.nodes.enrich_team_background_story import EnrichTeamMembersWithBackgroundStoryTask +from worker_plan_internal.plan.nodes.enrich_team_environment_info import EnrichTeamMembersWithEnvironmentInfoTask +from worker_plan_internal.plan.nodes.review_team import ReviewTeamTask +from worker_plan_internal.plan.nodes.team_markdown import TeamMarkdownTask # Phase 9-10: Analysis & Documents -from worker_plan_internal.plan.stages.swot_analysis import SWOTAnalysisTask -from worker_plan_internal.plan.stages.expert_review import ExpertReviewTask -from worker_plan_internal.plan.stages.data_collection import DataCollectionTask -from worker_plan_internal.plan.stages.identify_documents import IdentifyDocumentsTask -from worker_plan_internal.plan.stages.filter_documents_to_find import FilterDocumentsToFindTask -from worker_plan_internal.plan.stages.filter_documents_to_create import FilterDocumentsToCreateTask -from worker_plan_internal.plan.stages.draft_documents_to_find import DraftDocumentsToFindTask -from worker_plan_internal.plan.stages.draft_documents_to_create import DraftDocumentsToCreateTask -from worker_plan_internal.plan.stages.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask +from worker_plan_internal.plan.nodes.swot_analysis import SWOTAnalysisTask +from worker_plan_internal.plan.nodes.expert_review import ExpertReviewTask +from worker_plan_internal.plan.nodes.data_collection import DataCollectionTask +from worker_plan_internal.plan.nodes.identify_documents import IdentifyDocumentsTask +from worker_plan_internal.plan.nodes.filter_documents_to_find import FilterDocumentsToFindTask +from worker_plan_internal.plan.nodes.filter_documents_to_create import FilterDocumentsToCreateTask +from worker_plan_internal.plan.nodes.draft_documents_to_find import DraftDocumentsToFindTask +from worker_plan_internal.plan.nodes.draft_documents_to_create import DraftDocumentsToCreateTask +from worker_plan_internal.plan.nodes.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask # Phase 11: WBS & Pitch -from worker_plan_internal.plan.stages.create_wbs_level1 import CreateWBSLevel1Task -from worker_plan_internal.plan.stages.create_wbs_level2 import CreateWBSLevel2Task -from worker_plan_internal.plan.stages.wbs_project_level1_and_level2 import WBSProjectLevel1AndLevel2Task -from worker_plan_internal.plan.stages.create_pitch import CreatePitchTask -from worker_plan_internal.plan.stages.convert_pitch_to_markdown import ConvertPitchToMarkdownTask -from worker_plan_internal.plan.stages.identify_task_dependencies import IdentifyTaskDependenciesTask -from worker_plan_internal.plan.stages.estimate_task_durations import EstimateTaskDurationsTask -from worker_plan_internal.plan.stages.create_wbs_level3 import CreateWBSLevel3Task -from worker_plan_internal.plan.stages.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task +from worker_plan_internal.plan.nodes.create_wbs_level1 import CreateWBSLevel1Task +from worker_plan_internal.plan.nodes.create_wbs_level2 import CreateWBSLevel2Task +from worker_plan_internal.plan.nodes.wbs_project_level1_and_level2 import WBSProjectLevel1AndLevel2Task +from worker_plan_internal.plan.nodes.create_pitch import CreatePitchTask +from worker_plan_internal.plan.nodes.convert_pitch_to_markdown import ConvertPitchToMarkdownTask +from worker_plan_internal.plan.nodes.identify_task_dependencies import IdentifyTaskDependenciesTask +from worker_plan_internal.plan.nodes.estimate_task_durations import EstimateTaskDurationsTask +from worker_plan_internal.plan.nodes.create_wbs_level3 import CreateWBSLevel3Task +from worker_plan_internal.plan.nodes.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task # Phase 12-13: Schedule, Final Review & Report -from worker_plan_internal.plan.stages.create_schedule import CreateScheduleTask -from worker_plan_internal.plan.stages.review_plan import ReviewPlanTask -from worker_plan_internal.plan.stages.executive_summary import ExecutiveSummaryTask -from worker_plan_internal.plan.stages.questions_and_answers import QuestionsAndAnswersTask -from worker_plan_internal.plan.stages.premortem import PremortemTask -from worker_plan_internal.plan.stages.self_audit import SelfAuditTask -from worker_plan_internal.plan.stages.report import ReportTask +from worker_plan_internal.plan.nodes.create_schedule import CreateScheduleTask +from worker_plan_internal.plan.nodes.review_plan import ReviewPlanTask +from worker_plan_internal.plan.nodes.executive_summary import ExecutiveSummaryTask +from worker_plan_internal.plan.nodes.questions_and_answers import QuestionsAndAnswersTask +from worker_plan_internal.plan.nodes.premortem import PremortemTask +from worker_plan_internal.plan.nodes.self_audit import SelfAuditTask +from worker_plan_internal.plan.nodes.report import ReportTask ``` Copy the `FullPlanPipeline` class body verbatim from SOURCE lines 3776-3848. The `requires()` dict references all the task classes imported above. @@ -928,7 +928,7 @@ Change the `setup()` method in `ExecutePipeline` (around line 3902 in the origin def setup(self) -> None: # ... existing validation code stays the same ... - from worker_plan_internal.plan.stages.full_plan_pipeline import FullPlanPipeline + from worker_plan_internal.plan.nodes.full_plan_pipeline import FullPlanPipeline full_plan_pipeline_task = FullPlanPipeline( run_id_dir=self.run_id_dir, speedvsdetail=self.speedvsdetail, @@ -972,7 +972,7 @@ Expected: All tests pass. - [ ] **Step 6: Commit** ```bash -git add worker_plan/worker_plan_internal/plan/stages/full_plan_pipeline.py +git add worker_plan/worker_plan_internal/plan/nodes/full_plan_pipeline.py git add worker_plan/worker_plan_internal/plan/run_plan_pipeline.py git commit -m "refactor: slim run_plan_pipeline.py to framework-only, wire FullPlanPipeline from stages" ``` @@ -990,7 +990,7 @@ git commit -m "refactor: slim run_plan_pipeline.py to framework-only, wire FullP Add a new section after the existing guidelines: ```markdown -## Pipeline Stages (`worker_plan_internal/plan/stages/`) +## Pipeline Stages (`worker_plan_internal/plan/nodes/`) Each Luigi pipeline task lives in its own file under `stages/`. This enables: - Multiple agents working on different stages without merge conflicts @@ -1051,7 +1051,7 @@ Expected: All tests pass. ```bash cd worker_plan && python -c " -from worker_plan_internal.plan.stages.full_plan_pipeline import FullPlanPipeline +from worker_plan_internal.plan.nodes.full_plan_pipeline import FullPlanPipeline from worker_plan_internal.plan.run_plan_pipeline import ExecutePipeline print(f'FullPlanPipeline requires {len(FullPlanPipeline(run_id_dir=\"/tmp/test\").requires())} tasks') print('Import chain: OK') @@ -1069,7 +1069,7 @@ Expected: ~280 lines (down from 4,257). - [ ] **Step 4: Count stage files** ```bash -ls worker_plan/worker_plan_internal/plan/stages/*.py | wc -l +ls worker_plan/worker_plan_internal/plan/nodes/*.py | wc -l ``` Expected: ~67 files (66 stages + `__init__.py` + `full_plan_pipeline.py`). diff --git a/docs/superpowers/plans/2026-04-03-extract-constraints.md b/docs/superpowers/plans/2026-04-03-extract-constraints.md index dadcf804b..5584d4c1f 100644 --- a/docs/superpowers/plans/2026-04-03-extract-constraints.md +++ b/docs/superpowers/plans/2026-04-03-extract-constraints.md @@ -594,11 +594,11 @@ git commit -m "Add FilenameEnum entries for extract_constraints stage" ### Task 4: Create the pipeline stage wrapper **Files:** -- Create: `worker_plan/worker_plan_internal/plan/stages/extract_constraints.py` +- Create: `worker_plan/worker_plan_internal/plan/nodes/extract_constraints.py` - [ ] **Step 1: Create the stage file** -Create `worker_plan/worker_plan_internal/plan/stages/extract_constraints.py`: +Create `worker_plan/worker_plan_internal/plan/nodes/extract_constraints.py`: ```python """Pipeline stage: extract constraints from user prompt.""" @@ -606,7 +606,7 @@ from llama_index.core.llms.llm import LLM from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.diagnostics.extract_constraints import ExtractConstraints from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask +from worker_plan_internal.plan.nodes.setup import SetupTask class ExtractConstraintsTask(PlanTask): @@ -637,13 +637,13 @@ class ExtractConstraintsTask(PlanTask): - [ ] **Step 2: Verify syntax** -Run: `cd worker_plan && /opt/homebrew/bin/python3.11 -c "import ast; ast.parse(open('worker_plan_internal/plan/stages/extract_constraints.py').read()); print('OK')"` +Run: `cd worker_plan && /opt/homebrew/bin/python3.11 -c "import ast; ast.parse(open('worker_plan_internal/plan/nodes/extract_constraints.py').read()); print('OK')"` Expected: `OK` - [ ] **Step 3: Commit** ```bash -git add worker_plan/worker_plan_internal/plan/stages/extract_constraints.py +git add worker_plan/worker_plan_internal/plan/nodes/extract_constraints.py git commit -m "Add ExtractConstraintsTask pipeline stage wrapper" ``` @@ -652,15 +652,15 @@ git commit -m "Add ExtractConstraintsTask pipeline stage wrapper" ### Task 5: Wire into the full pipeline **Files:** -- Modify: `worker_plan/worker_plan_internal/plan/stages/full_plan_pipeline.py:10` (add import) -- Modify: `worker_plan/worker_plan_internal/plan/stages/full_plan_pipeline.py:90-91` (add to requires dict) +- Modify: `worker_plan/worker_plan_internal/plan/nodes/full_plan_pipeline.py:10` (add import) +- Modify: `worker_plan/worker_plan_internal/plan/nodes/full_plan_pipeline.py:90-91` (add to requires dict) - [ ] **Step 1: Add the import** -In `worker_plan/worker_plan_internal/plan/stages/full_plan_pipeline.py`, add after line 10 (`from ... import ScreenPlanningPromptTask`): +In `worker_plan/worker_plan_internal/plan/nodes/full_plan_pipeline.py`, add after line 10 (`from ... import ScreenPlanningPromptTask`): ```python -from worker_plan_internal.plan.stages.extract_constraints import ExtractConstraintsTask +from worker_plan_internal.plan.nodes.extract_constraints import ExtractConstraintsTask ``` - [ ] **Step 2: Add to the requires() dict** @@ -673,13 +673,13 @@ In the `requires()` method, add after the `'screen_planning_prompt'` entry (line - [ ] **Step 3: Verify syntax** -Run: `cd worker_plan && /opt/homebrew/bin/python3.11 -c "from worker_plan_internal.plan.stages.full_plan_pipeline import FullPlanPipeline; print('OK')"` +Run: `cd worker_plan && /opt/homebrew/bin/python3.11 -c "from worker_plan_internal.plan.nodes.full_plan_pipeline import FullPlanPipeline; print('OK')"` Expected: `OK` - [ ] **Step 4: Commit** ```bash -git add worker_plan/worker_plan_internal/plan/stages/full_plan_pipeline.py +git add worker_plan/worker_plan_internal/plan/nodes/full_plan_pipeline.py git commit -m "Register extract_constraints in the full plan pipeline" ``` @@ -688,16 +688,16 @@ git commit -m "Register extract_constraints in the full plan pipeline" ### Task 6: Add to the report **Files:** -- Modify: `worker_plan/worker_plan_internal/plan/stages/report.py:28` (add import) -- Modify: `worker_plan/worker_plan_internal/plan/stages/report.py:41-42` (add to requires dict) -- Modify: `worker_plan/worker_plan_internal/plan/stages/report.py:90-91` (add append_markdown call) +- Modify: `worker_plan/worker_plan_internal/plan/nodes/report.py:28` (add import) +- Modify: `worker_plan/worker_plan_internal/plan/nodes/report.py:41-42` (add to requires dict) +- Modify: `worker_plan/worker_plan_internal/plan/nodes/report.py:90-91` (add append_markdown call) - [ ] **Step 1: Add the import** -In `worker_plan/worker_plan_internal/plan/stages/report.py`, add after line 28 (`from ... import ScreenPlanningPromptTask`): +In `worker_plan/worker_plan_internal/plan/nodes/report.py`, add after line 28 (`from ... import ScreenPlanningPromptTask`): ```python -from worker_plan_internal.plan.stages.extract_constraints import ExtractConstraintsTask +from worker_plan_internal.plan.nodes.extract_constraints import ExtractConstraintsTask ``` - [ ] **Step 2: Add to the requires() dict** @@ -718,13 +718,13 @@ In `run_inner()`, add after the Self Audit line (line 90, `rg.append_markdown_wi - [ ] **Step 4: Verify syntax** -Run: `cd worker_plan && /opt/homebrew/bin/python3.11 -c "from worker_plan_internal.plan.stages.report import ReportTask; print('OK')"` +Run: `cd worker_plan && /opt/homebrew/bin/python3.11 -c "from worker_plan_internal.plan.nodes.report import ReportTask; print('OK')"` Expected: `OK` - [ ] **Step 5: Commit** ```bash -git add worker_plan/worker_plan_internal/plan/stages/report.py +git add worker_plan/worker_plan_internal/plan/nodes/report.py git commit -m "Add extract_constraints to the HTML report" ``` diff --git a/docs/superpowers/specs/2026-04-02-split-run-plan-pipeline-design.md b/docs/superpowers/specs/2026-04-02-split-run-plan-pipeline-design.md index 11d005920..68995458f 100644 --- a/docs/superpowers/specs/2026-04-02-split-run-plan-pipeline-design.md +++ b/docs/superpowers/specs/2026-04-02-split-run-plan-pipeline-design.md @@ -188,7 +188,7 @@ To insert a new `ValidateBudgetTask` between `CurrencyStrategyTask` and `Identif 1. Create `stages/validate_budget.py`: ```python - from worker_plan_internal.plan.stages.currency_strategy import CurrencyStrategyTask + from worker_plan_internal.plan.nodes.currency_strategy import CurrencyStrategyTask class ValidateBudgetTask(PlanTask): def requires(self): diff --git a/docs/superpowers/specs/2026-04-03-extract-constraints-design.md b/docs/superpowers/specs/2026-04-03-extract-constraints-design.md index 8261bd70b..649c07ad4 100644 --- a/docs/superpowers/specs/2026-04-03-extract-constraints-design.md +++ b/docs/superpowers/specs/2026-04-03-extract-constraints-design.md @@ -63,7 +63,7 @@ Output: ## Pipeline Stage -**Stage file:** `worker_plan_internal/plan/stages/extract_constraints.py` +**Stage file:** `worker_plan_internal/plan/nodes/extract_constraints.py` - `ExtractConstraintsTask` extends `PlanTask` - `requires()` — depends on `SetupTask` only (reads the raw user prompt) @@ -101,10 +101,10 @@ EXTRACT_CONSTRAINTS_MARKDOWN = "002-0-extract_constraints.md" **New files:** - `worker_plan_internal/diagnostics/extract_constraints.py` — Pydantic models, dataclass, system prompt, execute() -- `worker_plan_internal/plan/stages/extract_constraints.py` — PlanTask wrapper +- `worker_plan_internal/plan/nodes/extract_constraints.py` — PlanTask wrapper - `worker_plan_internal/diagnostics/tests/test_extract_constraints.py` — unit + LLM integration tests **Modified files:** - `worker_plan_api/filenames.py` — add FilenameEnum entries -- `worker_plan_internal/plan/stages/full_plan_pipeline.py` — register stage +- `worker_plan_internal/plan/nodes/full_plan_pipeline.py` — register stage - `worker_plan_internal/report/report_generator.py` — add to report diff --git a/worker_plan/AGENTS.md b/worker_plan/AGENTS.md index 8e19c30eb..9822a69c6 100644 --- a/worker_plan/AGENTS.md +++ b/worker_plan/AGENTS.md @@ -50,7 +50,7 @@ consumers. `rate_limit`, etc.) stored in `usage_metrics.jsonl`. Unknown errors preserve a truncated `error_detail` field. -## Pipeline Stages (`worker_plan_internal/plan/stages/`) +## Pipeline Stages (`worker_plan_internal/plan/nodes/`) Each Luigi pipeline task lives in its own file under `stages/`. This enables: - Multiple agents working on different stages without merge conflicts diff --git a/worker_plan/worker_plan_internal/extract_dag.py b/worker_plan/worker_plan_internal/extract_dag.py index 62ac55a67..642e27272 100644 --- a/worker_plan/worker_plan_internal/extract_dag.py +++ b/worker_plan/worker_plan_internal/extract_dag.py @@ -24,7 +24,7 @@ # Module prefixes that are infrastructure/utilities, not implementation logic. # Imports from these are excluded from source_files auto-detection. _INFRASTRUCTURE_PREFIXES = ( - "worker_plan_internal.plan.stages.", + "worker_plan_internal.plan.nodes.", "worker_plan_internal.plan.run_plan_pipeline", "worker_plan_internal.plan.pipeline_environment", "worker_plan_internal.plan.ping_llm", @@ -171,7 +171,7 @@ def extract_dag() -> dict[str, Any]: Returns a top-level schema object with stages sorted by pipeline order. """ - from worker_plan_internal.plan.stages.full_plan_pipeline import FullPlanPipeline + from worker_plan_internal.plan.nodes.full_plan_pipeline import FullPlanPipeline root = FullPlanPipeline(run_id_dir=Path("/tmp/_dag_extract_dummy")) @@ -220,7 +220,7 @@ def _walk(task: luigi.Task) -> None: "schema_version": "1.0", "pipeline_name": "planning_pipeline", "description": "DAG for PlanExe, an AI-driven project planning system.", - "stages": stages, + "nodes": stages, } @@ -235,7 +235,7 @@ def main() -> None: if output_path: Path(output_path).write_text(dag_json + "\n", encoding="utf-8") - print(f"Wrote {len(dag['stages'])} stages to {output_path}", file=sys.stderr) + print(f"Wrote {len(dag['nodes'])} stages to {output_path}", file=sys.stderr) else: print(dag_json) diff --git a/worker_plan/worker_plan_internal/plan/stages/__init__.py b/worker_plan/worker_plan_internal/plan/nodes/__init__.py similarity index 100% rename from worker_plan/worker_plan_internal/plan/stages/__init__.py rename to worker_plan/worker_plan_internal/plan/nodes/__init__.py diff --git a/worker_plan/worker_plan_internal/plan/stages/candidate_scenarios.py b/worker_plan/worker_plan_internal/plan/nodes/candidate_scenarios.py similarity index 87% rename from worker_plan/worker_plan_internal/plan/stages/candidate_scenarios.py rename to worker_plan/worker_plan_internal/plan/nodes/candidate_scenarios.py index d48b70f8e..b64f80001 100644 --- a/worker_plan/worker_plan_internal/plan/stages/candidate_scenarios.py +++ b/worker_plan/worker_plan_internal/plan/nodes/candidate_scenarios.py @@ -4,10 +4,10 @@ from worker_plan_internal.lever.candidate_scenarios import CandidateScenarios from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.llm_util.llm_executor import LLMExecutor -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.focus_on_vital_few_levers import FocusOnVitalFewLeversTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.focus_on_vital_few_levers import FocusOnVitalFewLeversTask class CandidateScenariosTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/consolidate_assumptions_markdown.py b/worker_plan/worker_plan_internal/plan/nodes/consolidate_assumptions_markdown.py similarity index 87% rename from worker_plan/worker_plan_internal/plan/stages/consolidate_assumptions_markdown.py rename to worker_plan/worker_plan_internal/plan/nodes/consolidate_assumptions_markdown.py index e7b873b52..2a03ff0a8 100644 --- a/worker_plan/worker_plan_internal/plan/stages/consolidate_assumptions_markdown.py +++ b/worker_plan/worker_plan_internal/plan/nodes/consolidate_assumptions_markdown.py @@ -5,14 +5,14 @@ from worker_plan_internal.assume.shorten_markdown import ShortenMarkdown from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.llm_util.llm_executor import LLMExecutor, PipelineStopRequested -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.physical_locations import PhysicalLocationsTask -from worker_plan_internal.plan.stages.currency_strategy import CurrencyStrategyTask -from worker_plan_internal.plan.stages.identify_risks import IdentifyRisksTask -from worker_plan_internal.plan.stages.make_assumptions import MakeAssumptionsTask -from worker_plan_internal.plan.stages.distill_assumptions import DistillAssumptionsTask -from worker_plan_internal.plan.stages.review_assumptions import ReviewAssumptionsTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.physical_locations import PhysicalLocationsTask +from worker_plan_internal.plan.nodes.currency_strategy import CurrencyStrategyTask +from worker_plan_internal.plan.nodes.identify_risks import IdentifyRisksTask +from worker_plan_internal.plan.nodes.make_assumptions import MakeAssumptionsTask +from worker_plan_internal.plan.nodes.distill_assumptions import DistillAssumptionsTask +from worker_plan_internal.plan.nodes.review_assumptions import ReviewAssumptionsTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/consolidate_governance.py b/worker_plan/worker_plan_internal/plan/nodes/consolidate_governance.py similarity index 80% rename from worker_plan/worker_plan_internal/plan/stages/consolidate_governance.py rename to worker_plan/worker_plan_internal/plan/nodes/consolidate_governance.py index 7971ccc00..af99cc147 100644 --- a/worker_plan/worker_plan_internal/plan/stages/consolidate_governance.py +++ b/worker_plan/worker_plan_internal/plan/nodes/consolidate_governance.py @@ -1,12 +1,12 @@ """ConsolidateGovernanceTask - Combines all governance phase markdown documents.""" from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.governance_phase1_audit import GovernancePhase1AuditTask -from worker_plan_internal.plan.stages.governance_phase2_bodies import GovernancePhase2BodiesTask -from worker_plan_internal.plan.stages.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask -from worker_plan_internal.plan.stages.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrixTask -from worker_plan_internal.plan.stages.governance_phase5_monitoring_progress import GovernancePhase5MonitoringProgressTask -from worker_plan_internal.plan.stages.governance_phase6_extra import GovernancePhase6ExtraTask +from worker_plan_internal.plan.nodes.governance_phase1_audit import GovernancePhase1AuditTask +from worker_plan_internal.plan.nodes.governance_phase2_bodies import GovernancePhase2BodiesTask +from worker_plan_internal.plan.nodes.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask +from worker_plan_internal.plan.nodes.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrixTask +from worker_plan_internal.plan.nodes.governance_phase5_monitoring_progress import GovernancePhase5MonitoringProgressTask +from worker_plan_internal.plan.nodes.governance_phase6_extra import GovernancePhase6ExtraTask class ConsolidateGovernanceTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/constraint_checker_stages.py b/worker_plan/worker_plan_internal/plan/nodes/constraint_checker_stages.py similarity index 90% rename from worker_plan/worker_plan_internal/plan/stages/constraint_checker_stages.py rename to worker_plan/worker_plan_internal/plan/nodes/constraint_checker_stages.py index b0ab84682..8a72ad2c3 100644 --- a/worker_plan/worker_plan_internal/plan/stages/constraint_checker_stages.py +++ b/worker_plan/worker_plan_internal/plan/nodes/constraint_checker_stages.py @@ -8,13 +8,13 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.diagnostics.constraint_checker import ConstraintChecker from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.extract_constraints import ExtractConstraintsTask -from worker_plan_internal.plan.stages.potential_levers import PotentialLeversTask -from worker_plan_internal.plan.stages.deduplicate_levers import DeduplicateLeversTask -from worker_plan_internal.plan.stages.enrich_levers import EnrichLeversTask -from worker_plan_internal.plan.stages.focus_on_vital_few_levers import FocusOnVitalFewLeversTask -from worker_plan_internal.plan.stages.candidate_scenarios import CandidateScenariosTask -from worker_plan_internal.plan.stages.select_scenario import SelectScenarioTask +from worker_plan_internal.plan.nodes.extract_constraints import ExtractConstraintsTask +from worker_plan_internal.plan.nodes.potential_levers import PotentialLeversTask +from worker_plan_internal.plan.nodes.deduplicate_levers import DeduplicateLeversTask +from worker_plan_internal.plan.nodes.enrich_levers import EnrichLeversTask +from worker_plan_internal.plan.nodes.focus_on_vital_few_levers import FocusOnVitalFewLeversTask +from worker_plan_internal.plan.nodes.candidate_scenarios import CandidateScenariosTask +from worker_plan_internal.plan.nodes.select_scenario import SelectScenarioTask def _read_constraints_json(task: PlanTask) -> str: diff --git a/worker_plan/worker_plan_internal/plan/stages/convert_pitch_to_markdown.py b/worker_plan/worker_plan_internal/plan/nodes/convert_pitch_to_markdown.py similarity index 95% rename from worker_plan/worker_plan_internal/plan/stages/convert_pitch_to_markdown.py rename to worker_plan/worker_plan_internal/plan/nodes/convert_pitch_to_markdown.py index 2928b5bbc..eae757802 100644 --- a/worker_plan/worker_plan_internal/plan/stages/convert_pitch_to_markdown.py +++ b/worker_plan/worker_plan_internal/plan/nodes/convert_pitch_to_markdown.py @@ -5,7 +5,7 @@ from worker_plan_internal.pitch.convert_pitch_to_markdown import ConvertPitchToMarkdown from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.create_pitch import CreatePitchTask +from worker_plan_internal.plan.nodes.create_pitch import CreatePitchTask class ConvertPitchToMarkdownTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/create_pitch.py b/worker_plan/worker_plan_internal/plan/nodes/create_pitch.py similarity index 85% rename from worker_plan/worker_plan_internal/plan/stages/create_pitch.py rename to worker_plan/worker_plan_internal/plan/nodes/create_pitch.py index 397dc67b2..46848a5eb 100644 --- a/worker_plan/worker_plan_internal/plan/stages/create_pitch.py +++ b/worker_plan/worker_plan_internal/plan/nodes/create_pitch.py @@ -7,11 +7,11 @@ from worker_plan_internal.wbs.wbs_task import WBSProject from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.wbs_project_level1_and_level2 import WBSProjectLevel1AndLevel2Task -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.wbs_project_level1_and_level2 import WBSProjectLevel1AndLevel2Task +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/create_schedule.py b/worker_plan/worker_plan_internal/plan/nodes/create_schedule.py similarity index 91% rename from worker_plan/worker_plan_internal/plan/stages/create_schedule.py rename to worker_plan/worker_plan_internal/plan/nodes/create_schedule.py index e920ae2af..357c5591a 100644 --- a/worker_plan/worker_plan_internal/plan/stages/create_schedule.py +++ b/worker_plan/worker_plan_internal/plan/nodes/create_schedule.py @@ -11,11 +11,11 @@ from worker_plan_internal.wbs.wbs_task_tooltip import WBSTaskTooltip from worker_plan_internal.plan.pipeline_config import PIPELINE_CONFIG from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.start_time import StartTimeTask -from worker_plan_internal.plan.stages.create_wbs_level1 import CreateWBSLevel1Task -from worker_plan_internal.plan.stages.identify_task_dependencies import IdentifyTaskDependenciesTask -from worker_plan_internal.plan.stages.estimate_task_durations import EstimateTaskDurationsTask -from worker_plan_internal.plan.stages.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task +from worker_plan_internal.plan.nodes.start_time import StartTimeTask +from worker_plan_internal.plan.nodes.create_wbs_level1 import CreateWBSLevel1Task +from worker_plan_internal.plan.nodes.identify_task_dependencies import IdentifyTaskDependenciesTask +from worker_plan_internal.plan.nodes.estimate_task_durations import EstimateTaskDurationsTask +from worker_plan_internal.plan.nodes.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task class CreateScheduleTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/create_wbs_level1.py b/worker_plan/worker_plan_internal/plan/nodes/create_wbs_level1.py similarity index 96% rename from worker_plan/worker_plan_internal/plan/stages/create_wbs_level1.py rename to worker_plan/worker_plan_internal/plan/nodes/create_wbs_level1.py index e8f08fa3a..198413f5c 100644 --- a/worker_plan/worker_plan_internal/plan/stages/create_wbs_level1.py +++ b/worker_plan/worker_plan_internal/plan/nodes/create_wbs_level1.py @@ -6,7 +6,7 @@ from worker_plan_internal.plan.create_wbs_level1 import CreateWBSLevel1 from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/create_wbs_level2.py b/worker_plan/worker_plan_internal/plan/nodes/create_wbs_level2.py similarity index 87% rename from worker_plan/worker_plan_internal/plan/stages/create_wbs_level2.py rename to worker_plan/worker_plan_internal/plan/nodes/create_wbs_level2.py index 74e900cc0..f61296103 100644 --- a/worker_plan/worker_plan_internal/plan/stages/create_wbs_level2.py +++ b/worker_plan/worker_plan_internal/plan/nodes/create_wbs_level2.py @@ -6,11 +6,11 @@ from worker_plan_internal.plan.create_wbs_level2 import CreateWBSLevel2 from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.create_wbs_level1 import CreateWBSLevel1Task -from worker_plan_internal.plan.stages.data_collection import DataCollectionTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.create_wbs_level1 import CreateWBSLevel1Task +from worker_plan_internal.plan.nodes.data_collection import DataCollectionTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/create_wbs_level3.py b/worker_plan/worker_plan_internal/plan/nodes/create_wbs_level3.py similarity index 94% rename from worker_plan/worker_plan_internal/plan/stages/create_wbs_level3.py rename to worker_plan/worker_plan_internal/plan/nodes/create_wbs_level3.py index 7e8548270..31ec1540e 100644 --- a/worker_plan/worker_plan_internal/plan/stages/create_wbs_level3.py +++ b/worker_plan/worker_plan_internal/plan/nodes/create_wbs_level3.py @@ -10,10 +10,10 @@ from worker_plan_api.speedvsdetail import SpeedVsDetailEnum from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.wbs_project_level1_and_level2 import WBSProjectLevel1AndLevel2Task -from worker_plan_internal.plan.stages.estimate_task_durations import EstimateTaskDurationsTask -from worker_plan_internal.plan.stages.data_collection import DataCollectionTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.wbs_project_level1_and_level2 import WBSProjectLevel1AndLevel2Task +from worker_plan_internal.plan.nodes.estimate_task_durations import EstimateTaskDurationsTask +from worker_plan_internal.plan.nodes.data_collection import DataCollectionTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/currency_strategy.py b/worker_plan/worker_plan_internal/plan/nodes/currency_strategy.py similarity index 84% rename from worker_plan/worker_plan_internal/plan/stages/currency_strategy.py rename to worker_plan/worker_plan_internal/plan/nodes/currency_strategy.py index 22f735c97..bb20d5199 100644 --- a/worker_plan/worker_plan_internal/plan/stages/currency_strategy.py +++ b/worker_plan/worker_plan_internal/plan/nodes/currency_strategy.py @@ -3,12 +3,12 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.currency_strategy import CurrencyStrategy from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.physical_locations import PhysicalLocationsTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.physical_locations import PhysicalLocationsTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask class CurrencyStrategyTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/data_collection.py b/worker_plan/worker_plan_internal/plan/nodes/data_collection.py similarity index 82% rename from worker_plan/worker_plan_internal/plan/stages/data_collection.py rename to worker_plan/worker_plan_internal/plan/nodes/data_collection.py index bab62fe02..b208ef2d3 100644 --- a/worker_plan/worker_plan_internal/plan/stages/data_collection.py +++ b/worker_plan/worker_plan_internal/plan/nodes/data_collection.py @@ -3,14 +3,14 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.plan.data_collection import DataCollection from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask -from worker_plan_internal.plan.stages.swot_analysis import SWOTAnalysisTask -from worker_plan_internal.plan.stages.team_markdown import TeamMarkdownTask -from worker_plan_internal.plan.stages.expert_review import ExpertReviewTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.swot_analysis import SWOTAnalysisTask +from worker_plan_internal.plan.nodes.team_markdown import TeamMarkdownTask +from worker_plan_internal.plan.nodes.expert_review import ExpertReviewTask class DataCollectionTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/deduplicate_levers.py b/worker_plan/worker_plan_internal/plan/nodes/deduplicate_levers.py similarity index 86% rename from worker_plan/worker_plan_internal/plan/stages/deduplicate_levers.py rename to worker_plan/worker_plan_internal/plan/nodes/deduplicate_levers.py index 1142d058f..db4974cac 100644 --- a/worker_plan/worker_plan_internal/plan/stages/deduplicate_levers.py +++ b/worker_plan/worker_plan_internal/plan/nodes/deduplicate_levers.py @@ -4,10 +4,10 @@ from worker_plan_internal.lever.deduplicate_levers import DeduplicateLevers from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.llm_util.llm_executor import LLMExecutor -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.potential_levers import PotentialLeversTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.potential_levers import PotentialLeversTask class DeduplicateLeversTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/distill_assumptions.py b/worker_plan/worker_plan_internal/plan/nodes/distill_assumptions.py similarity index 86% rename from worker_plan/worker_plan_internal/plan/stages/distill_assumptions.py rename to worker_plan/worker_plan_internal/plan/nodes/distill_assumptions.py index eee50a786..8446b761a 100644 --- a/worker_plan/worker_plan_internal/plan/stages/distill_assumptions.py +++ b/worker_plan/worker_plan_internal/plan/nodes/distill_assumptions.py @@ -5,11 +5,11 @@ from worker_plan_internal.assume.distill_assumptions import DistillAssumptions from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.make_assumptions import MakeAssumptionsTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.make_assumptions import MakeAssumptionsTask class DistillAssumptionsTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/draft_documents_to_create.py b/worker_plan/worker_plan_internal/plan/nodes/draft_documents_to_create.py similarity index 89% rename from worker_plan/worker_plan_internal/plan/stages/draft_documents_to_create.py rename to worker_plan/worker_plan_internal/plan/nodes/draft_documents_to_create.py index a5a64cfee..e7e247dcb 100644 --- a/worker_plan/worker_plan_internal/plan/stages/draft_documents_to_create.py +++ b/worker_plan/worker_plan_internal/plan/nodes/draft_documents_to_create.py @@ -7,12 +7,12 @@ from worker_plan_internal.llm_util.llm_executor import LLMExecutor, PipelineStopRequested from worker_plan_api.filenames import FilenameEnum from worker_plan_api.speedvsdetail import SpeedVsDetailEnum -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.filter_documents_to_create import FilterDocumentsToCreateTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.filter_documents_to_create import FilterDocumentsToCreateTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/draft_documents_to_find.py b/worker_plan/worker_plan_internal/plan/nodes/draft_documents_to_find.py similarity index 89% rename from worker_plan/worker_plan_internal/plan/stages/draft_documents_to_find.py rename to worker_plan/worker_plan_internal/plan/nodes/draft_documents_to_find.py index e4e0bd8e2..d423289bf 100644 --- a/worker_plan/worker_plan_internal/plan/stages/draft_documents_to_find.py +++ b/worker_plan/worker_plan_internal/plan/nodes/draft_documents_to_find.py @@ -7,12 +7,12 @@ from worker_plan_internal.llm_util.llm_executor import LLMExecutor, PipelineStopRequested from worker_plan_api.filenames import FilenameEnum from worker_plan_api.speedvsdetail import SpeedVsDetailEnum -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.filter_documents_to_find import FilterDocumentsToFindTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.filter_documents_to_find import FilterDocumentsToFindTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/enrich_levers.py b/worker_plan/worker_plan_internal/plan/nodes/enrich_levers.py similarity index 87% rename from worker_plan/worker_plan_internal/plan/stages/enrich_levers.py rename to worker_plan/worker_plan_internal/plan/nodes/enrich_levers.py index 059ee1b9e..3469e2bac 100644 --- a/worker_plan/worker_plan_internal/plan/stages/enrich_levers.py +++ b/worker_plan/worker_plan_internal/plan/nodes/enrich_levers.py @@ -4,10 +4,10 @@ from worker_plan_internal.lever.enrich_potential_levers import EnrichPotentialLevers from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.llm_util.llm_executor import LLMExecutor -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.deduplicate_levers import DeduplicateLeversTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.deduplicate_levers import DeduplicateLeversTask class EnrichLeversTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/enrich_team_background_story.py b/worker_plan/worker_plan_internal/plan/nodes/enrich_team_background_story.py similarity index 86% rename from worker_plan/worker_plan_internal/plan/stages/enrich_team_background_story.py rename to worker_plan/worker_plan_internal/plan/nodes/enrich_team_background_story.py index 4512d2ff9..fafdecd3b 100644 --- a/worker_plan/worker_plan_internal/plan/stages/enrich_team_background_story.py +++ b/worker_plan/worker_plan_internal/plan/nodes/enrich_team_background_story.py @@ -7,14 +7,14 @@ from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum from worker_plan_api.speedvsdetail import SpeedVsDetailEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.pre_project_assessment import PreProjectAssessmentTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.enrich_team_contract_type import EnrichTeamMembersWithContractTypeTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.pre_project_assessment import PreProjectAssessmentTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.enrich_team_contract_type import EnrichTeamMembersWithContractTypeTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/enrich_team_contract_type.py b/worker_plan/worker_plan_internal/plan/nodes/enrich_team_contract_type.py similarity index 84% rename from worker_plan/worker_plan_internal/plan/stages/enrich_team_contract_type.py rename to worker_plan/worker_plan_internal/plan/nodes/enrich_team_contract_type.py index c5faf3c4a..585b7a1a6 100644 --- a/worker_plan/worker_plan_internal/plan/stages/enrich_team_contract_type.py +++ b/worker_plan/worker_plan_internal/plan/nodes/enrich_team_contract_type.py @@ -6,14 +6,14 @@ from worker_plan_internal.team.enrich_team_members_with_contract_type import EnrichTeamMembersWithContractType from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.pre_project_assessment import PreProjectAssessmentTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.find_team_members import FindTeamMembersTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.pre_project_assessment import PreProjectAssessmentTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.find_team_members import FindTeamMembersTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/enrich_team_environment_info.py b/worker_plan/worker_plan_internal/plan/nodes/enrich_team_environment_info.py similarity index 84% rename from worker_plan/worker_plan_internal/plan/stages/enrich_team_environment_info.py rename to worker_plan/worker_plan_internal/plan/nodes/enrich_team_environment_info.py index e3217c6ce..73b8ed636 100644 --- a/worker_plan/worker_plan_internal/plan/stages/enrich_team_environment_info.py +++ b/worker_plan/worker_plan_internal/plan/nodes/enrich_team_environment_info.py @@ -6,14 +6,14 @@ from worker_plan_internal.team.enrich_team_members_with_environment_info import EnrichTeamMembersWithEnvironmentInfo from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.pre_project_assessment import PreProjectAssessmentTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.enrich_team_background_story import EnrichTeamMembersWithBackgroundStoryTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.pre_project_assessment import PreProjectAssessmentTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.enrich_team_background_story import EnrichTeamMembersWithBackgroundStoryTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/estimate_task_durations.py b/worker_plan/worker_plan_internal/plan/nodes/estimate_task_durations.py similarity index 96% rename from worker_plan/worker_plan_internal/plan/stages/estimate_task_durations.py rename to worker_plan/worker_plan_internal/plan/nodes/estimate_task_durations.py index 55d4e3ea5..383d3a4b7 100644 --- a/worker_plan/worker_plan_internal/plan/stages/estimate_task_durations.py +++ b/worker_plan/worker_plan_internal/plan/nodes/estimate_task_durations.py @@ -8,8 +8,8 @@ from worker_plan_internal.llm_util.llm_executor import LLMExecutor, PipelineStopRequested from worker_plan_api.speedvsdetail import SpeedVsDetailEnum from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.wbs_project_level1_and_level2 import WBSProjectLevel1AndLevel2Task +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.wbs_project_level1_and_level2 import WBSProjectLevel1AndLevel2Task logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/executive_summary.py b/worker_plan/worker_plan_internal/plan/nodes/executive_summary.py similarity index 79% rename from worker_plan/worker_plan_internal/plan/stages/executive_summary.py rename to worker_plan/worker_plan_internal/plan/nodes/executive_summary.py index 33b14a352..3dc0f60f2 100644 --- a/worker_plan/worker_plan_internal/plan/stages/executive_summary.py +++ b/worker_plan/worker_plan_internal/plan/nodes/executive_summary.py @@ -3,18 +3,18 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.plan.executive_summary import ExecutiveSummary from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.data_collection import DataCollectionTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask -from worker_plan_internal.plan.stages.swot_analysis import SWOTAnalysisTask -from worker_plan_internal.plan.stages.team_markdown import TeamMarkdownTask -from worker_plan_internal.plan.stages.convert_pitch_to_markdown import ConvertPitchToMarkdownTask -from worker_plan_internal.plan.stages.expert_review import ExpertReviewTask -from worker_plan_internal.plan.stages.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task -from worker_plan_internal.plan.stages.review_plan import ReviewPlanTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.data_collection import DataCollectionTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.swot_analysis import SWOTAnalysisTask +from worker_plan_internal.plan.nodes.team_markdown import TeamMarkdownTask +from worker_plan_internal.plan.nodes.convert_pitch_to_markdown import ConvertPitchToMarkdownTask +from worker_plan_internal.plan.nodes.expert_review import ExpertReviewTask +from worker_plan_internal.plan.nodes.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task +from worker_plan_internal.plan.nodes.review_plan import ReviewPlanTask class ExecutiveSummaryTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/expert_review.py b/worker_plan/worker_plan_internal/plan/nodes/expert_review.py similarity index 89% rename from worker_plan/worker_plan_internal/plan/stages/expert_review.py rename to worker_plan/worker_plan_internal/plan/nodes/expert_review.py index bb3fd4c56..3ac53cea5 100644 --- a/worker_plan/worker_plan_internal/plan/stages/expert_review.py +++ b/worker_plan/worker_plan_internal/plan/nodes/expert_review.py @@ -8,12 +8,12 @@ from worker_plan_internal.llm_util.llm_executor import LLMExecutor from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.pre_project_assessment import PreProjectAssessmentTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.swot_analysis import SWOTAnalysisTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.pre_project_assessment import PreProjectAssessmentTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.swot_analysis import SWOTAnalysisTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/extract_constraints.py b/worker_plan/worker_plan_internal/plan/nodes/extract_constraints.py similarity index 94% rename from worker_plan/worker_plan_internal/plan/stages/extract_constraints.py rename to worker_plan/worker_plan_internal/plan/nodes/extract_constraints.py index 63db8da6f..0b9dae5f4 100644 --- a/worker_plan/worker_plan_internal/plan/stages/extract_constraints.py +++ b/worker_plan/worker_plan_internal/plan/nodes/extract_constraints.py @@ -3,7 +3,7 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.diagnostics.extract_constraints import ExtractConstraints from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask +from worker_plan_internal.plan.nodes.setup import SetupTask class ExtractConstraintsTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/filter_documents_to_create.py b/worker_plan/worker_plan_internal/plan/nodes/filter_documents_to_create.py similarity index 84% rename from worker_plan/worker_plan_internal/plan/stages/filter_documents_to_create.py rename to worker_plan/worker_plan_internal/plan/nodes/filter_documents_to_create.py index 3af2f8268..fefcaaa26 100644 --- a/worker_plan/worker_plan_internal/plan/stages/filter_documents_to_create.py +++ b/worker_plan/worker_plan_internal/plan/nodes/filter_documents_to_create.py @@ -4,12 +4,12 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.document.filter_documents_to_create import FilterDocumentsToCreate from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.identify_documents import IdentifyDocumentsTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.identify_documents import IdentifyDocumentsTask class FilterDocumentsToCreateTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/filter_documents_to_find.py b/worker_plan/worker_plan_internal/plan/nodes/filter_documents_to_find.py similarity index 84% rename from worker_plan/worker_plan_internal/plan/stages/filter_documents_to_find.py rename to worker_plan/worker_plan_internal/plan/nodes/filter_documents_to_find.py index 90fec0fe4..a373cc5d3 100644 --- a/worker_plan/worker_plan_internal/plan/stages/filter_documents_to_find.py +++ b/worker_plan/worker_plan_internal/plan/nodes/filter_documents_to_find.py @@ -4,12 +4,12 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.document.filter_documents_to_find import FilterDocumentsToFind from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.identify_documents import IdentifyDocumentsTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.identify_documents import IdentifyDocumentsTask class FilterDocumentsToFindTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/find_team_members.py b/worker_plan/worker_plan_internal/plan/nodes/find_team_members.py similarity index 84% rename from worker_plan/worker_plan_internal/plan/stages/find_team_members.py rename to worker_plan/worker_plan_internal/plan/nodes/find_team_members.py index 1c0f32f1b..55d7726e3 100644 --- a/worker_plan/worker_plan_internal/plan/stages/find_team_members.py +++ b/worker_plan/worker_plan_internal/plan/nodes/find_team_members.py @@ -6,13 +6,13 @@ from worker_plan_internal.team.find_team_members import FindTeamMembers from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.pre_project_assessment import PreProjectAssessmentTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.pre_project_assessment import PreProjectAssessmentTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/focus_on_vital_few_levers.py b/worker_plan/worker_plan_internal/plan/nodes/focus_on_vital_few_levers.py similarity index 87% rename from worker_plan/worker_plan_internal/plan/stages/focus_on_vital_few_levers.py rename to worker_plan/worker_plan_internal/plan/nodes/focus_on_vital_few_levers.py index dd8dff057..e024b234f 100644 --- a/worker_plan/worker_plan_internal/plan/stages/focus_on_vital_few_levers.py +++ b/worker_plan/worker_plan_internal/plan/nodes/focus_on_vital_few_levers.py @@ -4,10 +4,10 @@ from worker_plan_internal.lever.focus_on_vital_few_levers import FocusOnVitalFewLevers from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.llm_util.llm_executor import LLMExecutor -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.enrich_levers import EnrichLeversTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.enrich_levers import EnrichLeversTask class FocusOnVitalFewLeversTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/full_plan_pipeline.py b/worker_plan/worker_plan_internal/plan/nodes/full_plan_pipeline.py similarity index 50% rename from worker_plan/worker_plan_internal/plan/stages/full_plan_pipeline.py rename to worker_plan/worker_plan_internal/plan/nodes/full_plan_pipeline.py index c91774ed1..028351251 100644 --- a/worker_plan/worker_plan_internal/plan/stages/full_plan_pipeline.py +++ b/worker_plan/worker_plan_internal/plan/nodes/full_plan_pipeline.py @@ -3,25 +3,25 @@ from worker_plan_api.filenames import FilenameEnum # Phase 1-2 -from worker_plan_internal.plan.stages.start_time import StartTimeTask -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.redline_gate import RedlineGateTask -from worker_plan_internal.plan.stages.premise_attack import PremiseAttackTask -from worker_plan_internal.plan.stages.screen_planning_prompt import ScreenPlanningPromptTask -from worker_plan_internal.plan.stages.extract_constraints import ExtractConstraintsTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.start_time import StartTimeTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.redline_gate import RedlineGateTask +from worker_plan_internal.plan.nodes.premise_attack import PremiseAttackTask +from worker_plan_internal.plan.nodes.screen_planning_prompt import ScreenPlanningPromptTask +from worker_plan_internal.plan.nodes.extract_constraints import ExtractConstraintsTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask # Phase 3 -from worker_plan_internal.plan.stages.potential_levers import PotentialLeversTask -from worker_plan_internal.plan.stages.deduplicate_levers import DeduplicateLeversTask -from worker_plan_internal.plan.stages.enrich_levers import EnrichLeversTask -from worker_plan_internal.plan.stages.focus_on_vital_few_levers import FocusOnVitalFewLeversTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.candidate_scenarios import CandidateScenariosTask -from worker_plan_internal.plan.stages.select_scenario import SelectScenarioTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.constraint_checker_stages import ( +from worker_plan_internal.plan.nodes.potential_levers import PotentialLeversTask +from worker_plan_internal.plan.nodes.deduplicate_levers import DeduplicateLeversTask +from worker_plan_internal.plan.nodes.enrich_levers import EnrichLeversTask +from worker_plan_internal.plan.nodes.focus_on_vital_few_levers import FocusOnVitalFewLeversTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.candidate_scenarios import CandidateScenariosTask +from worker_plan_internal.plan.nodes.select_scenario import SelectScenarioTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.constraint_checker_stages import ( PotentialLeversConstraintTask, DeduplicatedLeversConstraintTask, EnrichedLeversConstraintTask, @@ -31,64 +31,64 @@ ) # Phase 4-5 -from worker_plan_internal.plan.stages.physical_locations import PhysicalLocationsTask -from worker_plan_internal.plan.stages.currency_strategy import CurrencyStrategyTask -from worker_plan_internal.plan.stages.identify_risks import IdentifyRisksTask -from worker_plan_internal.plan.stages.make_assumptions import MakeAssumptionsTask -from worker_plan_internal.plan.stages.distill_assumptions import DistillAssumptionsTask -from worker_plan_internal.plan.stages.review_assumptions import ReviewAssumptionsTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.physical_locations import PhysicalLocationsTask +from worker_plan_internal.plan.nodes.currency_strategy import CurrencyStrategyTask +from worker_plan_internal.plan.nodes.identify_risks import IdentifyRisksTask +from worker_plan_internal.plan.nodes.make_assumptions import MakeAssumptionsTask +from worker_plan_internal.plan.nodes.distill_assumptions import DistillAssumptionsTask +from worker_plan_internal.plan.nodes.review_assumptions import ReviewAssumptionsTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask # Phase 6-7 -from worker_plan_internal.plan.stages.pre_project_assessment import PreProjectAssessmentTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.governance_phase1_audit import GovernancePhase1AuditTask -from worker_plan_internal.plan.stages.governance_phase2_bodies import GovernancePhase2BodiesTask -from worker_plan_internal.plan.stages.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask -from worker_plan_internal.plan.stages.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrixTask -from worker_plan_internal.plan.stages.governance_phase5_monitoring_progress import GovernancePhase5MonitoringProgressTask -from worker_plan_internal.plan.stages.governance_phase6_extra import GovernancePhase6ExtraTask -from worker_plan_internal.plan.stages.consolidate_governance import ConsolidateGovernanceTask +from worker_plan_internal.plan.nodes.pre_project_assessment import PreProjectAssessmentTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.governance_phase1_audit import GovernancePhase1AuditTask +from worker_plan_internal.plan.nodes.governance_phase2_bodies import GovernancePhase2BodiesTask +from worker_plan_internal.plan.nodes.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask +from worker_plan_internal.plan.nodes.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrixTask +from worker_plan_internal.plan.nodes.governance_phase5_monitoring_progress import GovernancePhase5MonitoringProgressTask +from worker_plan_internal.plan.nodes.governance_phase6_extra import GovernancePhase6ExtraTask +from worker_plan_internal.plan.nodes.consolidate_governance import ConsolidateGovernanceTask # Phase 8 -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask -from worker_plan_internal.plan.stages.find_team_members import FindTeamMembersTask -from worker_plan_internal.plan.stages.enrich_team_contract_type import EnrichTeamMembersWithContractTypeTask -from worker_plan_internal.plan.stages.enrich_team_background_story import EnrichTeamMembersWithBackgroundStoryTask -from worker_plan_internal.plan.stages.enrich_team_environment_info import EnrichTeamMembersWithEnvironmentInfoTask -from worker_plan_internal.plan.stages.review_team import ReviewTeamTask -from worker_plan_internal.plan.stages.team_markdown import TeamMarkdownTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.find_team_members import FindTeamMembersTask +from worker_plan_internal.plan.nodes.enrich_team_contract_type import EnrichTeamMembersWithContractTypeTask +from worker_plan_internal.plan.nodes.enrich_team_background_story import EnrichTeamMembersWithBackgroundStoryTask +from worker_plan_internal.plan.nodes.enrich_team_environment_info import EnrichTeamMembersWithEnvironmentInfoTask +from worker_plan_internal.plan.nodes.review_team import ReviewTeamTask +from worker_plan_internal.plan.nodes.team_markdown import TeamMarkdownTask # Phase 9-10 -from worker_plan_internal.plan.stages.swot_analysis import SWOTAnalysisTask -from worker_plan_internal.plan.stages.expert_review import ExpertReviewTask -from worker_plan_internal.plan.stages.data_collection import DataCollectionTask -from worker_plan_internal.plan.stages.identify_documents import IdentifyDocumentsTask -from worker_plan_internal.plan.stages.filter_documents_to_find import FilterDocumentsToFindTask -from worker_plan_internal.plan.stages.filter_documents_to_create import FilterDocumentsToCreateTask -from worker_plan_internal.plan.stages.draft_documents_to_find import DraftDocumentsToFindTask -from worker_plan_internal.plan.stages.draft_documents_to_create import DraftDocumentsToCreateTask -from worker_plan_internal.plan.stages.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask +from worker_plan_internal.plan.nodes.swot_analysis import SWOTAnalysisTask +from worker_plan_internal.plan.nodes.expert_review import ExpertReviewTask +from worker_plan_internal.plan.nodes.data_collection import DataCollectionTask +from worker_plan_internal.plan.nodes.identify_documents import IdentifyDocumentsTask +from worker_plan_internal.plan.nodes.filter_documents_to_find import FilterDocumentsToFindTask +from worker_plan_internal.plan.nodes.filter_documents_to_create import FilterDocumentsToCreateTask +from worker_plan_internal.plan.nodes.draft_documents_to_find import DraftDocumentsToFindTask +from worker_plan_internal.plan.nodes.draft_documents_to_create import DraftDocumentsToCreateTask +from worker_plan_internal.plan.nodes.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask # Phase 11 -from worker_plan_internal.plan.stages.create_wbs_level1 import CreateWBSLevel1Task -from worker_plan_internal.plan.stages.create_wbs_level2 import CreateWBSLevel2Task -from worker_plan_internal.plan.stages.wbs_project_level1_and_level2 import WBSProjectLevel1AndLevel2Task -from worker_plan_internal.plan.stages.create_pitch import CreatePitchTask -from worker_plan_internal.plan.stages.convert_pitch_to_markdown import ConvertPitchToMarkdownTask -from worker_plan_internal.plan.stages.identify_task_dependencies import IdentifyTaskDependenciesTask -from worker_plan_internal.plan.stages.estimate_task_durations import EstimateTaskDurationsTask -from worker_plan_internal.plan.stages.create_wbs_level3 import CreateWBSLevel3Task -from worker_plan_internal.plan.stages.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task +from worker_plan_internal.plan.nodes.create_wbs_level1 import CreateWBSLevel1Task +from worker_plan_internal.plan.nodes.create_wbs_level2 import CreateWBSLevel2Task +from worker_plan_internal.plan.nodes.wbs_project_level1_and_level2 import WBSProjectLevel1AndLevel2Task +from worker_plan_internal.plan.nodes.create_pitch import CreatePitchTask +from worker_plan_internal.plan.nodes.convert_pitch_to_markdown import ConvertPitchToMarkdownTask +from worker_plan_internal.plan.nodes.identify_task_dependencies import IdentifyTaskDependenciesTask +from worker_plan_internal.plan.nodes.estimate_task_durations import EstimateTaskDurationsTask +from worker_plan_internal.plan.nodes.create_wbs_level3 import CreateWBSLevel3Task +from worker_plan_internal.plan.nodes.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task # Phase 12-13 -from worker_plan_internal.plan.stages.create_schedule import CreateScheduleTask -from worker_plan_internal.plan.stages.review_plan import ReviewPlanTask -from worker_plan_internal.plan.stages.executive_summary import ExecutiveSummaryTask -from worker_plan_internal.plan.stages.questions_and_answers import QuestionsAndAnswersTask -from worker_plan_internal.plan.stages.premortem import PremortemTask -from worker_plan_internal.plan.stages.self_audit import SelfAuditTask -from worker_plan_internal.plan.stages.report import ReportTask +from worker_plan_internal.plan.nodes.create_schedule import CreateScheduleTask +from worker_plan_internal.plan.nodes.review_plan import ReviewPlanTask +from worker_plan_internal.plan.nodes.executive_summary import ExecutiveSummaryTask +from worker_plan_internal.plan.nodes.questions_and_answers import QuestionsAndAnswersTask +from worker_plan_internal.plan.nodes.premortem import PremortemTask +from worker_plan_internal.plan.nodes.self_audit import SelfAuditTask +from worker_plan_internal.plan.nodes.report import ReportTask class FullPlanPipeline(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/governance_phase1_audit.py b/worker_plan/worker_plan_internal/plan/nodes/governance_phase1_audit.py similarity index 85% rename from worker_plan/worker_plan_internal/plan/stages/governance_phase1_audit.py rename to worker_plan/worker_plan_internal/plan/nodes/governance_phase1_audit.py index 7939372fd..ea5a4d9ec 100644 --- a/worker_plan/worker_plan_internal/plan/stages/governance_phase1_audit.py +++ b/worker_plan/worker_plan_internal/plan/nodes/governance_phase1_audit.py @@ -4,11 +4,11 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.governance.governance_phase1_audit import GovernancePhase1Audit from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/governance_phase2_bodies.py b/worker_plan/worker_plan_internal/plan/nodes/governance_phase2_bodies.py similarity index 84% rename from worker_plan/worker_plan_internal/plan/stages/governance_phase2_bodies.py rename to worker_plan/worker_plan_internal/plan/nodes/governance_phase2_bodies.py index 2633a7129..6416ed25a 100644 --- a/worker_plan/worker_plan_internal/plan/stages/governance_phase2_bodies.py +++ b/worker_plan/worker_plan_internal/plan/nodes/governance_phase2_bodies.py @@ -4,12 +4,12 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.governance.governance_phase2_bodies import GovernancePhase2Bodies from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.governance_phase1_audit import GovernancePhase1AuditTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.governance_phase1_audit import GovernancePhase1AuditTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/governance_phase3_impl_plan.py b/worker_plan/worker_plan_internal/plan/nodes/governance_phase3_impl_plan.py similarity index 85% rename from worker_plan/worker_plan_internal/plan/stages/governance_phase3_impl_plan.py rename to worker_plan/worker_plan_internal/plan/nodes/governance_phase3_impl_plan.py index c46e3c6b6..8f5c2033d 100644 --- a/worker_plan/worker_plan_internal/plan/stages/governance_phase3_impl_plan.py +++ b/worker_plan/worker_plan_internal/plan/nodes/governance_phase3_impl_plan.py @@ -6,12 +6,12 @@ from worker_plan_internal.governance.governance_phase3_impl_plan import GovernancePhase3ImplPlan from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.governance_phase2_bodies import GovernancePhase2BodiesTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.governance_phase2_bodies import GovernancePhase2BodiesTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/governance_phase4_decision_escalation_matrix.py b/worker_plan/worker_plan_internal/plan/nodes/governance_phase4_decision_escalation_matrix.py similarity index 85% rename from worker_plan/worker_plan_internal/plan/stages/governance_phase4_decision_escalation_matrix.py rename to worker_plan/worker_plan_internal/plan/nodes/governance_phase4_decision_escalation_matrix.py index 1e1f1b85a..2eda8c57a 100644 --- a/worker_plan/worker_plan_internal/plan/stages/governance_phase4_decision_escalation_matrix.py +++ b/worker_plan/worker_plan_internal/plan/nodes/governance_phase4_decision_escalation_matrix.py @@ -6,13 +6,13 @@ from worker_plan_internal.governance.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrix from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.governance_phase2_bodies import GovernancePhase2BodiesTask -from worker_plan_internal.plan.stages.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.governance_phase2_bodies import GovernancePhase2BodiesTask +from worker_plan_internal.plan.nodes.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/governance_phase5_monitoring_progress.py b/worker_plan/worker_plan_internal/plan/nodes/governance_phase5_monitoring_progress.py similarity index 83% rename from worker_plan/worker_plan_internal/plan/stages/governance_phase5_monitoring_progress.py rename to worker_plan/worker_plan_internal/plan/nodes/governance_phase5_monitoring_progress.py index 52458ad36..bf2451b06 100644 --- a/worker_plan/worker_plan_internal/plan/stages/governance_phase5_monitoring_progress.py +++ b/worker_plan/worker_plan_internal/plan/nodes/governance_phase5_monitoring_progress.py @@ -6,14 +6,14 @@ from worker_plan_internal.governance.governance_phase5_monitoring_progress import GovernancePhase5MonitoringProgress from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.governance_phase2_bodies import GovernancePhase2BodiesTask -from worker_plan_internal.plan.stages.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask -from worker_plan_internal.plan.stages.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrixTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.governance_phase2_bodies import GovernancePhase2BodiesTask +from worker_plan_internal.plan.nodes.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask +from worker_plan_internal.plan.nodes.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrixTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/governance_phase6_extra.py b/worker_plan/worker_plan_internal/plan/nodes/governance_phase6_extra.py similarity index 82% rename from worker_plan/worker_plan_internal/plan/stages/governance_phase6_extra.py rename to worker_plan/worker_plan_internal/plan/nodes/governance_phase6_extra.py index 83ece1a55..e335572f1 100644 --- a/worker_plan/worker_plan_internal/plan/stages/governance_phase6_extra.py +++ b/worker_plan/worker_plan_internal/plan/nodes/governance_phase6_extra.py @@ -6,16 +6,16 @@ from worker_plan_internal.governance.governance_phase6_extra import GovernancePhase6Extra from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.governance_phase1_audit import GovernancePhase1AuditTask -from worker_plan_internal.plan.stages.governance_phase2_bodies import GovernancePhase2BodiesTask -from worker_plan_internal.plan.stages.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask -from worker_plan_internal.plan.stages.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrixTask -from worker_plan_internal.plan.stages.governance_phase5_monitoring_progress import GovernancePhase5MonitoringProgressTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.governance_phase1_audit import GovernancePhase1AuditTask +from worker_plan_internal.plan.nodes.governance_phase2_bodies import GovernancePhase2BodiesTask +from worker_plan_internal.plan.nodes.governance_phase3_impl_plan import GovernancePhase3ImplPlanTask +from worker_plan_internal.plan.nodes.governance_phase4_decision_escalation_matrix import GovernancePhase4DecisionEscalationMatrixTask +from worker_plan_internal.plan.nodes.governance_phase5_monitoring_progress import GovernancePhase5MonitoringProgressTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/identify_documents.py b/worker_plan/worker_plan_internal/plan/nodes/identify_documents.py similarity index 83% rename from worker_plan/worker_plan_internal/plan/stages/identify_documents.py rename to worker_plan/worker_plan_internal/plan/nodes/identify_documents.py index 51d765c3e..5ea44522e 100644 --- a/worker_plan/worker_plan_internal/plan/stages/identify_documents.py +++ b/worker_plan/worker_plan_internal/plan/nodes/identify_documents.py @@ -4,15 +4,15 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.document.identify_documents import IdentifyDocuments from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask -from worker_plan_internal.plan.stages.swot_analysis import SWOTAnalysisTask -from worker_plan_internal.plan.stages.team_markdown import TeamMarkdownTask -from worker_plan_internal.plan.stages.expert_review import ExpertReviewTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.swot_analysis import SWOTAnalysisTask +from worker_plan_internal.plan.nodes.team_markdown import TeamMarkdownTask +from worker_plan_internal.plan.nodes.expert_review import ExpertReviewTask class IdentifyDocumentsTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/identify_purpose.py b/worker_plan/worker_plan_internal/plan/nodes/identify_purpose.py similarity index 95% rename from worker_plan/worker_plan_internal/plan/stages/identify_purpose.py rename to worker_plan/worker_plan_internal/plan/nodes/identify_purpose.py index 40fd1b025..be29d491a 100644 --- a/worker_plan/worker_plan_internal/plan/stages/identify_purpose.py +++ b/worker_plan/worker_plan_internal/plan/nodes/identify_purpose.py @@ -3,7 +3,7 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.identify_purpose import IdentifyPurpose from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask +from worker_plan_internal.plan.nodes.setup import SetupTask class IdentifyPurposeTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/identify_risks.py b/worker_plan/worker_plan_internal/plan/nodes/identify_risks.py similarity index 83% rename from worker_plan/worker_plan_internal/plan/stages/identify_risks.py rename to worker_plan/worker_plan_internal/plan/nodes/identify_risks.py index 9977dc9b7..37caddb2e 100644 --- a/worker_plan/worker_plan_internal/plan/stages/identify_risks.py +++ b/worker_plan/worker_plan_internal/plan/nodes/identify_risks.py @@ -3,13 +3,13 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.identify_risks import IdentifyRisks from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.physical_locations import PhysicalLocationsTask -from worker_plan_internal.plan.stages.currency_strategy import CurrencyStrategyTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.physical_locations import PhysicalLocationsTask +from worker_plan_internal.plan.nodes.currency_strategy import CurrencyStrategyTask class IdentifyRisksTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/identify_task_dependencies.py b/worker_plan/worker_plan_internal/plan/nodes/identify_task_dependencies.py similarity index 86% rename from worker_plan/worker_plan_internal/plan/stages/identify_task_dependencies.py rename to worker_plan/worker_plan_internal/plan/nodes/identify_task_dependencies.py index 948371cba..2b5d79980 100644 --- a/worker_plan/worker_plan_internal/plan/stages/identify_task_dependencies.py +++ b/worker_plan/worker_plan_internal/plan/nodes/identify_task_dependencies.py @@ -6,11 +6,11 @@ from worker_plan_internal.plan.identify_wbs_task_dependencies import IdentifyWBSTaskDependencies from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.create_wbs_level2 import CreateWBSLevel2Task -from worker_plan_internal.plan.stages.data_collection import DataCollectionTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.create_wbs_level2 import CreateWBSLevel2Task +from worker_plan_internal.plan.nodes.data_collection import DataCollectionTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/make_assumptions.py b/worker_plan/worker_plan_internal/plan/nodes/make_assumptions.py similarity index 83% rename from worker_plan/worker_plan_internal/plan/stages/make_assumptions.py rename to worker_plan/worker_plan_internal/plan/nodes/make_assumptions.py index 3b7e1e15e..56884f50a 100644 --- a/worker_plan/worker_plan_internal/plan/stages/make_assumptions.py +++ b/worker_plan/worker_plan_internal/plan/nodes/make_assumptions.py @@ -3,14 +3,14 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.make_assumptions import MakeAssumptions from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.physical_locations import PhysicalLocationsTask -from worker_plan_internal.plan.stages.currency_strategy import CurrencyStrategyTask -from worker_plan_internal.plan.stages.identify_risks import IdentifyRisksTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.physical_locations import PhysicalLocationsTask +from worker_plan_internal.plan.nodes.currency_strategy import CurrencyStrategyTask +from worker_plan_internal.plan.nodes.identify_risks import IdentifyRisksTask class MakeAssumptionsTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/markdown_documents.py b/worker_plan/worker_plan_internal/plan/nodes/markdown_documents.py similarity index 90% rename from worker_plan/worker_plan_internal/plan/stages/markdown_documents.py rename to worker_plan/worker_plan_internal/plan/nodes/markdown_documents.py index 22f678766..9ec9de003 100644 --- a/worker_plan/worker_plan_internal/plan/stages/markdown_documents.py +++ b/worker_plan/worker_plan_internal/plan/nodes/markdown_documents.py @@ -3,8 +3,8 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.document.markdown_with_document import markdown_rows_with_document_to_create, markdown_rows_with_document_to_find from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.draft_documents_to_create import DraftDocumentsToCreateTask -from worker_plan_internal.plan.stages.draft_documents_to_find import DraftDocumentsToFindTask +from worker_plan_internal.plan.nodes.draft_documents_to_create import DraftDocumentsToCreateTask +from worker_plan_internal.plan.nodes.draft_documents_to_find import DraftDocumentsToFindTask class MarkdownWithDocumentsToCreateAndFindTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/physical_locations.py b/worker_plan/worker_plan_internal/plan/nodes/physical_locations.py similarity index 88% rename from worker_plan/worker_plan_internal/plan/stages/physical_locations.py rename to worker_plan/worker_plan_internal/plan/nodes/physical_locations.py index 4d8b9c06b..7c8f56db0 100644 --- a/worker_plan/worker_plan_internal/plan/stages/physical_locations.py +++ b/worker_plan/worker_plan_internal/plan/nodes/physical_locations.py @@ -5,11 +5,11 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.physical_locations import PhysicalLocations from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/plan_type.py b/worker_plan/worker_plan_internal/plan/nodes/plan_type.py similarity index 91% rename from worker_plan/worker_plan_internal/plan/stages/plan_type.py rename to worker_plan/worker_plan_internal/plan/nodes/plan_type.py index af6d24234..306ab4c3e 100644 --- a/worker_plan/worker_plan_internal/plan/stages/plan_type.py +++ b/worker_plan/worker_plan_internal/plan/nodes/plan_type.py @@ -3,8 +3,8 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.identify_plan_type import IdentifyPlanType from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask class PlanTypeTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/potential_levers.py b/worker_plan/worker_plan_internal/plan/nodes/potential_levers.py similarity index 87% rename from worker_plan/worker_plan_internal/plan/stages/potential_levers.py rename to worker_plan/worker_plan_internal/plan/nodes/potential_levers.py index b065f2c8e..eb043fa09 100644 --- a/worker_plan/worker_plan_internal/plan/stages/potential_levers.py +++ b/worker_plan/worker_plan_internal/plan/nodes/potential_levers.py @@ -3,10 +3,10 @@ from worker_plan_internal.lever.identify_potential_levers import IdentifyPotentialLevers from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.llm_util.llm_executor import LLMExecutor -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.extract_constraints import ExtractConstraintsTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.extract_constraints import ExtractConstraintsTask class PotentialLeversTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/pre_project_assessment.py b/worker_plan/worker_plan_internal/plan/nodes/pre_project_assessment.py similarity index 87% rename from worker_plan/worker_plan_internal/plan/stages/pre_project_assessment.py rename to worker_plan/worker_plan_internal/plan/nodes/pre_project_assessment.py index 79c300bdc..1c217d7a3 100644 --- a/worker_plan/worker_plan_internal/plan/stages/pre_project_assessment.py +++ b/worker_plan/worker_plan_internal/plan/nodes/pre_project_assessment.py @@ -4,10 +4,10 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.expert.pre_project_assessment import PreProjectAssessment from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/premise_attack.py b/worker_plan/worker_plan_internal/plan/nodes/premise_attack.py similarity index 95% rename from worker_plan/worker_plan_internal/plan/stages/premise_attack.py rename to worker_plan/worker_plan_internal/plan/nodes/premise_attack.py index 396aee67f..3cf0946da 100644 --- a/worker_plan/worker_plan_internal/plan/stages/premise_attack.py +++ b/worker_plan/worker_plan_internal/plan/nodes/premise_attack.py @@ -3,7 +3,7 @@ from worker_plan_internal.diagnostics.premise_attack import PremiseAttack from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.llm_util.llm_executor import LLMExecutor -from worker_plan_internal.plan.stages.setup import SetupTask +from worker_plan_internal.plan.nodes.setup import SetupTask class PremiseAttackTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/premortem.py b/worker_plan/worker_plan_internal/plan/nodes/premortem.py similarity index 77% rename from worker_plan/worker_plan_internal/plan/stages/premortem.py rename to worker_plan/worker_plan_internal/plan/nodes/premortem.py index 49d42c004..f496d7633 100644 --- a/worker_plan/worker_plan_internal/plan/stages/premortem.py +++ b/worker_plan/worker_plan_internal/plan/nodes/premortem.py @@ -3,21 +3,21 @@ from worker_plan_internal.diagnostics.premortem import Premortem from worker_plan_internal.llm_util.llm_executor import LLMExecutor from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.data_collection import DataCollectionTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask -from worker_plan_internal.plan.stages.swot_analysis import SWOTAnalysisTask -from worker_plan_internal.plan.stages.team_markdown import TeamMarkdownTask -from worker_plan_internal.plan.stages.convert_pitch_to_markdown import ConvertPitchToMarkdownTask -from worker_plan_internal.plan.stages.expert_review import ExpertReviewTask -from worker_plan_internal.plan.stages.consolidate_governance import ConsolidateGovernanceTask -from worker_plan_internal.plan.stages.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask -from worker_plan_internal.plan.stages.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task -from worker_plan_internal.plan.stages.review_plan import ReviewPlanTask -from worker_plan_internal.plan.stages.questions_and_answers import QuestionsAndAnswersTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.data_collection import DataCollectionTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.swot_analysis import SWOTAnalysisTask +from worker_plan_internal.plan.nodes.team_markdown import TeamMarkdownTask +from worker_plan_internal.plan.nodes.convert_pitch_to_markdown import ConvertPitchToMarkdownTask +from worker_plan_internal.plan.nodes.expert_review import ExpertReviewTask +from worker_plan_internal.plan.nodes.consolidate_governance import ConsolidateGovernanceTask +from worker_plan_internal.plan.nodes.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask +from worker_plan_internal.plan.nodes.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task +from worker_plan_internal.plan.nodes.review_plan import ReviewPlanTask +from worker_plan_internal.plan.nodes.questions_and_answers import QuestionsAndAnswersTask class PremortemTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/project_plan.py b/worker_plan/worker_plan_internal/plan/nodes/project_plan.py similarity index 86% rename from worker_plan/worker_plan_internal/plan/stages/project_plan.py rename to worker_plan/worker_plan_internal/plan/nodes/project_plan.py index f91ac204f..a89e797f9 100644 --- a/worker_plan/worker_plan_internal/plan/stages/project_plan.py +++ b/worker_plan/worker_plan_internal/plan/nodes/project_plan.py @@ -6,11 +6,11 @@ from worker_plan_internal.plan.project_plan import ProjectPlan from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.pre_project_assessment import PreProjectAssessmentTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.pre_project_assessment import PreProjectAssessmentTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/questions_and_answers.py b/worker_plan/worker_plan_internal/plan/nodes/questions_and_answers.py similarity index 78% rename from worker_plan/worker_plan_internal/plan/stages/questions_and_answers.py rename to worker_plan/worker_plan_internal/plan/nodes/questions_and_answers.py index 66a0a261a..232159acc 100644 --- a/worker_plan/worker_plan_internal/plan/stages/questions_and_answers.py +++ b/worker_plan/worker_plan_internal/plan/nodes/questions_and_answers.py @@ -3,20 +3,20 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.questions_answers.questions_answers import QuestionsAnswers from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.data_collection import DataCollectionTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask -from worker_plan_internal.plan.stages.swot_analysis import SWOTAnalysisTask -from worker_plan_internal.plan.stages.team_markdown import TeamMarkdownTask -from worker_plan_internal.plan.stages.convert_pitch_to_markdown import ConvertPitchToMarkdownTask -from worker_plan_internal.plan.stages.expert_review import ExpertReviewTask -from worker_plan_internal.plan.stages.consolidate_governance import ConsolidateGovernanceTask -from worker_plan_internal.plan.stages.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask -from worker_plan_internal.plan.stages.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task -from worker_plan_internal.plan.stages.review_plan import ReviewPlanTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.data_collection import DataCollectionTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.swot_analysis import SWOTAnalysisTask +from worker_plan_internal.plan.nodes.team_markdown import TeamMarkdownTask +from worker_plan_internal.plan.nodes.convert_pitch_to_markdown import ConvertPitchToMarkdownTask +from worker_plan_internal.plan.nodes.expert_review import ExpertReviewTask +from worker_plan_internal.plan.nodes.consolidate_governance import ConsolidateGovernanceTask +from worker_plan_internal.plan.nodes.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask +from worker_plan_internal.plan.nodes.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task +from worker_plan_internal.plan.nodes.review_plan import ReviewPlanTask class QuestionsAndAnswersTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/redline_gate.py b/worker_plan/worker_plan_internal/plan/nodes/redline_gate.py similarity index 94% rename from worker_plan/worker_plan_internal/plan/stages/redline_gate.py rename to worker_plan/worker_plan_internal/plan/nodes/redline_gate.py index b74aa0466..5901c764a 100644 --- a/worker_plan/worker_plan_internal/plan/stages/redline_gate.py +++ b/worker_plan/worker_plan_internal/plan/nodes/redline_gate.py @@ -3,7 +3,7 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.diagnostics.redline_gate import RedlineGate from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask +from worker_plan_internal.plan.nodes.setup import SetupTask class RedlineGateTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/related_resources.py b/worker_plan/worker_plan_internal/plan/nodes/related_resources.py similarity index 85% rename from worker_plan/worker_plan_internal/plan/stages/related_resources.py rename to worker_plan/worker_plan_internal/plan/nodes/related_resources.py index ae0b25843..56314f34a 100644 --- a/worker_plan/worker_plan_internal/plan/stages/related_resources.py +++ b/worker_plan/worker_plan_internal/plan/nodes/related_resources.py @@ -6,11 +6,11 @@ from worker_plan_internal.plan.related_resources import RelatedResources from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/report.py b/worker_plan/worker_plan_internal/plan/nodes/report.py similarity index 70% rename from worker_plan/worker_plan_internal/plan/stages/report.py rename to worker_plan/worker_plan_internal/plan/nodes/report.py index 5f41bdbdc..cc123fee5 100644 --- a/worker_plan/worker_plan_internal/plan/stages/report.py +++ b/worker_plan/worker_plan_internal/plan/nodes/report.py @@ -2,30 +2,30 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask, REPORT_EXECUTE_PLAN_SECTION_HIDDEN from worker_plan_internal.report.report_generator import ReportGenerator from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.redline_gate import RedlineGateTask -from worker_plan_internal.plan.stages.premise_attack import PremiseAttackTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.data_collection import DataCollectionTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask -from worker_plan_internal.plan.stages.swot_analysis import SWOTAnalysisTask -from worker_plan_internal.plan.stages.team_markdown import TeamMarkdownTask -from worker_plan_internal.plan.stages.convert_pitch_to_markdown import ConvertPitchToMarkdownTask -from worker_plan_internal.plan.stages.expert_review import ExpertReviewTask -from worker_plan_internal.plan.stages.consolidate_governance import ConsolidateGovernanceTask -from worker_plan_internal.plan.stages.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask -from worker_plan_internal.plan.stages.create_wbs_level1 import CreateWBSLevel1Task -from worker_plan_internal.plan.stages.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task -from worker_plan_internal.plan.stages.review_plan import ReviewPlanTask -from worker_plan_internal.plan.stages.executive_summary import ExecutiveSummaryTask -from worker_plan_internal.plan.stages.create_schedule import CreateScheduleTask -from worker_plan_internal.plan.stages.questions_and_answers import QuestionsAndAnswersTask -from worker_plan_internal.plan.stages.premortem import PremortemTask -from worker_plan_internal.plan.stages.self_audit import SelfAuditTask -from worker_plan_internal.plan.stages.screen_planning_prompt import ScreenPlanningPromptTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.redline_gate import RedlineGateTask +from worker_plan_internal.plan.nodes.premise_attack import PremiseAttackTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.data_collection import DataCollectionTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.swot_analysis import SWOTAnalysisTask +from worker_plan_internal.plan.nodes.team_markdown import TeamMarkdownTask +from worker_plan_internal.plan.nodes.convert_pitch_to_markdown import ConvertPitchToMarkdownTask +from worker_plan_internal.plan.nodes.expert_review import ExpertReviewTask +from worker_plan_internal.plan.nodes.consolidate_governance import ConsolidateGovernanceTask +from worker_plan_internal.plan.nodes.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask +from worker_plan_internal.plan.nodes.create_wbs_level1 import CreateWBSLevel1Task +from worker_plan_internal.plan.nodes.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task +from worker_plan_internal.plan.nodes.review_plan import ReviewPlanTask +from worker_plan_internal.plan.nodes.executive_summary import ExecutiveSummaryTask +from worker_plan_internal.plan.nodes.create_schedule import CreateScheduleTask +from worker_plan_internal.plan.nodes.questions_and_answers import QuestionsAndAnswersTask +from worker_plan_internal.plan.nodes.premortem import PremortemTask +from worker_plan_internal.plan.nodes.self_audit import SelfAuditTask +from worker_plan_internal.plan.nodes.screen_planning_prompt import ScreenPlanningPromptTask class ReportTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/review_assumptions.py b/worker_plan/worker_plan_internal/plan/nodes/review_assumptions.py similarity index 82% rename from worker_plan/worker_plan_internal/plan/stages/review_assumptions.py rename to worker_plan/worker_plan_internal/plan/nodes/review_assumptions.py index 600b31259..4cc39affe 100644 --- a/worker_plan/worker_plan_internal/plan/stages/review_assumptions.py +++ b/worker_plan/worker_plan_internal/plan/nodes/review_assumptions.py @@ -4,15 +4,15 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.assume.review_assumptions import ReviewAssumptions from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.physical_locations import PhysicalLocationsTask -from worker_plan_internal.plan.stages.currency_strategy import CurrencyStrategyTask -from worker_plan_internal.plan.stages.identify_risks import IdentifyRisksTask -from worker_plan_internal.plan.stages.make_assumptions import MakeAssumptionsTask -from worker_plan_internal.plan.stages.distill_assumptions import DistillAssumptionsTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.physical_locations import PhysicalLocationsTask +from worker_plan_internal.plan.nodes.currency_strategy import CurrencyStrategyTask +from worker_plan_internal.plan.nodes.identify_risks import IdentifyRisksTask +from worker_plan_internal.plan.nodes.make_assumptions import MakeAssumptionsTask +from worker_plan_internal.plan.nodes.distill_assumptions import DistillAssumptionsTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/review_plan.py b/worker_plan/worker_plan_internal/plan/nodes/review_plan.py similarity index 80% rename from worker_plan/worker_plan_internal/plan/stages/review_plan.py rename to worker_plan/worker_plan_internal/plan/nodes/review_plan.py index f64309f30..d08c1854d 100644 --- a/worker_plan/worker_plan_internal/plan/stages/review_plan.py +++ b/worker_plan/worker_plan_internal/plan/nodes/review_plan.py @@ -3,17 +3,17 @@ from worker_plan_internal.plan.review_plan import ReviewPlan from worker_plan_internal.llm_util.llm_executor import LLMExecutor from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.data_collection import DataCollectionTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask -from worker_plan_internal.plan.stages.swot_analysis import SWOTAnalysisTask -from worker_plan_internal.plan.stages.team_markdown import TeamMarkdownTask -from worker_plan_internal.plan.stages.convert_pitch_to_markdown import ConvertPitchToMarkdownTask -from worker_plan_internal.plan.stages.expert_review import ExpertReviewTask -from worker_plan_internal.plan.stages.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.data_collection import DataCollectionTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.swot_analysis import SWOTAnalysisTask +from worker_plan_internal.plan.nodes.team_markdown import TeamMarkdownTask +from worker_plan_internal.plan.nodes.convert_pitch_to_markdown import ConvertPitchToMarkdownTask +from worker_plan_internal.plan.nodes.expert_review import ExpertReviewTask +from worker_plan_internal.plan.nodes.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task class ReviewPlanTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/review_team.py b/worker_plan/worker_plan_internal/plan/nodes/review_team.py similarity index 83% rename from worker_plan/worker_plan_internal/plan/stages/review_team.py rename to worker_plan/worker_plan_internal/plan/nodes/review_team.py index 5f2c44a2c..b2b8675e7 100644 --- a/worker_plan/worker_plan_internal/plan/stages/review_team.py +++ b/worker_plan/worker_plan_internal/plan/nodes/review_team.py @@ -7,14 +7,14 @@ from worker_plan_internal.team.team_markdown_document import TeamMarkdownDocumentBuilder from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.pre_project_assessment import PreProjectAssessmentTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.enrich_team_environment_info import EnrichTeamMembersWithEnvironmentInfoTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.pre_project_assessment import PreProjectAssessmentTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.enrich_team_environment_info import EnrichTeamMembersWithEnvironmentInfoTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/scenarios_markdown.py b/worker_plan/worker_plan_internal/plan/nodes/scenarios_markdown.py similarity index 89% rename from worker_plan/worker_plan_internal/plan/stages/scenarios_markdown.py rename to worker_plan/worker_plan_internal/plan/nodes/scenarios_markdown.py index 6051b09a4..6b915960f 100644 --- a/worker_plan/worker_plan_internal/plan/stages/scenarios_markdown.py +++ b/worker_plan/worker_plan_internal/plan/nodes/scenarios_markdown.py @@ -3,8 +3,8 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.lever.scenarios_markdown import ScenariosMarkdown from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.candidate_scenarios import CandidateScenariosTask -from worker_plan_internal.plan.stages.select_scenario import SelectScenarioTask +from worker_plan_internal.plan.nodes.candidate_scenarios import CandidateScenariosTask +from worker_plan_internal.plan.nodes.select_scenario import SelectScenarioTask class ScenariosMarkdownTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/screen_planning_prompt.py b/worker_plan/worker_plan_internal/plan/nodes/screen_planning_prompt.py similarity index 94% rename from worker_plan/worker_plan_internal/plan/stages/screen_planning_prompt.py rename to worker_plan/worker_plan_internal/plan/nodes/screen_planning_prompt.py index 33b4d730b..17eddef3d 100644 --- a/worker_plan/worker_plan_internal/plan/stages/screen_planning_prompt.py +++ b/worker_plan/worker_plan_internal/plan/nodes/screen_planning_prompt.py @@ -3,7 +3,7 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.diagnostics.screen_planning_prompt import ScreenPlanningPrompt from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask +from worker_plan_internal.plan.nodes.setup import SetupTask class ScreenPlanningPromptTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/select_scenario.py b/worker_plan/worker_plan_internal/plan/nodes/select_scenario.py similarity index 86% rename from worker_plan/worker_plan_internal/plan/stages/select_scenario.py rename to worker_plan/worker_plan_internal/plan/nodes/select_scenario.py index faabde29d..38a55d485 100644 --- a/worker_plan/worker_plan_internal/plan/stages/select_scenario.py +++ b/worker_plan/worker_plan_internal/plan/nodes/select_scenario.py @@ -5,11 +5,11 @@ from worker_plan_api.filenames import FilenameEnum from worker_plan_internal.llm_util.llm_executor import LLMExecutor from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.plan_type import PlanTypeTask -from worker_plan_internal.plan.stages.focus_on_vital_few_levers import FocusOnVitalFewLeversTask -from worker_plan_internal.plan.stages.candidate_scenarios import CandidateScenariosTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.plan_type import PlanTypeTask +from worker_plan_internal.plan.nodes.focus_on_vital_few_levers import FocusOnVitalFewLeversTask +from worker_plan_internal.plan.nodes.candidate_scenarios import CandidateScenariosTask class SelectScenarioTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/self_audit.py b/worker_plan/worker_plan_internal/plan/nodes/self_audit.py similarity index 79% rename from worker_plan/worker_plan_internal/plan/stages/self_audit.py rename to worker_plan/worker_plan_internal/plan/nodes/self_audit.py index cbe700365..c0a93533c 100644 --- a/worker_plan/worker_plan_internal/plan/stages/self_audit.py +++ b/worker_plan/worker_plan_internal/plan/nodes/self_audit.py @@ -6,22 +6,22 @@ from worker_plan_internal.llm_util.llm_executor import LLMExecutor from worker_plan_api.speedvsdetail import SpeedVsDetailEnum from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.data_collection import DataCollectionTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask -from worker_plan_internal.plan.stages.swot_analysis import SWOTAnalysisTask -from worker_plan_internal.plan.stages.team_markdown import TeamMarkdownTask -from worker_plan_internal.plan.stages.convert_pitch_to_markdown import ConvertPitchToMarkdownTask -from worker_plan_internal.plan.stages.expert_review import ExpertReviewTask -from worker_plan_internal.plan.stages.consolidate_governance import ConsolidateGovernanceTask -from worker_plan_internal.plan.stages.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask -from worker_plan_internal.plan.stages.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task -from worker_plan_internal.plan.stages.review_plan import ReviewPlanTask -from worker_plan_internal.plan.stages.questions_and_answers import QuestionsAndAnswersTask -from worker_plan_internal.plan.stages.premortem import PremortemTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.data_collection import DataCollectionTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.swot_analysis import SWOTAnalysisTask +from worker_plan_internal.plan.nodes.team_markdown import TeamMarkdownTask +from worker_plan_internal.plan.nodes.convert_pitch_to_markdown import ConvertPitchToMarkdownTask +from worker_plan_internal.plan.nodes.expert_review import ExpertReviewTask +from worker_plan_internal.plan.nodes.consolidate_governance import ConsolidateGovernanceTask +from worker_plan_internal.plan.nodes.markdown_documents import MarkdownWithDocumentsToCreateAndFindTask +from worker_plan_internal.plan.nodes.wbs_project_level1_level2_level3 import WBSProjectLevel1AndLevel2AndLevel3Task +from worker_plan_internal.plan.nodes.review_plan import ReviewPlanTask +from worker_plan_internal.plan.nodes.questions_and_answers import QuestionsAndAnswersTask +from worker_plan_internal.plan.nodes.premortem import PremortemTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/setup.py b/worker_plan/worker_plan_internal/plan/nodes/setup.py similarity index 100% rename from worker_plan/worker_plan_internal/plan/stages/setup.py rename to worker_plan/worker_plan_internal/plan/nodes/setup.py diff --git a/worker_plan/worker_plan_internal/plan/stages/start_time.py b/worker_plan/worker_plan_internal/plan/nodes/start_time.py similarity index 100% rename from worker_plan/worker_plan_internal/plan/stages/start_time.py rename to worker_plan/worker_plan_internal/plan/nodes/start_time.py diff --git a/worker_plan/worker_plan_internal/plan/stages/strategic_decisions_markdown.py b/worker_plan/worker_plan_internal/plan/nodes/strategic_decisions_markdown.py similarity index 89% rename from worker_plan/worker_plan_internal/plan/stages/strategic_decisions_markdown.py rename to worker_plan/worker_plan_internal/plan/nodes/strategic_decisions_markdown.py index f7bd80974..3ef26b7d4 100644 --- a/worker_plan/worker_plan_internal/plan/stages/strategic_decisions_markdown.py +++ b/worker_plan/worker_plan_internal/plan/nodes/strategic_decisions_markdown.py @@ -3,8 +3,8 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.lever.strategic_decisions_markdown import StrategicDecisionsMarkdown from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.enrich_levers import EnrichLeversTask -from worker_plan_internal.plan.stages.focus_on_vital_few_levers import FocusOnVitalFewLeversTask +from worker_plan_internal.plan.nodes.enrich_levers import EnrichLeversTask +from worker_plan_internal.plan.nodes.focus_on_vital_few_levers import FocusOnVitalFewLeversTask class StrategicDecisionsMarkdownTask(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/swot_analysis.py b/worker_plan/worker_plan_internal/plan/nodes/swot_analysis.py similarity index 85% rename from worker_plan/worker_plan_internal/plan/stages/swot_analysis.py rename to worker_plan/worker_plan_internal/plan/nodes/swot_analysis.py index b488c69bd..fe241e2b7 100644 --- a/worker_plan/worker_plan_internal/plan/stages/swot_analysis.py +++ b/worker_plan/worker_plan_internal/plan/nodes/swot_analysis.py @@ -6,14 +6,14 @@ from worker_plan_internal.swot.swot_analysis import SWOTAnalysis from worker_plan_internal.format_json_for_use_in_query import format_json_for_use_in_query from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.setup import SetupTask -from worker_plan_internal.plan.stages.strategic_decisions_markdown import StrategicDecisionsMarkdownTask -from worker_plan_internal.plan.stages.scenarios_markdown import ScenariosMarkdownTask -from worker_plan_internal.plan.stages.identify_purpose import IdentifyPurposeTask -from worker_plan_internal.plan.stages.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask -from worker_plan_internal.plan.stages.pre_project_assessment import PreProjectAssessmentTask -from worker_plan_internal.plan.stages.project_plan import ProjectPlanTask -from worker_plan_internal.plan.stages.related_resources import RelatedResourcesTask +from worker_plan_internal.plan.nodes.setup import SetupTask +from worker_plan_internal.plan.nodes.strategic_decisions_markdown import StrategicDecisionsMarkdownTask +from worker_plan_internal.plan.nodes.scenarios_markdown import ScenariosMarkdownTask +from worker_plan_internal.plan.nodes.identify_purpose import IdentifyPurposeTask +from worker_plan_internal.plan.nodes.consolidate_assumptions_markdown import ConsolidateAssumptionsMarkdownTask +from worker_plan_internal.plan.nodes.pre_project_assessment import PreProjectAssessmentTask +from worker_plan_internal.plan.nodes.project_plan import ProjectPlanTask +from worker_plan_internal.plan.nodes.related_resources import RelatedResourcesTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/team_markdown.py b/worker_plan/worker_plan_internal/plan/nodes/team_markdown.py similarity index 90% rename from worker_plan/worker_plan_internal/plan/stages/team_markdown.py rename to worker_plan/worker_plan_internal/plan/nodes/team_markdown.py index c7ff93135..19c31eeb5 100644 --- a/worker_plan/worker_plan_internal/plan/stages/team_markdown.py +++ b/worker_plan/worker_plan_internal/plan/nodes/team_markdown.py @@ -4,8 +4,8 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.team.team_markdown_document import TeamMarkdownDocumentBuilder from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.enrich_team_environment_info import EnrichTeamMembersWithEnvironmentInfoTask -from worker_plan_internal.plan.stages.review_team import ReviewTeamTask +from worker_plan_internal.plan.nodes.enrich_team_environment_info import EnrichTeamMembersWithEnvironmentInfoTask +from worker_plan_internal.plan.nodes.review_team import ReviewTeamTask logger = logging.getLogger(__name__) diff --git a/worker_plan/worker_plan_internal/plan/stages/wbs_project_level1_and_level2.py b/worker_plan/worker_plan_internal/plan/nodes/wbs_project_level1_and_level2.py similarity index 87% rename from worker_plan/worker_plan_internal/plan/stages/wbs_project_level1_and_level2.py rename to worker_plan/worker_plan_internal/plan/nodes/wbs_project_level1_and_level2.py index 03b4c37b1..07895216b 100644 --- a/worker_plan/worker_plan_internal/plan/stages/wbs_project_level1_and_level2.py +++ b/worker_plan/worker_plan_internal/plan/nodes/wbs_project_level1_and_level2.py @@ -3,8 +3,8 @@ from worker_plan_internal.plan.run_plan_pipeline import PlanTask from worker_plan_internal.wbs.wbs_populate import WBSPopulate from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.create_wbs_level1 import CreateWBSLevel1Task -from worker_plan_internal.plan.stages.create_wbs_level2 import CreateWBSLevel2Task +from worker_plan_internal.plan.nodes.create_wbs_level1 import CreateWBSLevel1Task +from worker_plan_internal.plan.nodes.create_wbs_level2 import CreateWBSLevel2Task class WBSProjectLevel1AndLevel2Task(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/stages/wbs_project_level1_level2_level3.py b/worker_plan/worker_plan_internal/plan/nodes/wbs_project_level1_level2_level3.py similarity index 89% rename from worker_plan/worker_plan_internal/plan/stages/wbs_project_level1_level2_level3.py rename to worker_plan/worker_plan_internal/plan/nodes/wbs_project_level1_level2_level3.py index 901a197c1..4c4220ae3 100644 --- a/worker_plan/worker_plan_internal/plan/stages/wbs_project_level1_level2_level3.py +++ b/worker_plan/worker_plan_internal/plan/nodes/wbs_project_level1_level2_level3.py @@ -4,8 +4,8 @@ from worker_plan_internal.wbs.wbs_task import WBSProject from worker_plan_internal.wbs.wbs_populate import WBSPopulate from worker_plan_api.filenames import FilenameEnum -from worker_plan_internal.plan.stages.wbs_project_level1_and_level2 import WBSProjectLevel1AndLevel2Task -from worker_plan_internal.plan.stages.create_wbs_level3 import CreateWBSLevel3Task +from worker_plan_internal.plan.nodes.wbs_project_level1_and_level2 import WBSProjectLevel1AndLevel2Task +from worker_plan_internal.plan.nodes.create_wbs_level3 import CreateWBSLevel3Task class WBSProjectLevel1AndLevel2AndLevel3Task(PlanTask): diff --git a/worker_plan/worker_plan_internal/plan/run_plan_pipeline.py b/worker_plan/worker_plan_internal/plan/run_plan_pipeline.py index 56b5f1a7d..c8d7713b0 100644 --- a/worker_plan/worker_plan_internal/plan/run_plan_pipeline.py +++ b/worker_plan/worker_plan_internal/plan/run_plan_pipeline.py @@ -160,8 +160,8 @@ def run_with_llm(self, llm: LLM) -> None: # --------------------------------------------------------------------------- # Task class definitions have been extracted to individual files under -# worker_plan_internal/plan/stages/. The pipeline orchestrator that wires -# them together lives in stages/full_plan_pipeline.py. +# worker_plan_internal/plan/nodes/. The pipeline orchestrator that wires +# them together lives in nodes/full_plan_pipeline.py. # --------------------------------------------------------------------------- @@ -216,7 +216,7 @@ def setup(self) -> None: if not (self.run_id_dir / FilenameEnum.INITIAL_PLAN.value).exists(): raise FileNotFoundError(f"The '{FilenameEnum.INITIAL_PLAN.value}' file does not exist in the run_id_dir: {self.run_id_dir!r}") - from worker_plan_internal.plan.stages.full_plan_pipeline import FullPlanPipeline + from worker_plan_internal.plan.nodes.full_plan_pipeline import FullPlanPipeline full_plan_pipeline_task = FullPlanPipeline( run_id_dir=self.run_id_dir, speedvsdetail=self.speedvsdetail,