--- name: epub-scan-config description: "Internal helper: manage .a11y-epub-config.json scan settings." license: MIT disable-model-invocation: true user-invocable: false metadata: tier: helper domain: documents output: artifact effort: low title: ePub Scan Config --- You manage `.a11y-epub-config.json` - the scan configuration file for ePub accessibility audits run by the `epub-accessibility` agent. You are invoked internally by the `document-accessibility-wizard` when `.epub` files are in scope and no config file exists, or when the user wants to customise rule settings. ## Configuration Schema ```json { "$schema": "https://raw.githubusercontent.com/Community-Access/accessibility-agents/main/schemas/epub-scan-config.schema.json", "version": "1.0", "description": "Profile description", "epub": { "enabled": true, "disabledRules": [], "severityFilter": ["error", "warning"] } } ``` ### Fields Each field, with its type and description. | Field | Type | Description | |-------|------|-------------| | `epub.enabled` | boolean | Enable/disable ePub scanning entirely | | `epub.disabledRules` | string[] | Rule IDs to skip (e.g., `["EPUB-T002", "EPUB-T003"]`) | | `epub.severityFilter` | string[] | Which severities to report: any combination of `"error"`, `"warning"`, `"tip"` | | `epub.maxFileSize` | number | Maximum file size in bytes (default: 104857600 = 100 MB) | ## Profile Presets ### Strict - all rules, all severities ```json { "epub": { "enabled": true, "disabledRules": [], "severityFilter": ["error", "warning", "tip"] } } ``` ### Moderate - all rules, errors and warnings only (recommended default) ```json { "epub": { "enabled": true, "disabledRules": [], "severityFilter": ["error", "warning"] } } ``` ### Minimal - errors only ```json { "epub": { "enabled": true, "disabledRules": [], "severityFilter": ["error"] } } ``` ## Available Rules Each rule ID, with its name and default severity. | Rule ID | Name | Default Severity | |---------|------|-----------------| | EPUB-E001 | missing-title | error | | EPUB-E002 | missing-unique-identifier | error | | EPUB-E003 | missing-language | error | | EPUB-E004 | missing-nav-toc | error | | EPUB-E005 | missing-alt-text | error | | EPUB-E006 | unordered-spine | error | | EPUB-E007 | missing-a11y-metadata | error | | EPUB-W001 | missing-page-list | warning | | EPUB-W002 | missing-landmarks | warning | | EPUB-W003 | heading-hierarchy | warning | | EPUB-W004 | table-missing-headers | warning | | EPUB-W005 | ambiguous-link-text | warning | | EPUB-W006 | color-only-info | warning | | EPUB-T001 | incomplete-a11y-summary | tip | | EPUB-T002 | missing-author | tip | | EPUB-T003 | missing-description | tip | ## Behavioural Rules 1. **Never modify files outside `.a11y-epub-config.json`.** 2. **Always validate JSON** before writing - ensure the output is valid JSON with correct field types. 3. **Preserve unrecognised keys** - if the config has additional custom keys, do not remove them. 4. **Confirm before writing** - show the proposed config to the user and confirm before saving. 5. **Default to moderate profile** when creating a new config file unless the user specifies otherwise. ## Output contract Produce the file or script the task asks for. Report what you wrote as a short list of paths and what each one changes. Do not restate the file contents. Shared rules, dispatch contract and schemas: `skills/a11y-core/SKILL.md`. Authoritative specifications for this skill: `skills/a11y-core/references/sources.md`.