diff --git a/.planning/phases/05-polish-deploy/05-CONTEXT.md b/.planning/phases/05-polish-deploy/05-CONTEXT.md
new file mode 100644
index 0000000..e545cde
--- /dev/null
+++ b/.planning/phases/05-polish-deploy/05-CONTEXT.md
@@ -0,0 +1,59 @@
+# Phase 5: Polish & Deploy - Context
+
+**Gathered:** 2026-01-31
+**Status:** Ready for planning
+
+
+## Phase Boundary
+
+Production-ready deployment on Unraid — remove NLU/Claude nodes from workflow (replace with keyword routing), add error handling, write deployment instructions, and perform end-to-end testing. No new features.
+
+
+
+
+## Implementation Decisions
+
+### NLU removal approach
+- Rip and replace — remove Claude nodes entirely, build fresh keyword routing
+- Add persistent Telegram menu button for command discovery
+- Menu structure: grouped — "Status" and "Actions" (submenu with start/stop/restart/update/logs)
+- Keywords still work for power users who type directly
+
+### Error messaging
+- Minimal error messages — "Failed to start plex" without verbose details
+- Infrastructure errors (Docker socket unreachable) get specific message: "Cannot connect to Docker"
+- Success messages terse — "✓ plex started"
+
+### Deployment packaging
+- README only — step-by-step instructions in markdown
+- Workflow JSON committed to repo
+- Sensitive values (Telegram user ID) moved to n8n credentials system — not hardcoded in workflow JSON
+- No troubleshooting section — focused on initial setup only
+
+### Claude's Discretion
+- README location (root vs docs folder)
+- Whether to include retry buttons on retriable errors
+- Exact menu button labels and grouping UX
+
+
+
+
+## Specific Ideas
+
+- User wants UX buttons in Telegram rather than typing commands
+- Persistent menu always visible, not just on unknown input
+- Credentials approach allows sharing workflow without exposing user ID
+
+
+
+
+## Deferred Ideas
+
+None — discussion stayed within phase scope
+
+
+
+---
+
+*Phase: 05-polish-deploy*
+*Context gathered: 2026-01-31*