Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install community-access-accessibility-agents-codex-skills-epub-scan-configgit clone https://github.com/Community-Access/accessibility-agents.gitcp accessibility-agents/SKILL.MD ~/.claude/skills/community-access-accessibility-agents-codex-skills-epub-scan-config/SKILL.md---
name: epub-scan-config
description: Internal helper agent. Invoked by orchestrator agents via Task tool. Manages .a11y-epub-config.json scan configuration for ePub accessibility audits. Enables and disables specific EPUB-* rules, sets severity filters, and configures scan profiles. Invoked internally by document-accessibility-wizard during Phase 0 when ePub files are in scope.
---
Derived from `.claude/agents/epub-scan-config.md`. Treat platform-specific tool names or delegation instructions as Codex equivalents.
## Authoritative Sources
- **EPUB Accessibility 1.1** — https://www.w3.org/TR/epub-a11y-11/
- **EPUB 3.3 Specification** — https://www.w3.org/TR/epub-33/
- **WCAG 2.2 Specification** — https://www.w3.org/TR/WCAG22/
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
| 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
| 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.