@skilly-hand/skilly-hand 0.6.1 → 0.8.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/CHANGELOG.md CHANGED
@@ -16,6 +16,38 @@ All notable changes to this project are documented in this file.
16
16
  ### Removed
17
17
  - _None._
18
18
 
19
+ ## [0.8.0] - 2026-04-04
20
+ [View on npm](https://www.npmjs.com/package/@skilly-hand/skilly-hand/v/0.8.0)
21
+
22
+ ### Added
23
+ - Added portable skill `frontend-design` for project-aware UI component design that enforces stack detection before any design work.
24
+ - Added portable skill `life-guard` for multi-perspective code and decision review using a committee + domain expert safety guard pattern.
25
+ - Added portable skill `test-driven-development` for guiding the RED → GREEN → REFACTOR TDD cycle.
26
+
27
+ ### Changed
28
+ - _None._
29
+
30
+ ### Fixed
31
+ - _None._
32
+
33
+ ### Removed
34
+ - _None._
35
+
36
+ ## [0.7.0] - 2026-04-04
37
+ [View on npm](https://www.npmjs.com/package/@skilly-hand/skilly-hand/v/0.7.0)
38
+
39
+ ### Added
40
+ - _None._
41
+
42
+ ### Changed
43
+ - _None._
44
+
45
+ ### Fixed
46
+ - _None._
47
+
48
+ ### Removed
49
+ - _None._
50
+
19
51
  ## [0.6.1] - 2026-04-04
20
52
  [View on npm](https://www.npmjs.com/package/@skilly-hand/skilly-hand/v/0.6.1)
21
53
 
package/README.md CHANGED
@@ -65,6 +65,7 @@ npx skilly-hand
65
65
 
66
66
  The catalog currently includes:
67
67
 
68
+ - `accessibility-audit`
68
69
  - `agents-root-orchestrator`
69
70
  - `angular-guidelines`
70
71
  - `figma-mcp-0to1`
package/catalog/README.md CHANGED
@@ -4,11 +4,15 @@ Published portable skills consumed by the `skilly-hand` CLI.
4
4
 
5
5
  | Skill | Description | Tags | Installs For |
6
6
  | ----- | ----------- | ---- | ------------ |
7
+ | `accessibility-audit` | Audit web accessibility against W3C WCAG 2.2 Level AA using framework-agnostic checks, remediation patterns, and portable command-line scanning. | frontend, accessibility, workflow, quality | all |
7
8
  | `agents-root-orchestrator` | Author root AGENTS.md as a Where/What/When orchestrator that routes tasks and skill invocation clearly. | core, workflow, orchestration | all |
8
9
  | `angular-guidelines` | Guide Angular code generation and review using latest stable Angular verification and modern framework best practices. | angular, frontend, workflow, best-practices | all |
9
10
  | `figma-mcp-0to1` | Guide users from Figma MCP installation and authentication through first canvas creation, with function-level tool coverage and operational recovery patterns. | figma, mcp, workflow, design | all |
11
+ | `frontend-design` | Project-aware frontend design skill that detects the existing tech stack, UI libraries, CSS variables, and design tokens before proposing any UI work. Never invents design decisions — reads the project first, confirms with the user, then designs. | frontend, design, workflow, ui | all |
12
+ | `life-guard` | Review code, decisions, and artifacts through a multi-perspective committee and a domain expert safety guard, then synthesize a structured verdict. | core, review, workflow, quality | all |
10
13
  | `skill-creator` | Create and standardize AI skills with reusable structure, metadata rules, and templates. | core, workflow, authoring | all |
11
14
  | `spec-driven-development` | Plan, execute, and verify multi-step work through versioned specs with small, testable tasks. | core, workflow, planning | all |
15
+ | `test-driven-development` | Guide implementation using the RED → GREEN → REFACTOR TDD cycle: write a failing test first, write the minimum code to pass, then refactor while tests stay green. | testing, workflow, quality, core | all |
12
16
  | `token-optimizer` | Classify task complexity and right-size reasoning depth, context gathering, and response detail to reduce wasted tokens. | core, workflow, efficiency | all |
13
17
 
14
18
  Legacy source remains under `source/legacy/agentic-structure` and is excluded from installation.
@@ -1,8 +1,12 @@
1
1
  [
2
+ "accessibility-audit",
2
3
  "agents-root-orchestrator",
3
4
  "angular-guidelines",
4
5
  "figma-mcp-0to1",
6
+ "frontend-design",
7
+ "life-guard",
5
8
  "skill-creator",
6
9
  "spec-driven-development",
10
+ "test-driven-development",
7
11
  "token-optimizer"
8
12
  ]
@@ -0,0 +1,154 @@
1
+ # Accessibility Audit Guide
2
+
3
+ ## When to Use
4
+
5
+ Use this skill when:
6
+
7
+ - Auditing components or pages for WCAG conformance.
8
+ - Reviewing pull requests that change templates, interactive UI, forms, or styles.
9
+ - Defining accessibility acceptance criteria for frontend delivery.
10
+ - Converting automated scanner findings into prioritized remediations.
11
+
12
+ Do not use this skill for:
13
+
14
+ - Product-specific visual token compliance.
15
+ - Framework-only code style reviews unrelated to accessibility behavior.
16
+ - Non-web formats that need a dedicated standard beyond WCAG web content checks.
17
+
18
+ ---
19
+
20
+ ## Baseline and Sources
21
+
22
+ Default baseline:
23
+
24
+ - **WCAG 2.2 Level AA**.
25
+
26
+ W3C status notes (verified from W3C WCAG overview):
27
+
28
+ - WCAG 2.2 was published on **5 October 2023** and updated on **12 December 2024**.
29
+ - W3C encourages using the latest WCAG version.
30
+
31
+ Use only W3C sources for decisions and remediation rationale.
32
+
33
+ ---
34
+
35
+ ## Critical Patterns
36
+
37
+ ### Pattern 1: Audit in POUR Order
38
+
39
+ Audit checks in this order to reduce misses:
40
+
41
+ 1. **Perceivable**: text alternatives, structure, contrast.
42
+ 2. **Operable**: keyboard, focus, target size, predictable interaction.
43
+ 3. **Understandable**: labels, errors, language, clear behavior.
44
+ 4. **Robust**: semantic roles/states and assistive-technology compatibility.
45
+
46
+ ### Pattern 2: Prefer Native Semantics First
47
+
48
+ - Use native controls (`button`, `a`, `input`, `select`, `textarea`) before ARIA-heavy custom widgets.
49
+ - If custom widgets are necessary, define role, keyboard behavior, name, state, and relationship.
50
+ - Never remove focus indicators without a visible replacement.
51
+
52
+ ### Pattern 3: Prioritize by User Impact
53
+
54
+ Fix in this order:
55
+
56
+ 1. Keyboard and focus blockers.
57
+ 2. Missing names/labels for controls and media.
58
+ 3. Form errors and status announcements.
59
+ 4. Contrast and non-text contrast issues.
60
+
61
+ ### Pattern 4: Validate with W3C Tooling
62
+
63
+ Use W3C validators as baseline technical checks, then complete manual WCAG behavior review:
64
+
65
+ - Nu HTML Checker
66
+ - CSS Validator
67
+
68
+ ---
69
+
70
+ ## Decision Tree
71
+
72
+ ```text
73
+ Is this an interactive control? -> Verify keyboard access + visible focus + accessible name
74
+ Is this non-text content (image/icon/media)? -> Verify text alternative strategy
75
+ Is this a form input or validation message? -> Verify labels, instructions, errors, and status messaging
76
+ Is this a custom widget pattern? -> Verify role/state/property model and keyboard model
77
+ Does styling reduce legibility or discernibility? -> Verify text + non-text contrast and target size
78
+ Otherwise -> Run checklist sweep and document residual risk
79
+ ```
80
+
81
+ ---
82
+
83
+ ## Code Examples
84
+
85
+ ### Example 1: Icon Button with Accessible Name and Focus Indicator
86
+
87
+ ```html
88
+ <button type="button" aria-label="Close dialog" class="icon-button">
89
+ <svg aria-hidden="true" focusable="false" viewBox="0 0 24 24">
90
+ <path d="M6 6l12 12M18 6L6 18" />
91
+ </svg>
92
+ </button>
93
+ ```
94
+
95
+ ```css
96
+ .icon-button:focus-visible {
97
+ outline: 2px solid #005a9c;
98
+ outline-offset: 2px;
99
+ }
100
+ ```
101
+
102
+ ### Example 2: Labeled Input with Error Association
103
+
104
+ ```html
105
+ <label for="email">Email address</label>
106
+ <input
107
+ id="email"
108
+ type="email"
109
+ aria-invalid="true"
110
+ aria-describedby="email-error"
111
+ />
112
+ <p id="email-error" role="alert">Enter a valid email address.</p>
113
+ ```
114
+
115
+ ### Example 3: Semantic Click Target Instead of Generic Container
116
+
117
+ ```html
118
+ <button type="button" class="card-action">Open details</button>
119
+ ```
120
+
121
+ ```html
122
+ <div role="button" tabindex="0" aria-label="Open details"></div>
123
+ ```
124
+
125
+ ---
126
+
127
+ ## Commands
128
+
129
+ ```bash
130
+ # Run default scan on current directory
131
+ bash catalog/skills/accessibility-audit/scripts/audit-a11y.sh
132
+
133
+ # Scan a specific path
134
+ bash catalog/skills/accessibility-audit/scripts/audit-a11y.sh src
135
+
136
+ # Generate markdown report
137
+ bash catalog/skills/accessibility-audit/scripts/audit-a11y.sh --report src
138
+
139
+ # Generate JSON output for CI pipelines
140
+ bash catalog/skills/accessibility-audit/scripts/audit-a11y.sh --json src
141
+ ```
142
+
143
+ ---
144
+
145
+ ## Resources
146
+
147
+ - Full checklist: [references/w3c-wcag22-checklist.md](references/w3c-wcag22-checklist.md)
148
+ - WCAG overview (WAI): https://www.w3.org/WAI/standards-guidelines/wcag/
149
+ - WCAG 2.2 Recommendation: https://www.w3.org/TR/WCAG22/
150
+ - How to Meet WCAG 2 (Quick Reference): https://www.w3.org/WAI/WCAG22/quickref/
151
+ - Understanding WCAG 2: https://www.w3.org/WAI/WCAG22/Understanding/
152
+ - W3C standards context: https://www.w3.org/standards/
153
+ - W3C validators and tools: https://www.w3.org/developers/tools/
154
+ - W3C homepage: https://www.w3.org/
@@ -0,0 +1,37 @@
1
+ {
2
+ "id": "accessibility-audit",
3
+ "title": "Accessibility Audit",
4
+ "description": "Audit web accessibility against W3C WCAG 2.2 Level AA using framework-agnostic checks, remediation patterns, and portable command-line scanning.",
5
+ "portable": true,
6
+ "tags": ["frontend", "accessibility", "workflow", "quality"],
7
+ "detectors": ["always"],
8
+ "detectionTriggers": ["manual"],
9
+ "installsFor": ["all"],
10
+ "agentSupport": ["codex", "claude", "cursor", "gemini", "copilot"],
11
+ "skillMetadata": {
12
+ "author": "skilly-hand",
13
+ "last-edit": "2026-04-04",
14
+ "license": "Apache-2.0",
15
+ "version": "1.0.0",
16
+ "changelog": "Added portable WCAG 2.2 Level AA accessibility auditing skill with W3C-only references and scanner script; enables consistent web accessibility review across frameworks; affects catalog skill coverage and install plans for stacks recommending accessibility-audit",
17
+ "auto-invoke": "Auditing, reviewing, or implementing web accessibility against WCAG 2.2 Level AA",
18
+ "allowed-tools": [
19
+ "Read",
20
+ "Edit",
21
+ "Write",
22
+ "Glob",
23
+ "Grep",
24
+ "Bash",
25
+ "WebFetch",
26
+ "WebSearch",
27
+ "Task",
28
+ "SubAgent"
29
+ ]
30
+ },
31
+ "files": [
32
+ { "path": "SKILL.md", "kind": "instruction" },
33
+ { "path": "references/w3c-wcag22-checklist.md", "kind": "reference" },
34
+ { "path": "scripts/audit-a11y.sh", "kind": "asset" }
35
+ ],
36
+ "dependencies": []
37
+ }
@@ -0,0 +1,80 @@
1
+ # W3C WCAG 2.2 Level AA Checklist (Web)
2
+
3
+ Source basis:
4
+
5
+ - WCAG 2 Overview: https://www.w3.org/WAI/standards-guidelines/wcag/
6
+ - WCAG 2.2 Recommendation: https://www.w3.org/TR/WCAG22/
7
+ - Quick Reference: https://www.w3.org/WAI/WCAG22/quickref/
8
+ - Understanding WCAG 2: https://www.w3.org/WAI/WCAG22/Understanding/
9
+
10
+ Default conformance target in this skill: **WCAG 2.2 Level AA**.
11
+
12
+ ## Principle 1: Perceivable
13
+
14
+ | SC | Level | Audit Focus |
15
+ | --- | --- | --- |
16
+ | 1.1.1 Non-text Content | A | Images/icons/media alternatives (`alt`, labels, text alternatives) |
17
+ | 1.3.1 Info and Relationships | A | Semantic headings, labels, table/form relationships |
18
+ | 1.3.2 Meaningful Sequence | A | DOM reading order matches meaning |
19
+ | 1.3.3 Sensory Characteristics | A | Instructions are not only shape/color/position |
20
+ | 1.3.4 Orientation | AA | Content works in portrait and landscape unless essential |
21
+ | 1.3.5 Identify Input Purpose | AA | Appropriate `autocomplete` tokens for user-data fields |
22
+ | 1.4.1 Use of Color | A | Color is not the only information channel |
23
+ | 1.4.3 Contrast (Minimum) | AA | Text contrast thresholds are met |
24
+ | 1.4.4 Resize Text | AA | Content remains usable at 200% text resize |
25
+ | 1.4.10 Reflow | AA | Reflow at narrow viewport without two-dimensional scroll |
26
+ | 1.4.11 Non-text Contrast | AA | Component boundaries/icons/focus indicators are distinguishable |
27
+ | 1.4.12 Text Spacing | AA | Increased spacing does not break content/function |
28
+ | 1.4.13 Content on Hover or Focus | AA | Hover/focus content is dismissible, hoverable, persistent |
29
+
30
+ ## Principle 2: Operable
31
+
32
+ | SC | Level | Audit Focus |
33
+ | --- | --- | --- |
34
+ | 2.1.1 Keyboard | A | All functionality operable via keyboard |
35
+ | 2.1.2 No Keyboard Trap | A | Focus can enter and leave all components |
36
+ | 2.1.4 Character Key Shortcuts | A | Single-character shortcuts are safe/controllable |
37
+ | 2.4.1 Bypass Blocks | A | Mechanism exists to bypass repeated blocks |
38
+ | 2.4.2 Page Titled | A | Document/page has descriptive title |
39
+ | 2.4.3 Focus Order | A | Focus sequence follows meaningful operation |
40
+ | 2.4.4 Link Purpose (In Context) | A | Link purpose is clear from text/context |
41
+ | 2.4.6 Headings and Labels | AA | Headings/labels clearly describe purpose |
42
+ | 2.4.7 Focus Visible | AA | Visible focus indicator for keyboard users |
43
+ | 2.4.11 Focus Not Obscured (Minimum) | AA | Focused element is not fully hidden |
44
+ | 2.5.3 Label in Name | A | Accessible name includes visible label text |
45
+ | 2.5.7 Dragging Movements | AA | Drag interactions have non-drag alternatives |
46
+ | 2.5.8 Target Size (Minimum) | AA | Pointer targets meet minimum size/spacing |
47
+
48
+ ## Principle 3: Understandable
49
+
50
+ | SC | Level | Audit Focus |
51
+ | --- | --- | --- |
52
+ | 3.1.1 Language of Page | A | Correct `lang` on root document |
53
+ | 3.1.2 Language of Parts | AA | Language changes are marked in content |
54
+ | 3.2.1 On Focus | A | Focus alone does not trigger unexpected context change |
55
+ | 3.2.2 On Input | A | Input alone does not trigger unexpected context change |
56
+ | 3.2.3 Consistent Navigation | AA | Repeated navigation mechanisms are consistent |
57
+ | 3.2.4 Consistent Identification | AA | Same functions are identified consistently |
58
+ | 3.2.6 Consistent Help | AA | Repeated help mechanisms are consistently positioned |
59
+ | 3.3.1 Error Identification | A | Errors are identified in text |
60
+ | 3.3.2 Labels or Instructions | A | Inputs include labels/instructions |
61
+ | 3.3.3 Error Suggestion | AA | Suggested correction is provided when possible |
62
+ | 3.3.4 Error Prevention (Legal, Financial, Data) | AA | Reversible/confirmable/validated submissions |
63
+ | 3.3.7 Redundant Entry | A | Re-entry burden reduced where possible |
64
+ | 3.3.8 Accessible Authentication (Minimum) | AA | Authentication avoids inaccessible cognitive tests |
65
+
66
+ ## Principle 4: Robust
67
+
68
+ | SC | Level | Audit Focus |
69
+ | --- | --- | --- |
70
+ | 4.1.2 Name, Role, Value | A | UI controls expose name, role, state/value correctly |
71
+ | 4.1.3 Status Messages | AA | Dynamic status is conveyed programmatically |
72
+
73
+ ## W3C Tooling Complements
74
+
75
+ Use W3C validators from https://www.w3.org/developers/tools/ as supporting checks:
76
+
77
+ - Nu HTML Checker
78
+ - CSS Validator
79
+
80
+ These checks complement, but do not replace, manual WCAG behavior verification.