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

# Verification

> Verification checklist for OpenClix integration and generated artifacts.

Use this checklist after running the workflow.

## Build and runtime checks

* Run your platform build/analyze commands successfully.
* Confirm OpenClix touchpoints are wired in app initialization/event/lifecycle paths.
* Confirm local notification / in-app hook paths execute in test scenarios.
* If the app already had local notifications, confirm the integration report states what was detected, what was migration-capable, and whether those paths were migrated or preserved.
* Confirm notification permission is requested before campaign triggers fire.
* Confirm foreground notification display is configured (iOS / Expo).

## Artifact checks

* `.openclix/campaigns/openclix-config.json` exists and is schema-valid against `https://openclix.ai/schemas/openclix.schema.json`.
* `.openclix/analytics/impact-metrics.json` exists.
* `.openclix/analytics/impact-report.md` exists.
* `.openclix/campaigns/update-recommendations.json` exists after `openclix-update-campaigns`.
* `.openclix/campaigns/openclix-config.next.json` exists after `openclix-update-campaigns`.
* `.openclix/openclix-update/openclix-update-plan.json` exists after `openclix-update`.
* `.openclix/openclix-update/openclix-update-report.md` exists after `openclix-update` plan/apply cycle.
* `.openclix/openclix-update/openclix-update-apply.json` exists after `apply_sync.sh --apply`.
* `.openclix/automation/run-summary.json` exists after running retention ops automation.
* `.openclix/automation/prompts/` contains expected agent prompt files.

## Schema validation commands

Use the canonical schema URL:

* `https://openclix.ai/schemas/openclix.schema.json`

Run:

```bash theme={null}
jq . .openclix/campaigns/openclix-config.json >/dev/null
npx --yes ajv-cli validate \
  -s https://openclix.ai/schemas/openclix.schema.json \
  -d .openclix/campaigns/openclix-config.json
```

If remote schema fetch is restricted:

```bash theme={null}
curl -fsSL https://openclix.ai/schemas/openclix.schema.json -o .openclix/campaigns/openclix.schema.json
npx --yes ajv-cli validate \
  -s .openclix/campaigns/openclix.schema.json \
  -d .openclix/campaigns/openclix-config.json
```

## Retention ops automation check

```bash theme={null}
bash scripts/retention_ops_automation.sh \
  --root <target-project-root> \
  --agent all \
  --delivery-mode auto \
  --dry-run
```

Validate:

* Script exits with code `0`.
* `.openclix/automation/run-summary.json` reports `status: "ok"`.
* Prompt files are generated under `.openclix/automation/prompts/`.

## Behavior checks

* At least one representative campaign path can fire under expected conditions.
* Existing non-OpenClix local notifications stay intact unless you explicitly chose to migrate supported flows.
* Suppression and quiet-hour logic behave as configured.
* Debug reasons are available for fired and suppressed outcomes.
