> ## Documentation Index
> Fetch the complete documentation index at: https://committ.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Verification Flow

> Active verification session with GPS check, photo capture, and CAPTCHA.

# Verification Flow

The (verify-commit) route group handles active verification sessions where the user proves they are fulfilling their commitment.

***

## Verification Trigger

Verification is triggered when a task instance's start\_time arrives. The hardware AlarmManager fires, the app wakes, and the user is presented with the verification screen.

***

## Verification Modes

| Mode                | Behavior                                                                                |
| :------------------ | :-------------------------------------------------------------------------------------- |
| **Just Show Up**    | User taps a button to confirm presence. GPS and photo checks validate location.         |
| **Stay Throughout** | Random checkpoint pings during the session window. User must verify at each checkpoint. |

***

## Verification Engine

The useVerificationEngine hook drives the session:

1. Polls GPS coordinates at 1Hz intervals
2. Compares current position against the commitment's geofence
3. Manages camera state for photo capture
4. Tracks CAPTCHA progress for waiver challenges
5. Updates instance status via Triple-Write on completion

***

## State Management

The useVerificationStore tracks real-time verification state:

* Current GPS coordinates and accuracy
* Geofence match status (inside/outside)
* Camera capture state
* Checkpoint completion progress
* CAPTCHA solve count

***

## Failure Handling

If the user fails to verify within the grace period, the instance status transitions to "failed", and the penalty waiver offer is triggered (if configured). A durable Convex scheduled function is armed as the penalty deadline.
