# Documentation coverage

Generated by `pelty-docs` on every build. For each category the items are read from the code and the documenting page must mention every one; the test `coverage::tests::nothing_is_missing` fails the build otherwise. 2369 of 2369 items covered. Machine-readable: [coverage.json](coverage.json).

| Category | Covered | Page | Source |
|---|---|---|---|
| HTTP API operations | 795/795 | developers/api | router (routes::inventory) |
| Cancellable request hook points (mutating routes) | 459/459 | developers/cancellable | POST/PUT/PATCH/DELETE routes under /api/v1 (not /api/v1/addons/) |
| Events | 38/38 | developers/events | pelty_extensions::events::REGISTRY |
| Cancellable / modifiable events | 4/4 | developers/cancellable | REGISTRY (cancellable or modifiable) |
| Event payload keys | 113/113 | developers/events | REGISTRY payload |
| Pre-events in hooks | 4/4 | developers/hooks | REGISTRY (kind Pre) |
| Hook phases | 4/4 | developers/hooks | pelty_wasm::PHASES |
| Mixin positions | 4/4 | developers/hooks | pelty_api::addon_events::MIXIN_AT |
| Hook / Mixin fields | 9/9 | developers/hooks | runtime.rs Hook, Mixin |
| UI page slots (one route key per page) | 109/109 | developers/widgets | frontend/src/App.tsx routes |
| Named UI slots | 11/11 | developers/widgets | <PluginSlot>/<PluginWidgets> calls |
| Layout slot positions | 4/4 | developers/widgets | ui_schema::LAYOUT_POSITIONS |
| UI node types | 54/54 | developers/ui | ui_schema::NODE_TYPES |
| Capabilities fields | 19/19 | developers/capabilities | runtime.rs Capabilities |
| Package permissions | 6/6 | developers/capabilities | pelty_api::addons::PERMISSIONS |
| Manifest fields | 18/18 | developers/manifest | addons.rs Manifest |
| WIT host/guest functions | 18/18 | developers/wit | crates/pelty-wasm/wit/pelty.wit |
| Environment variables | 32/32 | developers/configuration | extract::env_vars (string literals in crates/*/src) |
| Settings keys | 36/36 | developers/settings-keys | settings::get/set calls + raw SQL |
| General settings fields | 31/31 | developers/settings-keys | general_settings.rs structs |
| Email templates | 49/49 | developers/email-templates | pelty_notifications::template::TEMPLATES |
| Scheduled tasks | 9/9 | developers/scheduled-tasks | automation::TASKS |
| Background job kinds | 17/17 | developers/scheduled-tasks | JOB_KIND consts |
| Migrations | 104/104 | developers/migrations | migrations/ |
| Addons (one page each) | 66/66 | developers/addon-* | extensions/*/*/addon.json |
| Addon settings and module fields | 256/256 | developers/addon-* | addon.json settings, SettingField / module fields in the source |
| Admin pages listed (user docs) | 71/71 | admin-map | frontend navRegistry ADMIN_NAV |
| Client pages listed (user docs) | 21/21 | client-map | frontend navRegistry CLIENT_NAV_TREE |
| Setup checklist steps | 8/8 | admin-setup | setup_wizard.rs steps |

## API schemas

795 operations: 638 with a hand-written schema, 157 registered-route stubs (handler and source only).

| Group | Stubs |
|---|---|
| `` | 11 |
| `account` | 6 |
| `addons` | 2 |
| `admin` | 99 |
| `auth` | 9 |
| `captcha` | 2 |
| `client` | 6 |
| `compat` | 1 |
| `oauth` | 2 |
| `openapi.json` | 1 |
| `plugins` | 2 |
| `public` | 9 |
| `sso` | 4 |
| `store` | 2 |
| `themes` | 1 |

## Not covered

- 157 of 795 HTTP operations have no hand-written request/response schema (marked "registered route"): method, path, handler and source file only.
- Admin pages only listed in the admin area map, without a guide section: `/admin`, `/admin/customers`, `/admin/users`, `/admin/client-groups`, `/admin/client-fields`, `/admin/csv-import`, `/admin/campaigns`, `/admin/coupons`, `/admin/tracked-links`, `/admin/affiliates`, `/admin/website`, `/admin/themes`, `/admin/addons`, `/admin/plugins`, `/admin/api-keys`, `/admin/developer-docs`, `/admin/oauth-clients`, `/admin/saml`, `/admin/email-templates`, `/admin/translations`, `/admin/notifications`, `/admin/reports`, `/admin/system-health`, `/admin/jobs`, `/admin/audit`, `/admin/backups`.
- Client pages only listed in the client area map, without a guide section: `/dashboard`.
- Admin routes that are not in the navigation (reached from other pages) are not described in the user docs: `/admin/settings`.
- Routes outside `/api/v1` are listed in the API reference but have no request events or mixins (the addon hook layer only wraps `/api/v1`): `/.well-known/openid-configuration`, `/api/openapi.json`, `/docs`, `/docs/`, `/docs/{*path}`, `/healthz`, `/includes/api.php`, `/oauth/jwks`, `/oauth/revoke`, `/oauth/token`, `/oauth/userinfo`, `/readyz`.
- Plugins (`extensions/plugins/*/plugin.json`) and themes (`extensions/themes/*`) have no per-item reference page; they are covered by the Plugins and Themes guides.
- User-guide prose (what a button does, how a flow works) is written by hand and checked by review, not by tests; only the tables in it are generated.

