hatch3r 1.5.1 → 1.6.2

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.
Files changed (129) hide show
  1. package/README.md +18 -2
  2. package/agents/hatch3r-a11y-auditor.md +2 -0
  3. package/agents/hatch3r-dependency-auditor.md +18 -0
  4. package/agents/hatch3r-devops.md +20 -0
  5. package/agents/hatch3r-fixer.md +28 -12
  6. package/agents/hatch3r-implementer.md +26 -12
  7. package/agents/hatch3r-learnings-loader.md +23 -1
  8. package/agents/hatch3r-researcher.md +101 -114
  9. package/agents/hatch3r-reviewer.md +27 -1
  10. package/agents/hatch3r-security-auditor.md +2 -0
  11. package/agents/modes/architecture.md +1 -0
  12. package/agents/modes/boundary-analysis.md +1 -0
  13. package/agents/modes/codebase-impact.md +1 -0
  14. package/agents/modes/complexity-risk.md +1 -0
  15. package/agents/modes/coverage-analysis.md +1 -0
  16. package/agents/modes/feature-design.md +1 -0
  17. package/agents/modes/impact-analysis.md +1 -0
  18. package/agents/modes/migration-path.md +1 -0
  19. package/agents/modes/refactoring-strategy.md +1 -0
  20. package/agents/modes/regression.md +1 -0
  21. package/agents/modes/requirements-elicitation.md +1 -0
  22. package/agents/modes/risk-assessment.md +1 -0
  23. package/agents/modes/risk-prioritization.md +1 -0
  24. package/agents/modes/root-cause.md +1 -0
  25. package/agents/modes/symptom-trace.md +1 -0
  26. package/agents/modes/test-pattern.md +1 -0
  27. package/agents/shared/external-knowledge.md +5 -5
  28. package/agents/shared/injection-patterns.md +78 -0
  29. package/agents/shared/prompt-structure.md +44 -0
  30. package/checks/accessibility.md +2 -0
  31. package/checks/code-quality.md +2 -0
  32. package/checks/performance.md +2 -0
  33. package/checks/security.md +2 -0
  34. package/checks/testing.md +2 -0
  35. package/commands/board/pickup-delegation-multi.md +2 -2
  36. package/commands/board/pickup-delegation.md +2 -2
  37. package/commands/board/pickup-post-impl.md +21 -0
  38. package/commands/board/shared-github.md +4 -2
  39. package/commands/hatch3r-agent-customize.md +2 -1
  40. package/commands/hatch3r-api-spec.md +2 -0
  41. package/commands/hatch3r-benchmark.md +2 -0
  42. package/commands/hatch3r-board-fill.md +96 -9
  43. package/commands/hatch3r-board-groom.md +1 -0
  44. package/commands/hatch3r-board-init.md +31 -1
  45. package/commands/hatch3r-board-pickup.md +10 -0
  46. package/commands/hatch3r-board-refresh.md +1 -0
  47. package/commands/hatch3r-board-shared.md +5 -1
  48. package/commands/hatch3r-bug-plan.md +3 -1
  49. package/commands/hatch3r-codebase-map.md +3 -1
  50. package/commands/hatch3r-command-customize.md +2 -1
  51. package/commands/hatch3r-context-health.md +1 -0
  52. package/commands/hatch3r-cost-tracking.md +1 -0
  53. package/commands/hatch3r-debug.md +2 -0
  54. package/commands/hatch3r-dep-audit.md +1 -0
  55. package/commands/hatch3r-feature-plan.md +3 -1
  56. package/commands/hatch3r-healthcheck.md +2 -1
  57. package/commands/hatch3r-hooks.md +1 -0
  58. package/commands/hatch3r-learn.md +8 -5
  59. package/commands/hatch3r-migration-plan.md +2 -0
  60. package/commands/hatch3r-onboard.md +2 -0
  61. package/commands/hatch3r-project-spec.md +3 -1
  62. package/commands/hatch3r-quick-change.md +14 -2
  63. package/commands/hatch3r-recipe.md +1 -0
  64. package/commands/hatch3r-refactor-plan.md +2 -0
  65. package/commands/hatch3r-release.md +1 -0
  66. package/commands/hatch3r-revision.md +10 -0
  67. package/commands/hatch3r-roadmap.md +3 -1
  68. package/commands/hatch3r-rule-customize.md +2 -1
  69. package/commands/hatch3r-security-audit.md +2 -1
  70. package/commands/hatch3r-skill-customize.md +2 -1
  71. package/commands/hatch3r-test-plan.md +2 -0
  72. package/commands/hatch3r-workflow.md +15 -3
  73. package/commands/revision/revision-quality.md +4 -3
  74. package/dist/cli/index.js +6235 -2613
  75. package/dist/cli/index.js.map +1 -1
  76. package/github-agents/hatch3r-docs-agent.md +1 -0
  77. package/github-agents/hatch3r-lint-agent.md +1 -0
  78. package/github-agents/hatch3r-security-agent.md +1 -0
  79. package/github-agents/hatch3r-test-agent.md +1 -0
  80. package/package.json +7 -1
  81. package/rules/hatch3r-accessibility-standards.mdc +1 -0
  82. package/rules/hatch3r-agent-orchestration-detail.mdc +1 -0
  83. package/rules/hatch3r-agent-orchestration.md +38 -5
  84. package/rules/hatch3r-agent-orchestration.mdc +39 -5
  85. package/rules/hatch3r-api-design.md +1 -1
  86. package/rules/hatch3r-api-design.mdc +2 -1
  87. package/rules/hatch3r-browser-verification.md +1 -1
  88. package/rules/hatch3r-browser-verification.mdc +3 -3
  89. package/rules/hatch3r-ci-cd.mdc +1 -0
  90. package/rules/hatch3r-code-standards.md +1 -1
  91. package/rules/hatch3r-code-standards.mdc +2 -2
  92. package/rules/hatch3r-component-conventions.md +3 -3
  93. package/rules/hatch3r-component-conventions.mdc +2 -2
  94. package/rules/hatch3r-data-classification.mdc +1 -0
  95. package/rules/hatch3r-dependency-management.md +1 -1
  96. package/rules/hatch3r-dependency-management.mdc +2 -1
  97. package/rules/hatch3r-feature-flags.md +1 -1
  98. package/rules/hatch3r-feature-flags.mdc +1 -1
  99. package/rules/hatch3r-git-conventions.md +1 -1
  100. package/rules/hatch3r-git-conventions.mdc +2 -2
  101. package/rules/hatch3r-i18n.md +2 -2
  102. package/rules/hatch3r-i18n.mdc +1 -1
  103. package/rules/hatch3r-learning-consult.md +1 -1
  104. package/rules/hatch3r-learning-consult.mdc +2 -2
  105. package/rules/hatch3r-migrations.mdc +1 -0
  106. package/rules/hatch3r-observability-tracing-detail.mdc +99 -6
  107. package/rules/hatch3r-observability-tracing.mdc +20 -15
  108. package/rules/hatch3r-performance-budgets.md +1 -1
  109. package/rules/hatch3r-performance-budgets.mdc +1 -1
  110. package/rules/hatch3r-secrets-management.mdc +1 -0
  111. package/rules/hatch3r-security-patterns.md +1 -1
  112. package/rules/hatch3r-security-patterns.mdc +3 -2
  113. package/rules/hatch3r-testing.md +1 -1
  114. package/rules/hatch3r-testing.mdc +3 -2
  115. package/rules/hatch3r-theming.md +2 -2
  116. package/rules/hatch3r-theming.mdc +2 -2
  117. package/rules/hatch3r-tooling-hierarchy.md +1 -1
  118. package/rules/hatch3r-tooling-hierarchy.mdc +3 -2
  119. package/skills/hatch3r-a11y-audit/SKILL.md +21 -55
  120. package/skills/hatch3r-a11y-audit/references/manual-audit-checklist.md +58 -0
  121. package/skills/hatch3r-agent-customize/SKILL.md +1 -1
  122. package/skills/hatch3r-command-customize/SKILL.md +1 -1
  123. package/skills/hatch3r-gh-agentic-workflows/SKILL.md +42 -136
  124. package/skills/hatch3r-gh-agentic-workflows/references/azure-devops.md +60 -0
  125. package/skills/hatch3r-gh-agentic-workflows/references/gitlab-ci.md +51 -0
  126. package/skills/hatch3r-issue-workflow/SKILL.md +8 -27
  127. package/skills/hatch3r-issue-workflow/references/delegation-patterns.md +51 -0
  128. package/skills/hatch3r-rule-customize/SKILL.md +1 -1
  129. package/skills/hatch3r-skill-customize/SKILL.md +1 -1
