---
name: mcsj-local-operator-bootstrap
description: "Bootstrap Michel/Foster as a Windows-local MCSJ desktop operator with low-token hands/eyes, UIA/JAB probing, local screenshots/OCR, safety modes, and starter operator files."
version: 0.1.0
author: Hermes Agent
created_by: agent
platforms: [windows, linux]
metadata:
  hermes:
    tags: [mcsj, michel, foster, desktop, windows, uia, accessibility, mcp]
---

# MCSJ Local Operator Bootstrap

## 2026-06-24 operational override

Do not use this bootstrap skill's old `mcsj-local-operator.ps1` screenshot/click loop for live Michel operation. It is historical bootstrap material and contains stale PowerShell/backslash examples. For live MCSJ operation use `mcsj-fast-local-operator` and these commands instead:

```bash
python C:/MCSJAgent/mcsj-jab-client.py health
python C:/MCSJAgent/mcsj-jab-client.py state
python C:/MCSJAgent/mcsj-jab-client.py refresh --max-nodes 200 --max-depth 8
powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:/MCSJAgent/mcsj-fast-operator.ps1 state
powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:/MCSJAgent/mcsj-fast-operator.ps1 screenshot C:/MCSJAgent/proof/michel-current-screen.png
```

Use forward slashes in bash-routed terminal commands. Do not write `C:\MCSJAgent\...` inside shell commands; it can become `C:MCSJAgent...`. Do not use raw `computer_use capture`, raw `cua-driver call list_windows`, or raw `cua-driver call get_window_state` for MCSJ unless explicitly debugging CUA.


Use this when bootstrapping Michel, Foster, or any Windows-local Hermes agent that will operate MCSJ directly on the Windows Server.

Load first:

1. `mcsj-training`
2. `mcsj-desktop-navigation`
3. This skill
4. The relevant menu workflow skill, e.g. `mcsj-desktop-finance`

## Bootstrap packet

A ready-to-copy bootstrap packet was created at:

`/root/mcsj-michel-bootstrap/`

Files:

- `README.md` — first-day checklist and operating model.
- `mcsj-local-operator.ps1` — starter PowerShell helper for local state/UIA/screenshot/click/type/press.
- `michel-first-prompt.txt` — first prompt/persona text for Michel.
- `windows-install-notes.md` — Windows setup notes, Java Access Bridge, accessibility tools, MCP option.
- `known-findings.md` — confirmed MCSJ access findings and PO benchmark.
- `mcp-wrapper-notes.md` — future MCP wrapper design.
- `copy-to-windows.ps1` — Windows-side copy/test installer for the helper.
- `manifest.json` — packet manifest.

## Recommended first Windows install

On the Windows server, create:

```powershell
New-Item -ItemType Directory -Force C:\MCSJAgent\proof | Out-Null
Copy-Item .\mcsj-local-operator.ps1 C:\MCSJAgent\mcsj-local-operator.ps1 -Force
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\mcsj-local-operator.ps1 state
```

Then enable Java Access Bridge if needed and restart MCSJ:

```powershell
& 'C:\Edmunds\MCSJ26.1\jre\bin\jabswitch.exe' /enable
& 'C:\Edmunds\MCSJ26.1\jre_x64\bin\jabswitch.exe' /enable
Get-Content $env:USERPROFILE\.accessibility.properties
```

Expected accessibility properties include:

```text
assistive_technologies=com.sun.java.accessibility.AccessBridge
screen_magnifier_present=true
```

## Local operator commands

Starter helper commands:

```powershell
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\mcsj-local-operator.ps1 state
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\mcsj-local-operator.ps1 processes
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\mcsj-local-operator.ps1 services
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\mcsj-local-operator.ps1 uia
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\mcsj-local-operator.ps1 screenshot C:\MCSJAgent\proof\screen.png
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\mcsj-local-operator.ps1 crop 350 315 900 580 C:\MCSJAgent\proof\mcsj-window.png
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\mcsj-local-operator.ps1 click 991 358
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\mcsj-local-operator.ps1 type "Supplies"
powershell -ExecutionPolicy Bypass -File C:\MCSJAgent\mcsj-local-operator.ps1 press F3
```

## Safety defaults

Michel should default to read-only.

Allowed without special approval:

- inspect processes/services
- inspect UIA tree
- screenshot/crop/OCR
- read logs
- navigate read-only screens

Require explicit Saitz approval before:

- Save
- Delete
- Void
- Post
- Update
- Close Batch
- creating checks/payroll/tax/billing changes
- any production-impacting transaction

## Token discipline

Preferred state output is compact JSON/text:

```json
{
  "screen": "Purchase Order Maintenance",
  "database": "chestervillagenydb",
  "po": "26-02115",
  "line_items": "2",
  "po_total": "101.00",
  "dialog": null,
  "proof": "C:\\MCSJAgent\\proof\\po-26-02115-header.png"
}
```

Avoid full screenshots and full OCR dumps unless debugging or mapping a new screen.

## Known access reality

Confirmed by prior live tests:

- UIA/JAB can expose MCSJ login/error/confirmation dialogs and buttons.
- UIA `InvokePattern` successfully clicked an MCSJ OK button.
- Generic UIA did not expose the main PO header/line-item form fields in the tested state; it saw mostly the top `SunAwtFrame`.
- Practical MCSJ operation is currently hybrid:
  - UIA/JAB for dialogs and exposed controls.
  - local screenshot/crop/OCR/coordinate/keyboard for main forms.
  - AI vision only for discovery/ambiguity/proof when local parsing fails.

## Tools worth installing only if needed

- Accessibility Insights for Windows
- Windows SDK Inspect.exe
- UIA Verify if available
- Java Ferret / Java Monkey if compatible
- AutoHotkey v2
- Tesseract OCR
- Python packages: pywinauto, uiautomation, pywin32, mss, pillow, pytesseract, opencv-python

Do not install everything blindly. Start with built-in PowerShell/.NET UIA and the provided operator script.
