verify-hermes-mobile-shiplisted
Install: claude install-skill IgorGanapolsky/mac-yolo-safeguards
# Verify Hermes Mobile ship claims
## Rule
**No "shipped" / "full E2E passed" / "verified on simulator" without artifact paths in the same turn.**
Continuous E2E ≠ `full-suite.yaml`. Unit tests ≠ Maestro. Device install timestamp ≠ UI behavior proof.
## Step 0 — session
```bash
node tools/agent-session-start.js
```
## Step 1 — canonical status file
```bash
cat hermes-mobile/docs/proofs/continuous/latest.json
```
| Field | Meaning |
|-------|---------|
| `unit` | Jest CI result |
| `e2e` | Maestro **continuous** subset only |
| `flows` | Usually `ship-guard.yaml` + `chat-send-persistence.yaml` — **not** full-suite |
| `updatedAt` | Stale if older than your diff |
## Step 2 — what actually ran
```bash
ls -lt hermes-mobile/docs/proofs/continuous/run-*.log | head -5
tail -30 hermes-mobile/docs/proofs/continuous/run-<latest>.log
```
Record: **platform** (Android USB vs iOS sim), **flows**, **pass/fail**, **timestamp**.
## Step 3 — simulator readiness (before claiming sim E2E)
```bash
xcrun simctl list runtimes
xcrun simctl list devices available | head -20
adb devices
```
| State | Implication |
|-------|-------------|
| `runtime profile not found` / empty runtimes | Sim E2E **blocked** — do not start Maestro |
| No adb device | Continuous runner falls back to sim → often fails |
| Device connected | Prefer `npm run e2e` / continuous on Android |
## Step 4 — run proofs (scoped)
After `hermes-mobile/src` edits:
```bash
cd hermes-mobile
npm test -- --maxWorkers=1