@@ -21,7 +21,7 @@ Core distributed tracing and OpenTelemetry conventions. For structured logging s
21
21
  | Queue | `{queue} {operation}` | `tasks-queue publish` |
22
22
  | Internal | `{module}.{function}` | `auth.verifyToken` |
23
23
 
24
- - Required span attributes: `service.name`, `service.version`, `deployment.environment`. Add domain-specific attributes where relevant.
24
+ - Required span attributes: `service.name`, `service.version`, `deployment.environment`. Add domain-specific attributes (e.g., `user.id`, `tenant.id`) where relevant.
25
25
  - Parent-child span relationships: every outbound call (HTTP, DB, queue) creates a child span of the current context. Never create orphan spans.
26
26
  - Sampling strategies: use `ParentBased(TraceIdRatioBased(0.1))` in production (10% sample rate). Always sample errors and slow requests (> p95 latency) at 100%.
27
27
  - Use the OpenTelemetry Collector as a gateway between applications and backends to enable batching, retrying, and vendor-neutral export.
@@ -29,48 +29,53 @@ Core distributed tracing and OpenTelemetry conventions. For structured logging s
29
29
 
30
30
  ## OpenTelemetry Semantic Conventions
31
31
 
32
- Follow the [OpenTelemetry Semantic Conventions](https://opentelemetry.io/docs/specs/semconv/) (v1.29+) for consistent attribute naming.
32
+ Follow the [OpenTelemetry Semantic Conventions](https://opentelemetry.io/docs/specs/semconv/) (v1.29+) for consistent attribute naming across all telemetry signals.
33
33
 
34
34
  ### Standard Attribute Namespaces
35
35
 
36
36
  | Namespace | Scope | Key Attributes |
37
37
  |-----------|-------|----------------|
38
- | `http.*` | HTTP client and server spans | `http.request.method`, `http.response.status_code`, `http.route` |
39
- | `db.*` | Database client spans | `db.system`, `db.operation.name`, `db.collection.name` |
40
- | `rpc.*` | RPC client and server spans | `rpc.system`, `rpc.service`, `rpc.method` |
38
+ | `http.*` | HTTP client and server spans | `http.request.method`, `http.response.status_code`, `http.route`, `url.full`, `url.scheme` |
39
+ | `db.*` | Database client spans | `db.system`, `db.operation.name`, `db.collection.name`, `db.query.text` (sanitized) |
40
+ | `rpc.*` | RPC client and server spans | `rpc.system`, `rpc.service`, `rpc.method`, `rpc.grpc.status_code` |
41
41
  | `messaging.*` | Message queue spans | `messaging.system`, `messaging.operation.type`, `messaging.destination.name` |
42
42
  | `faas.*` | Serverless/FaaS invocations | `faas.trigger`, `faas.invoked_name`, `faas.coldstart` |
43
43
  | `cloud.*` | Cloud provider context | `cloud.provider`, `cloud.region`, `cloud.availability_zone` |
44
44
  | `k8s.*` | Kubernetes context | `k8s.namespace.name`, `k8s.pod.name`, `k8s.deployment.name` |
45
45
 
46
- - Use semantic convention attribute names exactly as specified.
47
- - Prefer experimental conventions over project-specific names for future migration.
46
+ - Use semantic convention attribute names exactly as specified. Do not invent custom alternatives for concepts already covered.
47
+ - When semantic conventions are marked "Experimental," prefer them over project-specific names to ease future migration.
48
48
 
49
49
  ### Resource Semantic Conventions
50
50
 
51
+ Every telemetry-producing service must declare resource attributes at startup:
52
+
51
53
  | Attribute | Requirement | Description |
52
54
  |-----------|-------------|-------------|
53
55
  | `service.name` | Required | Logical name of the service |
54
56
  | `service.version` | Recommended | Semantic version of the service |
55
- | `deployment.environment.name` | Recommended | Deployment environment |
56
- | `service.instance.id` | Recommended | Unique instance identifier |
57
+ | `deployment.environment.name` | Recommended | Deployment environment (production, staging, development) |
58
+ | `service.instance.id` | Recommended | Unique instance identifier (pod name, container ID) |
59
+
60
+ - Configure via environment variables (`OTEL_SERVICE_NAME`, `OTEL_RESOURCE_ATTRIBUTES`) or programmatically at SDK initialization.
61
+ - Do not use the default `unknown_service` value in any deployed environment.
57
62
 
58
63
  ### Span Status Codes
59
64
 
60
65
  | Code | When to Set |
61
66
  |------|-------------|
62
67
  | `UNSET` | Default. Span completed without error indication. |
63
- | `OK` | Explicitly override lower-level error signals. Use sparingly. |
64
- | `ERROR` | Exception caught, HTTP 5xx, or business-logic error. |
68
+ | `OK` | Set only when the application explicitly considers the operation successful and wants to override lower-level error signals. Use sparingly. |
69
+ | `ERROR` | Operation failed: exception caught, HTTP 5xx, or business-logic error visible in error rate metrics. |
65
70
 
66
- - Set `ERROR` for server-side errors (5xx) and unhandled exceptions. Do not set `ERROR` for client errors (4xx).
67
- - Attach exceptions as span events when setting `ERROR`.
71
+ - Set `ERROR` for server-side errors (5xx) and unhandled exceptions. Do not set `ERROR` for client errors (4xx) on the server span.
72
+ - Attach exceptions as span events (`exception.type`, `exception.message`, `exception.stacktrace`) when setting `ERROR`.
68
73
 
69
74
  ### Attribute Naming Guidelines
70
75
 
71
76
  - Use dot-separated namespaces: `http.request.method`, not `httpRequestMethod`.
72
- - Attribute values should be low-cardinality. Never use unbounded values as attribute values.
73
- - Prefix custom attributes with your project namespace.
77
+ - Attribute values should be low-cardinality. Never use unbounded values (full URLs with query params, raw SQL) as attribute values.
78
+ - Prefer semantic convention attributes over custom attributes. Prefix custom attributes with your project namespace (e.g., `myapp.feature.flag_key`).
74
79
 
75
80
  ### AI Agent Semantic Conventions (Summary)
76
81
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  id: hatch3r-performance-budgets
3
3
  type: rule
4
- description: Performance budgets and targets for the project
4
+ description: Core Web Vitals targets, API response-time tables, database query caps, bundle-size limits, and Lighthouse CI enforcement gates
5
5
  scope: conditional
6
6
  globs: "**/*perf*,**/*benchmark*,**/*budget*,**/lighthouse*,**/*.perf.*"
7
7
  tags: [performance]
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Performance budgets and targets for the project
2
+ description: Core Web Vitals targets, API response-time tables, database query caps, bundle-size limits, and Lighthouse CI enforcement gates
3
3
  globs: ["**/*perf*", "**/*benchmark*", "**/*budget*", "**/lighthouse*", "**/*.perf.*"]
4
4
  alwaysApply: false
5
5
  ---
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  description: Secret management, rotation, and secure handling patterns for the project
3
3
  globs: ["**/.env*", "**/*secret*", "**/*credential*", "**/*token*", "**/config/**", "**/.gitignore", "**/vault/**", "**/*auth*.config*"]
4
+ alwaysApply: false
4
5
  ---
5
6
  # Secrets Management
6
7
 
@@ -55,7 +55,7 @@ quality_charter: agents/shared/quality-charter.md
55
55
  ### ASI01 — Agent Goal Hijack
56
56
 
57
57
  - Separate system prompts from user input with clear delimiters. Never allow user content to override system instructions.
58
- - Implement input guardrails: scan user messages for injection patterns before LLM processing.
58
+ - Implement input guardrails: scan user messages for injection patterns before LLM processing. Canonical pattern catalog: `agents/shared/injection-patterns.md` (Sections A, B, C enumerate pipeline, learnings-storage, and user-facing screening patterns respectively).
59
59
  - Enforce instruction hierarchy: system > developer > user. Reject attempts to redefine agent purpose.
60
60
  - Defend against indirect prompt injection: sanitize and tag content retrieved from external sources (RAG, web, files) before including in context.
61
61
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  description: Security patterns including input validation, auth enforcement, and AI/agentic security for the project
3
3
  globs: ["**/auth/**", "**/security/**", "**/middleware/**", "**/*auth*", "**/*guard*", "**/*policy*", "**/*permission*", "**/*sanitiz*", "**/*validat*"]
4
+ alwaysApply: false
4
5
  ---
5
6
  # Security Patterns
6
7
 
@@ -51,7 +52,7 @@ globs: ["**/auth/**", "**/security/**", "**/middleware/**", "**/*auth*", "**/*gu
51
52
  ### ASI01 — Agent Goal Hijack
52
53
 
53
54
  - Separate system prompts from user input with clear delimiters. Never allow user content to override system instructions.
54
- - Implement input guardrails: scan user messages for injection patterns before LLM processing.
55
+ - Implement input guardrails: scan user messages for injection patterns before LLM processing. Canonical pattern catalog: `agents/shared/injection-patterns.md` (Sections A, B, C enumerate pipeline, learnings-storage, and user-facing screening patterns respectively).
55
56
  - Enforce instruction hierarchy: system > developer > user. Reject attempts to redefine agent purpose.
56
57
  - Defend against indirect prompt injection: sanitize and tag content retrieved from external sources (RAG, web, files) before including in context.
57
58
 
@@ -199,7 +200,7 @@ globs: ["**/auth/**", "**/security/**", "**/middleware/**", "**/*auth*", "**/*gu
199
200
  ### A08 — Software and Data Integrity Failures
200
201
 
201
202
  - Verify integrity of all software updates, dependencies, and CI/CD pipeline artifacts using digital signatures or checksums.
202
- - Use lockfiles and verify their integrity. `npm ci` (not `npm install`) in CI to ensure deterministic builds.
203
+ - Use lockfiles and verify their integrity. `npm ci` (not `npm install`) in CI for deterministic builds that fail on lockfile drift.
203
204
  - CI/CD pipelines: require code review for all changes, enforce branch protection, sign commits where feasible.
204
205
  - Never deserialize untrusted data without validation. Use schemas (zod, JSON Schema) to validate structure before processing.
205
206
  - Protect CI/CD secrets and permissions: restrict who can modify pipeline configuration, require approval for deployment steps.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  id: hatch3r-testing
3
3
  type: rule
4
- description: Test standards and conventions for the project
4
+ description: Coverage thresholds, mocking strategy, property-based testing, mutation-score targets, flaky test quarantine, and snapshot test discipline
5
5
  scope: "**/*.test.*,**/*.spec.*,**/__tests__/**,**/tests/**,**/test/**,**/*.cy.*,**/playwright/**,**/vitest.config.*,**/jest.config.*,**/cypress.config.*"
6
6
  tags: [core]
7
7
  quality_charter: agents/shared/quality-charter.md
@@ -1,6 +1,7 @@
1
1
  ---
2
- description: Test standards and conventions for the project
2
+ description: Coverage thresholds, mocking strategy, property-based testing, mutation-score targets, flaky test quarantine, and snapshot test discipline
3
3
  globs: ["**/*.test.*", "**/*.spec.*", "**/__tests__/**", "**/tests/**", "**/test/**", "**/*.cy.*", "**/playwright/**", "**/vitest.config.*", "**/jest.config.*", "**/cypress.config.*"]
4
+ alwaysApply: false
4
5
  ---
5
6
  # Testing Standards
6
7
 
@@ -90,7 +91,7 @@ Error handling code is often under-tested because developers focus on happy path
90
91
 
91
92
  - **Use sparingly.** Snapshots are appropriate for serialized output (JSON API responses, CLI output, rendered HTML structure) where the exact output matters and is stable.
92
93
  - **Not appropriate for:** UI component visual appearance (use visual regression tests), objects with timestamps or random IDs (unstable), large objects (unreadable diffs).
93
- - **Review discipline.** Snapshot updates (`--update-snapshots`) must be reviewed as carefully as code changes. Reviewers must verify the new snapshot is intentionally correct, not just "different."
94
+ - **Review discipline.** Snapshot updates (`--update-snapshots`) must be reviewed with the same rigor as code changes. Reviewers must verify the new snapshot is intentionally correct, not just "different."
94
95
  - **Keep snapshots small.** Snapshot files > 100 lines suggest the test is asserting too broadly. Narrow the assertion to the relevant subset.
95
96
  - **Inline snapshots** (where supported) are preferred over external `.snap` files for short outputs (< 20 lines) because they keep the assertion co-located with the test.
96
97
  - **Name snapshot files** to match their test file: `auth.test.ts` → `auth.test.ts.snap`.
@@ -3,8 +3,8 @@ id: hatch3r-theming
3
3
  type: rule
4
4
  description: Theming, dark mode, and color system conventions for the project
5
5
  scope: conditional
6
- globs: src/**/*.vue, src/**/*.tsx, src/**/*.jsx, src/**/*.css, src/**/*.scss
7
- tags: [implementation]
6
+ globs: "src/**/*.vue,src/**/*.tsx,src/**/*.jsx,src/**/*.css,src/**/*.scss,**/*theme*,**/*color*"
7
+ tags: [implementation, lang:typescript]
8
8
  quality_charter: agents/shared/quality-charter.md
9
9
  ---
10
10
  # Theming & Dark Mode
@@ -40,11 +40,11 @@ alwaysApply: false
40
40
  - Provide a `high-contrast` token set with ≥ 7:1 contrast ratios for all text and ≥ 3:1 for non-text UI.
41
41
  - Detect user preference with `@media (prefers-contrast: more)` and apply high-contrast tokens.
42
42
  - Support `forced-colors` mode: use system color keywords (`Canvas`, `CanvasText`, `LinkText`, `ButtonFace`, `ButtonText`) and test that information is not conveyed by color alone.
43
- - Ensure focus indicators and borders remain visible under forced-colors by using `Highlight` / `SelectedItem` keywords.
43
+ - Verify focus indicators and borders remain visible under forced-colors by testing in Windows High Contrast Mode — use `Highlight` / `SelectedItem` keywords.
44
44
 
45
45
  ## Testing
46
46
 
47
- - Verify theme toggle switches all tokens correctly — no unstyled or hard-coded colors leak through.
47
+ - Verify theme toggle switches all tokens — no unstyled or hard-coded colors leak through. Inspect computed styles to confirm all color values come from design tokens.
48
48
  - Validate contrast ratios per theme using automated tools (axe-core, Lighthouse) against WCAG AA (4.5:1 text, 3:1 non-text).
49
49
  - Capture screenshots across light, dark, and high-contrast themes at key viewport sizes for visual regression comparison.
50
50
  - Test `prefers-color-scheme` and `prefers-contrast` media query overrides using browser DevTools emulation or Playwright `emulateMedia`.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  id: hatch3r-tooling-hierarchy
3
3
  type: rule
4
- description: Priority order for tools and knowledge sources
4
+ description: Platform MCP-first priority, documentation MCP for library APIs, web research for CVEs, and browser MCP for UI verification with fallback guidance
5
5
  scope: "**/.agents/**,**/mcp/**,**/mcp.json,**/.cursor/**,**/.github/copilot*,**/.windsurf/**,**/hatch.json,**/.claude/**"
6
6
  tags: [core]
7
7
  quality_charter: agents/shared/quality-charter.md
@@ -1,6 +1,7 @@
1
1
  ---
2
- description: Priority order for tools and knowledge sources
2
+ description: Platform MCP-first priority, documentation MCP for library APIs, web research for CVEs, and browser MCP for UI verification with fallback guidance
3
3
  globs: ["**/.agents/**", "**/mcp/**", "**/mcp.json", "**/.cursor/**", "**/.github/copilot*", "**/.windsurf/**", "**/hatch.json", "**/.claude/**"]
4
+ alwaysApply: false
4
5
  ---
5
6
  # Tooling Hierarchy
6
7
 
@@ -88,7 +89,7 @@ If no web search MCP server is configured (e.g., `brave-search` is not in `mcp.s
88
89
  Use browser automation MCP tools to visually verify UI changes after automated tests pass.
89
90
 
90
91
  **When to use:**
91
- - Verifying UI component changes render correctly.
92
+ - Verifying UI component changes render as specified in the design or acceptance criteria.
92
93
  - Reproducing and confirming fixes for visually observable bugs.
93
94
  - Accessibility auditing (keyboard nav, contrast, focus indicators).
94
95
  - Frontend performance profiling (CPU, frame rate, memory).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  id: hatch3r-a11y-audit
3
- description: Comprehensive WCAG AA accessibility audit with findings and fixes. Use when auditing accessibility, verifying WCAG compliance, or improving a11y across the application.
3
+ description: Run a WCAG AA accessibility audit with findings and fixes across 7 scan categories (keyboard, contrast, ARIA, reduced motion, screen reader, high contrast, automated axe). Use when auditing accessibility or verifying WCAG compliance.
4
4
  tags: [review, a11y]
5
5
  quality_charter: agents/shared/quality-charter.md
6
6
  ---
@@ -12,33 +12,30 @@ quality_charter: agents/shared/quality-charter.md
12
12
  Task Progress:
13
13
  - [ ] Step 1: Read accessibility requirements from rules and specs
14
14
  - [ ] Step 2: Automated scan — run axe-core or similar on all pages/components
15
- - [ ] Step 3: Manual audit — keyboard, contrast, ARIA, reduced motion, screen reader
15
+ - [ ] Step 3: Manual audit — load references/manual-audit-checklist.md
16
16
  - [ ] Step 4: Catalog findings by severity (critical/major/minor)
17
17
  - [ ] Step 5: Fix critical and major findings
18
18
  - [ ] Step 6: Verify fixes with re-scan and manual check
19
19
  ```
20
20
 
21
+ ## Progressive Disclosure
22
+
23
+ - **Main skill file (this):** Workflow steps, automated scan, fix process, DoD.
24
+ - **`references/manual-audit-checklist.md`:** Detailed WCAG requirements matrix, per-category manual criteria, severity cataloging rubric. Load during Step 3.
25
+
21
26
  ## Step 1: Read Accessibility Requirements
22
27
 
23
- **From project component rules (Accessibility section):**
28
+ From project component rules (Accessibility section):
24
29
 
25
30
  - All animations: wrap in `prefers-reduced-motion` media query AND check user's reduced motion setting.
26
- - Color contrast: 4.5:1 for text (WCAG AA).
31
+ - Color contrast: >= 4.5:1 for text (WCAG AA).
27
32
  - Interactive elements: keyboard focusable with visible focus indicator.
28
33
  - Dynamic content changes: use `aria-live` regions.
29
34
  - Support high contrast mode.
30
35
 
31
- **From project quality documentation:**
36
+ For the full WCAG requirements matrix, load `references/manual-audit-checklist.md`.
32
37
 
33
- | Requirement | Standard | Details |
34
- | ------------------- | -------- | ---------------------------------------------------------------- |
35
- | Reduced motion | WCAG 2.1 | All animations respect `prefers-reduced-motion` and user setting |
36
- | Color contrast | WCAG AA | Text contrast ratio ≥ 4.5:1 |
37
- | Keyboard navigation | WCAG 2.1 | All interactive elements focusable and operable via keyboard |
38
- | Screen reader | WCAG 2.1 | Dynamic state and reactions announced via ARIA live regions |
39
- | High contrast mode | Custom | User-configurable high contrast theme (if applicable) |
40
-
41
- - For external library docs and current best practices, follow the project's tooling hierarchy.
38
+ For external library docs and current best practices, follow the project's tooling hierarchy.
42
39
 
43
40
  ## Step 2: Automated Scan
44
41
 
@@ -49,51 +46,20 @@ Task Progress:
49
46
 
50
47
  ## Step 3: Manual Audit
51
48
 
52
- **Keyboard navigation:**
53
-
54
- - Tab through all interactive elements. Verify logical order and confirm no focus traps exist.
55
- - All buttons, links, inputs, custom controls focusable.
56
- - Visible focus indicator (outline or ring) — no `outline: none` without replacement.
57
- - Escape closes modals/dropdowns. Enter/Space activates buttons.
58
-
59
- **Color contrast:**
60
-
61
- - Check text vs background: ≥ 4.5:1 for normal text, ≥ 3:1 for large text.
62
- - Use DevTools or contrast checker. Test with design tokens — flag any ad-hoc colors that fall below the 4.5:1 ratio.
63
-
64
- **ARIA attributes:**
49
+ Load `references/manual-audit-checklist.md` and work through each category:
65
50
 
66
- - `aria-label` or `aria-labelledby` for icon-only buttons, custom controls.
67
- - `aria-live="polite"` or `aria-live="assertive"` for dynamic state changes, notifications.
68
- - `role` correct for custom widgets (button, link, tab, etc.).
69
- - `aria-expanded`, `aria-selected`, `aria-hidden` where appropriate.
51
+ 1. Keyboard navigation
52
+ 2. Color contrast
53
+ 3. ARIA attributes
54
+ 4. Reduced motion
55
+ 5. Screen reader
56
+ 6. High contrast mode
70
57
 
71
- **Reduced motion:**
72
-
73
- - Test with `prefers-reduced-motion: reduce` (DevTools → Rendering → Emulate CSS media).
74
- - Verify animations are disabled or simplified. Check user's reduced motion setting.
75
- - No motion-dependent information (per WCAG 2.1).
76
-
77
- **Screen reader:**
78
-
79
- - Test with NVDA, VoiceOver, or similar. Verify announcements for dynamic content.
80
- - Dynamic state, errors, and success messages announced.
81
- - Form labels associated, error messages linked via `aria-describedby` or `aria-errormessage`.
82
-
83
- **High contrast mode:**
84
-
85
- - Verify user-configurable high contrast theme works (if applicable). No loss of information.
58
+ The reference file provides the specific criteria, DevTools settings, and pass/fail conditions for each.
86
59
 
87
60
  ## Step 4: Catalog Findings
88
61
 
89
- | Severity | Definition | Examples |
90
- | -------- | --------------------------------------- | ------------------------------------------------------------- |
91
- | Critical | Blocks core functionality, fails WCAG A | Missing form labels, no keyboard access to primary actions |
92
- | Major | Significant barrier, fails WCAG AA | Contrast < 4.5:1, missing focus indicators, no reduced motion |
93
- | Minor | Improves experience, best practice | Redundant labels, suboptimal heading order |
94
-
95
- - Produce a findings table: ID, severity, WCAG criterion, description, location, fix suggestion.
96
- - Prioritize: critical first, then major. Minor can be batched.
62
+ Use the severity rubric in `references/manual-audit-checklist.md` to assign severity. Produce a findings table: ID, severity, WCAG criterion, description, location, fix suggestion. Prioritize critical first, then major. Minor can be batched.
97
63
 
98
64
  ## Step 5: Fix Critical and Major Findings
99
65
 
@@ -133,7 +99,7 @@ You MUST spawn these agents via the Task tool (`subagent_type: "generalPurpose"`
133
99
  - [ ] WCAG AA compliance on all audited surfaces
134
100
  - [ ] Reduced motion respected (`prefers-reduced-motion` + user setting)
135
101
  - [ ] Keyboard navigation complete with visible focus
136
- - [ ] Color contrast 4.5:1 for text
102
+ - [ ] Color contrast >= 4.5:1 for text
137
103
  - [ ] ARIA live regions for dynamic content
138
104
  - [ ] Automated scan clean for critical/major
139
105
  - [ ] Manual verification completed
@@ -0,0 +1,58 @@
1
+ # Manual A11y Audit Checklist — Detailed Criteria
2
+
3
+ Loaded on demand during Step 3 of the accessibility audit workflow when a detailed manual checklist is needed beyond the automated scan.
4
+
5
+ ## WCAG Requirements Matrix
6
+
7
+ | Requirement | Standard | Details |
8
+ | ------------------- | -------- | ---------------------------------------------------------------- |
9
+ | Reduced motion | WCAG 2.1 | All animations respect `prefers-reduced-motion` and user setting |
10
+ | Color contrast | WCAG AA | Text contrast ratio >= 4.5:1 |
11
+ | Keyboard navigation | WCAG 2.1 | All interactive elements focusable and operable via keyboard |
12
+ | Screen reader | WCAG 2.1 | Dynamic state and reactions announced via ARIA live regions |
13
+ | High contrast mode | Custom | User-configurable high contrast theme (if applicable) |
14
+
15
+ ## Keyboard Navigation
16
+
17
+ - Tab through all interactive elements. Verify logical order and confirm no focus traps exist.
18
+ - All buttons, links, inputs, custom controls focusable.
19
+ - Visible focus indicator (outline or ring) — no `outline: none` without replacement.
20
+ - Escape closes modals/dropdowns. Enter/Space activates buttons.
21
+
22
+ ## Color Contrast
23
+
24
+ - Check text vs background: >= 4.5:1 for normal text, >= 3:1 for large text.
25
+ - Use DevTools or contrast checker. Test with design tokens — flag any ad-hoc colors that fall below the 4.5:1 ratio.
26
+
27
+ ## ARIA Attributes
28
+
29
+ - `aria-label` or `aria-labelledby` for icon-only buttons, custom controls.
30
+ - `aria-live="polite"` or `aria-live="assertive"` for dynamic state changes, notifications.
31
+ - `role` correct for custom widgets (button, link, tab, etc.).
32
+ - `aria-expanded`, `aria-selected`, `aria-hidden` where appropriate.
33
+
34
+ ## Reduced Motion
35
+
36
+ - Test with `prefers-reduced-motion: reduce` (DevTools → Rendering → Emulate CSS media).
37
+ - Verify animations are disabled or simplified. Check user's reduced motion setting.
38
+ - No motion-dependent information (per WCAG 2.1).
39
+
40
+ ## Screen Reader
41
+
42
+ - Test with NVDA, VoiceOver, or similar. Verify announcements for dynamic content.
43
+ - Dynamic state, errors, and success messages announced.
44
+ - Form labels associated, error messages linked via `aria-describedby` or `aria-errormessage`.
45
+
46
+ ## High Contrast Mode
47
+
48
+ - Verify user-configurable high contrast theme works (if applicable). No loss of information.
49
+
50
+ ## Severity Cataloging
51
+
52
+ | Severity | Definition | Examples |
53
+ | -------- | --------------------------------------- | ------------------------------------------------------------- |
54
+ | Critical | Blocks core functionality, fails WCAG A | Missing form labels, no keyboard access to primary actions |
55
+ | Major | Significant barrier, fails WCAG AA | Contrast < 4.5:1, missing focus indicators, no reduced motion |
56
+ | Minor | Improves experience, best practice | Redundant labels, suboptimal heading order |
57
+
58
+ Produce a findings table: ID, severity, WCAG criterion, description, location, fix suggestion. Prioritize critical first, then major. Minor can be batched.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  id: hatch3r-agent-customize
3
- description: Agent customization redirects to the unified hatch3r-customize skill.
3
+ description: Redirect to write agent persona, model, and apply-scope overrides under .hatch3r/agents/ -- use when tailoring a sub-agent for the current repository
4
4
  tags: [customize]
5
5
  quality_charter: agents/shared/quality-charter.md
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  id: hatch3r-command-customize
3
- description: Command customization redirects to the unified hatch3r-customize skill.
3
+ description: Redirect to edit orchestrator pipeline and prompt wording for slash commands under .hatch3r/commands/ -- use when changing how a command fans out to sub-agents
4
4
  tags: [customize]
5
5
  quality_charter: agents/shared/quality-charter.md
6
6
  ---