# Mobiai Mobile Verification

> You MUST use this before declaring any mobile work done, fixed, green, or ready — and before committing, pushing, or opening a PR. No completion claim may be made without fresh verification evidence from this session.

- Skill: `arisguimera/mobiai-mobile-verification` (Agent Skill)
- Install (CLI): `npx skillmds@latest add arisguimera/mobiai-mobile-verification`
- Raw SKILL.md: https://api.skillmd.com/api/skills/arisguimera/mobiai-mobile-verification/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: arisguimera (https://skillmd.com/u/arisguimera)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/arisguimera/mobiai-mobile-verification

---


# Mobile Verification Before Completion

<HARD-GATE>
Do NOT state, imply, or signal that work is complete, fixed, passing, ready, or merged-ready until you have just run the verification commands in this message and observed their output. Stale memory of earlier runs does not count.
</HARD-GATE>

## Overview

Claiming work is complete without verification is dishonesty, not efficiency.

**Core principle:** Evidence before claims, always.

**Violating the letter of this rule is violating the spirit of this rule.**

## The Iron Law

```
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
```

If you haven't run the verification command in this message, you cannot claim it passes.

## The Gate Function

```
BEFORE claiming any status or expressing satisfaction:

1. IDENTIFY: What command proves this claim?
2. RUN: Execute the FULL command (fresh, complete)
3. READ: Full output, check exit code, count failures
4. VERIFY: Does output confirm the claim?
   - If NO: State actual status with evidence
   - If YES: State claim WITH evidence
5. ONLY THEN: Make the claim

Skip any step = lying, not verifying
```

## Mobile Verification Commands

| Claim | Android | iOS | Flutter | React Native |
|-------|---------|-----|---------|--------------|
| **Compiles** | `./gradlew assembleDebug` | `xcodebuild build -scheme <S> -destination '...'` | `flutter build apk --debug` | `npx react-native build-android` |
| **Unit tests** | `./gradlew testDebugUnitTest` | `xcodebuild test -scheme <S> -destination '...'` | `flutter test` | `npx jest` |
| **All tests** | `./gradlew connectedDebugAndroidTest` | same as above | `flutter test` | `npx jest` |
| **KMP shared** | `./gradlew allTests` | — | — | — |

## Common Failures

| Claim | Requires | Not Sufficient |
|-------|----------|----------------|
| Tests pass | Test command output: 0 failures | Previous run, "should pass" |
| Build succeeds | Build command: exit 0 | "It compiled before my changes" |
| Bug fixed | Test original symptom: passes | "I changed the line that was wrong" |
| No regressions | Run full test suite | "I only changed one file" |
| Works on both platforms | Verify on EACH platform | "If it works on Android it should work on iOS" |

## Red Flags - STOP

- Using "should", "probably", "seems to"
- Expressing satisfaction before verification ("Great!", "Done!")
- About to commit/push/PR without verification
- Relying on partial verification
- **ANY wording implying success without having run verification**

## Rationalization Prevention

| Excuse | Reality |
|--------|---------|
| "Should work now" | RUN the verification |
| "I'm confident" | Confidence ≠ evidence |
| "Just this once" | No exceptions |
| "Linter passed" | Linter ≠ compiler |
| "I'm tired" | Exhaustion ≠ excuse |
| "Partial check is enough" | Partial proves nothing |

## Multi-Platform Verification

For KMP, Flutter, and React Native projects, verify EACH platform separately:

1. Build for platform A → confirm success
2. Run tests for platform A → confirm pass
3. Build for platform B → confirm success
4. Run tests for platform B → confirm pass
5. Only then claim "works on both platforms"

## When To Apply

**ALWAYS before:**
- ANY variation of success/completion claims
- ANY expression of satisfaction
- Committing, PR creation, task completion
- Moving to next task

## The Bottom Line

**No shortcuts for verification.**

Run the command. Read the output. THEN claim the result.

This is non-negotiable.

