diff --git a/.planning/phases/05-polish-deploy/.continue-here.md b/.planning/phases/05-polish-deploy/.continue-here.md
new file mode 100644
index 0000000..472a2ba
--- /dev/null
+++ b/.planning/phases/05-polish-deploy/.continue-here.md
@@ -0,0 +1,82 @@
+---
+phase: 05-polish-deploy
+task: 2
+total_tasks: 2
+status: checkpoint_pending
+last_updated: 2026-02-01T03:45:00Z
+---
+
+
+Phase 5 Plan 03 is in progress. Task 1 (README) is complete. Task 2 is a human verification checkpoint that was paused mid-testing. User was testing end-to-end functionality and found/fixed several issues during the testing session.
+
+
+
+
+## Plan 05-01: NLU Cleanup (COMPLETE)
+- Removed Claude/NLU nodes from workflow
+- Added Keyword Router with 7 routes (/start, status, restart, start, stop, update, logs)
+- Added Show Menu node (simplified to text-only after keyboard issues)
+
+## Plan 05-02: Error Hardening (COMPLETE)
+- Standardized error messages to terse format
+- Note: Credential migration was reverted - n8n IF nodes don't support $credentials
+
+## Plan 05-03: Deployment README (IN PROGRESS)
+- Task 1: README.md written ✓
+- Task 2: End-to-end testing - PAUSED (checkpoint)
+
+## Bug Fixes During Testing Session
+1. **Show Menu 404** - Switched from HTTP Request to native Telegram node
+2. **Show Menu HTML parse error** - Changed `` to `[name]` to avoid HTML parsing
+3. **Container matching** - Fixed to prioritize exact matches (jellyplex vs plex issue)
+4. **Credential reference** - Reverted to hardcoded user ID (n8n IF nodes don't support $credentials)
+5. **Update missing old image removal** - Added image cleanup after successful update
+6. **Update rate limiting** - Added pull error detection and acknowledgment message
+
+
+
+
+## Plan 05-03 Task 2: End-to-end testing
+Human verification checkpoint - user needs to test:
+1. Menu: Send /start or unknown text → see command list
+2. Status: Type "status" → see container list
+3. Start: Type "start " → container starts
+4. Stop: Type "stop " → container stops
+5. Restart: Type "restart " → container restarts
+6. Update: Type "update " → see "Updating...", then result
+7. Logs: Type "logs " → see log output
+8. Auth: Message from different account → no response
+
+User was mid-testing when paused.
+
+
+
+
+- **Keyboard abandoned** - Native Telegram node's replyKeyboard didn't work; using text menu instead
+- **Hardcoded user ID** - n8n IF nodes don't support credentials; user must edit ID in workflow directly
+- **Exact match priority** - Container matching now checks exact match first, then substring
+- **Update acknowledgment** - Send "Updating..." immediately to confirm long-running command received
+- **Old image removal** - Mimic Unraid behavior: delete old image after successful update
+- **Pull error detection** - Check for rate limiting/errors before continuing update flow
+
+
+
+None currently - all issues found during testing were resolved.
+
+
+
+This was a testing/debugging session during Phase 5 Plan 03's human verification checkpoint. The user was testing the bot end-to-end and found several issues that were fixed on the fly. All fixes have been committed. The workflow is substantially more robust now.
+
+Key commits from this session:
+- d03e79c: Update acknowledgment + pull error handling
+- 0839c44: Old image removal after update
+- 004911e: Exact match priority for container names
+- 0b6dfe6, 0b140c4, 6defb2d: Show Menu fixes
+- 32fd965: Reverted credential reference (doesn't work in IF nodes)
+
+
+
+Resume testing: User should re-import the latest workflow and continue the end-to-end verification from the checkpoint. After all 8 tests pass, type "approved" to complete Plan 03 and trigger phase verification.
+
+Command: `/gsd:resume-work`
+