mirror of
https://github.com/obra/superpowers.git
synced 2026-07-09 19:49:05 +08:00
docs(skills): name concrete macOS tools in the computer-use ladder
This commit is contained in:
@@ -48,19 +48,19 @@ Accessibility automation on a real desktop is not always available cleanly.
|
||||
Climb a ladder of approaches, and when a rung is blocked, record *why* before
|
||||
trying the next one:
|
||||
|
||||
1. **Scripting API** (e.g. an OS-level accessibility scripting bridge) — the
|
||||
cheap default. Blocked signature: a permission error before any command
|
||||
runs (no Accessibility grant).
|
||||
2. **UI-test harness** (a first-class automated-testing framework for the
|
||||
platform) — the "proper" way to drive the real app end to end. Blocked
|
||||
signature: the harness process itself never establishes its automation
|
||||
session (e.g. an unsigned test runner killed before it attaches) — that's
|
||||
the harness failing to bootstrap, not a bug in the app under test.
|
||||
3. **Raw input injection** (a coordinate-based click/keystroke tool plus a
|
||||
screenshot after each action) — the fallback of last resort when both of
|
||||
the above are blocked. Coarser than element-indexed driving, so screenshot
|
||||
after every action and confirm the click landed on the intended window
|
||||
before trusting the result.
|
||||
1. **Accessibility scripting** (on macOS, `osascript`/AppleScript) — the cheap
|
||||
default. Blocked signature: a permission error before any command runs
|
||||
(no Accessibility grant, e.g. `osascript` error `-1719`).
|
||||
2. **UI-test harness** (on macOS, an XCUITest automation session) — the
|
||||
"proper" way to drive the real app end to end. Blocked signature: the
|
||||
harness process itself never establishes its automation session (an
|
||||
unsigned test runner killed before it attaches) — that's the harness
|
||||
failing to bootstrap, not a bug in the app under test.
|
||||
3. **Raw input injection** (on macOS, a coordinate-clicking tool such as
|
||||
`cliclick` plus `screencapture` after each action) — the fallback of last
|
||||
resort when both of the above are blocked. Coarser than element-indexed
|
||||
driving, so screenshot after every action and confirm the click landed on
|
||||
the intended window before trusting the result.
|
||||
|
||||
Every rung you tried belongs in the report, including the ones that failed —
|
||||
not only the one that worked. Diagnose each blocked rung enough to state the
|
||||
|
||||
Reference in New Issue
Block a user