openspec-playwright 0.1.61 → 0.1.63

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 (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +4 -3
  3. package/README.zh-CN.md +4 -3
  4. package/bin/CLAUDE.md +11 -0
  5. package/dist/CLAUDE.md +17 -0
  6. package/dist/commands/doctor.d.ts +4 -1
  7. package/dist/commands/doctor.js +110 -73
  8. package/dist/commands/doctor.js.map +1 -1
  9. package/dist/commands/editors.js +149 -95
  10. package/dist/commands/editors.js.map +1 -1
  11. package/dist/commands/init.js +105 -97
  12. package/dist/commands/init.js.map +1 -1
  13. package/dist/commands/mcpSync.js +46 -31
  14. package/dist/commands/mcpSync.js.map +1 -1
  15. package/dist/commands/run.d.ts +13 -0
  16. package/dist/commands/run.js +74 -51
  17. package/dist/commands/run.js.map +1 -1
  18. package/dist/commands/uninstall.d.ts +1 -0
  19. package/dist/commands/uninstall.js +133 -0
  20. package/dist/commands/uninstall.js.map +1 -0
  21. package/dist/commands/update.d.ts +1 -0
  22. package/dist/commands/update.js +92 -55
  23. package/dist/commands/update.js.map +1 -1
  24. package/dist/index.js +33 -26
  25. package/dist/index.js.map +1 -1
  26. package/package.json +19 -1
  27. package/schemas/playwright-e2e/templates/playwright.config.ts +22 -22
  28. package/templates/CLAUDE.md +15 -0
  29. package/templates/seed.spec.ts +5 -3
  30. package/.claude/commands/opsx/e2e-body.md +0 -39
  31. package/.claude/commands/opsx/e2e.md +0 -47
  32. package/.claude/skills/openspec-e2e/SKILL.md +0 -444
  33. package/.github/workflows/release.yml +0 -81
  34. package/docs/plans/2026-03-26-openspec-playwright-design.md +0 -180
  35. package/employee-standards.md +0 -42
  36. package/openspec/schemas/playwright-e2e/schema.yaml +0 -56
  37. package/openspec/schemas/playwright-e2e/templates/e2e-test.ts +0 -55
  38. package/openspec/schemas/playwright-e2e/templates/playwright.config.ts +0 -52
  39. package/openspec/schemas/playwright-e2e/templates/report.md +0 -27
  40. package/openspec/schemas/playwright-e2e/templates/test-plan.md +0 -24
  41. package/openspec-playwright-0.1.61.tgz +0 -0
  42. package/release-notes.md +0 -5
  43. package/src/commands/doctor.ts +0 -115
  44. package/src/commands/editors.ts +0 -606
  45. package/src/commands/init.ts +0 -252
  46. package/src/commands/mcpSync.ts +0 -160
  47. package/src/commands/run.ts +0 -172
  48. package/src/commands/update.ts +0 -165
  49. package/src/index.ts +0 -47
  50. package/tests/editors.test.ts +0 -180
  51. package/tsconfig.json +0 -18
  52. package/vitest.config.ts +0 -9
@@ -1,34 +1,39 @@
1
- import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
2
- import { homedir } from 'os';
3
- import { join, dirname, resolve as pathResolve } from 'path';
4
- import chalk from 'chalk';
1
+ import { existsSync, mkdirSync, writeFileSync, readFileSync } from "fs";
2
+ import { homedir } from "os";
3
+ import { join, dirname, resolve as pathResolve } from "path";
4
+ import chalk from "chalk";
5
5
  /** Shared YAML escape — matches OpenSpec's escape logic */
6
6
  export function escapeYamlValue(value) {
7
7
  const needsQuoting = /[:\n\r#{}[\],&*!|>'"%@`]|^\s|\s$/.test(value);
8
8
  if (needsQuoting) {
9
- const escaped = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n');
9
+ const escaped = value
10
+ .replace(/\\/g, "\\\\")
11
+ .replace(/"/g, '\\"')
12
+ .replace(/\n/g, "\\n");
10
13
  return `"${escaped}"`;
11
14
  }
12
15
  return value;
13
16
  }
14
17
  /** Format tags as YAML inline array (escaped) */
15
18
  export function formatTagsArray(tags) {
16
- return `[${tags.map(t => escapeYamlValue(t)).join(', ')}]`;
19
+ return `[${tags.map((t) => escapeYamlValue(t)).join(", ")}]`;
17
20
  }
18
21
  /** Format tags as YAML inline array (plain, no escaping) */
19
22
  function formatTagsPlain(tags) {
20
- return `[${tags.join(', ')}]`;
23
+ return `[${tags.join(", ")}]`;
21
24
  }
22
25
  /** Transform /opsx: to /opsx- for OpenCode */
23
26
  function transformToHyphenCommands(text) {
24
- return text.replace(/\/opsx:/g, '/opsx-');
27
+ return text.replace(/\/opsx:/g, "/opsx-");
25
28
  }
26
29
  // ─── Claude Code ──────────────────────────────────────────────────────────────
27
30
  /** Claude Code: .claude/commands/opsx/<id>.md + SKILL.md */
28
31
  const claudeAdapter = {
29
- toolId: 'claude',
32
+ toolId: "claude",
30
33
  hasSkill: true,
31
- getCommandPath(id) { return join('.claude', 'commands', 'opsx', `${id}.md`); },
34
+ getCommandPath(id) {
35
+ return join(".claude", "commands", "opsx", `${id}.md`);
36
+ },
32
37
  formatCommand(meta) {
33
38
  return `---
34
39
  name: ${escapeYamlValue(meta.name)}
@@ -44,9 +49,11 @@ ${meta.body}
44
49
  // ─── Cursor ─────────────────────────────────────────────────────────────────
45
50
  /** Cursor: .cursor/commands/opsx-<id>.md */
46
51
  const cursorAdapter = {
47
- toolId: 'cursor',
52
+ toolId: "cursor",
48
53
  hasSkill: false,
49
- getCommandPath(id) { return join('.cursor', 'commands', `opsx-${id}.md`); },
54
+ getCommandPath(id) {
55
+ return join(".cursor", "commands", `opsx-${id}.md`);
56
+ },
50
57
  formatCommand(meta) {
51
58
  return `---
52
59
  name: /opsx-${meta.id}
@@ -62,9 +69,11 @@ ${meta.body}
62
69
  // ─── Windsurf ────────────────────────────────────────────────────────────────
63
70
  /** Windsurf: .windsurf/workflows/opsx-<id>.md */
64
71
  const windsurfAdapter = {
65
- toolId: 'windsurf',
72
+ toolId: "windsurf",
66
73
  hasSkill: false,
67
- getCommandPath(id) { return join('.windsurf', 'workflows', `opsx-${id}.md`); },
74
+ getCommandPath(id) {
75
+ return join(".windsurf", "workflows", `opsx-${id}.md`);
76
+ },
68
77
  formatCommand(meta) {
69
78
  return `---
70
79
  name: ${escapeYamlValue(meta.name)}
@@ -80,9 +89,11 @@ ${meta.body}
80
89
  // ─── Cline ──────────────────────────────────────────────────────────────────
81
90
  /** Cline: .clinerules/workflows/opsx-<id>.md — markdown header only */
82
91
  const clineAdapter = {
83
- toolId: 'cline',
92
+ toolId: "cline",
84
93
  hasSkill: false,
85
- getCommandPath(id) { return join('.clinerules', 'workflows', `opsx-${id}.md`); },
94
+ getCommandPath(id) {
95
+ return join(".clinerules", "workflows", `opsx-${id}.md`);
96
+ },
86
97
  formatCommand(meta) {
87
98
  return `# ${meta.name}
88
99
 
@@ -95,9 +106,11 @@ ${meta.body}
95
106
  // ─── Continue ────────────────────────────────────────────────────────────────
96
107
  /** Continue: .continue/prompts/opsx-<id>.prompt */
97
108
  const continueAdapter = {
98
- toolId: 'continue',
109
+ toolId: "continue",
99
110
  hasSkill: false,
100
- getCommandPath(id) { return join('.continue', 'prompts', `opsx-${id}.prompt`); },
111
+ getCommandPath(id) {
112
+ return join(".continue", "prompts", `opsx-${id}.prompt`);
113
+ },
101
114
  formatCommand(meta) {
102
115
  return `---
103
116
  name: opsx-${meta.id}
@@ -112,9 +125,11 @@ ${meta.body}
112
125
  // ─── amazon-q ─────────────────────────────────────────────────────────────
113
126
  /** Amazon Q: .amazonq/prompts/opsx-<id>.md */
114
127
  const amazonqAdapter = {
115
- toolId: 'amazon-q',
128
+ toolId: "amazon-q",
116
129
  hasSkill: false,
117
- getCommandPath(id) { return join('.amazonq', 'prompts', `opsx-${id}.md`); },
130
+ getCommandPath(id) {
131
+ return join(".amazonq", "prompts", `opsx-${id}.md`);
132
+ },
118
133
  formatCommand(meta) {
119
134
  return `---
120
135
  description: ${meta.description}
@@ -127,9 +142,11 @@ ${meta.body}
127
142
  // ─── antigravity ──────────────────────────────────────────────────────────
128
143
  /** Antigravity: .agent/workflows/opsx-<id>.md */
129
144
  const antigravityAdapter = {
130
- toolId: 'antigravity',
145
+ toolId: "antigravity",
131
146
  hasSkill: false,
132
- getCommandPath(id) { return join('.agent', 'workflows', `opsx-${id}.md`); },
147
+ getCommandPath(id) {
148
+ return join(".agent", "workflows", `opsx-${id}.md`);
149
+ },
133
150
  formatCommand(meta) {
134
151
  return `---
135
152
  description: ${meta.description}
@@ -142,9 +159,11 @@ ${meta.body}
142
159
  // ─── auggie ────────────────────────────────────────────────────────────────
143
160
  /** Auggie: .augment/commands/opsx-<id>.md */
144
161
  const auggieAdapter = {
145
- toolId: 'auggie',
162
+ toolId: "auggie",
146
163
  hasSkill: false,
147
- getCommandPath(id) { return join('.augment', 'commands', `opsx-${id}.md`); },
164
+ getCommandPath(id) {
165
+ return join(".augment", "commands", `opsx-${id}.md`);
166
+ },
148
167
  formatCommand(meta) {
149
168
  return `---
150
169
  description: ${meta.description}
@@ -158,9 +177,11 @@ ${meta.body}
158
177
  // ─── codebuddy ─────────────────────────────────────────────────────────────
159
178
  /** CodeBuddy: .codebuddy/commands/opsx/<id>.md */
160
179
  const codebuddyAdapter = {
161
- toolId: 'codebuddy',
180
+ toolId: "codebuddy",
162
181
  hasSkill: false,
163
- getCommandPath(id) { return join('.codebuddy', 'commands', 'opsx', `${id}.md`); },
182
+ getCommandPath(id) {
183
+ return join(".codebuddy", "commands", "opsx", `${id}.md`);
184
+ },
164
185
  formatCommand(meta) {
165
186
  return `---
166
187
  name: ${meta.name}
@@ -175,13 +196,13 @@ ${meta.body}
175
196
  // ─── codex ────────────────────────────────────────────────────────────────
176
197
  /** Codex: <CODEX_HOME>/prompts/opsx-<id>.md — global scope */
177
198
  const codexAdapter = {
178
- toolId: 'codex',
199
+ toolId: "codex",
179
200
  hasSkill: false,
180
201
  getCommandPath(id) {
181
- const codexHome = process.env.CODEX_HOME?.trim() || join(homedir(), '.codex');
202
+ const codexHome = process.env.CODEX_HOME?.trim() || join(homedir(), ".codex");
182
203
  // pathResolve: if codexHome is absolute (C:\...), it returns codexHome directly
183
204
  // if relative, it resolves against projectRoot
184
- return pathResolve(codexHome, 'prompts', `opsx-${id}.md`);
205
+ return pathResolve(codexHome, "prompts", `opsx-${id}.md`);
185
206
  },
186
207
  formatCommand(meta) {
187
208
  return `---
@@ -196,9 +217,11 @@ ${meta.body}
196
217
  // ─── costrict ─────────────────────────────────────────────────────────────
197
218
  /** CoStrict: .cospec/openspec/commands/opsx-<id>.md */
198
219
  const costrictAdapter = {
199
- toolId: 'costrict',
220
+ toolId: "costrict",
200
221
  hasSkill: false,
201
- getCommandPath(id) { return join('.cospec', 'openspec', 'commands', `opsx-${id}.md`); },
222
+ getCommandPath(id) {
223
+ return join(".cospec", "openspec", "commands", `opsx-${id}.md`);
224
+ },
202
225
  formatCommand(meta) {
203
226
  return `---
204
227
  description: "${meta.description}"
@@ -212,9 +235,11 @@ ${meta.body}
212
235
  // ─── crush ────────────────────────────────────────────────────────────────
213
236
  /** Crush: .crush/commands/opsx/<id>.md — raw values, no escaping */
214
237
  const crushAdapter = {
215
- toolId: 'crush',
238
+ toolId: "crush",
216
239
  hasSkill: false,
217
- getCommandPath(id) { return join('.crush', 'commands', 'opsx', `${id}.md`); },
240
+ getCommandPath(id) {
241
+ return join(".crush", "commands", "opsx", `${id}.md`);
242
+ },
218
243
  formatCommand(meta) {
219
244
  return `---
220
245
  name: ${meta.name}
@@ -230,9 +255,11 @@ ${meta.body}
230
255
  // ─── factory ───────────────────────────────────────────────────────────────
231
256
  /** Factory Droid: .factory/commands/opsx-<id>.md */
232
257
  const factoryAdapter = {
233
- toolId: 'factory',
258
+ toolId: "factory",
234
259
  hasSkill: false,
235
- getCommandPath(id) { return join('.factory', 'commands', `opsx-${id}.md`); },
260
+ getCommandPath(id) {
261
+ return join(".factory", "commands", `opsx-${id}.md`);
262
+ },
236
263
  formatCommand(meta) {
237
264
  return `---
238
265
  description: ${meta.description}
@@ -246,9 +273,11 @@ ${meta.body}
246
273
  // ─── gemini ────────────────────────────────────────────────────────────────
247
274
  /** Gemini CLI: .gemini/commands/opsx/<id>.toml */
248
275
  const geminiAdapter = {
249
- toolId: 'gemini',
276
+ toolId: "gemini",
250
277
  hasSkill: false,
251
- getCommandPath(id) { return join('.gemini', 'commands', 'opsx', `${id}.toml`); },
278
+ getCommandPath(id) {
279
+ return join(".gemini", "commands", "opsx", `${id}.toml`);
280
+ },
252
281
  formatCommand(meta) {
253
282
  return `description = "${meta.description}"
254
283
 
@@ -261,9 +290,11 @@ ${meta.body}
261
290
  // ─── github-copilot ────────────────────────────────────────────────────────
262
291
  /** GitHub Copilot: .github/prompts/opsx-<id>.prompt.md */
263
292
  const githubcopilotAdapter = {
264
- toolId: 'github-copilot',
293
+ toolId: "github-copilot",
265
294
  hasSkill: false,
266
- getCommandPath(id) { return join('.github', 'prompts', `opsx-${id}.prompt.md`); },
295
+ getCommandPath(id) {
296
+ return join(".github", "prompts", `opsx-${id}.prompt.md`);
297
+ },
267
298
  formatCommand(meta) {
268
299
  return `---
269
300
  description: ${meta.description}
@@ -276,9 +307,11 @@ ${meta.body}
276
307
  // ─── iflow ────────────────────────────────────────────────────────────────
277
308
  /** iFlow: .iflow/commands/opsx-<id>.md */
278
309
  const iflowAdapter = {
279
- toolId: 'iflow',
310
+ toolId: "iflow",
280
311
  hasSkill: false,
281
- getCommandPath(id) { return join('.iflow', 'commands', `opsx-${id}.md`); },
312
+ getCommandPath(id) {
313
+ return join(".iflow", "commands", `opsx-${id}.md`);
314
+ },
282
315
  formatCommand(meta) {
283
316
  return `---
284
317
  name: /opsx-${meta.id}
@@ -294,9 +327,11 @@ ${meta.body}
294
327
  // ─── kilocode ────────────────────────────────────────────────────────────
295
328
  /** Kilo Code: .kilocode/workflows/opsx-<id>.md — body only */
296
329
  const kilocodeAdapter = {
297
- toolId: 'kilocode',
330
+ toolId: "kilocode",
298
331
  hasSkill: false,
299
- getCommandPath(id) { return join('.kilocode', 'workflows', `opsx-${id}.md`); },
332
+ getCommandPath(id) {
333
+ return join(".kilocode", "workflows", `opsx-${id}.md`);
334
+ },
300
335
  formatCommand(meta) {
301
336
  return `${meta.body}
302
337
  `;
@@ -305,9 +340,11 @@ const kilocodeAdapter = {
305
340
  // ─── kiro ─────────────────────────────────────────────────────────────────
306
341
  /** Kiro: .kiro/prompts/opsx-<id>.prompt.md */
307
342
  const kiroAdapter = {
308
- toolId: 'kiro',
343
+ toolId: "kiro",
309
344
  hasSkill: false,
310
- getCommandPath(id) { return join('.kiro', 'prompts', `opsx-${id}.prompt.md`); },
345
+ getCommandPath(id) {
346
+ return join(".kiro", "prompts", `opsx-${id}.prompt.md`);
347
+ },
311
348
  formatCommand(meta) {
312
349
  return `---
313
350
  description: ${meta.description}
@@ -320,9 +357,11 @@ ${meta.body}
320
357
  // ─── opencode ─────────────────────────────────────────────────────────────
321
358
  /** OpenCode: .opencode/commands/opsx-<id>.md — transforms /opsx: to /opsx- */
322
359
  const opencodeAdapter = {
323
- toolId: 'opencode',
360
+ toolId: "opencode",
324
361
  hasSkill: false,
325
- getCommandPath(id) { return join('.opencode', 'commands', `opsx-${id}.md`); },
362
+ getCommandPath(id) {
363
+ return join(".opencode", "commands", `opsx-${id}.md`);
364
+ },
326
365
  formatCommand(meta) {
327
366
  const transformed = transformToHyphenCommands(meta.body);
328
367
  return `---
@@ -336,9 +375,11 @@ ${transformed}
336
375
  // ─── pi ──────────────────────────────────────────────────────────────────
337
376
  /** Pi: .pi/prompts/opsx-<id>.md */
338
377
  const piAdapter = {
339
- toolId: 'pi',
378
+ toolId: "pi",
340
379
  hasSkill: false,
341
- getCommandPath(id) { return join('.pi', 'prompts', `opsx-${id}.md`); },
380
+ getCommandPath(id) {
381
+ return join(".pi", "prompts", `opsx-${id}.md`);
382
+ },
342
383
  formatCommand(meta) {
343
384
  return `---
344
385
  description: ${escapeYamlValue(meta.description)}
@@ -351,9 +392,11 @@ ${meta.body}
351
392
  // ─── qoder ────────────────────────────────────────────────────────────────
352
393
  /** Qoder: .qoder/commands/opsx/<id>.md — raw values, no escaping */
353
394
  const qoderAdapter = {
354
- toolId: 'qoder',
395
+ toolId: "qoder",
355
396
  hasSkill: false,
356
- getCommandPath(id) { return join('.qoder', 'commands', 'opsx', `${id}.md`); },
397
+ getCommandPath(id) {
398
+ return join(".qoder", "commands", "opsx", `${id}.md`);
399
+ },
357
400
  formatCommand(meta) {
358
401
  return `---
359
402
  name: ${meta.name}
@@ -369,9 +412,11 @@ ${meta.body}
369
412
  // ─── qwen ────────────────────────────────────────────────────────────────
370
413
  /** Qwen Code: .qwen/commands/opsx-<id>.toml */
371
414
  const qwenAdapter = {
372
- toolId: 'qwen',
415
+ toolId: "qwen",
373
416
  hasSkill: false,
374
- getCommandPath(id) { return join('.qwen', 'commands', `opsx-${id}.toml`); },
417
+ getCommandPath(id) {
418
+ return join(".qwen", "commands", `opsx-${id}.toml`);
419
+ },
375
420
  formatCommand(meta) {
376
421
  return `description = "${meta.description}"
377
422
 
@@ -384,9 +429,11 @@ ${meta.body}
384
429
  // ─── roocode ─────────────────────────────────────────────────────────────
385
430
  /** RooCode: .roo/commands/opsx-<id>.md — markdown header */
386
431
  const roocodeAdapter = {
387
- toolId: 'roocode',
432
+ toolId: "roocode",
388
433
  hasSkill: false,
389
- getCommandPath(id) { return join('.roo', 'commands', `opsx-${id}.md`); },
434
+ getCommandPath(id) {
435
+ return join(".roo", "commands", `opsx-${id}.md`);
436
+ },
390
437
  formatCommand(meta) {
391
438
  return `# ${meta.name}
392
439
 
@@ -425,28 +472,28 @@ const ALL_ADAPTERS = [
425
472
  /** Detect which editors are installed by checking their config directories */
426
473
  export function detectEditors(projectRoot) {
427
474
  const checks = [
428
- ['.claude', claudeAdapter],
429
- ['.cursor', cursorAdapter],
430
- ['.windsurf', windsurfAdapter],
431
- ['.clinerules', clineAdapter],
432
- ['.continue', continueAdapter],
433
- ['.amazonq', amazonqAdapter],
434
- ['.agent', antigravityAdapter],
435
- ['.augment', auggieAdapter],
436
- ['.codebuddy', codebuddyAdapter],
437
- ['.cospec', costrictAdapter],
438
- ['.crush', crushAdapter],
439
- ['.factory', factoryAdapter],
440
- ['.gemini', geminiAdapter],
441
- ['.github', githubcopilotAdapter],
442
- ['.iflow', iflowAdapter],
443
- ['.kilocode', kilocodeAdapter],
444
- ['.kiro', kiroAdapter],
445
- ['.opencode', opencodeAdapter],
446
- ['.pi', piAdapter],
447
- ['.qoder', qoderAdapter],
448
- ['.qwen', qwenAdapter],
449
- ['.roo', roocodeAdapter],
475
+ [".claude", claudeAdapter],
476
+ [".cursor", cursorAdapter],
477
+ [".windsurf", windsurfAdapter],
478
+ [".clinerules", clineAdapter],
479
+ [".continue", continueAdapter],
480
+ [".amazonq", amazonqAdapter],
481
+ [".agent", antigravityAdapter],
482
+ [".augment", auggieAdapter],
483
+ [".codebuddy", codebuddyAdapter],
484
+ [".cospec", costrictAdapter],
485
+ [".crush", crushAdapter],
486
+ [".factory", factoryAdapter],
487
+ [".gemini", geminiAdapter],
488
+ [".github", githubcopilotAdapter],
489
+ [".iflow", iflowAdapter],
490
+ [".kilocode", kilocodeAdapter],
491
+ [".kiro", kiroAdapter],
492
+ [".opencode", opencodeAdapter],
493
+ [".pi", piAdapter],
494
+ [".qoder", qoderAdapter],
495
+ [".qwen", qwenAdapter],
496
+ [".roo", roocodeAdapter],
450
497
  ];
451
498
  return checks
452
499
  .filter(([dir]) => existsSync(join(projectRoot, dir)))
@@ -455,18 +502,18 @@ export function detectEditors(projectRoot) {
455
502
  // ─── Codex is global — detect separately ─────────────────────────────────
456
503
  /** Detect Codex by checking if CODEX_HOME or ~/.codex exists */
457
504
  export function detectCodex() {
458
- const codexHome = process.env.CODEX_HOME?.trim() || join(homedir(), '.codex');
505
+ const codexHome = process.env.CODEX_HOME?.trim() || join(homedir(), ".codex");
459
506
  return existsSync(codexHome) ? codexAdapter : null;
460
507
  }
461
508
  // ─── Install helpers ───────────────────────────────────────────────────────
462
509
  /** Build the shared command metadata */
463
510
  export function buildCommandMeta(body) {
464
511
  return {
465
- id: 'e2e',
466
- name: 'OPSX: E2E',
467
- description: 'Run Playwright E2E verification for an OpenSpec change',
468
- category: 'OpenSpec',
469
- tags: ['openspec', 'playwright', 'e2e', 'testing'],
512
+ id: "e2e",
513
+ name: "OPSX: E2E",
514
+ description: "Run Playwright E2E verification for an OpenSpec change",
515
+ category: "OpenSpec",
516
+ tags: ["openspec", "playwright", "e2e", "testing"],
470
517
  body,
471
518
  };
472
519
  }
@@ -483,40 +530,47 @@ export function installForAllEditors(body, adapters, projectRoot) {
483
530
  }
484
531
  /** Install SKILL.md only for Claude Code */
485
532
  export function installSkill(projectRoot, skillContent) {
486
- const skillDir = join(projectRoot, '.claude', 'skills', 'openspec-e2e');
533
+ const skillDir = join(projectRoot, ".claude", "skills", "openspec-e2e");
487
534
  mkdirSync(skillDir, { recursive: true });
488
- writeFileSync(join(skillDir, 'SKILL.md'), skillContent);
535
+ writeFileSync(join(skillDir, "SKILL.md"), skillContent);
489
536
  console.log(chalk.green(` ✓ claude: .claude/skills/openspec-e2e/SKILL.md`));
490
537
  }
491
538
  /** Install project-level CLAUDE.md with employee-grade standards + OpenSpec context */
492
539
  export function installProjectClaudeMd(projectRoot, standardsContent) {
493
- const dest = join(projectRoot, 'CLAUDE.md');
540
+ const dest = join(projectRoot, "CLAUDE.md");
494
541
  const exists = existsSync(dest);
495
542
  if (exists) {
496
543
  // Append standards inside OPENSPEC:START/END markers
497
- const existing = readFileSync(dest, 'utf-8');
498
- const markerStart = '<!-- OPENSPEC:START -->';
499
- const markerEnd = '<!-- OPENSPEC:END -->';
544
+ const existing = readFileSync(dest, "utf-8");
545
+ const markerStart = "<!-- OPENSPEC:START -->";
546
+ const markerEnd = "<!-- OPENSPEC:END -->";
500
547
  if (existing.includes(markerStart) && existing.includes(markerEnd)) {
501
548
  // Already has markers, skip
502
- console.log(chalk.gray(' - CLAUDE.md already has standards markers, skipping'));
549
+ console.log(chalk.gray(" - CLAUDE.md already has standards markers, skipping"));
503
550
  }
504
551
  else {
505
- const updated = existing.trim() + '\n\n' + markerStart + '\n\n' + standardsContent + '\n\n' + markerEnd + '\n';
552
+ const updated = existing.trim() +
553
+ "\n\n" +
554
+ markerStart +
555
+ "\n\n" +
556
+ standardsContent +
557
+ "\n\n" +
558
+ markerEnd +
559
+ "\n";
506
560
  writeFileSync(dest, updated);
507
- console.log(chalk.green(' ✓ CLAUDE.md: appended employee-grade standards'));
561
+ console.log(chalk.green(" ✓ CLAUDE.md: appended employee-grade standards"));
508
562
  }
509
563
  }
510
564
  else {
511
565
  // No existing CLAUDE.md, create from template
512
- const content = `# ${projectRoot.split('/').pop()}\n\n` + standardsContent;
566
+ const content = `# ${projectRoot.split("/").pop()}\n\n` + standardsContent;
513
567
  writeFileSync(dest, content);
514
- console.log(chalk.green(' ✓ CLAUDE.md: created with employee-grade standards'));
568
+ console.log(chalk.green(" ✓ CLAUDE.md: created with employee-grade standards"));
515
569
  }
516
570
  }
517
571
  /** Read the employee-grade standards from a source file */
518
572
  export function readEmployeeStandards(srcPath) {
519
- return existsSync(srcPath) ? readFileSync(srcPath, 'utf-8') : '';
573
+ return existsSync(srcPath) ? readFileSync(srcPath, "utf-8") : "";
520
574
  }
521
575
  export { claudeAdapter, ALL_ADAPTERS };
522
576
  //# sourceMappingURL=editors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editors.js","sourceRoot":"","sources":["../../src/commands/editors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editors.js","sourceRoot":"","sources":["../../src/commands/editors.ts"],"names":[],"mappings":"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"}