wicked-garden 12.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/archetypes.json +166 -0
- package/.claude-plugin/components.json +75 -0
- package/.claude-plugin/marketplace.json +15 -0
- package/.claude-plugin/plugin.json +174 -0
- package/.claude-plugin/specialist.json +48 -0
- package/.claude-plugin/stack-registry.json +96 -0
- package/AGENTS.md +13 -0
- package/CHANGELOG.md +712 -0
- package/CONTRIBUTING.md +99 -0
- package/ETHOS.md +83 -0
- package/LICENSE +21 -0
- package/README.md +115 -0
- package/WICKED_GARDEN_BUS_EVENTS.md +149 -0
- package/agents/agentic/architect.md +449 -0
- package/agents/agentic/performance-analyst.md +702 -0
- package/agents/agentic/safety-reviewer.md +662 -0
- package/agents/crew/implementer.md +163 -0
- package/agents/crew/researcher.md +94 -0
- package/agents/crew/reviewer.md +184 -0
- package/agents/data/data-engineer.md +227 -0
- package/agents/engineering/api-documentarian.md +440 -0
- package/agents/engineering/migration-engineer.md +301 -0
- package/agents/engineering/solution-architect.md +208 -0
- package/agents/jam/brainstorm-facilitator.md +297 -0
- package/agents/jam/council.md +322 -0
- package/agents/jam/quick-facilitator.md +85 -0
- package/agents/persona/persona-agent.md +121 -0
- package/agents/platform/compliance-officer.md +266 -0
- package/agents/platform/privacy-expert.md +496 -0
- package/agents/platform/security-engineer.md +287 -0
- package/agents/product/a11y-expert.md +323 -0
- package/agents/product/requirements-analyst.md +238 -0
- package/agents/product/ui-reviewer.md +180 -0
- package/agents/product/ux-designer.md +199 -0
- package/agents/product/value-strategist.md +269 -0
- package/agents/qe/semantic-reviewer.md +78 -0
- package/commands/agentic/audit.md +24 -0
- package/commands/agentic/design.md +24 -0
- package/commands/agentic/frameworks.md +25 -0
- package/commands/agentic/review.md +27 -0
- package/commands/archetype/build.md +12 -0
- package/commands/archetype/decide.md +12 -0
- package/commands/archetype/explore.md +12 -0
- package/commands/archetype/incident.md +12 -0
- package/commands/archetype/migrate.md +12 -0
- package/commands/archetype/modernize.md +12 -0
- package/commands/archetype/review.md +14 -0
- package/commands/archetype/ship.md +12 -0
- package/commands/archetype/specify.md +12 -0
- package/commands/archetype/triage.md +12 -0
- package/commands/compile.md +37 -0
- package/commands/data/analyze.md +18 -0
- package/commands/data/data.md +21 -0
- package/commands/data/ml.md +18 -0
- package/commands/data/ontology.md +22 -0
- package/commands/data/pipeline.md +17 -0
- package/commands/deliberate.md +181 -0
- package/commands/engineering/add-field.md +77 -0
- package/commands/engineering/apply.md +58 -0
- package/commands/engineering/arch.md +26 -0
- package/commands/engineering/debug.md +27 -0
- package/commands/engineering/docs.md +27 -0
- package/commands/engineering/new-generator.md +257 -0
- package/commands/engineering/patch-plan.md +59 -0
- package/commands/engineering/plan.md +29 -0
- package/commands/engineering/remove.md +48 -0
- package/commands/engineering/rename.md +44 -0
- package/commands/engineering/review.md +32 -0
- package/commands/help.md +128 -0
- package/commands/install.md +118 -0
- package/commands/intent.md +54 -0
- package/commands/jam/brainstorm.md +37 -0
- package/commands/jam/council.md +49 -0
- package/commands/jam/quick.md +21 -0
- package/commands/jam/revisit.md +79 -0
- package/commands/persona/as.md +136 -0
- package/commands/persona/define.md +24 -0
- package/commands/persona/list.md +118 -0
- package/commands/platform/actions.md +20 -0
- package/commands/platform/assert.md +18 -0
- package/commands/platform/audit.md +23 -0
- package/commands/platform/compliance.md +20 -0
- package/commands/platform/gh.md +22 -0
- package/commands/platform/health.md +22 -0
- package/commands/platform/incident.md +23 -0
- package/commands/platform/infra.md +24 -0
- package/commands/platform/peer-health.md +103 -0
- package/commands/platform/plugin-health.md +58 -0
- package/commands/platform/security.md +38 -0
- package/commands/platform/toolchain.md +96 -0
- package/commands/platform/traces.md +20 -0
- package/commands/product/a11y.md +19 -0
- package/commands/product/acceptance.md +19 -0
- package/commands/product/align.md +20 -0
- package/commands/product/analyze.md +23 -0
- package/commands/product/elicit.md +19 -0
- package/commands/product/listen.md +24 -0
- package/commands/product/mockup.md +20 -0
- package/commands/product/screenshot.md +19 -0
- package/commands/product/strategy.md +40 -0
- package/commands/product/synthesize.md +23 -0
- package/commands/product/ux-review.md +42 -0
- package/commands/product/ux.md +20 -0
- package/commands/product/visual-direction.md +34 -0
- package/commands/prove.md +47 -0
- package/commands/report-issue.md +243 -0
- package/commands/reset.md +144 -0
- package/commands/search/blast-radius.md +58 -0
- package/commands/search/hotspots.md +55 -0
- package/commands/search/index.md +38 -0
- package/commands/search/lineage.md +47 -0
- package/commands/search/service-map.md +79 -0
- package/commands/setup.md +363 -0
- package/commands/smaht/briefing.md +200 -0
- package/commands/smaht/events-import.md +95 -0
- package/commands/smaht/state.md +19 -0
- package/commands/where-am-i.md +58 -0
- package/docs/README.md +32 -0
- package/docs/adr/0001-code-relationship-graph-engine.md +116 -0
- package/docs/adr/0002-major-cleanup-keep-cut.md +91 -0
- package/docs/adr/0003-peers-gate-required-layers-optin.md +41 -0
- package/docs/adr/0004-code-graph-moves-to-wicked-brain.md +47 -0
- package/docs/brain-chunk-format.md +135 -0
- package/docs/compiler.md +95 -0
- package/docs/daemon-api.md +70 -0
- package/docs/domains.md +197 -0
- package/docs/getting-started.md +208 -0
- package/docs/plans/2026-06-08-wicked-loom-conduct.md +1337 -0
- package/docs/plans/2026-06-08-wicked-loom-contract.md +638 -0
- package/docs/plans/2026-06-08-wicked-loom-cutover.md +1300 -0
- package/docs/plans/2026-06-08-wicked-loom-expand-compose.md +843 -0
- package/docs/plans/2026-06-08-wicked-loom-flow-cutover.md +403 -0
- package/docs/plans/2026-06-10-codegraph-to-brain-phase1a-graph-core.md +838 -0
- package/docs/plans/2026-06-10-codegraph-to-brain-phase1b-injected-edges.md +44 -0
- package/docs/required-peers.md +60 -0
- package/docs/specs/2026-06-08-wicked-loom-extraction.md +225 -0
- package/docs/specs/2026-06-10-codegraph-to-brain-migration.md +168 -0
- package/docs/v11/archetypes.md +231 -0
- package/hooks/hooks.json +275 -0
- package/hooks/scripts/bootstrap.py +1797 -0
- package/hooks/scripts/invoke.py +62 -0
- package/hooks/scripts/notification.py +166 -0
- package/hooks/scripts/permission_request.py +223 -0
- package/hooks/scripts/post_tool.py +1374 -0
- package/hooks/scripts/pre_compact.py +272 -0
- package/hooks/scripts/pre_tool.py +1278 -0
- package/hooks/scripts/prompt_submit.py +1109 -0
- package/hooks/scripts/session_end.py +95 -0
- package/hooks/scripts/stop.py +624 -0
- package/hooks/scripts/subagent_lifecycle.py +464 -0
- package/hooks/scripts/subscribers/on_gate_decided.py +84 -0
- package/hooks/scripts/task_completed.py +322 -0
- package/hooks/scripts/worktree_guard.py +148 -0
- package/hooks/subscriptions/on_gate_decided.json +9 -0
- package/install.mjs +128 -0
- package/package.json +41 -0
- package/pyproject.toml +59 -0
- package/schemas/README.md +32 -0
- package/schemas/assert_contracts.json +37 -0
- package/schemas/health_probe.json +46 -0
- package/schemas/plugin_status.json +37 -0
- package/scripts/_adapters/__init__.py +166 -0
- package/scripts/_adapters/jira_adapter.py +18 -0
- package/scripts/_adapters/linear_adapter.py +18 -0
- package/scripts/_adapters/miro_adapter.py +18 -0
- package/scripts/_adapters/notion_adapter.py +18 -0
- package/scripts/_agents.py +357 -0
- package/scripts/_brain_ingest/__init__.py +2 -0
- package/scripts/_brain_ingest/session_fact_extractor.py +341 -0
- package/scripts/_brain_port.py +163 -0
- package/scripts/_bus.py +1081 -0
- package/scripts/_bus_catalog_gen.py +93 -0
- package/scripts/_bus_consumers.json +46 -0
- package/scripts/_bus_emit.py +43 -0
- package/scripts/_capability_registry.py +334 -0
- package/scripts/_capability_resolver.py +322 -0
- package/scripts/_domain_store.py +559 -0
- package/scripts/_event_log_reader.py +154 -0
- package/scripts/_event_schema.py +305 -0
- package/scripts/_event_store.py +397 -0
- package/scripts/_heavy_cadence.py +324 -0
- package/scripts/_integration_resolver.py +321 -0
- package/scripts/_logger.py +151 -0
- package/scripts/_loom.py +482 -0
- package/scripts/_paths.py +133 -0
- package/scripts/_python.sh +22 -0
- package/scripts/_run.py +137 -0
- package/scripts/_session.py +502 -0
- package/scripts/_validate_registry.py +1042 -0
- package/scripts/_wicked_testing_probe.py +277 -0
- package/scripts/agentic/analyze_agents.py +391 -0
- package/scripts/agentic/detect_framework.py +420 -0
- package/scripts/agentic/issue_taxonomy.py +357 -0
- package/scripts/agentic/pattern_scorer.py +434 -0
- package/scripts/classify/persist.py +169 -0
- package/scripts/compiler/compile.py +552 -0
- package/scripts/compiler/phase0/VERDICT.md +60 -0
- package/scripts/compiler/phase0/detect.py +292 -0
- package/scripts/compiler/phase0/emit.py +228 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.bindings.json +30 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/.wg/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/.wg/evidence/honest-tests.txt +2 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/command_iq.bindings.json +45 -0
- package/scripts/compiler/phase0/evidence/command_iq.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/.projects/evidence-domain/phase-1-clarify/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/.projects/evidence-domain/phase-1-clarify/evidence/honest-tests.txt +3 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/memos.bindings.json +28 -0
- package/scripts/compiler/phase0/evidence/memos.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/memos.stage/.wg/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/memos.stage/.wg/evidence/honest-tests.txt +2 -0
- package/scripts/compiler/phase0/evidence/memos.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/verdict.json +104 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.bindings.json +29 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/coverage/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/coverage/honest-tests.txt +3 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/wire-vault-transcript.txt +60 -0
- package/scripts/compiler/phase0/run_probe.py +234 -0
- package/scripts/compiler/phase0/wire_vault.py +310 -0
- package/scripts/crew/__init__.py +0 -0
- package/scripts/crew/_task_audit_writer.py +243 -0
- package/scripts/crew/_task_reader.py +389 -0
- package/scripts/crew/archetypes_v11.py +348 -0
- package/scripts/crew/detectors/__init__.py +12 -0
- package/scripts/crew/flow_compiler.py +121 -0
- package/scripts/crew/phase_manager.py +703 -0
- package/scripts/crew/scope_delta.py +264 -0
- package/scripts/crew/specialist_resolver.py +218 -0
- package/scripts/crew/stack_registry.py +189 -0
- package/scripts/data/data_profiler.py +271 -0
- package/scripts/data/ontology_recommender.py +231 -0
- package/scripts/data/schema_validator.py +267 -0
- package/scripts/delivery/drift.py +739 -0
- package/scripts/delivery/telemetry.py +614 -0
- package/scripts/engineering/patch/codegraph_db.py +125 -0
- package/scripts/engineering/patch/generators/__init__.py +56 -0
- package/scripts/engineering/patch/generators/base.py +373 -0
- package/scripts/engineering/patch/generators/csharp_generator.py +494 -0
- package/scripts/engineering/patch/generators/go_generator.py +430 -0
- package/scripts/engineering/patch/generators/java_generator.py +928 -0
- package/scripts/engineering/patch/generators/jsp_generator.py +454 -0
- package/scripts/engineering/patch/generators/kotlin_generator.py +561 -0
- package/scripts/engineering/patch/generators/perl_generator.py +510 -0
- package/scripts/engineering/patch/generators/php_generator.py +644 -0
- package/scripts/engineering/patch/generators/propagation_engine.py +929 -0
- package/scripts/engineering/patch/generators/python_generator.py +487 -0
- package/scripts/engineering/patch/generators/ruby_generator.py +463 -0
- package/scripts/engineering/patch/generators/rust_generator.py +400 -0
- package/scripts/engineering/patch/generators/sql_generator.py +594 -0
- package/scripts/engineering/patch/generators/typescript_generator.py +439 -0
- package/scripts/engineering/patch/patch.py +800 -0
- package/scripts/engineering/patch/safety.py +429 -0
- package/scripts/jam/__init__.py +0 -0
- package/scripts/jam/_bus_consumers.py +271 -0
- package/scripts/jam/agentic_cli_registry.py +703 -0
- package/scripts/jam/consensus.py +737 -0
- package/scripts/jam/detect_clis.py +409 -0
- package/scripts/jam/jam.py +283 -0
- package/scripts/jam/save_transcript.py +171 -0
- package/scripts/loom/__init__.py +22 -0
- package/scripts/loom/cli.py +170 -0
- package/scripts/loom/compose.py +180 -0
- package/scripts/loom/gate.py +120 -0
- package/scripts/loom/manifest.py +140 -0
- package/scripts/loom/resolve.py +59 -0
- package/scripts/persona/__init__.py +0 -0
- package/scripts/persona/registry.py +688 -0
- package/scripts/platform/guard_pipeline.py +1214 -0
- package/scripts/platform/guard_profiles.py +216 -0
- package/scripts/platform/observability/assert_contracts.py +434 -0
- package/scripts/platform/observability/health_probe.py +915 -0
- package/scripts/platform/observability/ops_log_viewer.py +209 -0
- package/scripts/platform/prereq_doctor.py +567 -0
- package/scripts/qe/conditions_manifest.py +260 -0
- package/scripts/qe/content_sanitizer.py +160 -0
- package/scripts/qe/coverage_tracker.py +535 -0
- package/scripts/qe/discover_scenarios.py +243 -0
- package/scripts/qe/evidence_tracker.py +232 -0
- package/scripts/qe/prove.py +196 -0
- package/scripts/qe/registry_lookup.py +80 -0
- package/scripts/qe/registry_store.py +176 -0
- package/scripts/qe/semantic_review.py +1005 -0
- package/scripts/qe/vault_gate.py +382 -0
- package/scripts/qe/verdict_audit.py +175 -0
- package/scripts/qe/verdict_schema.py +335 -0
- package/scripts/reset.py +220 -0
- package/scripts/resolve_path.py +22 -0
- package/scripts/sentinel/invariants.py +402 -0
- package/scripts/sentinel/pre_push.py +73 -0
- package/scripts/setup/__init__.py +1 -0
- package/scripts/setup/detect_state.py +114 -0
- package/scripts/setup/migrate_legacy.py +67 -0
- package/scripts/setup/migrate_v6_projects.py +232 -0
- package/scripts/setup/onboarding.py +114 -0
- package/scripts/smaht/_bus_consumers.py +98 -0
- package/scripts/smaht/adapters/__init__.py +83 -0
- package/scripts/smaht/adapters/brain_adapter.py +254 -0
- package/scripts/smaht/adapters/context7_adapter.py +438 -0
- package/scripts/smaht/adapters/delegation_adapter.py +104 -0
- package/scripts/smaht/adapters/domain_adapter.py +206 -0
- package/scripts/smaht/adapters/events_adapter.py +231 -0
- package/scripts/smaht/adapters/tools_adapter.py +49 -0
- package/scripts/smaht/cheatsheet_store.py +236 -0
- package/scripts/smaht/context_package.py +386 -0
- package/scripts/smaht/knowledge_graph.py +395 -0
- package/scripts/smaht/propose_skills.py +856 -0
- package/scripts/smaht/test_cheatsheet_store.py +428 -0
- package/scripts/statusline.py +151 -0
- package/scripts/where_am_i.py +236 -0
- package/skills/agentic/agentic-patterns/SKILL.md +91 -0
- package/skills/agentic/agentic-patterns/refs/anti-patterns-design.md +283 -0
- package/skills/agentic/agentic-patterns/refs/anti-patterns-operational.md +216 -0
- package/skills/agentic/agentic-patterns/refs/pattern-catalog.md +329 -0
- package/skills/agentic/context-engineering/SKILL.md +142 -0
- package/skills/agentic/context-engineering/refs/caching-and-optimization.md +251 -0
- package/skills/agentic/context-engineering/refs/compression-techniques.md +171 -0
- package/skills/agentic/context-engineering/refs/cost-calculation-budget.md +250 -0
- package/skills/agentic/context-engineering/refs/cost-optimization-reporting.md +300 -0
- package/skills/agentic/context-engineering/refs/selective-loading.md +179 -0
- package/skills/agentic/frameworks/SKILL.md +191 -0
- package/skills/agentic/frameworks/refs/framework-profiles-1.md +209 -0
- package/skills/agentic/frameworks/refs/framework-profiles-2.md +214 -0
- package/skills/agentic/frameworks/refs/migration-patterns-paths.md +267 -0
- package/skills/agentic/frameworks/refs/migration-patterns-testing.md +208 -0
- package/skills/agentic/refs/audit.md +134 -0
- package/skills/agentic/refs/design.md +137 -0
- package/skills/agentic/refs/frameworks.md +102 -0
- package/skills/agentic/refs/review.md +160 -0
- package/skills/agentic/review-methodology/SKILL.md +186 -0
- package/skills/agentic/review-methodology/refs/deliverable-templates.md +246 -0
- package/skills/agentic/review-methodology/refs/issue-taxonomy-quality-testing.md +277 -0
- package/skills/agentic/review-methodology/refs/issue-taxonomy-reliability-safety.md +253 -0
- package/skills/agentic/trust-and-safety/SKILL.md +177 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-actions.md +246 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-input-output.md +238 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-resources.md +209 -0
- package/skills/agentic/trust-and-safety/refs/safety-checklist-advanced.md +209 -0
- package/skills/agentic/trust-and-safety/refs/safety-checklist-core.md +215 -0
- package/skills/archetype/SKILL.md +104 -0
- package/skills/archetype/refs/build.md +142 -0
- package/skills/archetype/refs/decide.md +117 -0
- package/skills/archetype/refs/explore.md +66 -0
- package/skills/archetype/refs/incident.md +149 -0
- package/skills/archetype/refs/migrate.md +170 -0
- package/skills/archetype/refs/modernize.md +187 -0
- package/skills/archetype/refs/review.md +145 -0
- package/skills/archetype/refs/ship.md +117 -0
- package/skills/archetype/refs/specify.md +108 -0
- package/skills/archetype/refs/triage.md +62 -0
- package/skills/classify/SKILL.md +157 -0
- package/skills/data/analysis/SKILL.md +125 -0
- package/skills/data/analysis/refs/templates.md +170 -0
- package/skills/data/data/SKILL.md +118 -0
- package/skills/data/data/refs/examples.md +235 -0
- package/skills/data/ml/SKILL.md +125 -0
- package/skills/data/ml/refs/templates.md +172 -0
- package/skills/data/pipeline/SKILL.md +136 -0
- package/skills/data/pipeline/refs/templates.md +175 -0
- package/skills/data/refs/analyze.md +123 -0
- package/skills/data/refs/data.md +95 -0
- package/skills/data/refs/ml.md +118 -0
- package/skills/data/refs/pipeline.md +92 -0
- package/skills/deliberate/SKILL.md +125 -0
- package/skills/deliberate/refs/architecture-lens.md +37 -0
- package/skills/deliberate/refs/assumptions-lens.md +43 -0
- package/skills/deliberate/refs/code-lens.md +38 -0
- package/skills/deliberate/refs/content-lens.md +37 -0
- package/skills/deliberate/refs/data-lens.md +43 -0
- package/skills/deliberate/refs/design-lens.md +37 -0
- package/skills/deliberate/refs/opportunity-patterns.md +107 -0
- package/skills/deliberate/refs/ops-lens.md +43 -0
- package/skills/deliberate/refs/product-lens.md +46 -0
- package/skills/deliberate/refs/rethink-framework.md +77 -0
- package/skills/deliberate/refs/security-lens.md +47 -0
- package/skills/deliberate/refs/testing-lens.md +45 -0
- package/skills/deliberate/refs/timing-lens.md +42 -0
- package/skills/engineering/architecture/SKILL.md +177 -0
- package/skills/engineering/architecture/refs/adr-template.md +268 -0
- package/skills/engineering/architecture/refs/architecture-template-deployment.md +176 -0
- package/skills/engineering/architecture/refs/architecture-template-design.md +300 -0
- package/skills/engineering/architecture/refs/examples-ecommerce-analytics.md +299 -0
- package/skills/engineering/architecture/refs/examples-saas-trading.md +291 -0
- package/skills/engineering/architecture/refs/patterns-advanced.md +238 -0
- package/skills/engineering/architecture/refs/patterns-structural.md +303 -0
- package/skills/engineering/backend/SKILL.md +102 -0
- package/skills/engineering/backend/refs/checklists.md +146 -0
- package/skills/engineering/backend/refs/patterns.md +181 -0
- package/skills/engineering/debugging/SKILL.md +99 -0
- package/skills/engineering/debugging/refs/patterns.md +248 -0
- package/skills/engineering/debugging/refs/process.md +203 -0
- package/skills/engineering/docs/SKILL.md +97 -0
- package/skills/engineering/engineering/SKILL.md +88 -0
- package/skills/engineering/engineering/refs/checklists.md +91 -0
- package/skills/engineering/engineering/refs/templates.md +71 -0
- package/skills/engineering/frontend/SKILL.md +92 -0
- package/skills/engineering/frontend/refs/checklists.md +96 -0
- package/skills/engineering/frontend/refs/patterns.md +167 -0
- package/skills/engineering/integration/SKILL.md +183 -0
- package/skills/engineering/integration/refs/error-handling-best-practices.md +139 -0
- package/skills/engineering/integration/refs/error-handling-error-classes-typescript.md +212 -0
- package/skills/engineering/integration/refs/error-handling-error-response-format.md +301 -0
- package/skills/engineering/integration/refs/error-handling-retry-strategies.md +190 -0
- package/skills/engineering/integration/refs/event-schemas-best-practices.md +225 -0
- package/skills/engineering/integration/refs/event-schemas-event-naming-conventions.md +303 -0
- package/skills/engineering/integration/refs/event-schemas-event-structure.md +288 -0
- package/skills/engineering/integration/refs/graphql-best-practices.md +138 -0
- package/skills/engineering/integration/refs/graphql-error-handling.md +198 -0
- package/skills/engineering/integration/refs/graphql-graphql-basics.md +197 -0
- package/skills/engineering/integration/refs/graphql-query-examples.md +226 -0
- package/skills/engineering/integration/refs/graphql-schema-design-patterns.md +280 -0
- package/skills/engineering/integration/refs/grpc-grpc-overview.md +246 -0
- package/skills/engineering/integration/refs/grpc-implementation-examples.md +269 -0
- package/skills/engineering/integration/refs/grpc-metadata-headers.md +304 -0
- package/skills/engineering/integration/refs/grpc-testing.md +49 -0
- package/skills/engineering/integration/refs/openapi-template.yaml +682 -0
- package/skills/engineering/integration/refs/resilience-best-practices.md +109 -0
- package/skills/engineering/integration/refs/resilience-circuit-breaker-pattern.md +302 -0
- package/skills/engineering/integration/refs/resilience-rate-limiting.md +245 -0
- package/skills/engineering/integration/refs/resilience-timeout-pattern.md +212 -0
- package/skills/engineering/integration/refs/rest-api-fundamentals.md +299 -0
- package/skills/engineering/integration/refs/rest-api-responses-security.md +302 -0
- package/skills/engineering/integration/refs/versioning-breaking-changes.md +237 -0
- package/skills/engineering/integration/refs/versioning-migration-strategies.md +257 -0
- package/skills/engineering/integration/refs/versioning-versioning-strategies.md +296 -0
- package/skills/engineering/large-scale-migration/SKILL.md +65 -0
- package/skills/engineering/patch/SKILL.md +184 -0
- package/skills/engineering/refs/arch.md +126 -0
- package/skills/engineering/refs/debug.md +142 -0
- package/skills/engineering/refs/docs.md +190 -0
- package/skills/engineering/refs/plan.md +109 -0
- package/skills/engineering/refs/review.md +138 -0
- package/skills/engineering/system-design/SKILL.md +154 -0
- package/skills/engineering/system-design/refs/anti-patterns-big-ball-of-mud.md +254 -0
- package/skills/engineering/system-design/refs/anti-patterns-circular-dependencies.md +241 -0
- package/skills/engineering/system-design/refs/anti-patterns-feature-envy.md +168 -0
- package/skills/engineering/system-design/refs/anti-patterns-god-object.md +247 -0
- package/skills/engineering/system-design/refs/component-template-lifecycle.md +210 -0
- package/skills/engineering/system-design/refs/component-template-maintenance.md +219 -0
- package/skills/engineering/system-design/refs/component-template-structure.md +276 -0
- package/skills/engineering/system-design/refs/dependencies-best-practices.md +260 -0
- package/skills/engineering/system-design/refs/dependencies-dependency-principles.md +295 -0
- package/skills/engineering/system-design/refs/dependencies-dependency-tracking.md +261 -0
- package/skills/engineering/system-design/refs/interface-template-lifecycle.md +211 -0
- package/skills/engineering/system-design/refs/interface-template-maintenance.md +212 -0
- package/skills/engineering/system-design/refs/interface-template-structure.md +269 -0
- package/skills/engineering/system-design/refs/patterns-dependency-injection.md +151 -0
- package/skills/engineering/system-design/refs/patterns-facade-pattern.md +257 -0
- package/skills/engineering/system-design/refs/patterns-layered-pattern.md +204 -0
- package/skills/engineering/system-design/refs/patterns-plugin-architecture.md +229 -0
- package/skills/engineering/unit-test-quality/SKILL.md +194 -0
- package/skills/ground/SKILL.md +130 -0
- package/skills/integration-discovery/SKILL.md +168 -0
- package/skills/integration-discovery/refs/capabilities.md +282 -0
- package/skills/integration-discovery/refs/cli-detection.md +295 -0
- package/skills/integration-discovery/refs/discovery-sources.md +233 -0
- package/skills/integration-discovery/refs/task-patterns.md +206 -0
- package/skills/jam/SKILL.md +45 -0
- package/skills/jam/refs/facilitation-patterns.md +125 -0
- package/skills/jam/refs/quick.md +64 -0
- package/skills/jam/refs/synthesis-patterns.md +114 -0
- package/skills/multi-model/SKILL.md +168 -0
- package/skills/multi-model/refs/aichat.md +119 -0
- package/skills/multi-model/refs/aider.md +100 -0
- package/skills/multi-model/refs/auditability.md +238 -0
- package/skills/multi-model/refs/codex.md +169 -0
- package/skills/multi-model/refs/context.md +306 -0
- package/skills/multi-model/refs/copilot.md +161 -0
- package/skills/multi-model/refs/examples.md +224 -0
- package/skills/multi-model/refs/gemini.md +185 -0
- package/skills/multi-model/refs/goose.md +112 -0
- package/skills/multi-model/refs/llm.md +124 -0
- package/skills/multi-model/refs/opencode.md +196 -0
- package/skills/multi-model/refs/orchestration.md +188 -0
- package/skills/multi-model/refs/pi.md +208 -0
- package/skills/persona/SKILL.md +144 -0
- package/skills/persona/refs/define.md +133 -0
- package/skills/platform/actions/refs/actions.md +114 -0
- package/skills/platform/audit/SKILL.md +174 -0
- package/skills/platform/audit/refs/audit.md +145 -0
- package/skills/platform/audit/refs/checklists-evidence-operations.md +144 -0
- package/skills/platform/audit/refs/checklists-gdpr-pci-evidence.md +213 -0
- package/skills/platform/audit/refs/checklists-soc2-hipaa.md +120 -0
- package/skills/platform/audit/refs/frameworks-gdpr-pci.md +225 -0
- package/skills/platform/audit/refs/frameworks-soc2-hipaa.md +228 -0
- package/skills/platform/compliance/SKILL.md +169 -0
- package/skills/platform/compliance/refs/checklists.md +303 -0
- package/skills/platform/compliance/refs/compliance.md +117 -0
- package/skills/platform/compliance/refs/frameworks.md +282 -0
- package/skills/platform/errors/SKILL.md +183 -0
- package/skills/platform/errors/refs/patterns.md +271 -0
- package/skills/platform/errors/refs/severity.md +264 -0
- package/skills/platform/gate-benchmark-rebaseline/SKILL.md +108 -0
- package/skills/platform/gh/refs/gh.md +105 -0
- package/skills/platform/gh-cli/SKILL.md +120 -0
- package/skills/platform/gh-cli/refs/automation.md +63 -0
- package/skills/platform/gh-cli/refs/gh-ops.md +103 -0
- package/skills/platform/gh-cli/refs/patterns.md +132 -0
- package/skills/platform/gh-cli/scripts/gh_ops.py +454 -0
- package/skills/platform/github-actions/SKILL.md +159 -0
- package/skills/platform/github-actions/refs/security.md +150 -0
- package/skills/platform/github-actions/refs/templates.md +230 -0
- package/skills/platform/github-actions/refs/troubleshooting.md +174 -0
- package/skills/platform/github-actions/scripts/workflow_gen.py +215 -0
- package/skills/platform/gitlab-ci/SKILL.md +140 -0
- package/skills/platform/gitlab-ci/refs/templates.md +223 -0
- package/skills/platform/gitlab-ci/refs/troubleshooting.md +213 -0
- package/skills/platform/glab-cli/SKILL.md +133 -0
- package/skills/platform/glab-cli/refs/ci-debugging.md +95 -0
- package/skills/platform/glab-cli/refs/glab-ops.md +78 -0
- package/skills/platform/glab-cli/refs/patterns.md +131 -0
- package/skills/platform/glab-cli/scripts/glab_ops.py +313 -0
- package/skills/platform/health/SKILL.md +177 -0
- package/skills/platform/health/refs/health.md +72 -0
- package/skills/platform/health/refs/sources.md +302 -0
- package/skills/platform/incident/refs/incident.md +136 -0
- package/skills/platform/infra/refs/infra.md +104 -0
- package/skills/platform/observability/SKILL.md +128 -0
- package/skills/platform/observability/refs/toolchain-discovery.md +243 -0
- package/skills/platform/prereq-doctor/SKILL.md +57 -0
- package/skills/platform/prereq-doctor/refs/tool-registry.md +58 -0
- package/skills/platform/traces/refs/traces.md +101 -0
- package/skills/product/acceptance-criteria/SKILL.md +193 -0
- package/skills/product/acceptance-criteria/refs/ac-anti-patterns.md +291 -0
- package/skills/product/acceptance-criteria/refs/ac-examples.md +277 -0
- package/skills/product/accessibility/SKILL.md +197 -0
- package/skills/product/accessibility/refs/aria-patterns-basics.md +250 -0
- package/skills/product/accessibility/refs/aria-patterns-dynamic.md +187 -0
- package/skills/product/accessibility/refs/aria-patterns-interactive.md +246 -0
- package/skills/product/accessibility/refs/audit-report-findings.md +248 -0
- package/skills/product/accessibility/refs/audit-report-results.md +276 -0
- package/skills/product/accessibility/refs/common-violations-html-css.md +270 -0
- package/skills/product/accessibility/refs/common-violations-interactive.md +303 -0
- package/skills/product/accessibility/refs/keyboard-testing-basics.md +222 -0
- package/skills/product/accessibility/refs/keyboard-testing-patterns.md +173 -0
- package/skills/product/accessibility/refs/screen-reader-testing-advanced.md +294 -0
- package/skills/product/accessibility/refs/screen-reader-testing-commands.md +255 -0
- package/skills/product/accessibility/refs/wcag-checklist.md +262 -0
- package/skills/product/analyze/SKILL.md +164 -0
- package/skills/product/analyze/refs/algorithms.md +238 -0
- package/skills/product/analyze/refs/sentiment-patterns.md +180 -0
- package/skills/product/imagery/SKILL.md +97 -0
- package/skills/product/imagery/alter/SKILL.md +105 -0
- package/skills/product/imagery/alter/refs/editing-reference.md +146 -0
- package/skills/product/imagery/create/SKILL.md +109 -0
- package/skills/product/imagery/create/refs/prompt-engineering.md +112 -0
- package/skills/product/imagery/create/refs/provider-reference.md +219 -0
- package/skills/product/imagery/review/SKILL.md +101 -0
- package/skills/product/imagery/review/refs/analysis-lenses.md +136 -0
- package/skills/product/imagery/review/refs/quality-gates.md +153 -0
- package/skills/product/imagery/scripts/analyze.sh +23 -0
- package/skills/product/imagery/scripts/edit.sh +14 -0
- package/skills/product/imagery/scripts/generate.sh +13 -0
- package/skills/product/imagery/scripts/provider.py +787 -0
- package/skills/product/listen/SKILL.md +175 -0
- package/skills/product/listen/refs/channels.md +220 -0
- package/skills/product/mockup/SKILL.md +106 -0
- package/skills/product/mockup/refs/templates.md +95 -0
- package/skills/product/refs/a11y.md +109 -0
- package/skills/product/refs/acceptance.md +79 -0
- package/skills/product/refs/align.md +67 -0
- package/skills/product/refs/analyze.md +77 -0
- package/skills/product/refs/elicit.md +67 -0
- package/skills/product/refs/listen.md +58 -0
- package/skills/product/refs/mockup.md +77 -0
- package/skills/product/refs/screenshot.md +59 -0
- package/skills/product/refs/strategy.md +77 -0
- package/skills/product/refs/synthesize.md +54 -0
- package/skills/product/refs/ux-review.md +68 -0
- package/skills/product/refs/ux.md +101 -0
- package/skills/product/requirements-analysis/SKILL.md +136 -0
- package/skills/product/requirements-analysis/refs/requirements-example-auth.md +264 -0
- package/skills/product/requirements-analysis/refs/requirements-example-export-integration.md +88 -0
- package/skills/product/requirements-analysis/refs/requirements-output-format-template.md +247 -0
- package/skills/product/requirements-analysis/refs/user-story-guide.md +296 -0
- package/skills/product/requirements-graph/SKILL.md +155 -0
- package/skills/product/requirements-graph/refs/examples.md +223 -0
- package/skills/product/requirements-graph/refs/schema.md +162 -0
- package/skills/product/requirements-migrate/SKILL.md +90 -0
- package/skills/product/requirements-navigate/SKILL.md +141 -0
- package/skills/product/requirements-navigate/refs/meta-templates.md +141 -0
- package/skills/product/screenshot/SKILL.md +147 -0
- package/skills/product/strategy/SKILL.md +198 -0
- package/skills/product/strategy/refs/frameworks.md +295 -0
- package/skills/product/strategy/refs/templates-competitive-market.md +299 -0
- package/skills/product/strategy/refs/templates-roi-value.md +207 -0
- package/skills/product/synthesize/SKILL.md +116 -0
- package/skills/product/synthesize/refs/journey-mapping.md +212 -0
- package/skills/product/synthesize/refs/prioritization.md +193 -0
- package/skills/product/ux-review/SKILL.md +164 -0
- package/skills/product/visual-direction/SKILL.md +137 -0
- package/skills/product/visual-review/SKILL.md +131 -0
- package/skills/runtime-exec/SKILL.md +138 -0
- package/skills/search/codebase-narrator/SKILL.md +131 -0
- package/skills/search/codebase-narrator/refs/output-template.md +100 -0
- package/skills/smaht/SKILL.md +72 -0
- package/skills/smaht/discovery/SKILL.md +65 -0
- package/skills/smaht/intent/SKILL.md +89 -0
- package/skills/smaht/propose-skills/SKILL.md +142 -0
- package/skills/smaht/refs/state.md +76 -0
- package/skills/swarm/SKILL.md +132 -0
- package/skills/swarm/refs/fan-out.md +104 -0
- package/skills/swarm/refs/independent-verification.md +86 -0
- package/skills/swarm/refs/receipts-and-evidence.md +69 -0
- package/skills/swarm/refs/recon-synthesis.md +87 -0
- package/skills/swarm/refs/ship-discipline.md +90 -0
- package/skills/wickedizer/SKILL.md +147 -0
- package/skills/wickedizer/refs/artifact-types.md +238 -0
- package/skills/wickedizer/refs/complexity.md +278 -0
- package/skills/wickedizer/refs/de-ai-pass.md +140 -0
- package/skills/wickedizer/refs/failure-modes.md +249 -0
- package/skills/wickedizer/refs/patterns.md +282 -0
- package/skills/wickedizer/refs/review.md +221 -0
- package/skills/wickedizer/refs/structure.md +282 -0
- package/skills/wickedizer/refs/voice-profile.md +125 -0
- package/skills/workflow/SKILL.md +132 -0
- package/skills/workflow/refs/archetype-adjustments.md +205 -0
- package/skills/workflow/refs/evidence.md +58 -0
- package/skills/workflow/refs/integration.md +130 -0
- package/skills/workflow/refs/risk-dimension-signals.md +260 -0
- package/skills/workflow/refs/scoring-rubric.md +49 -0
- package/skills/workflow/refs/signal-keywords.md +176 -0
- package/skills/workflow/refs/specialist-routing-rules.md +159 -0
- package/skills/worktrees/SKILL.md +87 -0
- package/skills/worktrees/refs/recipes.md +96 -0
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["clarify", "design", "review"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Screen Reader Testing: Advanced Tests & Workflow
|
|
6
|
+
|
|
7
|
+
ARIA testing, navigation, tables, dynamic content, focus management, common issues, and testing workflow.
|
|
8
|
+
|
|
9
|
+
## 5. ARIA Test
|
|
10
|
+
|
|
11
|
+
**Goal**: ARIA attributes enhance accessibility, not break it.
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
□ ARIA roles appropriate (button, dialog, alert, etc.)
|
|
15
|
+
□ aria-label/aria-labelledby on unlabeled controls
|
|
16
|
+
□ aria-describedby for additional context
|
|
17
|
+
□ aria-live for dynamic updates
|
|
18
|
+
□ aria-expanded for collapsible content
|
|
19
|
+
□ aria-hidden used correctly (not on focusable elements)
|
|
20
|
+
□ Custom controls have proper ARIA states
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Test:**
|
|
24
|
+
- Navigate to custom components
|
|
25
|
+
- Are roles and states announced?
|
|
26
|
+
- Do state changes get announced?
|
|
27
|
+
|
|
28
|
+
**Examples:**
|
|
29
|
+
```html
|
|
30
|
+
<!-- ✓ Custom button -->
|
|
31
|
+
<div role="button" tabindex="0" aria-pressed="false">
|
|
32
|
+
Toggle feature
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<!-- ✓ Live region for updates -->
|
|
36
|
+
<div aria-live="polite" aria-atomic="true">
|
|
37
|
+
3 items in cart
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<!-- ✓ Accordion -->
|
|
41
|
+
<button aria-expanded="false" aria-controls="panel1">
|
|
42
|
+
Section 1
|
|
43
|
+
</button>
|
|
44
|
+
<div id="panel1" hidden>
|
|
45
|
+
Content...
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<!-- ✓ Modal -->
|
|
49
|
+
<div role="dialog" aria-modal="true" aria-labelledby="dialog-title">
|
|
50
|
+
<h2 id="dialog-title">Confirm Action</h2>
|
|
51
|
+
...
|
|
52
|
+
</div>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 6. Navigation Test
|
|
56
|
+
|
|
57
|
+
**Goal**: Efficient page navigation for screen reader users.
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
□ Skip links present ("Skip to main content")
|
|
61
|
+
□ Landmarks define page regions
|
|
62
|
+
□ Heading structure enables outline navigation
|
|
63
|
+
□ Table of contents for long pages
|
|
64
|
+
□ Breadcrumbs properly marked up
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Test:**
|
|
68
|
+
- Can you quickly jump to main content?
|
|
69
|
+
- Use landmark navigation (VO+U, landmarks)
|
|
70
|
+
- Use heading navigation to browse page structure
|
|
71
|
+
|
|
72
|
+
## 7. Table Test
|
|
73
|
+
|
|
74
|
+
**Goal**: Data tables are navigable and understandable.
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
□ Data tables use <table>, not divs with CSS grid
|
|
78
|
+
□ Headers use <th> with scope attribute
|
|
79
|
+
□ Complex tables use id/headers association
|
|
80
|
+
□ Table has <caption> or aria-label
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Test:**
|
|
84
|
+
- Navigate into table (VO+Shift+Down)
|
|
85
|
+
- Are column/row headers announced with each cell?
|
|
86
|
+
|
|
87
|
+
**Examples:**
|
|
88
|
+
```html
|
|
89
|
+
<!-- ✓ Simple table -->
|
|
90
|
+
<table>
|
|
91
|
+
<caption>Sales by Region</caption>
|
|
92
|
+
<thead>
|
|
93
|
+
<tr>
|
|
94
|
+
<th scope="col">Region</th>
|
|
95
|
+
<th scope="col">Q1</th>
|
|
96
|
+
<th scope="col">Q2</th>
|
|
97
|
+
</tr>
|
|
98
|
+
</thead>
|
|
99
|
+
<tbody>
|
|
100
|
+
<tr>
|
|
101
|
+
<th scope="row">North</th>
|
|
102
|
+
<td>$100K</td>
|
|
103
|
+
<td>$120K</td>
|
|
104
|
+
</tr>
|
|
105
|
+
</tbody>
|
|
106
|
+
</table>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## 8. Dynamic Content Test
|
|
110
|
+
|
|
111
|
+
**Goal**: Content changes announced to screen reader users.
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
□ Loading states announced
|
|
115
|
+
□ Success/error messages use role="alert"
|
|
116
|
+
□ Form validation errors announced
|
|
117
|
+
□ Content updates use aria-live
|
|
118
|
+
□ Infinite scroll announces new content
|
|
119
|
+
□ Client-side routing announces page changes
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Test:**
|
|
123
|
+
- Trigger dynamic updates
|
|
124
|
+
- Are changes announced without needing to navigate?
|
|
125
|
+
|
|
126
|
+
**Examples:**
|
|
127
|
+
```html
|
|
128
|
+
<!-- ✓ Alert -->
|
|
129
|
+
<div role="alert">
|
|
130
|
+
Form submitted successfully
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
<!-- ✓ Status update -->
|
|
134
|
+
<div role="status" aria-live="polite">
|
|
135
|
+
Saving... Saved.
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
<!-- ✓ Loading indicator -->
|
|
139
|
+
<div role="status" aria-live="polite" aria-atomic="true">
|
|
140
|
+
<span aria-live="assertive" aria-busy="true">Loading data...</span>
|
|
141
|
+
</div>
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## 9. Focus Management Test
|
|
145
|
+
|
|
146
|
+
**Goal**: Focus behavior logical for screen reader users.
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
□ Focus moves to modal when opened
|
|
150
|
+
□ Focus returns to trigger when modal closed
|
|
151
|
+
□ Tab navigation within modal only
|
|
152
|
+
□ No focus on hidden elements
|
|
153
|
+
□ Focus visible (screen reader and sighted keyboard users)
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Test:**
|
|
157
|
+
- Open modal - does focus move to modal?
|
|
158
|
+
- Close modal - does focus return to trigger button?
|
|
159
|
+
- Tab within modal - does focus stay trapped?
|
|
160
|
+
|
|
161
|
+
## Common Screen Reader Issues
|
|
162
|
+
|
|
163
|
+
### 1. Missing Labels
|
|
164
|
+
|
|
165
|
+
```html
|
|
166
|
+
<!-- ✗ BAD -->
|
|
167
|
+
<input type="text" placeholder="Search">
|
|
168
|
+
|
|
169
|
+
<!-- ✓ GOOD -->
|
|
170
|
+
<label for="search">Search</label>
|
|
171
|
+
<input type="text" id="search" placeholder="e.g., product name">
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### 2. Inaccessible Icons
|
|
175
|
+
|
|
176
|
+
```html
|
|
177
|
+
<!-- ✗ BAD -->
|
|
178
|
+
<button><i class="icon-delete"></i></button>
|
|
179
|
+
|
|
180
|
+
<!-- ✓ GOOD -->
|
|
181
|
+
<button aria-label="Delete item">
|
|
182
|
+
<i class="icon-delete" aria-hidden="true"></i>
|
|
183
|
+
</button>
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### 3. Meaningless Link Text
|
|
187
|
+
|
|
188
|
+
```html
|
|
189
|
+
<!-- ✗ BAD -->
|
|
190
|
+
<a href="/article1">Read more</a>
|
|
191
|
+
<a href="/article2">Read more</a>
|
|
192
|
+
|
|
193
|
+
<!-- ✓ GOOD -->
|
|
194
|
+
<a href="/article1">Read more about quarterly results</a>
|
|
195
|
+
<!-- OR -->
|
|
196
|
+
<h3 id="article1-title">Quarterly Results</h3>
|
|
197
|
+
<a href="/article1" aria-labelledby="article1-title read-more">
|
|
198
|
+
<span id="read-more">Read more</span>
|
|
199
|
+
</a>
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### 4. Unlabeled Regions
|
|
203
|
+
|
|
204
|
+
```html
|
|
205
|
+
<!-- ✗ BAD -->
|
|
206
|
+
<div class="sidebar">...</div>
|
|
207
|
+
|
|
208
|
+
<!-- ✓ GOOD -->
|
|
209
|
+
<aside aria-label="Related articles">...</aside>
|
|
210
|
+
<!-- OR -->
|
|
211
|
+
<nav aria-labelledby="sidebar-title">
|
|
212
|
+
<h2 id="sidebar-title">Related Articles</h2>
|
|
213
|
+
...
|
|
214
|
+
</nav>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### 5. Missing Live Regions
|
|
218
|
+
|
|
219
|
+
```javascript
|
|
220
|
+
// ✗ BAD - Update not announced
|
|
221
|
+
document.getElementById('status').textContent = 'Saved';
|
|
222
|
+
|
|
223
|
+
// ✓ GOOD - Update announced
|
|
224
|
+
<div id="status" role="status" aria-live="polite"></div>
|
|
225
|
+
document.getElementById('status').textContent = 'Saved';
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Testing Workflow
|
|
229
|
+
|
|
230
|
+
### Quick Test (10 minutes)
|
|
231
|
+
1. Turn on screen reader
|
|
232
|
+
2. Close your eyes or turn off monitor
|
|
233
|
+
3. Navigate through the page
|
|
234
|
+
4. Can you complete the primary action?
|
|
235
|
+
|
|
236
|
+
### Comprehensive Test (30 minutes)
|
|
237
|
+
1. Test all checklist items above
|
|
238
|
+
2. Navigate by headings
|
|
239
|
+
3. Navigate by landmarks
|
|
240
|
+
4. Navigate by links
|
|
241
|
+
5. Navigate by form fields
|
|
242
|
+
6. Test all interactive components
|
|
243
|
+
7. Test form submission and error handling
|
|
244
|
+
|
|
245
|
+
### User Flows to Test
|
|
246
|
+
- Homepage to product to checkout
|
|
247
|
+
- Login flow
|
|
248
|
+
- Search and filter results
|
|
249
|
+
- Complete a form
|
|
250
|
+
- Read an article
|
|
251
|
+
- Error recovery
|
|
252
|
+
|
|
253
|
+
## Reporting Issues
|
|
254
|
+
|
|
255
|
+
When documenting screen reader issues:
|
|
256
|
+
|
|
257
|
+
```markdown
|
|
258
|
+
**Issue**: Unlabeled search button
|
|
259
|
+
|
|
260
|
+
**Screen Reader**: VoiceOver + Safari
|
|
261
|
+
**Announcement**: "Button" (should be "Search button")
|
|
262
|
+
**Location**: Header navigation
|
|
263
|
+
**Code**: `<button><SearchIcon /></button>`
|
|
264
|
+
**Fix**: Add aria-label
|
|
265
|
+
```html
|
|
266
|
+
<button aria-label="Search">
|
|
267
|
+
<SearchIcon aria-hidden="true" />
|
|
268
|
+
</button>
|
|
269
|
+
```
|
|
270
|
+
**Priority**: High (primary navigation control)
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Success Criteria
|
|
274
|
+
|
|
275
|
+
**Pass if:**
|
|
276
|
+
- All content accessible via screen reader
|
|
277
|
+
- Purpose of all elements clear from announcement
|
|
278
|
+
- User can complete all tasks without seeing screen
|
|
279
|
+
- No confusion or dead ends
|
|
280
|
+
- Dynamic updates announced appropriately
|
|
281
|
+
|
|
282
|
+
**Fail if:**
|
|
283
|
+
- Any interactive element unlabeled
|
|
284
|
+
- User gets lost or confused
|
|
285
|
+
- Primary action not achievable
|
|
286
|
+
- Content missing from screen reader
|
|
287
|
+
- Unclear or misleading announcements
|
|
288
|
+
|
|
289
|
+
## Resources
|
|
290
|
+
|
|
291
|
+
- **WebAIM Screen Reader Survey**: Usage stats and preferences
|
|
292
|
+
- **Deque University**: Detailed screen reader guides
|
|
293
|
+
- **A11ycasts**: Video tutorials on screen reader usage
|
|
294
|
+
- **Screen Reader User Survey**: https://webaim.org/projects/screenreadersurvey9/
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["clarify", "design", "review"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Screen Reader Testing: Commands & Setup
|
|
6
|
+
|
|
7
|
+
Comprehensive guide to screen reader commands and setup for WCAG 2.1 compliance.
|
|
8
|
+
|
|
9
|
+
## Why Screen Reader Testing Matters
|
|
10
|
+
|
|
11
|
+
- **15% of web users** rely on assistive technology
|
|
12
|
+
- **Legal requirement** for ADA/Section 508 compliance
|
|
13
|
+
- **Automated tools miss 70%** of accessibility issues
|
|
14
|
+
- **Screen readers = SEO bots** (similar parsing logic)
|
|
15
|
+
|
|
16
|
+
## Primary Screen Readers
|
|
17
|
+
|
|
18
|
+
### macOS: VoiceOver (Built-in)
|
|
19
|
+
|
|
20
|
+
**Turn On/Off:**
|
|
21
|
+
- `Cmd + F5` (or Touch ID 3x)
|
|
22
|
+
|
|
23
|
+
**Essential Commands:**
|
|
24
|
+
```
|
|
25
|
+
VO = Control + Option
|
|
26
|
+
|
|
27
|
+
Navigate:
|
|
28
|
+
VO + Right Arrow Next element
|
|
29
|
+
VO + Left Arrow Previous element
|
|
30
|
+
VO + Shift + ↓ Enter element (like <div>)
|
|
31
|
+
VO + Shift + ↑ Exit element
|
|
32
|
+
|
|
33
|
+
Interact:
|
|
34
|
+
VO + Space Activate button/link
|
|
35
|
+
VO + Shift + Space Open context menu
|
|
36
|
+
|
|
37
|
+
Read:
|
|
38
|
+
VO + A Read page from current position
|
|
39
|
+
Control Stop reading
|
|
40
|
+
|
|
41
|
+
Navigate by element type:
|
|
42
|
+
VO + Cmd + H Next heading
|
|
43
|
+
VO + Cmd + L Next link
|
|
44
|
+
VO + Cmd + J Next form control
|
|
45
|
+
VO + Cmd + G Next graphic/image
|
|
46
|
+
VO + Cmd + X Next list
|
|
47
|
+
VO + Cmd + T Next table
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Rotor (element list):**
|
|
51
|
+
- `VO + U` - Open rotor
|
|
52
|
+
- Arrow keys to navigate categories (headings, links, forms, etc.)
|
|
53
|
+
- Type to search
|
|
54
|
+
- Enter to jump to element
|
|
55
|
+
|
|
56
|
+
### Windows: NVDA (Free)
|
|
57
|
+
|
|
58
|
+
**Download:** https://www.nvaccess.org/download/
|
|
59
|
+
|
|
60
|
+
**Essential Commands:**
|
|
61
|
+
```
|
|
62
|
+
NVDA = Insert (or Caps Lock if configured)
|
|
63
|
+
|
|
64
|
+
Navigate:
|
|
65
|
+
Down Arrow Next line
|
|
66
|
+
Up Arrow Previous line
|
|
67
|
+
Tab Next focusable element
|
|
68
|
+
H Next heading
|
|
69
|
+
1-6 Next heading level 1-6
|
|
70
|
+
K Next link
|
|
71
|
+
F Next form field
|
|
72
|
+
B Next button
|
|
73
|
+
G Next graphic
|
|
74
|
+
|
|
75
|
+
Interact:
|
|
76
|
+
Enter Activate link/button
|
|
77
|
+
Space Toggle checkbox, activate button
|
|
78
|
+
NVDA + Space Toggle focus/browse mode
|
|
79
|
+
|
|
80
|
+
Read:
|
|
81
|
+
NVDA + Down Arrow Read current line
|
|
82
|
+
NVDA + ↓ (repeat) Read from here
|
|
83
|
+
Control Stop reading
|
|
84
|
+
|
|
85
|
+
Lists:
|
|
86
|
+
NVDA + F7 Elements list (headings, links, etc.)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Windows: JAWS (Commercial)
|
|
90
|
+
|
|
91
|
+
**Most used enterprise screen reader.** Commands similar to NVDA.
|
|
92
|
+
|
|
93
|
+
### Mobile: iOS VoiceOver
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Settings > Accessibility > VoiceOver
|
|
97
|
+
|
|
98
|
+
Triple-click home button (or side button) to toggle
|
|
99
|
+
|
|
100
|
+
Single tap Speak element
|
|
101
|
+
Double tap Activate
|
|
102
|
+
Swipe right Next element
|
|
103
|
+
Swipe left Previous element
|
|
104
|
+
Two-finger swipe up Read from top
|
|
105
|
+
Rotor Rotate two fingers to change navigation mode
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Mobile: Android TalkBack
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
Settings > Accessibility > TalkBack
|
|
112
|
+
|
|
113
|
+
Swipe right Next element
|
|
114
|
+
Swipe left Previous element
|
|
115
|
+
Double tap Activate
|
|
116
|
+
Swipe up then right Read from top
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Essential Testing Checklist
|
|
120
|
+
|
|
121
|
+
### 1. Semantic Structure Test
|
|
122
|
+
|
|
123
|
+
**Goal**: Proper HTML structure for screen reader navigation.
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
□ Page has single <h1>
|
|
127
|
+
□ Headings in correct order (h1 → h2 → h3, no skips)
|
|
128
|
+
□ Landmarks present: <header>, <nav>, <main>, <footer>
|
|
129
|
+
□ Lists use <ul>/<ol>, not just <br> tags
|
|
130
|
+
□ Tables use proper <table> structure
|
|
131
|
+
□ Forms use <form> and <fieldset>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Test:**
|
|
135
|
+
- Use heading navigation (VO+Cmd+H or H key)
|
|
136
|
+
- Use landmark navigation (VO+U in VoiceOver, D in NVDA)
|
|
137
|
+
- Can you quickly jump to main content?
|
|
138
|
+
|
|
139
|
+
### 2. Alternative Text Test
|
|
140
|
+
|
|
141
|
+
**Goal**: All non-text content has text alternative (WCAG 1.1.1).
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
□ Images have alt text
|
|
145
|
+
□ Decorative images have alt=""
|
|
146
|
+
□ Complex images have detailed descriptions
|
|
147
|
+
□ Icons have accessible labels
|
|
148
|
+
□ SVGs have <title> or aria-label
|
|
149
|
+
□ Background images with content have ARIA labels
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Test:**
|
|
153
|
+
- Navigate to each image (VO+Cmd+G or G key)
|
|
154
|
+
- Is the purpose clearly announced?
|
|
155
|
+
- Are decorative images skipped?
|
|
156
|
+
|
|
157
|
+
**Examples:**
|
|
158
|
+
```html
|
|
159
|
+
<!-- ✓ Informative image -->
|
|
160
|
+
<img src="chart.png" alt="Sales increased 40% in Q4">
|
|
161
|
+
|
|
162
|
+
<!-- ✓ Decorative image -->
|
|
163
|
+
<img src="divider.png" alt="">
|
|
164
|
+
|
|
165
|
+
<!-- ✓ Complex image -->
|
|
166
|
+
<img src="diagram.png" alt="System architecture"
|
|
167
|
+
aria-describedby="diagram-desc">
|
|
168
|
+
<div id="diagram-desc">
|
|
169
|
+
The system consists of three layers:
|
|
170
|
+
presentation (React), API (Node.js), and database (PostgreSQL).
|
|
171
|
+
</div>
|
|
172
|
+
|
|
173
|
+
<!-- ✓ Icon button -->
|
|
174
|
+
<button aria-label="Close">
|
|
175
|
+
<svg>...</svg>
|
|
176
|
+
</button>
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### 3. Link and Button Test
|
|
180
|
+
|
|
181
|
+
**Goal**: Link/button purpose clear from announcement (WCAG 2.4.4).
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
□ Link text describes destination
|
|
185
|
+
□ No "click here" or "read more" alone
|
|
186
|
+
□ Button text describes action
|
|
187
|
+
□ Icon-only controls have labels
|
|
188
|
+
□ Links and buttons distinguishable
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Test:**
|
|
192
|
+
- Use link navigation (VO+Cmd+L or K key)
|
|
193
|
+
- Listen to each link out of context
|
|
194
|
+
- Is it clear where the link goes?
|
|
195
|
+
|
|
196
|
+
**Examples:**
|
|
197
|
+
```html
|
|
198
|
+
<!-- ✗ BAD - Unclear out of context -->
|
|
199
|
+
<a href="/report.pdf">Click here</a>
|
|
200
|
+
|
|
201
|
+
<!-- ✓ GOOD - Clear purpose -->
|
|
202
|
+
<a href="/report.pdf">Download Q4 Sales Report (PDF, 2MB)</a>
|
|
203
|
+
|
|
204
|
+
<!-- ✗ BAD - Generic -->
|
|
205
|
+
<button>Submit</button>
|
|
206
|
+
|
|
207
|
+
<!-- ✓ GOOD - Specific -->
|
|
208
|
+
<button>Submit Payment</button>
|
|
209
|
+
|
|
210
|
+
<!-- ✓ Icon with label -->
|
|
211
|
+
<button aria-label="Delete item">
|
|
212
|
+
<TrashIcon />
|
|
213
|
+
</button>
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### 4. Form Test
|
|
217
|
+
|
|
218
|
+
**Goal**: All form controls have accessible labels (WCAG 1.3.1, 3.3.2).
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
□ All inputs have associated <label>
|
|
222
|
+
□ Fieldsets for related groups (radio buttons)
|
|
223
|
+
□ Required fields indicated accessibly
|
|
224
|
+
□ Error messages linked to fields
|
|
225
|
+
□ Placeholder is not the only label
|
|
226
|
+
□ Instructions announced before input
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
**Test:**
|
|
230
|
+
- Navigate to each form field (VO+Cmd+J or F key)
|
|
231
|
+
- Is the label and purpose announced?
|
|
232
|
+
- Are required fields clearly indicated?
|
|
233
|
+
- Are error messages read when field receives focus?
|
|
234
|
+
|
|
235
|
+
**Examples:**
|
|
236
|
+
```html
|
|
237
|
+
<!-- ✓ Proper label association -->
|
|
238
|
+
<label for="email">Email address (required)</label>
|
|
239
|
+
<input type="email" id="email" required aria-required="true">
|
|
240
|
+
|
|
241
|
+
<!-- ✓ Fieldset for radio group -->
|
|
242
|
+
<fieldset>
|
|
243
|
+
<legend>Shipping method</legend>
|
|
244
|
+
<label><input type="radio" name="ship" value="standard"> Standard</label>
|
|
245
|
+
<label><input type="radio" name="ship" value="express"> Express</label>
|
|
246
|
+
</fieldset>
|
|
247
|
+
|
|
248
|
+
<!-- ✓ Error message -->
|
|
249
|
+
<label for="username">Username</label>
|
|
250
|
+
<input type="text" id="username" aria-describedby="username-error"
|
|
251
|
+
aria-invalid="true">
|
|
252
|
+
<div id="username-error" role="alert">
|
|
253
|
+
Username must be at least 3 characters
|
|
254
|
+
</div>
|
|
255
|
+
```
|