Skip to content
Testing
Skill

/kb-document-scanning

Reference data, not a reviewer. Discover and inventory documents for accessibility audits. Scans folders for .docx, .xlsx, .pptx, PDF and ePub files. Detects git changes and extracts title, author, and language metadata.

From plugin
accessibility-agents
431113 skills7 hooks

Claude Code

$ npx -y skills add Community-Access/accessibility-agents --skill kb-document-scanning --agent claude-code

SKILL.md

kb-document-scanning.SKILL.md
name: kb-document-scanning
description: Reference data, not a reviewer. Discover and inventory documents for accessibility audits. Scans folders for .docx, .xlsx, .pptx, PDF and ePub files. Detects git changes and extracts title, author, and language metadata.
license: MIT
disable-model-invocation: true
user-invocable: false
metadata:
  tier: reference
  domain: cross-cutting
  output: none
  effort: low
  title: Document Scanning

Document Scanning

Supported File Types

Each extension, with its type and sub-agent.

| Extension | Type | Sub-Agent | |-----------|------|-----------| | .docx | Word document | word-accessibility | | .xlsx | Excel workbook | excel-accessibility | | .pptx | PowerPoint presentation | powerpoint-accessibility | | .pdf | PDF document | pdf-accessibility | | .epub | ePub publication | epub-accessibility |

File Discovery Commands

PowerShell (Windows)

# Non-recursive scan (-Include needs the trailing \* when -Recurse is not used)
Get-ChildItem -Path "<folder>\*" -File -Include *.docx,*.xlsx,*.pptx,*.pdf,*.epub

# Recursive scan
Get-ChildItem -Path "<folder>" -File -Include *.docx,*.xlsx,*.pptx,*.pdf,*.epub -Recurse |
  Where-Object Name -notmatch '^~\$' |
  Where-Object FullName -notmatch '[\\/](\.git|node_modules|__pycache__|\.vscode)[\\/]'

Bash (macOS)

# Non-recursive scan
find "<folder>" -maxdepth 1 -type f \( -name "*.docx" -o -name "*.xlsx" -o -name "*.pptx" -o -name "*.pdf" -o -name "*.epub" \) ! -name '~[$]*'

# Recursive scan
find "<folder>" -type f \( -name "*.docx" -o -name "*.xlsx" -o -name "*.pptx" -o -name "*.pdf" -o -name "*.epub" \) \
  ! -name '~[$]*' ! -name "*.tmp" ! -name "*.bak" \
  ! -path "*/.git/*" ! -path "*/node_modules/*" ! -path "*/__pycache__/*" ! -path "*/.vscode/*"

Delta Detection

Git-based

# Files changed since last commit
git diff --name-only HEAD~1 HEAD -- '*.docx' '*.xlsx' '*.pptx' '*.pdf' '*.epub'

# Files changed since a specific tag
git diff --name-only <tag> HEAD -- '*.docx' '*.xlsx' '*.pptx' '*.pdf' '*.epub'

# Files changed in the last N days
git log --since="N days ago" --name-only --diff-filter=ACMR --pretty="" -- '*.docx' '*.xlsx' '*.pptx' '*.pdf' '*.epub' | sort -u

Timestamp-based (PowerShell)

# Files modified since a specific date
Get-ChildItem -Path "<folder>" -File -Include *.docx,*.xlsx,*.pptx,*.pdf,*.epub -Recurse |
  Where-Object LastWriteTime -gt ([datetime]"2025-01-01")

Files to Skip

Always exclude these patterns during scanning:

  • `~$` files - Office lock/temp files (names starting with `~$`) (created when a document is open)
  • `*.tmp` - Temporary files
  • `*.bak` - Backup files
  • Files inside `.git/`, `node_modules/`, `.vscode/`, `__pycache__/` directories

Scan Configuration Files

Each file, with its purpose.

| File | Purpose | |------|---------| | `.a11y-office-config.json` | Rule enable/disable for Word, Excel, PowerPoint | | `.a11y-pdf-config.json` | Rule enable/disable for PDF scanning | | `.a11y-epub-config.json` | Rule enable/disable for ePub scanning |

Scan Profiles

Each profile, with rules, severities and use case.

| Profile | Rules | Severities | Use Case | |---------|-------|------------|----------| | Strict | All | Error, Warning, Tip | Public-facing, legally required documents | | Moderate | All | Error, Warning | Most organizations | | Minimal | All | Error only | Triaging large document libraries |

Context Passing Format

When delegating to a sub-agent, always provide this context block:

## Document Scan Context
- **File:** [full path]
- **Scan Profile:** [strict | moderate | minimal]
- **Severity Filter:** [error, warning, tip]
- **Disabled Rules:** [list or "none"]
- **User Notes:** [any specifics]
- **Part of Batch:** [yes/no - if yes, indicate X of Y]
Read more
@community-access
Ships withaccessibility-agents

WCAG 2.2 AA enforcement for agentic coding, as a set of Agent Skills. One package, read natively by Claude Code, Codex, GitHub Copilot, Gemini CLI and Antigravity, with no per-client copies. Models forget accessibility while generating code.

Stars on GitHub

Momentum

stars in total
431
Star history of Community-Access/accessibility-agents on GitHub, a chart by star-history.com

Other skills on accessibility-agents.

More skills from other plugins.

api-review

api-review

Produce the "Playwright 1.xx API Review" artifact for a range of commits - the public API additions and the breaking or behavior…

@microsoft@microsoftInstall Skill
add-e2e-selectors

add-e2e-selectors

Add reliable @grafana/e2e-selectors to interactive elements and key containers in the Grafana frontend. Use when adding e2e…

grafanatoday78k
@grafana@grafanaInstall Skill
promptfoo-evals

promptfoo-evals

Write, refine, run, and QA promptfoo evaluation suites: promptfooconfig.yaml, prompts, providers, vars, tests, assertions,…

@promptfoo@promptfooInstall Skill
deepeval

deepeval

DeepEval evaluation workflow for AI agents and LLM applications. TRIGGER when the user wants to evaluate or improve an AI agent,…

@confident-ai@confident-aiInstall Skill

Questions about kb-document-scanning.

Which coding agents can use kb-document-scanning?
kb-document-scanning installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.