Windows Chat Verification
Use this skill when the task is to verify a real Windows chat application through DesktopManager, especially IntelligenceX Chat and similar WebView2 or Chromium-style shells.
Golden Path
- Make sure the DesktopManager MCP server is available through this plugin.
- The plugin starts
DesktopManagerthrough./scripts/start-desktopmanager-mcp.ps1. - Build
DesktopManager.Clifirst if the repo has not produced a CLI host yet. - Keep the default server read-only unless the verification needs clicks, typing, or layout changes.
- The plugin starts
- Enable only the minimum mutation scope you need.
- Set
DESKTOPMANAGER_MCP_ALLOW_MUTATIONS=1before starting the MCP client session when the workflow needs live interaction. - Use
DESKTOPMANAGER_MCP_ALLOW_PROCESS=IntelligenceX.Chat.App;DesktopManager.TestAppor another narrow process list when you can. - Set
DESKTOPMANAGER_MCP_ALLOW_FOREGROUND_INPUT=1only when a zero-handle UIA editor really needs focused fallback text or key input.
- Set
- Start with inspection, not clicks.
- Read
desktop://windows/visible,desktop://windows/active, anddesktop://monitors. - Use
list_windows,get_active_window, andwindow_existsbefore assuming the target app is ready. - Capture
screenshot_windoworscreenshot_desktopwhen visual proof matters.
- Read
- Launch or attach to the target chat app.
- For IntelligenceX Chat in a sibling repo, use
./scripts/start-intelligencex-chat.ps1if available. - Otherwise use
launch_processorlaunch_and_wait_for_window. - Prefer
wait_for_windowover blind retries.
- For IntelligenceX Chat in a sibling repo, use
- Inspect controls before typing.
- Use
list_window_controlsfirst. - For WebView2 or Chromium-style surfaces, use
diagnose_window_controlswhen expected edit controls are missing or unstable. - Prefer saved control targets when the same prompt area or send button will be reused.
- Use
- Interact with the smallest safe target.
- Prefer
click_control,set_control_text, andsend_control_keyswhen the app exposes usable controls. - If the chat editor is a zero-handle UIA surface, use explicit foreground fallback only when the server was started with
--allow-foreground-input. - If structure still fails, switch to screenshot-assisted targeting with
get_window_geometry,save_window_target, andclick_window_point. - For
IntelligenceX.Chat, prefer the app-owned automation contract through./scripts/invoke-intelligencex-chat-automation.ps1before spending time on coordinate fallbacks.
- Prefer
- Verify the result from more than one angle.
- Capture an after screenshot.
- Re-read the relevant controls or window text when possible.
- Confirm the visible transcript or status change instead of trusting the input acknowledgement alone.
- When
IntelligenceX.Chatruns in automation mode, confirmwait_for_idle,get_transcript_tail, orlist_conversationsfrom the app-owned pipe.
IntelligenceX Notes
- IntelligenceX Chat currently uses a WebView2 shell with a composer textarea and send button in the web UI.
- In the sibling repo, the current shell template exposes
textarea#promptandbutton#btnSend. - Treat that as helpful context, not a guarantee that UI Automation will expose the same shape on every run.
IntelligenceX.Chatnow also exposes an opt-in app-owned automation pipe in automation mode. That is the preferred verification path when the visible WebView surface is opaque to UIA.- For IntelligenceX verification, prefer this flow:
- launch the app in automation mode or attach to an existing automation-mode instance
- capture the real window with DesktopManager so you still have visual evidence
- call
./scripts/invoke-intelligencex-chat-automation.ps1 -Command new_conversation -LaunchIfNeeded - call
./scripts/invoke-intelligencex-chat-automation.ps1 -Command send_prompt -Text "Reply with only the single word PONG." - call
./scripts/invoke-intelligencex-chat-automation.ps1 -Command wait_for_idle - call
./scripts/invoke-intelligencex-chat-automation.ps1 -Command get_transcript_tail -Count 2 - confirm the latest assistant item matches the expected reply
- keep DesktopManager screenshots and window/control diagnostics alongside the app-owned verification
Decision Rules
- Prefer inspection-first MCP workflows over ad-hoc shell automation.
- Prefer
launch_and_wait_for_windowwhen the very next step depends on the real app window. - Prefer UIA or control-aware actions before coordinate clicks.
- Prefer
diagnose_window_controlsbefore escalating to foreground fallback on modern apps. - Prefer screenshot-assisted window targets over raw pixel guesses when structure is weak.
- Prefer
captureAfterfor mutating actions that matter. - Prefer app-owned contracts over brittle coordinate replay when the target app explicitly provides one.
- If the server blocks mutating tools, explain that the MCP session is still in read-only mode instead of pretending the selector failed.
Useful Environment Variables
DESKTOPMANAGER_REPO_ROOTDESKTOPMANAGER_MCP_EXEDESKTOPMANAGER_MCP_DLLDESKTOPMANAGER_MCP_ALLOW_MUTATIONSDESKTOPMANAGER_MCP_ALLOW_PROCESSDESKTOPMANAGER_MCP_DENY_PROCESSDESKTOPMANAGER_MCP_ALLOW_FOREGROUND_INPUTDESKTOPMANAGER_MCP_DRY_RUNINTELLIGENCEX_REPO_ROOTIXCHAT_AUTOMATION_MODE
Reference Files
Docs/DesktopManager.Mcp.md.agents/skills/desktopmanager-operator/SKILL.mdplugins/desktopmanager-windows-verification/scripts/start-desktopmanager-mcp.ps1plugins/desktopmanager-windows-verification/scripts/start-intelligencex-chat.ps1plugins/desktopmanager-windows-verification/scripts/invoke-intelligencex-chat-automation.ps1