zekiriabd/sdd-pro/a11y-local
Claude Code and agent skill by zekiriabd/sdd-pro
- community
Checking that the SKILL.md file is still in the repository.
Use ONLY when the Tech Lead EXPLICITLY asks to run an accessibility (a11y / WCAG / axe) audit locally against a running SDDPro frontend — phrases like "audit a11y local", "lance axe sur le front", "check accessibilité", "run accessibility scan", "vérifie WCAG en local". Runs axe-core CLI against the served front, pipes the JSON into the existing sdd_scripts/ingest_axe.py bridge (console.db qa_a11y), and renders the verdict via query_console_db.py. Does NOT trigger during /sdd-full, /sdd-poc, /dev-run, or dev-frontend — the pipeline uses CI ingest (ingest_axe.py in .github/workflows/quality.yml), NOT this skill. Mode A (hors-pipeline, à la demande). Read-only sur le code généré.
Install
npx vskill@latest install zekiriabd/sdd-pro/a11y-localSKILL.md
Skill — Accessibility audit local (axe-core → qa_a11y)
Mode A — hors-pipeline (VENDORED.md §Coexistence). Ce skill est unoutil Tech Lead à la demande. Il ne s'auto-déclenche JAMAIS pendant/sdd-full,/sdd-poc,/dev-runou l'agentdev-frontend: le pipelinecouvre l'a11y par ingest CI (ingest_axe.pyappelé depuis.github/workflows/quality.ymlauto-généré pararch). Ce skill donne auTech Lead le même verdict en local, avant push, en réutilisant laplomberie existante — il n'invente aucun script ni table.
Anti-derive : aucune modification du code généré (workspace/src/).Le seul artefact écrit sur disque est le JSON axe transitoire sousworkspace/.sys/.a11y/(jamaisworkspace/{feats,us,plans,src}/). Latélémétrie va dansconsole.db(tableqa_a11yexistante), lue à la demande.
Pré-conditions (STEP 0)
- Front lancé : le frontend doit tourner. Le lancer via
/sdd-serve
(qui affiche l'URL réelle, ex. Frontend ▶ … → :5173). Ports défaut : Vite/React 5173, Angular 4200, Next/Blazor Server 3000, autres → lire la sortie de /sdd-serve.
- axe-core CLI dispo :
npx @axe-core/cli --version(installé à la volée
via npx si Node présent). Si Node absent → STOP [QA_FRAMEWORK_MISSING] (l'a11y reste couvert par le CI du projet ; ce skill est local-only).
- FEAT connue : le numéro
{n}de la FEAT auditée (pour ranger la
télémétrie dans qa_a11y sous le bon FEAT — même clé que l'ingest CI).
Si le front n'est pas joignable → STOP [NETWORK] (ne pas ingérer un scan vide qui écraserait une télémétrie CI valide via replace_qa_auditor_for_feat).
Procédure (STEP 1-3)
STEP 1 — Scan axe-core local
$URL= l'URL affichée par/sdd-serve(ou fournie par le Tech Lead).- Plusieurs pages : passer plusieurs URLs ou relancer par route ; axe agrège
en un tableau [result, …] que ingest_axe.py sait normaliser.
--exitfait sortir axe en non-zéro s'il trouve des violations : ignorer ce
code, c'est l'ingest qui décide du verdict contre --threshold.
STEP 2 — Ingest dans console.db (script existant, 0 invention)
--threshold serious= défaut historiqueA11yFailOn(déprécié comme clé
config v7.0.0 ; le seuil vit maintenant sur le flag). Ajuster critical / moderate / minor à la demande.
- Exit codes (cf. entête
ingest_axe.py) :0green/warn,4RED (≥1
violation ≥ threshold), 1 report absent, 2 JSON illisible, 3 schéma axe non supporté. En usage Tech Lead, ne PAS mettre --no-fail : le code 4 est le signal RED.
- Le script mappe chaque
rule_idaxe → classe[A11Y_*](tableAXE_RULE_MAP),
persiste dans qa_a11y et pose record_auditor_run(auditor='a11y').
STEP 3 — Rendu du verdict (lecture à la demande)
Rend {verdict, critical, serious, moderate, minor} en Markdown. Reporter en chat 1 seule ligne (protocole output-protocol.md) :
Interprétation → action (jamais de fix créatif)
| Verdict | Action recommandée | |
|---|---|---|
| 🟢 green | Rien. Télémétrie posée pour /sdd-review --ensure-scans. | |
| 🟡 warn | Violations < seuil : reporter la liste, laisser le Tech Lead arbitrer. | |
| 🔴 red | Violations ≥ seuil. Corriger via l'US frontend fautive : re-run /dev-frontend {n}-{m} (le mockup reste SSoT), PAS d'édit sauvage du markup. Les classes ([A11Y_MISSING_ALT], [A11Y_INPUT_NO_LABEL], …) pointent le WCAG SC exact. |
Ne jamais baisser le--thresholdjuste pour passer au vert : c'est unmasquage, pas un fix. Un défaut a11y réel se corrige dans le composant vial'agentdev-frontend, ou se documente en ADR si écart assumé.
Coexistence pipeline (rappel load-bearing)
- CI (pipeline) :
ingest_axe.pyappelé par.github/workflows/quality.yml
sur l'artefact @axe-core/cli. Bloquant PR selon continue-on-error.
- Local (ce skill) : même script, même table, invocation Tech Lead. Aucune
divergence de logique de verdict → un vert local = un vert CI (même seuil).
Pointeurs
.sdd/python/sdd_scripts/ingest_axe.py— pont d'ingest (SSoT logique verdict).sdd/rules/error-classification-legacy.md §1— taxonomie[A11Y_*]× WCAG × sévérité.sdd/skills/VENDORED.md— politique mode A / minage / natifquery_console_db.py a11y --feat {n} --format md— rendu télémétrie- Pendant : un skill
perf-local(Lighthouse →ingest_lighthouse.py→qa_performance) suivrait le même patron.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.sdd/skills/a11y-local/SKILL.md
Popularity
- Repository stars
- 193
- Repository forks
- 29
- 7-day trend score
- 26
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/zekiriabd/sdd-pro/a11y-local)