a11y-devkit-deploy 1.0.0 → 1.0.1

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/README.md CHANGED
@@ -1,23 +1,23 @@
1
- # A11y Devkit Deploy
2
-
3
- A **fully config-driven**, cross-platform CLI for deploying accessibility skills and MCP servers across multiple IDEs: Claude Code, Cursor, Codex, VSCode, Windsurf, and Factory.
4
-
5
- **Add new skills, MCP servers, or entire IDEs without writing code** - just edit the JSON config and re-run.
6
-
7
- ## Install
8
-
9
- ```bash
10
- npm install -g a11y-devkit-deploy
11
- # or
12
- npx a11y-devkit-deploy
13
- ```
14
-
15
- ## Usage
16
-
17
- ```bash
18
- a11y-devkit-deploy
19
- ```
20
-
1
+ # A11y Devkit Deploy
2
+
3
+ A **fully config-driven**, cross-platform CLI for deploying accessibility skills and MCP servers across multiple IDEs: Claude Code, Cursor, Codex, VSCode, Windsurf, and Factory.
4
+
5
+ **Add new skills, MCP servers, or entire IDEs without writing code** - just edit the JSON config and re-run.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install -g a11y-devkit-deploy
11
+ # or
12
+ npx a11y-devkit-deploy
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ```bash
18
+ a11y-devkit-deploy
19
+ ```
20
+
21
21
  ### Flags
22
22
 
23
23
  - `--local` / `--global`: Skip the scope prompt.
@@ -27,67 +27,67 @@ a11y-devkit-deploy
27
27
  **Note:** MCP configs are always written globally (AppData/Application Support). The scope flag only affects skills.
28
28
 
29
29
  ## After Installation
