a11y-devkit-deploy 0.7.1 → 0.7.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.
- package/README.md +165 -25
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# A11y Devkit Deploy
|
|
2
2
|
|
|
3
|
-
A **fully config-driven**, cross-platform CLI for deploying accessibility skills and MCP servers across Claude Code, Cursor, Codex, and
|
|
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
4
|
|
|
5
|
-
**Add new skills
|
|
5
|
+
**Add new skills, MCP servers, or entire IDEs without writing code** - just edit the JSON config and re-run.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -27,8 +27,8 @@ a11y-devkit-deploy
|
|
|
27
27
|
|
|
28
28
|
Once installation completes, you'll find a comprehensive usage guide in your IDE's skills directory:
|
|
29
29
|
|
|
30
|
-
- **Local install**: `.claude/skills/README.md` (or `.cursor/skills/`, `.codex/skills/` depending on your IDE)
|
|
31
|
-
- **Global install**: `~/.claude/skills/README.md` (or your IDE's global skills directory)
|
|
30
|
+
- **Local install**: `.claude/skills/a11y/a11y-devkit-README.md` (or `.cursor/skills/a11y/`, `.codex/skills/a11y/` depending on your IDE)
|
|
31
|
+
- **Global install**: `~/.claude/skills/a11y/a11y-devkit-README.md` (or your IDE's global skills directory)
|
|
32
32
|
|
|
33
33
|
### What's in the Guide
|
|
34
34
|
|
|
@@ -42,7 +42,7 @@ The bundled README includes:
|
|
|
42
42
|
|
|
43
43
|
### Preview the Guide
|
|
44
44
|
|
|
45
|
-
You can preview the guide here: [templates/
|
|
45
|
+
You can preview the guide here: [templates/deploy-README.md](templates/deploy-README.md)
|
|
46
46
|
|
|
47
47
|
### Next Steps
|
|
48
48
|
|
|
@@ -75,7 +75,31 @@ This CLI automates the setup of accessibility tooling by:
|
|
|
75
75
|
- **a11y-personas** - Accessibility personas for diverse user needs
|
|
76
76
|
- **arc-issues** - Format AxeCore violations into standardized issue templates
|
|
77
77
|
|
|
78
|
-
**Fully customizable** - add/remove skills
|
|
78
|
+
**Fully customizable** - add/remove skills, MCP servers, or entire IDEs by editing the config file.
|
|
79
|
+
|
|
80
|
+
## Why This Tool?
|
|
81
|
+
|
|
82
|
+
**Zero Hardcoded Values** - Every aspect of the tool is driven by `config/a11y.json`:
|
|
83
|
+
- IDE paths and configuration files
|
|
84
|
+
- Skills to install
|
|
85
|
+
- MCP servers to configure
|
|
86
|
+
- Even the IDE list itself
|
|
87
|
+
|
|
88
|
+
**Adding Support for a New IDE** takes just 5 lines of JSON:
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"id": "new-ide",
|
|
92
|
+
"displayName": "New IDE",
|
|
93
|
+
"mcpServerKey": "servers",
|
|
94
|
+
"skillsFolder": ".new-ide/skills",
|
|
95
|
+
"mcpConfigFile": ".new-ide/mcp.json"
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Safe by Default** - Won't overwrite your existing:
|
|
100
|
+
- Custom MCP servers in your IDE configs
|
|
101
|
+
- Other skills in your skills directories
|
|
102
|
+
- Creates backups if it encounters JSON parsing errors
|
|
79
103
|
|
|
80
104
|
### Skills Installed (Default)
|
|
81
105
|
|
|
@@ -118,9 +142,9 @@ The generated MCP config looks like this:
|
|
|
118
142
|
|
|
119
143
|
## Configuration
|
|
120
144
|
|
|
121
|
-
The entire tool is **fully config-driven**. Edit `config/a11y.json` to customize everything without touching code
|
|
145
|
+
The entire tool is **fully config-driven**. Edit `config/a11y.json` to customize everything without touching code.
|
|
122
146
|
|
|
123
|
-
###
|
|
147
|
+
### Adding a New Skill
|
|
124
148
|
|
|
125
149
|
Simply add an object to the `skills` array with a `name` (npm package) and `description`:
|
|
126
150
|
|
|
@@ -139,7 +163,7 @@ Simply add an object to the `skills` array with a `name` (npm package) and `desc
|
|
|
139
163
|
}
|
|
140
164
|
```
|
|
141
165
|
|
|
142
|
-
###
|
|
166
|
+
### Adding a New MCP Server
|
|
143
167
|
|
|
144
168
|
Add an object to the `mcpServers` array with name, description, command, and args:
|
|
145
169
|
|
|
@@ -162,40 +186,96 @@ Add an object to the `mcpServers` array with name, description, command, and arg
|
|
|
162
186
|
}
|
|
163
187
|
```
|
|
164
188
|
|
|
189
|
+
### Adding a New IDE
|
|
190
|
+
|
|
191
|
+
Add an object to the `ides` array with the IDE's configuration:
|
|
192
|
+
|
|
193
|
+
```json
|
|
194
|
+
{
|
|
195
|
+
"ides": [
|
|
196
|
+
{
|
|
197
|
+
"id": "windsurf",
|
|
198
|
+
"displayName": "Windsurf",
|
|
199
|
+
"mcpServerKey": "servers",
|
|
200
|
+
"skillsFolder": ".codeium/windsurf/skills",
|
|
201
|
+
"mcpConfigFile": ".codeium/windsurf/mcp_config.json"
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**IDE Configuration Properties:**
|
|
208
|
+
- `id` - Unique identifier for the IDE
|
|
209
|
+
- `displayName` - Human-readable name shown in prompts
|
|
210
|
+
- `mcpServerKey` - MCP config key name (`"servers"` or `"mcpServers"`)
|
|
211
|
+
- `skillsFolder` - Path to skills directory (relative to home/project root)
|
|
212
|
+
- `mcpConfigFile` - Path to MCP config file (relative to home/project root)
|
|
213
|
+
|
|
165
214
|
### Config Structure
|
|
166
215
|
|
|
216
|
+
- `skillsFolder` - Subfolder name to bundle skills under (e.g., "a11y")
|
|
217
|
+
- `readmeTemplate` - README template file to copy into skills directories
|
|
167
218
|
- `skills` - Array of skill objects with `name` (npm package) and `description`
|
|
168
|
-
- `
|
|
169
|
-
- `ideMcpPaths` - IDE-specific MCP config file paths
|
|
219
|
+
- `ides` - Array of IDE configuration objects
|
|
170
220
|
- `mcpServers` - MCP server definitions with name, description, command, and args
|
|
171
221
|
|
|
172
222
|
All changes take effect immediately - just re-run the CLI to deploy your updated config.
|
|
173
223
|
|
|
224
|
+
### Safe Merging
|
|
225
|
+
|
|
226
|
+
The CLI **safely merges** with existing configurations:
|
|
227
|
+
- **MCP configs** - Adds/updates only the specified servers, preserves others
|
|
228
|
+
- **Skills** - Installs only the configured skills, preserves other skills in the directory
|
|
229
|
+
- **Backups** - Creates `.bak` files if JSON parsing fails
|
|
230
|
+
|
|
174
231
|
## Directory Structure
|
|
175
232
|
|
|
176
233
|
### Local Install (Project-Specific)
|
|
177
234
|
```
|
|
178
235
|
your-project/
|
|
179
|
-
├── .claude/
|
|
180
|
-
├── .
|
|
181
|
-
|
|
182
|
-
|
|
236
|
+
├── .claude/
|
|
237
|
+
│ ├── mcp.json # Claude Code MCP config
|
|
238
|
+
│ └── skills/ # Claude Code skills
|
|
239
|
+
├── .cursor/
|
|
240
|
+
│ ├── mcp.json # Cursor MCP config
|
|
241
|
+
│ └── skills/ # Cursor skills
|
|
242
|
+
├── .codex/
|
|
243
|
+
│ ├── mcp.json # Codex MCP config
|
|
244
|
+
│ └── skills/ # Codex skills
|
|
245
|
+
├── .github/
|
|
246
|
+
│ ├── mcp.json # VSCode MCP config
|
|
247
|
+
│ └── skills/ # VSCode skills
|
|
248
|
+
├── .codeium/windsurf/
|
|
249
|
+
│ ├── mcp_config.json # Windsurf MCP config
|
|
250
|
+
│ └── skills/ # Windsurf skills
|
|
251
|
+
└── .factory/
|
|
252
|
+
├── mcp.json # Factory MCP config
|
|
253
|
+
└── skills/ # Factory skills
|
|
183
254
|
```
|
|
184
255
|
|
|
185
256
|
### Global Install (User-Wide)
|
|
186
257
|
```
|
|
187
|
-
~/.claude/
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
~/.
|
|
258
|
+
~/.claude/
|
|
259
|
+
├── mcp.json # Claude Code global MCP config
|
|
260
|
+
└── skills/ # Claude Code global skills
|
|
261
|
+
~/.cursor/
|
|
262
|
+
├── mcp.json # Cursor global MCP config
|
|
263
|
+
└── skills/ # Cursor global skills
|
|
264
|
+
~/.codex/
|
|
265
|
+
├── mcp.json # Codex global MCP config
|
|
266
|
+
└── skills/ # Codex global skills
|
|
267
|
+
~/.github/
|
|
268
|
+
├── mcp.json # VSCode global MCP config
|
|
269
|
+
└── skills/ # VSCode global skills
|
|
270
|
+
~/.codeium/windsurf/
|
|
271
|
+
├── mcp_config.json # Windsurf global MCP config
|
|
272
|
+
└── skills/ # Windsurf global skills
|
|
273
|
+
~/.factory/
|
|
274
|
+
├── mcp.json # Factory global MCP config
|
|
275
|
+
└── skills/ # Factory global skills
|
|
191
276
|
```
|
|
192
277
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
MCP configurations are written to each IDE's OS-specific config path:
|
|
196
|
-
- **macOS**: `~/Library/Application Support/{IDE}/mcp.json`
|
|
197
|
-
- **Windows**: `%APPDATA%\{IDE}\mcp.json`
|
|
198
|
-
- **Linux**: `~/.config/{IDE}/mcp.json`
|
|
278
|
+
**Note:** Paths are fully customizable per IDE in `config/a11y.json`
|
|
199
279
|
|
|
200
280
|
## MCP Servers Included (Default)
|
|
201
281
|
|
|
@@ -208,3 +288,63 @@ MCP configurations are written to each IDE's OS-specific config path:
|
|
|
208
288
|
| magentaa11y | `magentaa11y-mcp` | Component accessibility acceptance criteria |
|
|
209
289
|
| a11y-personas | `a11y-personas-mcp` | Accessibility personas for diverse users |
|
|
210
290
|
| arc-issues | `arc-issues-mcp` | AxeCore violation formatting |
|
|
291
|
+
|
|
292
|
+
## Complete Config Example
|
|
293
|
+
|
|
294
|
+
Here's what a complete `config/a11y.json` looks like:
|
|
295
|
+
|
|
296
|
+
```json
|
|
297
|
+
{
|
|
298
|
+
"skillsFolder": "a11y",
|
|
299
|
+
"readmeTemplate": "deploy-README.md",
|
|
300
|
+
"skills": [
|
|
301
|
+
{
|
|
302
|
+
"name": "a11y-base-web-skill",
|
|
303
|
+
"description": "Core accessibility testing utilities"
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"name": "a11y-tester-skill",
|
|
307
|
+
"description": "Run accessibility tests"
|
|
308
|
+
}
|
|
309
|
+
],
|
|
310
|
+
"ides": [
|
|
311
|
+
{
|
|
312
|
+
"id": "claude",
|
|
313
|
+
"displayName": "Claude Code",
|
|
314
|
+
"mcpServerKey": "servers",
|
|
315
|
+
"skillsFolder": ".claude/skills",
|
|
316
|
+
"mcpConfigFile": ".claude/mcp.json"
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"id": "cursor",
|
|
320
|
+
"displayName": "Cursor",
|
|
321
|
+
"mcpServerKey": "mcpServers",
|
|
322
|
+
"skillsFolder": ".cursor/skills",
|
|
323
|
+
"mcpConfigFile": ".cursor/mcp.json"
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"id": "windsurf",
|
|
327
|
+
"displayName": "Windsurf",
|
|
328
|
+
"mcpServerKey": "servers",
|
|
329
|
+
"skillsFolder": ".codeium/windsurf/skills",
|
|
330
|
+
"mcpConfigFile": ".codeium/windsurf/mcp_config.json"
|
|
331
|
+
}
|
|
332
|
+
],
|
|
333
|
+
"mcpServers": [
|
|
334
|
+
{
|
|
335
|
+
"name": "wcag",
|
|
336
|
+
"description": "WCAG guidelines reference",
|
|
337
|
+
"command": "npx",
|
|
338
|
+
"args": ["-y", "wcag-mcp"]
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"name": "aria",
|
|
342
|
+
"description": "ARIA specification reference",
|
|
343
|
+
"command": "npx",
|
|
344
|
+
"args": ["-y", "aria-mcp"]
|
|
345
|
+
}
|
|
346
|
+
]
|
|
347
|
+
}
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
Everything is customizable - add, remove, or modify any section to match your needs.
|