verifylisted
Install: claude install-skill zchan0/MyUsage
# Verifying MyUsage changes
The surface is a macOS menu bar app. Do NOT try to click the status
item via System Events / accessibility — dev builds may stall on a
Keychain dialog before the item exists. Use the in-process autopilot
instead (DEBUG builds only).
## Render the popover to a PNG
```bash
swift build
SCRATCH=$(mktemp -d)
MYUSAGE_AUTOPILOT=open:0 \
MYUSAGE_SNAPSHOT=$SCRATCH/panel.png \
MYUSAGE_NO_PROMPT=1 \
MYUSAGE_DEBUG_LOG=$SCRATCH/autopilot.log \
.build/debug/MyUsage > /dev/null 2>&1 &
APP_PID=$!
# Poll for completion (timeline: ~4s toggle + ~6s settle + snapshot):
for i in $(seq 1 30); do
sleep 1
grep -q "AUTOPILOT open:0 done" $SCRATCH/autopilot.log 2>/dev/null && break
done
kill $APP_PID
```
Then Read `$SCRATCH/panel.png`. Renders with the machine's live
provider data and current system appearance (light/dark follows the
OS — you don't get to pick).
## Gotchas
- `MYUSAGE_NO_PROMPT=1` is belt-and-braces; despite the non-.app
prompt-suppression policy in ClaudeCredentialStore, a bare-binary
launch has been observed to throw the macOS Keychain password
dialog for "Claude Code-credentials" (blocks startup until
dismissed — a policy regression worth checking if it recurs).
- The autopilot toggle occasionally doesn't fire (startup race);
if the log stops at `setPanelFrame` lines with no `click`, just
relaunch — second attempt has always worked.
- `open:N` opens status item N (merged mode → 0). `MYUSAGE_AUTOPILOT=1`
instead runs the mode-switch