diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index f36463a..7873c84 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -51,23 +51,26 @@ Plans: **Requirements:** MOD-03 (new) -**Plans:** 5 plans +**Plans:** 6 plans Plans: -- [ ] 10.1-01-PLAN.md — Rename sub-workflows, analyze domain boundaries, get user approval -- [ ] 10.1-02-PLAN.md — Extract Batch UI sub-workflow (~50 nodes) -- [ ] 10.1-03-PLAN.md — Extract Container Status sub-workflow (~10-15 nodes) -- [ ] 10.1-04-PLAN.md — Extract Confirmation sub-workflow (~15-20 nodes) +- [x] 10.1-01-PLAN.md — Rename sub-workflows, analyze domain boundaries, get user approval +- [x] 10.1-02-PLAN.md — Extract Batch UI sub-workflow (~50 nodes) +- [x] 10.1-03-PLAN.md — Extract Container Status sub-workflow (~10-15 nodes) +- [x] 10.1-04-PLAN.md — Extract Confirmation sub-workflow (~15-20 nodes) - [x] 10.1-05-PLAN.md — Integration verification and UAT +- [ ] 10.1-06-PLAN.md — Gap closure: document contracts, analyze Code nodes, decide on remaining gaps **Success Criteria:** 1. Main workflow contains only: trigger, auth, keyword routing, sub-workflow dispatch 2. UX/Keyboard sub-workflow handles all batch selection UI and pagination 3. Container Status sub-workflow handles list and status display 4. Confirmation sub-workflow handles all confirmation dialogs -5. Main workflow reduced to ~50-80 nodes (from 192) +5. Main workflow reduced to ~50-80 nodes (from 192) — *Revised: 115-125 realistic target* 6. All sub-workflows have clean input/output contracts +**Note:** Original 50-80 target was unrealistic (58 Telegram response nodes locked to main). Revised target 115-125. Current: 168 nodes after 3 domain extractions. Gap closure plan addresses remaining verification gaps. + --- ### Phase 10.2: Better Logging and Log Management (INSERTED) @@ -160,7 +163,7 @@ Plans: | 8 | Inline Keyboard Infrastructure | v1.1 | Complete | | 9 | Batch Operations | v1.1 | Complete | | 10 | Workflow Modularization | v1.2 | Complete | -| 10.1 | Aggressive Workflow Modularization | v1.2 | Complete | +| 10.1 | Aggressive Workflow Modularization | v1.2 | Gap Closure | | 10.2 | Better Logging & Log Management | v1.2 | Pending (INSERTED) | | 11 | Update All & Callback Limits | v1.2 | Pending | | 12 | Polish & Audit | v1.2 | Pending | @@ -169,4 +172,4 @@ Plans: **v1.2 Coverage:** 12+ requirements mapped across 7 phases --- -*Updated: 2026-02-04 — Phase 10.1 planned (5 plans in 3 waves)* +*Updated: 2026-02-05 — Phase 10.1 gap closure plan added (10.1-06)* diff --git a/.planning/phases/10.1-aggressive-workflow-modularization/10.1-06-PLAN.md b/.planning/phases/10.1-aggressive-workflow-modularization/10.1-06-PLAN.md new file mode 100644 index 0000000..daf91d2 --- /dev/null +++ b/.planning/phases/10.1-aggressive-workflow-modularization/10.1-06-PLAN.md @@ -0,0 +1,214 @@ +--- +phase: 10.1-aggressive-workflow-modularization +plan: 06 +type: execute +wave: 1 +depends_on: [] +files_modified: + - .planning/phases/10.1-aggressive-workflow-modularization/10.1-SUB-WORKFLOW-CONTRACTS.md + - .planning/phases/10.1-aggressive-workflow-modularization/10.1-CODE-NODE-ANALYSIS.md +autonomous: false +gap_closure: true + +must_haves: + truths: + - "All sub-workflow input/output contracts are documented" + - "Code nodes are categorized as orchestration vs domain logic" + - "User has made decision on node count gap closure approach" + artifacts: + - path: ".planning/phases/10.1-aggressive-workflow-modularization/10.1-SUB-WORKFLOW-CONTRACTS.md" + provides: "Input/output contract documentation for all 6 sub-workflows" + - path: ".planning/phases/10.1-aggressive-workflow-modularization/10.1-CODE-NODE-ANALYSIS.md" + provides: "Classification of 62 Code nodes by purpose" + key_links: [] +--- + + +Close verification gaps from Phase 10.1 by documenting sub-workflow contracts, analyzing Code nodes, and obtaining user decision on node count gap. + +Purpose: VERIFICATION.md identified 3 gaps - this plan addresses Gap 2 (Code node analysis incomplete), Gap 3 (contract consistency uncertain), and presents options for Gap 1 (node count target not met). + +Output: Documentation artifacts and user decision on whether to proceed with additional extraction or accept current state. + + + +@/home/luc/.claude/get-shit-done/workflows/execute-plan.md +@/home/luc/.claude/get-shit-done/templates/summary.md + + + +@.planning/PROJECT.md +@.planning/ROADMAP.md +@.planning/STATE.md +@.planning/phases/10.1-aggressive-workflow-modularization/10.1-VERIFICATION.md +@.planning/phases/10.1-aggressive-workflow-modularization/10.1-01-domain-analysis.md +@n8n-workflow.json +@n8n-batch-ui.json +@n8n-status.json +@n8n-confirmation.json +@n8n-update.json +@n8n-actions.json +@n8n-logs.json + + + + + + Task 1: Document Sub-workflow Input/Output Contracts + .planning/phases/10.1-aggressive-workflow-modularization/10.1-SUB-WORKFLOW-CONTRACTS.md + +Create comprehensive documentation of input/output contracts for all 6 sub-workflows by inspecting: + +1. Each sub-workflow's Execute Workflow Trigger node (input fields) +2. Each sub-workflow's terminal nodes (output structure) +3. Main workflow's Prepare* nodes that build inputs for Execute Workflow calls +4. Main workflow's Route* nodes that handle sub-workflow outputs + +Document for each sub-workflow: +- **Input contract:** All expected fields, types, and which are required vs optional +- **Output contract:** The `action` field values and associated data fields +- **Caller nodes:** Which Execute Workflow nodes in main workflow call this sub-workflow +- **Prepare nodes:** Which Code nodes prepare the input data + +Sub-workflows to document: +1. n8n-update.json (Container Update) - ID: 7AvTzLtKXM2hZTio92_mC +2. n8n-actions.json (Container Actions) - ID: fYSZS5PkH0VSEaT5 +3. n8n-logs.json (Container Logs) - ID: oE7aO2GhbksXDEIw +4. n8n-batch-ui.json (Batch UI) - ID: ZJhnGzJT26UUmW45 +5. n8n-status.json (Container Status) - ID: lqpg2CqesnKE2RJQ +6. n8n-confirmation.json (Confirmation Dialogs) - ID: fZ1hu8eiovkCk08G + +Format as markdown with tables showing field name, type, required, and description. + + File exists at .planning/phases/10.1-aggressive-workflow-modularization/10.1-SUB-WORKFLOW-CONTRACTS.md with documented contracts for all 6 sub-workflows + All 6 sub-workflows have documented input/output contracts with field-level detail + + + + Task 2: Analyze and Classify Code Nodes + .planning/phases/10.1-aggressive-workflow-modularization/10.1-CODE-NODE-ANALYSIS.md + +Analyze all 62 Code nodes in the main workflow and classify each as one of: + +1. **ORCHESTRATION** - Must stay in main workflow + - Prepare* nodes that build sub-workflow inputs + - Route/Handle nodes that process sub-workflow outputs + - Parse* nodes that interpret user input for routing + +2. **PRESENTATION** - Locked to main per Telegram decision + - Build* nodes that construct Telegram messages/keyboards + - Format* nodes that prepare display data + +3. **DOMAIN_LOGIC** - Potentially extractable + - Match* nodes (container matching logic) + - Find* nodes (search/filter logic) + - Check* nodes with business logic (not routing switches) + +4. **HYBRID** - Partially extractable + - Nodes that mix orchestration with domain logic + +Create table with columns: +- Node name +- Category (ORCHESTRATION/PRESENTATION/DOMAIN_LOGIC/HYBRID) +- Rationale (why this classification) +- Extraction potential (YES/NO/PARTIAL with explanation) + +Summarize: +- Count by category +- Total extractable nodes (DOMAIN_LOGIC + partial HYBRID) +- Estimated node reduction if extracted + + File exists at .planning/phases/10.1-aggressive-workflow-modularization/10.1-CODE-NODE-ANALYSIS.md with all 62 Code nodes classified + All 62 Code nodes classified with extraction potential assessment + + + + How to address Gap 1 (node count: 168 current vs 115-125 target)? + +Phase 10.1 reduced main workflow from 192 to 168 nodes (12.5% reduction) through extraction of: +- Batch UI (16 nodes in sub-workflow) +- Container Status (11 nodes in sub-workflow) +- Confirmation Dialogs (16 nodes in sub-workflow) + +The 115-125 target assumed extracting 4 domains, but Matching/Disambiguation was deferred. + +Analysis shows: +- 18 Matching/Disambiguation nodes exist in main workflow +- Extracting could reduce by ~10-15 nodes (net after integration overhead) +- Would bring main to ~153-158 nodes (still 30+ nodes above 115-125 target) +- Reaching 115-125 would require reconsidering the locked decision about Telegram responses staying in main workflow + +The verification also notes: +- UAT passed with all functionality working +- 13/16 must-haves verified +- MOD-01 and MOD-02 requirements satisfied + + + + + + + Select: option-a (accept), option-b (extract matching), or option-c (revisit telegram) + + + + + +- [ ] SUB-WORKFLOW-CONTRACTS.md documents all 6 sub-workflows +- [ ] CODE-NODE-ANALYSIS.md classifies all 62 Code nodes +- [ ] User has selected gap closure approach +- [ ] If option-b selected, plan 10.1-07 will be created for Matching extraction + + + +1. Gap 3 closed: Sub-workflow contracts documented with field-level detail +2. Gap 2 closed: Code nodes analyzed and classified +3. Gap 1 addressed: User decision recorded on approach + + + +After completion, create `.planning/phases/10.1-aggressive-workflow-modularization/10.1-06-SUMMARY.md` + +If user selects option-b, additional gap closure plan 10.1-07 will be needed for Matching domain extraction. +