a409671dc6
Phase 09: Batch Operations - 4 plans in 4 waves - 3 autonomous, 1 with checkpoint - Ready for execution Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
168 lines
5.3 KiB
Markdown
168 lines
5.3 KiB
Markdown
---
|
|
phase: 09-batch-operations
|
|
plan: 04
|
|
type: execute
|
|
wave: 4
|
|
depends_on: [09-03]
|
|
files_modified: [n8n-workflow.json]
|
|
autonomous: false
|
|
|
|
must_haves:
|
|
truths:
|
|
- "All batch operation flows work correctly via text commands"
|
|
- "All batch operation flows work correctly via inline keyboard"
|
|
- "Error handling behaves correctly when containers fail"
|
|
- "Existing single-container commands still work (no regression)"
|
|
artifacts: []
|
|
key_links: []
|
|
---
|
|
|
|
<objective>
|
|
Verify all batch operation flows work correctly and existing functionality is preserved.
|
|
|
|
Purpose: Ensure batch operations meet requirements before marking phase complete.
|
|
Output: Verified working batch system with human confirmation.
|
|
</objective>
|
|
|
|
<execution_context>
|
|
@/home/luc/.claude/get-shit-done/workflows/execute-plan.md
|
|
@/home/luc/.claude/get-shit-done/templates/summary.md
|
|
</execution_context>
|
|
|
|
<context>
|
|
@.planning/PROJECT.md
|
|
@.planning/ROADMAP.md
|
|
@.planning/STATE.md
|
|
@.planning/phases/09-batch-operations/09-CONTEXT.md
|
|
@.planning/phases/09-batch-operations/09-01-SUMMARY.md
|
|
@.planning/phases/09-batch-operations/09-02-SUMMARY.md
|
|
@.planning/phases/09-batch-operations/09-03-SUMMARY.md
|
|
@n8n-workflow.json
|
|
</context>
|
|
|
|
<tasks>
|
|
|
|
<task type="auto">
|
|
<name>Task 1: Deploy and test batch text commands</name>
|
|
<files>n8n-workflow.json</files>
|
|
<action>
|
|
Deploy the updated workflow and test all batch text command flows.
|
|
|
|
1. Import updated workflow to n8n (via API or manual upload)
|
|
|
|
2. Test batch text commands via Telegram:
|
|
|
|
Test A: Multi-container update
|
|
- Send: "update plex sonarr" (use actual container names from your server)
|
|
- Expected: Progress shows for each container, summary shows results
|
|
|
|
Test B: Multi-container start
|
|
- First stop two containers via existing single commands
|
|
- Send: "start plex sonarr"
|
|
- Expected: Both start without confirmation, summary shows results
|
|
|
|
Test C: Multi-container stop (requires confirmation)
|
|
- Send: "stop plex sonarr"
|
|
- Expected: Confirmation prompt appears
|
|
- Tap Confirm: Both stop, summary shows
|
|
- (Test cancel in separate attempt)
|
|
|
|
Test D: Fuzzy matching
|
|
- Send: "update plex" (when jellyplex also exists, or use your actual partial matches)
|
|
- Expected: Exact match wins, no disambiguation
|
|
|
|
Test E: Disambiguation
|
|
- Send: "update jelly" (if it matches multiple containers)
|
|
- Expected: Disambiguation prompt with options
|
|
|
|
3. Test "update all" command:
|
|
- Send: "update all"
|
|
- Expected: Shows confirmation with count of containers needing updates
|
|
- If all up to date: Shows "All containers are up to date!"
|
|
- Confirm: Batch update executes for listed containers
|
|
|
|
4. Document any issues found for fixing before checkpoint.
|
|
</action>
|
|
<verify>
|
|
All text command tests pass:
|
|
- "update plex sonarr" executes sequential batch update
|
|
- "stop plex sonarr" shows confirmation first
|
|
- "update all" only targets containers with updates
|
|
- Disambiguation works for ambiguous names
|
|
</verify>
|
|
<done>All batch text commands tested and working</done>
|
|
</task>
|
|
|
|
<task type="checkpoint:human-verify" gate="blocking">
|
|
<what-built>Complete batch operations system with text commands and inline keyboard multi-select</what-built>
|
|
<how-to-verify>
|
|
Test the following flows in Telegram:
|
|
|
|
**Text Command Tests:**
|
|
|
|
1. **Batch Update:**
|
|
- Send: "update {container1} {container2}" (replace with your container names)
|
|
- Verify: Progress updates for each container, final summary shows
|
|
|
|
2. **Batch Stop (confirmation required):**
|
|
- Send: "stop {container1} {container2}"
|
|
- Verify: Confirmation prompt appears
|
|
- Tap Confirm and verify both stop
|
|
|
|
3. **Update All:**
|
|
- Send: "update all"
|
|
- Verify: Shows count of containers with updates, or "All up to date"
|
|
- If updates exist, confirm and verify batch executes
|
|
|
|
**Inline Keyboard Tests:**
|
|
|
|
4. **Multi-Select Mode:**
|
|
- Send: "/status"
|
|
- Tap "Select Multiple" button
|
|
- Verify: Container list appears with toggle capability
|
|
|
|
5. **Toggle Selection:**
|
|
- Tap containers to toggle checkmarks
|
|
- Verify: Checkmarks appear/disappear on each tap
|
|
|
|
6. **Execute Batch:**
|
|
- With 2+ containers selected, tap action button (e.g., "Update Selected")
|
|
- Verify: Batch executes for selected containers with progress
|
|
|
|
**Error Handling Test:**
|
|
|
|
7. **Failure Isolation:**
|
|
- If possible, trigger a failure (e.g., update a container that doesn't exist)
|
|
- Verify: Other containers in batch still process, summary shows failure details
|
|
|
|
**Regression Tests:**
|
|
|
|
8. **Single-container commands still work:**
|
|
- "status" shows keyboard
|
|
- "start plex" starts single container
|
|
- "logs plex" shows logs
|
|
</how-to-verify>
|
|
<resume-signal>Type "approved" if all flows work, or describe any issues found</resume-signal>
|
|
</task>
|
|
|
|
</tasks>
|
|
|
|
<verification>
|
|
Human verified all batch flows work correctly via Telegram testing.
|
|
</verification>
|
|
|
|
<success_criteria>
|
|
- BAT-01: User can update multiple containers in one command
|
|
- BAT-02: Batch updates execute sequentially with per-container feedback
|
|
- BAT-03: "Update all" updates only containers with updates available
|
|
- BAT-04: "Update all" requires confirmation
|
|
- BAT-05: One failure doesn't abort remaining batch
|
|
- BAT-06: Final summary shows success/failure count
|
|
- Inline keyboard batch selection works
|
|
- No regression in existing commands
|
|
</success_criteria>
|
|
|
|
<output>
|
|
After completion, create `.planning/phases/09-batch-operations/09-04-SUMMARY.md`
|
|
</output>
|