30
-
31
- Once installation completes, you'll find a comprehensive usage guide in your IDE's skills directory:
32
-
33
- - **Local install**: `.claude/skills/a11y/a11y-devkit-README.md` (or `.cursor/skills/a11y/`, `.codex/skills/a11y/` depending on your IDE)
34
- - **Global install**: `~/.claude/skills/a11y/a11y-devkit-README.md` (or your IDE's global skills directory)
35
-
36
- ### What's in the Guide
37
-
38
- The bundled README includes:
39
- - **70+ example prompts** organized by complexity level (beginner to advanced)
40
- - **Quick reference cheat sheet** for common tasks
41
- - **Skill descriptions** explaining when to use each of the 7 skills
42
- - **MCP server guides** with verification steps and example queries
43
- - **Combined workflows** showing how to use skills and MCP servers together
44
- - **Complete audit examples** using the orchestrator for end-to-end accessibility testing
45
-
46
- ### Preview the Guide
47
-
48
- You can preview the guide here: [templates/deploy-README.md](templates/deploy-README.md)
49
-
50
- ### Next Steps
51
-
52
- 1. Open the README in your IDE's skills directory
53
- 2. Try the "Getting Started" prompts to verify everything is working
54
- 3. Explore the example prompts library to find workflows that match your needs
55
- 4. Use the MCP verification section to test all 5 MCP servers
56
-
57
- ### MCP Servers
58
-
59
- All MCP servers are configured to run via `npx`, which means:
60
- - No local installation or cloning required
61
- - Automatically fetches the latest version when needed
62
- - No disk space used for local copies
63
- - Just restart your IDE and the servers will be available
64
-
65
- ## What It Does
66
-
67
- This CLI automates the setup of accessibility tooling by:
68
-
69
- 1. **Installing skills from npm** - Downloads and installs accessibility skill packages (configurable in `config/settings.json`)
70
- 2. **Configuring MCP servers** - Updates each IDE's MCP config to enable accessibility-focused MCP servers (also configurable)
71
-
72
- **Default configuration includes:**
73
- - **7 accessibility skills** - Testing, remediation, validation, documentation, and orchestration
74
- - **5 MCP servers**:
75
- - **wcag** - WCAG 2.2 guidelines, success criteria, and techniques
76
- - **aria** - WAI-ARIA roles, states, properties, and patterns
77
- - **magentaa11y** - Component accessibility acceptance criteria
78
- - **a11y-personas** - Accessibility personas for diverse user needs
79
- - **arc-issues** - Format AxeCore violations into standardized issue templates
80
-
81
- **Fully customizable** - add/remove skills, MCP servers, or entire IDEs by editing the config file.
82
-
83
- ## Why This Tool?
84
-
85
- **Zero Hardcoded Values** - Every aspect of the tool is driven by `config/settings.json`:
86
- - IDE paths and configuration files
87
- - Skills to install
88
- - MCP servers to configure
89
- - Even the IDE list itself
90
-
30
+
31
+ Once installation completes, you'll find a comprehensive usage guide in your IDE's skills directory:
32
+
33
+ - **Local install**: `.claude/skills/a11y/a11y-devkit-README.md` (or `.cursor/skills/a11y/`, `.codex/skills/a11y/` depending on your IDE)
34
+ - **Global install**: `~/.claude/skills/a11y/a11y-devkit-README.md` (or your IDE's global skills directory)
35
+
36
+ ### What's in the Guide
37
+
38
+ The bundled README includes:
39
+ - **70+ example prompts** organized by complexity level (beginner to advanced)
40
+ - **Quick reference cheat sheet** for common tasks
41
+ - **Skill descriptions** explaining when to use each of the 7 skills
42
+ - **MCP server guides** with verification steps and example queries
43
+ - **Combined workflows** showing how to use skills and MCP servers together
44
+ - **Complete audit examples** using the orchestrator for end-to-end accessibility testing
45
+
46
+ ### Preview the Guide
47
+
48
+ You can preview the guide here: [templates/deploy-README.md](templates/deploy-README.md)
49
+
50
+ ### Next Steps
51
+
52
+ 1. Open the README in your IDE's skills directory
53
+ 2. Try the "Getting Started" prompts to verify everything is working
54
+ 3. Explore the example prompts library to find workflows that match your needs
55
+ 4. Use the MCP verification section to test all 5 MCP servers
56
+
57
+ ### MCP Servers
58
+
59
+ All MCP servers are configured to run via `npx`, which means:
60
+ - No local installation or cloning required
61
+ - Automatically fetches the latest version when needed
62
+ - No disk space used for local copies
63
+ - Just restart your IDE and the servers will be available
64
+
65
+ ## What It Does
66
+
67
+ This CLI automates the setup of accessibility tooling by:
68
+
69
+ 1. **Installing skills from npm** - Downloads and installs accessibility skill packages (configurable in `config/settings.json`)
70
+ 2. **Configuring MCP servers** - Updates each IDE's MCP config to enable accessibility-focused MCP servers (also configurable)
71
+
72
+ **Default configuration includes:**
73
+ - **7 accessibility skills** - Testing, remediation, validation, documentation, and orchestration
74
+ - **5 MCP servers**:
75
+ - **wcag** - WCAG 2.2 guidelines, success criteria, and techniques
76
+ - **aria** - WAI-ARIA roles, states, properties, and patterns
77
+ - **magentaa11y** - Component accessibility acceptance criteria
78
+ - **a11y-personas** - Accessibility personas for diverse user needs
79
+ - **arc-issues** - Format AxeCore violations into standardized issue templates
80
+
81
+ **Fully customizable** - add/remove skills, MCP servers, or entire IDEs by editing the config file.
82
+
83
+ ## Why This Tool?
84
+
85
+ **Zero Hardcoded Values** - Every aspect of the tool is driven by `config/settings.json`:
86
+ - IDE paths and configuration files
87
+ - Skills to install
88
+ - MCP servers to configure
89
+ - Even the IDE list itself
90
+
91
91
  **Adding Support for a New IDE** takes just 5 lines of JSON:
92
92
  ```json
93
93
  {
@@ -98,103 +98,103 @@ This CLI automates the setup of accessibility tooling by:
98
98
  "mcpConfigFile": ".new-ide/mcp.json"
99
99
  }
100
100
  ```
101
-
102
- **Safe by Default** - Won't overwrite your existing:
103
- - Custom MCP servers in your IDE configs
104
- - Other skills in your skills directories
105
- - Creates backups if it encounters JSON parsing errors
106
-
107
- ### Skills Installed (Default)
108
-
109
- The following skill packages are installed from npm by default. **Add your own by editing `config/settings.json`**:
110
-
111
- | Skill | Package | Description |
112
- |-------|---------|-------------|
113
- | a11y-base-web | `a11y-base-web-skill` | Foundational accessibility patterns for web code |
114
- | a11y-issue-writer | `a11y-issue-writer-skill` | Write clear accessibility issue reports |
115
- | a11y-tester | `a11y-tester-skill` | Automated testing with axe-core and Playwright |
116
- | a11y-remediator | `a11y-remediator-skill` | Fix accessibility issues in code |
117
- | a11y-validator | `a11y-validator-skill` | Validate accessibility compliance |
118
- | web-standards | `web-standards-skill` | Web standards and best practices |
119
- | a11y-audit-fix-agent-orchestrator | `a11y-audit-fix-agent-orchestrator-skill` | Orchestrate full audit and fix workflows |
120
-
121
- ### No Local MCP Installation Required!
122
-
123
- MCP servers are configured to use `npx`, which means:
124
- - **No cloning** of MCP server repositories
125
- - **No building** or `npm install` steps
126
- - **No disk space** used for local copies
127
- - **Always up-to-date** - npx fetches the latest version automatically
128
-
129
- The generated MCP config looks like this:
130
-
131
- ```json
132
- {
133
- "mcpServers": {
134
- "wcag": {
135
- "command": "npx",
136
- "args": ["-y", "wcag-mcp"]
137
- },
138
- "aria": {
139
- "command": "npx",
140
- "args": ["-y", "aria-mcp"]
141
- }
142
- }
143
- }
144
- ```
145
-
146
- ## Configuration
147
-
148
- The entire tool is **fully config-driven**. Edit `config/settings.json` to customize everything without touching code.
149
-
150
- ### Adding a New Skill
151
-
152
- Simply add an object to the `skills` array with a `name` (npm package) and `description`:
153
-
154
- ```json
155
- {
156
- "skills": [
157
- {
158
- "name": "a11y-tester-skill",
159
- "description": "Run accessibility tests"
160
- },
161
- {
162
- "name": "your-custom-skill",
163
- "description": "Your custom skill description"
164
- }
165
- ]
166
- }
167
- ```
168
-
169
- ### Adding a New MCP Server
170
-
171
- Add an object to the `mcpServers` array with name, description, command, and args:
172
-
173
- ```json
174
- {
175
- "mcpServers": [
176
- {
177
- "name": "wcag",
178
- "description": "WCAG guidelines reference",
179
- "command": "npx",
180
- "args": ["-y", "wcag-mcp"]
181
- },
182
- {
183
- "name": "your-custom-mcp",
184
- "description": "Your custom MCP server",
185
- "command": "npx",
186
- "args": ["-y", "your-mcp-package"]
187
- }
188
- ]
189
- }
190
- ```
191
-
192
- ### Adding a New Host Application
193
-
194
- Add an object to the `hostApplications` array with the host application's configuration:
195
-
196
- ```json
197
- {
101
+
102
+ **Safe by Default** - Won't overwrite your existing:
103
+ - Custom MCP servers in your IDE configs
104
+ - Other skills in your skills directories
105
+ - Creates backups if it encounters JSON parsing errors
106
+
107
+ ### Skills Installed (Default)
108
+
109
+ The following skill packages are installed from npm by default. **Add your own by editing `config/settings.json`**:
110
+
111
+ | Skill | Package | Description |
112
+ |-------|---------|-------------|
113
+ | a11y-base-web | `a11y-base-web-skill` | Foundational accessibility patterns for web code |
114
+ | a11y-issue-writer | `a11y-issue-writer-skill` | Write clear accessibility issue reports |
115
+ | a11y-tester | `a11y-tester-skill` | Automated testing with axe-core and Playwright |
116
+ | a11y-remediator | `a11y-remediator-skill` | Fix accessibility issues in code |
117
+ | a11y-validator | `a11y-validator-skill` | Validate accessibility compliance |
118
+ | web-standards | `web-standards-skill` | Web standards and best practices |
119
+ | a11y-audit-fix-agent-orchestrator | `a11y-audit-fix-agent-orchestrator-skill` | Orchestrate full audit and fix workflows |
120
+
121
+ ### No Local MCP Installation Required!
122
+
123
+ MCP servers are configured to use `npx`, which means:
124
+ - **No cloning** of MCP server repositories
125
+ - **No building** or `npm install` steps
126
+ - **No disk space** used for local copies
127
+ - **Always up-to-date** - npx fetches the latest version automatically
128
+
129
+ The generated MCP config looks like this:
130
+
131
+ ```json
132
+ {
133
+ "mcpServers": {
134
+ "wcag": {
135
+ "command": "npx",
136
+ "args": ["-y", "wcag-mcp"]
137
+ },
138
+ "aria": {
139
+ "command": "npx",
140
+ "args": ["-y", "aria-mcp"]
141
+ }
142
+ }
143
+ }
144
+ ```
145
+
146
+ ## Configuration
147
+
148
+ The entire tool is **fully config-driven**. Edit `config/settings.json` to customize everything without touching code.
149
+
150
+ ### Adding a New Skill
151
+
152
+ Simply add an object to the `skills` array with a `name` (npm package) and `description`:
153
+
154
+ ```json
155
+ {
156
+ "skills": [
157
+ {
158
+ "name": "a11y-tester-skill",
159
+ "description": "Run accessibility tests"
160
+ },
161
+ {
162
+ "name": "your-custom-skill",
163
+ "description": "Your custom skill description"
164
+ }
165
+ ]
166
+ }
167
+ ```
168
+
169
+ ### Adding a New MCP Server
170
+
171
+ Add an object to the `mcpServers` array with name, description, command, and args:
172
+
173
+ ```json
174
+ {
175
+ "mcpServers": [
176
+ {
177
+ "name": "wcag",
178
+ "description": "WCAG guidelines reference",
179
+ "command": "npx",
180
+ "args": ["-y", "wcag-mcp"]
181
+ },
182
+ {
183
+ "name": "your-custom-mcp",
184
+ "description": "Your custom MCP server",
185
+ "command": "npx",
186
+ "args": ["-y", "your-mcp-package"]
187
+ }
188
+ ]
189
+ }
190
+ ```
191
+
192
+ ### Adding a New Host Application
193
+
194
+ Add an object to the `hostApplications` array with the host application's configuration:
195
+
196
+ ```json
197
+ {
198
198
  "hostApplications": [
199
199
  {
200
200
  "id": "windsurf",
@@ -223,33 +223,33 @@ Add an object to the `hostApplications` array with the host application's config
223
223
  - Windows: `%APPDATA%` (e.g., `C:\Users\name\AppData\Roaming`)
224
224
  - macOS: `~/Library/Application Support`
225
225
  - Linux: `$XDG_CONFIG_HOME` or `~/.config`
226
-
227
- **Note:** Codex uses TOML format for its MCP configuration (`~/.codex/config.toml`), which requires the `mcpServerKey` to be `"mcp_servers"` and generates config entries like:
228
- ```toml
229
- [mcp_servers.magentaa11y]
230
- command = "npx"
231
- args = ["-y", "magentaa11y-mcp"]
232
- ```
233
-
234
- ### Config Structure
235
-
236
- - `skillsFolder` - Subfolder name to bundle skills under (e.g., "a11y")
237
- - `readmeTemplate` - README template file to copy into skills directories
238
- - `skills` - Array of skill objects with `name` (npm package) and `description`
239
- - `hostApplications` - Array of host application configuration objects
240
- - `mcpServers` - MCP server definitions with name, description, command, and args
241
-
242
- All changes take effect immediately - just re-run the CLI to deploy your updated config.
243
-
244
- ### Safe Merging
245
-
246
- The CLI **safely merges** with existing configurations:
247
- - **MCP configs** - Adds/updates only the specified servers, preserves others
248
- - **Skills** - Installs only the configured skills, preserves other skills in the directory
249
- - **Backups** - Creates `.bak` files if JSON parsing fails
250
-
251
- ## Directory Structure
252
-
226
+
227
+ **Note:** Codex uses TOML format for its MCP configuration (`~/.codex/config.toml`), which requires the `mcpServerKey` to be `"mcp_servers"` and generates config entries like:
228
+ ```toml
229
+ [mcp_servers.magentaa11y]
230
+ command = "npx"
231
+ args = ["-y", "magentaa11y-mcp"]
232
+ ```
233
+
234
+ ### Config Structure
235
+
236
+ - `skillsFolder` - Subfolder name to bundle skills under (e.g., "a11y")
237
+ - `readmeTemplate` - README template file to copy into skills directories
238
+ - `skills` - Array of skill objects with `name` (npm package) and `description`
239
+ - `hostApplications` - Array of host application configuration objects
240
+ - `mcpServers` - MCP server definitions with name, description, command, and args
241
+
242
+ All changes take effect immediately - just re-run the CLI to deploy your updated config.
243
+
244
+ ### Safe Merging
245
+
246
+ The CLI **safely merges** with existing configurations:
247
+ - **MCP configs** - Adds/updates only the specified servers, preserves others
248
+ - **Skills** - Installs only the configured skills, preserves other skills in the directory
249
+ - **Backups** - Creates `.bak` files if JSON parsing fails
250
+
251
+ ## Directory Structure
252
+
253
253
  ### Local Install (Project-Specific)
254
254
  ```
255
255
  your-project/
@@ -292,78 +292,78 @@ your-project/
292
292
  # macOS: ~/Library/Application Support/<same paths as above>
293
293
  # Linux: $XDG_CONFIG_HOME/<same paths as above> (or ~/.config)
294
294
  ```
295
-
296
- **Note:** Paths are fully customizable per IDE in `config/settings.json`
297
-
298
- ## MCP Servers Included (Default)
299
-
300
- **Add your own by editing `config/settings.json`**:
301
-
302
- | Server | Package | Description |
303
- |--------|---------|-------------|
304
- | wcag | `wcag-mcp` | WCAG 2.2 guidelines, success criteria, techniques |
305
- | aria | `aria-mcp` | WAI-ARIA roles, states, properties |
306
- | magentaa11y | `magentaa11y-mcp` | Component accessibility acceptance criteria |
307
- | a11y-personas | `a11y-personas-mcp` | Accessibility personas for diverse users |
308
- | arc-issues | `arc-issues-mcp` | AxeCore violation formatting |
309
-
310
- ## Complete Config Example
311
-
312
- Here's what a complete `config/settings.json` looks like:
313
-
314
- ```json
315
- {
316
- "skillsFolder": "a11y",
317
- "readmeTemplate": "deploy-README.md",
318
- "skills": [
319
- {
320
- "name": "a11y-base-web-skill",
321
- "description": "Core accessibility testing utilities"
322
- },
323
- {
324
- "name": "a11y-tester-skill",
325
- "description": "Run accessibility tests"
326
- }
327
- ],
328
- "hostApplications": [
329
- {
330
- "id": "claude",
331
- "displayName": "Claude Code",
332
- "mcpServerKey": "servers",
333
- "skillsFolder": ".claude/skills",
334
- "mcpConfigFile": ".claude/mcp.json"
335
- },
336
- {
337
- "id": "cursor",
338
- "displayName": "Cursor",
339
- "mcpServerKey": "mcpServers",
340
- "skillsFolder": ".cursor/skills",
341
- "mcpConfigFile": ".cursor/mcp.json"
342
- },
343
- {
344
- "id": "windsurf",
345
- "displayName": "Windsurf",
346
- "mcpServerKey": "servers",
347
- "skillsFolder": ".codeium/windsurf/skills",
348
- "mcpConfigFile": ".codeium/windsurf/mcp_config.json"
349
- }
350
- ],
351
- "mcpServers": [
352
- {
353
- "name": "wcag",
354
- "description": "WCAG guidelines reference",
355
- "command": "npx",
356
- "args": ["-y", "wcag-mcp"]
357
- },
358
- {
359
- "name": "aria",
360
- "description": "ARIA specification reference",
361
- "command": "npx",
362
- "args": ["-y", "aria-mcp"]
363
- }
364
- ]
365
- }
366
- ```
367
-
368
- Everything is customizable - add, remove, or modify any section to match your needs.
369
-
295
+
296
+ **Note:** Paths are fully customizable per IDE in `config/settings.json`
297
+
298
+ ## MCP Servers Included (Default)
299
+
300
+ **Add your own by editing `config/settings.json`**:
301
+
302
+ | Server | Package | Description |
303
+ |--------|---------|-------------|
304
+ | wcag | `wcag-mcp` | WCAG 2.2 guidelines, success criteria, techniques |
305
+ | aria | `aria-mcp` | WAI-ARIA roles, states, properties |
306
+ | magentaa11y | `magentaa11y-mcp` | Component accessibility acceptance criteria |
307
+ | a11y-personas | `a11y-personas-mcp` | Accessibility personas for diverse users |
308
+ | arc-issues | `arc-issues-mcp` | AxeCore violation formatting |
309
+
310
+ ## Complete Config Example
311
+
312
+ Here's what a complete `config/settings.json` looks like:
313
+
314
+ ```json
315
+ {
316
+ "skillsFolder": "a11y",
317
+ "readmeTemplate": "deploy-README.md",
318
+ "skills": [
319
+ {
320
+ "name": "a11y-base-web-skill",
321
+ "description": "Core accessibility testing utilities"
322
+ },
323
+ {
324
+ "name": "a11y-tester-skill",
325
+ "description": "Run accessibility tests"
326
+ }
327
+ ],
328
+ "hostApplications": [
329
+ {
330
+ "id": "claude",
331
+ "displayName": "Claude Code",
332
+ "mcpServerKey": "servers",
333
+ "skillsFolder": ".claude/skills",
334
+ "mcpConfigFile": ".claude/mcp.json"
335
+ },
336
+ {
337
+ "id": "cursor",
338
+ "displayName": "Cursor",
339
+ "mcpServerKey": "mcpServers",
340
+ "skillsFolder": ".cursor/skills",
341
+ "mcpConfigFile": ".cursor/mcp.json"
342
+ },
343
+ {
344
+ "id": "windsurf",
345
+ "displayName": "Windsurf",
346
+ "mcpServerKey": "servers",
347
+ "skillsFolder": ".codeium/windsurf/skills",
348
+ "mcpConfigFile": ".codeium/windsurf/mcp_config.json"
349
+ }
350
+ ],
351
+ "mcpServers": [
352
+ {
353
+ "name": "wcag",
354
+ "description": "WCAG guidelines reference",
355
+ "command": "npx",
356
+ "args": ["-y", "wcag-mcp"]
357
+ },
358
+ {
359
+ "name": "aria",
360
+ "description": "ARIA specification reference",
361
+ "command": "npx",
362
+ "args": ["-y", "aria-mcp"]
363
+ }
364
+ ]
365
+ }
366
+ ```
367
+
368
+ Everything is customizable - add, remove, or modify any section to match your needs.
369
+
@@ -1,9 +1,9 @@
1
- #!/usr/bin/env node
2
-
3
- import { run } from "../src/cli.js";
4
-
5
- run().catch((error) => {
6
- const message = error instanceof Error ? error.message : String(error);
7
- console.error(`\n[Error] ${message}`);
8
- process.exitCode = 1;
1
+ #!/usr/bin/env node
2
+
3
+ import { run } from "../src/cli.js";
4
+
5
+ run().catch((error) => {
6
+ const message = error instanceof Error ? error.message : String(error);
7
+ console.error(`\n[Error] ${message}`);
8
+ process.exitCode = 1;
9
9
  });