# Michel Phase 1/2 keyboard-first upgrade

Date: 2026-06-26
Target: local Windows MCSJ demo box, MCSJ running in the interactive Administrator desktop session.

## Installed tools

Phase 1:

- Chocolatey: `C:\ProgramData\chocolatey\bin\choco.exe`
- AutoHotkey v2: `C:\Program Files\AutoHotkey\v2\AutoHotkey64.exe`
- Tesseract OCR: `C:\Program Files\Tesseract-OCR\tesseract.exe`
- Python 3.12 packages:
  - `mss`
  - `pillow`
  - `opencv-python`
  - `pytesseract`
  - `pywin32`
  - `uiautomation`
  - `psutil`
  - `pyautogui`
  - `pyperclip`

Phase 2:

- Accessibility Insights: `C:\Program Files (x86)\AccessibilityInsights\1.1\AccessibilityInsights.exe`
- Windows SDK Inspect: `C:\Program Files (x86)\Windows Kits\10\bin\x64\inspect.exe`
- Java Access Bridge confirmed enabled in `C:\Users\Administrator\.accessibility.properties`:
  - `assistive_technologies=com.sun.java.accessibility.AccessBridge`
  - `screen_magnifier_present=true`

## MichelBridge files

- Bridge CLI: `C:\MCSJAgent\MichelBridge\michel_bridge.py`
- AHK primitive runner: `C:\MCSJAgent\MichelBridge\MichelKeys.ahk`
- Interactive bridge runner: `C:\MCSJAgent\run-michel-bridge-interactive.ps1`
- Starter tab maps:
  - `C:\MCSJAgent\MichelBridge\tabmaps\global-keyboard.json`
  - `C:\MCSJAgent\MichelBridge\tabmaps\purchase-order-draft.json`
- Starter crop regions:
  - `C:\MCSJAgent\MichelBridge\crops\starter-regions.json`

## Command pattern from WinRM/non-interactive callers

Use the interactive wrapper so actions run in Michel's local desktop session:

```powershell
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\run-michel-bridge-interactive.ps1 state
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\run-michel-bridge-interactive.ps1 activate
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\run-michel-bridge-interactive.ps1 fingerprint
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\run-michel-bridge-interactive.ps1 tab 5
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\run-michel-bridge-interactive.ps1 press F3
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\run-michel-bridge-interactive.ps1 paste "demo text"
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\run-michel-bridge-interactive.ps1 screenshot C:\MCSJAgent\proof\MichelBridge\screen.png
```

## Smoke-test results

Verified from the interactive desktop session:

- `activate` returned `MCSJ - 2026.1 (chestervillagenydb)`.
- `fingerprint` identified `Purchase Order / PO visible` with signals: `mcsj-text`, `purchase-order`, `top-menu`.
- `press ESC` returned success against the MCSJ window.
- `tab 1` returned success against the MCSJ window.
- `screenshot` created `C:\MCSJAgent\proof\MichelBridge\bridge-smoke2.png` at 1600x1200.
- AutoHotkey smoke returned success for `press ESC` against the MCSJ window.

## Operating rule

Michel should now be keyboard/tab-first:

1. Identify/fingerprint current screen using compact state and tiny OCR crops.
2. Use known hotkeys and Tab/Shift+Tab sequences.
3. Use clipboard paste for text entry.
4. Use screenshots only for proof/debug/new-screen mapping.
5. Do not save/post/delete/void/update unless explicitly authorized for the demo task.

## Next calibration targets

- Calibrate exact tab index map for Purchase Order Maintenance from stable anchors.
- Calibrate line-item grid sequence.
- Add screen fingerprints for common Finance, Billing/Collections, Personnel screens.
- Add dialog fingerprints for OK/Cancel/Yes/No/error/warning dialogs.
