@a16njs/plugin-claude 0.5.0 → 0.7.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/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # @a16njs/plugin-claude
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@a16njs/plugin-claude.svg)](https://www.npmjs.com/package/@a16njs/plugin-claude)
4
+ [![codecov](https://codecov.io/gh/Texarkanine/a16n/graph/badge.svg?flag=plugin-claude)](https://codecov.io/gh/Texarkanine/a16n)
4
5
 
5
6
  Claude Code plugin for a16n. Discovers and emits Claude configuration.
6
7
 
@@ -18,8 +19,8 @@ This plugin supports five customization types:
18
19
 
19
20
  | Type | Claude Format | Description |
20
21
  |------|---------------|-------------|
21
- | **GlobalPrompt** | `CLAUDE.md` | Always-active instructions |
22
- | **FileRule** | `.claude/settings.local.json` + `.a16n/rules/` | Glob-triggered via hooks |
22
+ | **GlobalPrompt** | `.claude/rules/*.md` | Always-active instructions |
23
+ | **FileRule** | `.claude/rules/*.md` with `paths:` frontmatter | Glob-triggered via native paths |
23
24
  | **AgentSkill** | `.claude/skills/*/SKILL.md` | Description-triggered skills |
24
25
  | **AgentIgnore** | `.claude/settings.json` `permissions.deny` | Files to exclude |
25
26
  | **AgentCommand** | *Emitted only* | Cursor commands become skills |
@@ -32,6 +33,7 @@ This plugin supports five customization types:
32
33
 
33
34
  - `CLAUDE.md` - Root Claude configuration (GlobalPrompt)
34
35
  - `*/CLAUDE.md` - Nested Claude configuration files (GlobalPrompt)
36
+ - `.claude/rules/*.md` - Native Claude rules (GlobalPrompt if no `paths:`, FileRule if `paths:` present)
35
37
  - `.claude/skills/*/SKILL.md` - Skills with description frontmatter (AgentSkill)
36
38
  - `.claude/settings.json` - Permissions deny rules (AgentIgnore)
37
39
 
@@ -40,22 +42,40 @@ This plugin supports five customization types:
40
42
 
41
43
  ### Emission
42
44
 
43
- - **GlobalPrompt** → `CLAUDE.md` (merged with section headers)
44
- - **FileRule** → `.a16n/rules/<name>.txt` + `.claude/settings.local.json` with hooks
45
+ - **GlobalPrompt** → `.claude/rules/<name>.md` (individual files)
46
+ - **FileRule** → `.claude/rules/<name>.md` with `paths:` YAML frontmatter
45
47
  - **AgentSkill** → `.claude/skills/<name>/SKILL.md` with description frontmatter
46
48
  - **AgentIgnore** → `.claude/settings.json` with `permissions.deny` Read rules
47
49
  - **AgentCommand** → `.claude/skills/<commandName>/SKILL.md` with `Invoke with /command` description
48
50
 
49
51
  ## File Formats
50
52
 
51
- ### CLAUDE.md (GlobalPrompt)
53
+ ### .claude/rules/*.md (GlobalPrompt)
54
+
55
+ Rules without `paths:` frontmatter apply to all files:
52
56
 
53
57
  ```markdown
54
- # Project Guidelines
58
+ ## From: .cursor/rules/general.mdc
55
59
 
56
60
  Your instructions for Claude here.
57
61
  ```
58
62
 
63
+ ### .claude/rules/*.md (FileRule)
64
+
65
+ Rules with `paths:` frontmatter apply only when working with matching files:
66
+
67
+ ```markdown
68
+ ---
69
+ paths:
70
+ - "**/*.tsx"
71
+ - "**/*.jsx"
72
+ ---
73
+
74
+ ## From: .cursor/rules/react.mdc
75
+
76
+ Use functional components with hooks.
77
+ ```
78
+
59
79
  ### SKILL.md (AgentSkill)
60
80
 
61
81
  ```markdown
@@ -67,24 +87,6 @@ Write unit tests first.
67
87
  Aim for 80% code coverage.
68
88
  ```
69
89
 
70
- ### settings.local.json (FileRule via hooks)
71
-
72
- FileRules are converted using `@a16njs/glob-hook` for runtime glob matching:
73
-
74
- ```json
75
- {
76
- "hooks": {
77
- "PreToolUse": [{
78
- "matcher": "Read|Write|Edit",
79
- "hooks": [{
80
- "type": "command",
81
- "command": "npx @a16njs/glob-hook --globs \"**/*.tsx\" --context-file \".a16n/rules/react.txt\""
82
- }]
83
- }]
84
- }
85
- }
86
- ```
87
-
88
90
  ## Usage
89
91
 
90
92
  ```typescript
@@ -1 +1 @@
1
- {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,eAAe,EAKrB,MAAM,gBAAgB,CAAC;AAiNxB;;GAEG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA4GrE"}
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,eAAe,EAKrB,MAAM,gBAAgB,CAAC;AAidxB;;GAEG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAgNrE"}
package/dist/discover.js CHANGED
@@ -1,6 +1,150 @@
1
1
  import * as fs from 'fs/promises';
2
2
  import * as path from 'path';
3
3
  import { CustomizationType, WarningCode, createId, } from '@a16njs/models';
4
+ /**
5
+ * Recursively find all .md files in .claude/rules/ directory.
6
+ * Returns relative paths like ".claude/rules/style.md" or ".claude/rules/frontend/react.md"
7
+ *
8
+ * @param root - Project root directory
9
+ * @returns Array of relative paths to rule files
10
+ */
11
+ async function findClaudeRules(root) {
12
+ const results = [];
13
+ const rulesDir = path.join(root, '.claude', 'rules');
14
+ async function traverse(currentDir, relativePath) {
15
+ try {
16
+ const entries = await fs.readdir(currentDir, { withFileTypes: true });
17
+ for (const entry of entries) {
18
+ // Skip hidden directories (like .git)
19
+ if (entry.name.startsWith('.')) {
20
+ continue;
21
+ }
22
+ const entryRelativePath = relativePath
23
+ ? `${relativePath}/${entry.name}`
24
+ : entry.name;
25
+ const entryFullPath = path.join(currentDir, entry.name);
26
+ if (entry.isFile() && entry.name.endsWith('.md')) {
27
+ // Found a rule file
28
+ results.push(`.claude/rules/${entryRelativePath}`);
29
+ }
30
+ else if (entry.isDirectory()) {
31
+ // Recurse into subdirectory
32
+ await traverse(entryFullPath, entryRelativePath);
33
+ }
34
+ }
35
+ }
36
+ catch {
37
+ // Directory doesn't exist or can't be read - that's okay
38
+ }
39
+ }
40
+ await traverse(rulesDir, '');
41
+ return results;
42
+ }
43
+ /**
44
+ * Parse YAML frontmatter from a Claude rule file.
45
+ * Extracts the paths field and other frontmatter metadata.
46
+ *
47
+ * @param content - Full file content including frontmatter
48
+ * @returns Parsed frontmatter and body content
49
+ */
50
+ function parseClaudeRuleFrontmatter(content) {
51
+ const lines = content.split('\n');
52
+ let frontmatterStart = -1;
53
+ let frontmatterEnd = -1;
54
+ // Find frontmatter delimiters (---)
55
+ for (let i = 0; i < lines.length; i++) {
56
+ const line = lines[i]?.trim();
57
+ if (line === '---') {
58
+ if (frontmatterStart === -1) {
59
+ frontmatterStart = i;
60
+ }
61
+ else {
62
+ frontmatterEnd = i;
63
+ break;
64
+ }
65
+ }
66
+ }
67
+ // No frontmatter found
68
+ if (frontmatterStart === -1 || frontmatterEnd === -1) {
69
+ return {
70
+ frontmatter: {},
71
+ body: content.trim(),
72
+ };
73
+ }
74
+ const frontmatter = {};
75
+ // Parse frontmatter lines
76
+ let i = frontmatterStart + 1;
77
+ while (i < frontmatterEnd) {
78
+ const line = lines[i];
79
+ if (!line) {
80
+ i++;
81
+ continue;
82
+ }
83
+ // Check for paths: field
84
+ const pathsMatch = line.match(/^paths:\s*$/);
85
+ if (pathsMatch) {
86
+ // Multi-line array format
87
+ const paths = [];
88
+ i++;
89
+ while (i < frontmatterEnd) {
90
+ const pathLine = lines[i];
91
+ if (!pathLine) {
92
+ i++;
93
+ continue;
94
+ }
95
+ const arrayItemMatch = pathLine.match(/^\s*-\s*["']?(.+?)["']?\s*$/);
96
+ if (arrayItemMatch) {
97
+ paths.push(arrayItemMatch[1]);
98
+ i++;
99
+ }
100
+ else {
101
+ // End of array
102
+ break;
103
+ }
104
+ }
105
+ if (paths.length > 0) {
106
+ frontmatter.paths = paths;
107
+ }
108
+ continue;
109
+ }
110
+ // Check for paths: "value" or paths: ["value1", "value2"] (inline format)
111
+ const pathsInlineMatch = line.match(/^paths:\s*(.+)$/);
112
+ if (pathsInlineMatch) {
113
+ const value = pathsInlineMatch[1].trim();
114
+ // Try to parse as JSON array
115
+ if (value.startsWith('[')) {
116
+ try {
117
+ const parsed = JSON.parse(value);
118
+ if (Array.isArray(parsed)) {
119
+ frontmatter.paths = parsed.filter((p) => typeof p === 'string');
120
+ }
121
+ }
122
+ catch {
123
+ // Not valid JSON, treat as single string
124
+ frontmatter.paths = [value.replace(/^["']|["']$/g, '')];
125
+ }
126
+ }
127
+ else {
128
+ // Single string value
129
+ frontmatter.paths = [value.replace(/^["']|["']$/g, '')];
130
+ }
131
+ i++;
132
+ continue;
133
+ }
134
+ // Store other frontmatter fields generically (allow hyphenated keys like disable-model-invocation)
135
+ const keyValueMatch = line.match(/^([A-Za-z0-9_-]+):\s*(.+)$/);
136
+ if (keyValueMatch) {
137
+ const key = keyValueMatch[1];
138
+ const value = keyValueMatch[2].trim().replace(/^["']|["']$/g, '');
139
+ frontmatter[key] = value;
140
+ }
141
+ i++;
142
+ }
143
+ // Extract body (everything after second ---)
144
+ const bodyLines = lines.slice(frontmatterEnd + 1);
145
+ const body = bodyLines.join('\n').trim();
146
+ return { frontmatter, body };
147
+ }
4
148
  /**
5
149
  * Convert a Claude Read() permission rule to a gitignore-style pattern.
6
150
  * Returns null for non-Read rules.
@@ -21,6 +165,47 @@ function convertReadRuleToPattern(rule) {
21
165
  // Read(./.env) → .env
22
166
  return pattern;
23
167
  }
168
+ /**
169
+ * Parse hooks section from frontmatter lines.
170
+ * Returns the hooks object and the line index after the hooks section.
171
+ */
172
+ function parseHooksSection(lines, startIndex, endIndex) {
173
+ const hooks = {};
174
+ let i = startIndex;
175
+ while (i < endIndex) {
176
+ const line = lines[i];
177
+ if (!line) {
178
+ i++;
179
+ continue;
180
+ }
181
+ // Check if this is a hook name (e.g., " pre-commit:")
182
+ const hookMatch = line.match(/^ (\S+):\s*$/);
183
+ if (hookMatch) {
184
+ const hookName = hookMatch[1];
185
+ const hookItems = [];
186
+ i++;
187
+ // Parse hook items (e.g., " - run: ./script.sh")
188
+ while (i < endIndex) {
189
+ const itemLine = lines[i];
190
+ if (!itemLine || !itemLine.startsWith(' '))
191
+ break;
192
+ const itemMatch = itemLine.match(/^\s+-\s+(\w+):\s*(.+)$/);
193
+ if (itemMatch) {
194
+ hookItems.push({ [itemMatch[1]]: itemMatch[2] });
195
+ }
196
+ i++;
197
+ }
198
+ hooks[hookName] = hookItems;
199
+ continue;
200
+ }
201
+ // If we hit a non-indented line, we're done with hooks
202
+ if (!line.startsWith(' ')) {
203
+ break;
204
+ }
205
+ i++;
206
+ }
207
+ return { hooks, nextIndex: i };
208
+ }
24
209
  function parseSkillFrontmatter(content) {
25
210
  const lines = content.split('\n');
26
211
  let frontmatterStart = -1;
@@ -40,39 +225,49 @@ function parseSkillFrontmatter(content) {
40
225
  // No frontmatter found
41
226
  if (frontmatterStart === -1 || frontmatterEnd === -1) {
42
227
  return {
43
- frontmatter: { hasHooks: false },
228
+ frontmatter: {},
44
229
  body: content.trim(),
45
230
  };
46
231
  }
47
- const frontmatter = { hasHooks: false };
232
+ const frontmatter = {};
48
233
  // Parse frontmatter lines
49
- for (let i = frontmatterStart + 1; i < frontmatterEnd; i++) {
234
+ let i = frontmatterStart + 1;
235
+ while (i < frontmatterEnd) {
50
236
  const line = lines[i];
51
- if (!line)
237
+ if (!line) {
238
+ i++;
52
239
  continue;
240
+ }
53
241
  // Check for hooks: key (indicates skill-scoped hooks)
54
242
  if (line.match(/^hooks:\s*$/)) {
55
- frontmatter.hasHooks = true;
243
+ i++;
244
+ const { hooks, nextIndex } = parseHooksSection(lines, i, frontmatterEnd);
245
+ frontmatter.hooks = hooks;
246
+ i = nextIndex;
56
247
  continue;
57
248
  }
58
249
  // Parse description: "..."
59
250
  const descriptionMatch = line.match(/^description:\s*["']?(.+?)["']?\s*$/);
60
251
  if (descriptionMatch) {
61
252
  frontmatter.description = descriptionMatch[1];
253
+ i++;
62
254
  continue;
63
255
  }
64
256
  // Parse name: "..."
65
257
  const nameMatch = line.match(/^name:\s*["']?(.+?)["']?\s*$/);
66
258
  if (nameMatch) {
67
259
  frontmatter.name = nameMatch[1];
260
+ i++;
68
261
  continue;
69
262
  }
70
263
  // Parse disable-model-invocation: true
71
264
  const disableMatch = line.match(/^disable-model-invocation:\s*(true|false)\s*$/);
72
265
  if (disableMatch) {
73
266
  frontmatter.disableModelInvocation = disableMatch[1] === 'true';
267
+ i++;
74
268
  continue;
75
269
  }
270
+ i++;
76
271
  }
77
272
  // Extract body (everything after second ---)
78
273
  const bodyLines = lines.slice(frontmatterEnd + 1);
@@ -80,10 +275,10 @@ function parseSkillFrontmatter(content) {
80
275
  return { frontmatter, body };
81
276
  }
82
277
  /**
83
- * Find all SKILL.md files in .claude/skills/ subdirectories.
84
- * Returns paths like ".claude/skills/testing/SKILL.md"
278
+ * Find all skill directories in .claude/skills/ that contain SKILL.md.
279
+ * Returns directory names (e.g., "testing", "secure-deploy").
85
280
  */
86
- async function findSkillFiles(root) {
281
+ async function findSkillDirs(root) {
87
282
  const results = [];
88
283
  const skillsDir = path.join(root, '.claude', 'skills');
89
284
  try {
@@ -93,7 +288,7 @@ async function findSkillFiles(root) {
93
288
  const skillFile = path.join(skillsDir, entry.name, 'SKILL.md');
94
289
  try {
95
290
  await fs.access(skillFile);
96
- results.push(`.claude/skills/${entry.name}/SKILL.md`);
291
+ results.push(entry.name);
97
292
  }
98
293
  catch {
99
294
  // No SKILL.md in this directory
@@ -106,6 +301,26 @@ async function findSkillFiles(root) {
106
301
  }
107
302
  return results;
108
303
  }
304
+ /**
305
+ * Read all non-SKILL.md files in a skill directory.
306
+ * Returns a map of filename → content.
307
+ */
308
+ async function readSkillFiles(skillDir) {
309
+ const files = {};
310
+ try {
311
+ const entries = await fs.readdir(skillDir, { withFileTypes: true });
312
+ for (const entry of entries) {
313
+ if (entry.isFile() && entry.name !== 'SKILL.md') {
314
+ const filePath = path.join(skillDir, entry.name);
315
+ files[entry.name] = await fs.readFile(filePath, 'utf-8');
316
+ }
317
+ }
318
+ }
319
+ catch {
320
+ // Directory read error - return empty files
321
+ }
322
+ return files;
323
+ }
109
324
  /**
110
325
  * Recursively find all CLAUDE.md files in a directory tree.
111
326
  */
@@ -205,50 +420,85 @@ export async function discover(root) {
205
420
  });
206
421
  }
207
422
  }
208
- // Find all .claude/skills/*/SKILL.md files (AgentSkill)
209
- const skillFiles = await findSkillFiles(root);
210
- for (const skillPath of skillFiles) {
211
- const fullPath = path.join(root, skillPath);
423
+ // Find all .claude/skills/*/ directories with SKILL.md (AgentSkill or AgentSkillIO)
424
+ const skillDirs = await findSkillDirs(root);
425
+ const skillsDir = path.join(root, '.claude', 'skills');
426
+ for (const dirName of skillDirs) {
427
+ const skillDir = path.join(skillsDir, dirName);
428
+ const skillPath = `.claude/skills/${dirName}/SKILL.md`;
429
+ const fullPath = path.join(skillDir, 'SKILL.md');
212
430
  try {
213
431
  const content = await fs.readFile(fullPath, 'utf-8');
214
432
  const { frontmatter, body } = parseSkillFrontmatter(content);
215
- // Extract skill name from path (e.g., "testing" from ".claude/skills/testing/SKILL.md")
216
- const skillName = skillPath.split('/')[2] || 'unknown';
217
- // Skip skills with hooks - they're not convertible to Cursor
218
- if (frontmatter.hasHooks) {
219
- const displayName = frontmatter.name || skillName;
433
+ // Extract skill name from frontmatter or directory
434
+ const skillName = frontmatter.name || dirName;
435
+ // Read all other files in the skill directory
436
+ const files = await readSkillFiles(skillDir);
437
+ const hasExtraFiles = Object.keys(files).length > 0;
438
+ const hasHooks = frontmatter.hooks && Object.keys(frontmatter.hooks).length > 0;
439
+ // Classification priority:
440
+ // 1. Has hooks → SKIP (hooks are not supported by AgentSkills.io)
441
+ // 2. Has extra files → AgentSkillIO (with description required)
442
+ // 3. disable-model-invocation: true → ManualPrompt
443
+ // 4. description present → SimpleAgentSkill
444
+ if (hasHooks) {
445
+ // Skills with hooks are not supported - skip with warning
220
446
  warnings.push({
221
447
  code: WarningCode.Skipped,
222
- message: `Skipped skill '${displayName}': Contains hooks (not convertible to Cursor)`,
448
+ message: `Skipped skill '${skillName}': Hooks are not supported by AgentSkills.io`,
223
449
  sources: [skillPath],
224
450
  });
225
451
  continue;
226
452
  }
227
- // Classification priority:
228
- // 1. disable-model-invocation: true -> ManualPrompt
229
- // 2. description present -> AgentSkill
230
- if (frontmatter.disableModelInvocation === true) {
453
+ if (hasExtraFiles) {
454
+ // AgentSkillIO - complex skill with resource files
455
+ if (!frontmatter.description) {
456
+ // AgentSkillIO requires description
457
+ warnings.push({
458
+ code: WarningCode.Skipped,
459
+ message: `Skipped skill '${skillName}': Has resource files but missing description`,
460
+ sources: [skillPath],
461
+ });
462
+ continue;
463
+ }
464
+ const agentSkillIO = {
465
+ id: createId(CustomizationType.AgentSkillIO, skillPath),
466
+ type: CustomizationType.AgentSkillIO,
467
+ sourcePath: skillPath,
468
+ content: body,
469
+ name: skillName,
470
+ description: frontmatter.description,
471
+ disableModelInvocation: frontmatter.disableModelInvocation,
472
+ resources: Object.keys(files),
473
+ files,
474
+ metadata: { name: frontmatter.name },
475
+ };
476
+ items.push(agentSkillIO);
477
+ }
478
+ else if (frontmatter.disableModelInvocation === true) {
479
+ // ManualPrompt
231
480
  const prompt = {
232
481
  id: createId(CustomizationType.ManualPrompt, skillPath),
233
482
  type: CustomizationType.ManualPrompt,
234
483
  sourcePath: skillPath,
235
484
  content: body,
236
- promptName: frontmatter.name || skillName,
485
+ promptName: skillName,
237
486
  metadata: {
238
- name: frontmatter.name || skillName,
487
+ name: skillName,
239
488
  },
240
489
  };
241
490
  items.push(prompt);
242
491
  }
243
492
  else if (frontmatter.description) {
493
+ // SimpleAgentSkill
244
494
  const skill = {
245
- id: createId(CustomizationType.AgentSkill, skillPath),
246
- type: CustomizationType.AgentSkill,
495
+ id: createId(CustomizationType.SimpleAgentSkill, skillPath),
496
+ type: CustomizationType.SimpleAgentSkill,
247
497
  sourcePath: skillPath,
248
498
  content: body,
249
499
  description: frontmatter.description,
250
500
  metadata: {
251
- name: frontmatter.name || skillName,
501
+ name: skillName,
252
502
  },
253
503
  };
254
504
  items.push(skill);
@@ -267,6 +517,65 @@ export async function discover(root) {
267
517
  if (agentIgnore) {
268
518
  items.push(agentIgnore);
269
519
  }
520
+ // Find all .claude/rules/*.md files (Phase 8 A1)
521
+ const ruleFiles = await findClaudeRules(root);
522
+ for (const rulePath of ruleFiles) {
523
+ const fullPath = path.join(root, rulePath);
524
+ // Normalize path separators for cross-platform consistency
525
+ const normalizedPath = rulePath.split(path.sep).join('/');
526
+ try {
527
+ const content = await fs.readFile(fullPath, 'utf-8');
528
+ const { frontmatter, body } = parseClaudeRuleFrontmatter(content);
529
+ // Normalize paths to array
530
+ let paths = [];
531
+ if (frontmatter.paths) {
532
+ if (typeof frontmatter.paths === 'string') {
533
+ paths = [frontmatter.paths];
534
+ }
535
+ else if (Array.isArray(frontmatter.paths)) {
536
+ paths = frontmatter.paths;
537
+ }
538
+ }
539
+ // Classification:
540
+ // - No paths or empty paths -> GlobalPrompt
541
+ // - paths present -> FileRule with globs
542
+ if (paths.length === 0) {
543
+ // GlobalPrompt
544
+ items.push({
545
+ id: createId(CustomizationType.GlobalPrompt, normalizedPath),
546
+ type: CustomizationType.GlobalPrompt,
547
+ sourcePath: normalizedPath,
548
+ content: body,
549
+ metadata: {
550
+ nested: false,
551
+ depth: 0,
552
+ ...frontmatter,
553
+ },
554
+ });
555
+ }
556
+ else {
557
+ // FileRule
558
+ const fileRule = {
559
+ id: createId(CustomizationType.FileRule, normalizedPath),
560
+ type: CustomizationType.FileRule,
561
+ sourcePath: normalizedPath,
562
+ content: body,
563
+ globs: paths,
564
+ metadata: {
565
+ ...frontmatter,
566
+ },
567
+ };
568
+ items.push(fileRule);
569
+ }
570
+ }
571
+ catch (error) {
572
+ warnings.push({
573
+ code: WarningCode.Skipped,
574
+ message: `Could not read ${rulePath}: ${error.message}`,
575
+ sources: [rulePath],
576
+ });
577
+ }
578
+ }
270
579
  return { items, warnings };
271
580
  }
272
581
  //# sourceMappingURL=discover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../src/emit.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,UAAU,EACf,KAAK,WAAW,EAajB,MAAM,gBAAgB,CAAC;AAkIxB;;;;;;;;;GASG;AACH,wBAAsB,IAAI,CACxB,MAAM,EAAE,kBAAkB,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC,CAgWrB"}
1
+ {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../src/emit.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,UAAU,EACf,KAAK,WAAW,EAgBjB,MAAM,gBAAgB,CAAC;AAwOxB;;;;;;;;;GASG;AACH,wBAAsB,IAAI,CACxB,MAAM,EAAE,kBAAkB,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC,CAmSrB"}
package/dist/emit.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as fs from 'fs/promises';
2
2
  import * as path from 'path';
3
- import { CustomizationType, WarningCode, isGlobalPrompt, isFileRule, isAgentSkill, isAgentIgnore, isManualPrompt, getUniqueFilename, } from '@a16njs/models';
3
+ import { CustomizationType, WarningCode, isGlobalPrompt, isFileRule, isSimpleAgentSkill, isAgentSkillIO, isAgentIgnore, isManualPrompt, getUniqueFilename, } from '@a16njs/models';
4
4
  /**
5
5
  * Convert a gitignore-style pattern to a Claude Read() permission rule.
6
6
  * Returns null for patterns that cannot be converted (e.g., negation patterns).
@@ -53,27 +53,33 @@ function sanitizePromptName(promptName) {
53
53
  return sanitized || 'command';
54
54
  }
55
55
  /**
56
- * Escape a string for safe use in double-quoted shell arguments.
57
- * Escapes: backslash, double quote, dollar sign, backtick.
56
+ * Format a GlobalPrompt as a Claude rule file.
57
+ * GlobalPrompts are emitted as plain markdown without frontmatter.
58
+ * Includes source header for traceability.
59
+ *
60
+ * @param gp - The GlobalPrompt to format
61
+ * @returns Formatted markdown content
58
62
  */
59
- function escapeShellArg(str) {
60
- return str.replace(/[\\"`$]/g, '\\$&');
63
+ function formatGlobalPromptAsClaudeRule(gp) {
64
+ const header = `## From: ${gp.sourcePath}`;
65
+ return `${header}\n\n${gp.content}`;
61
66
  }
62
67
  /**
63
- * Build hook configuration for a FileRule.
68
+ * Format a FileRule as a Claude rule file with paths frontmatter.
69
+ * FileRules are emitted with YAML frontmatter containing the globs as paths.
70
+ *
71
+ * @param fr - The FileRule to format
72
+ * @returns Formatted markdown with YAML frontmatter
64
73
  */
65
- function buildHookConfig(fileRule, rulePath) {
66
- // Escape globs and rulePath to prevent command injection
67
- const escapedGlobs = fileRule.globs.map(g => escapeShellArg(g));
68
- const globsArg = escapedGlobs.join(',');
69
- const escapedRulePath = escapeShellArg(rulePath);
70
- return {
71
- matcher: 'Read|Write|Edit',
72
- hooks: [{
73
- type: 'command',
74
- command: `npx @a16njs/glob-hook --globs "${globsArg}" --context-file "${escapedRulePath}"`,
75
- }],
76
- };
74
+ function formatFileRuleAsClaudeRule(fr) {
75
+ // Format globs as YAML array
76
+ const pathsArray = fr.globs.map(glob => ` - ${glob}`).join('\n');
77
+ const frontmatter = `---
78
+ paths:
79
+ ${pathsArray}
80
+ ---`;
81
+ const header = `## From: ${fr.sourcePath}`;
82
+ return `${frontmatter}\n\n${header}\n\n${fr.content}`;
77
83
  }
78
84
  /**
79
85
  * Format a skill file with YAML frontmatter.
@@ -119,6 +125,82 @@ disable-model-invocation: true
119
125
  ${prompt.content}
120
126
  `;
121
127
  }
128
+ /**
129
+ * Emit an AgentSkillIO to Claude format.
130
+ * Claude natively supports the full AgentSkills.io standard.
131
+ * Always emits to .claude/skills/<name>/ with:
132
+ * - SKILL.md with full frontmatter
133
+ * - All resource files from the files map
134
+ *
135
+ * @param skill - The AgentSkillIO to emit
136
+ * @param root - Root directory to write to
137
+ * @param dryRun - If true, don't write files
138
+ * @param usedSkillNames - Set of used skill directory names (for collision detection)
139
+ * @returns Array of written files
140
+ */
141
+ async function emitAgentSkillIO(skill, root, dryRun, usedSkillNames) {
142
+ const written = [];
143
+ // Get unique skill name to avoid directory collisions
144
+ const baseName = sanitizeFilename(skill.name);
145
+ const skillName = getUniqueFilename(baseName, usedSkillNames);
146
+ const skillDir = path.join(root, '.claude', 'skills', skillName);
147
+ if (!dryRun) {
148
+ await fs.mkdir(skillDir, { recursive: true });
149
+ }
150
+ // Write SKILL.md with full frontmatter
151
+ const skillPath = path.join(skillDir, 'SKILL.md');
152
+ const safeName = JSON.stringify(skill.name);
153
+ const safeDescription = JSON.stringify(skill.description);
154
+ let frontmatter = `---
155
+ name: ${safeName}
156
+ description: ${safeDescription}`;
157
+ if (skill.disableModelInvocation) {
158
+ frontmatter += '\ndisable-model-invocation: true';
159
+ }
160
+ frontmatter += '\n---';
161
+ const skillContent = `${frontmatter}\n\n${skill.content}\n`;
162
+ let isNewFile = true;
163
+ try {
164
+ await fs.access(skillPath);
165
+ isNewFile = false;
166
+ }
167
+ catch {
168
+ isNewFile = true;
169
+ }
170
+ if (!dryRun) {
171
+ await fs.writeFile(skillPath, skillContent, 'utf-8');
172
+ }
173
+ written.push({
174
+ path: skillPath,
175
+ type: CustomizationType.AgentSkillIO,
176
+ itemCount: 1,
177
+ isNewFile,
178
+ sourceItems: [skill],
179
+ });
180
+ // Write all resource files
181
+ for (const [filename, content] of Object.entries(skill.files)) {
182
+ const filePath = path.join(skillDir, filename);
183
+ let isResourceNewFile = true;
184
+ try {
185
+ await fs.access(filePath);
186
+ isResourceNewFile = false;
187
+ }
188
+ catch {
189
+ isResourceNewFile = true;
190
+ }
191
+ if (!dryRun) {
192
+ await fs.writeFile(filePath, content, 'utf-8');
193
+ }
194
+ written.push({
195
+ path: filePath,
196
+ type: CustomizationType.AgentSkillIO,
197
+ itemCount: 1,
198
+ isNewFile: isResourceNewFile,
199
+ sourceItems: [skill],
200
+ });
201
+ }
202
+ return written;
203
+ }
122
204
  /**
123
205
  * Emit agent customizations to Claude format.
124
206
  * - GlobalPrompts → CLAUDE.md
@@ -137,53 +219,53 @@ export async function emit(models, root, options) {
137
219
  // Separate by type
138
220
  const globalPrompts = models.filter(isGlobalPrompt);
139
221
  const fileRules = models.filter(isFileRule);
140
- const agentSkills = models.filter(isAgentSkill);
222
+ const agentSkills = models.filter(isSimpleAgentSkill);
223
+ const agentSkillIOs = models.filter(isAgentSkillIO);
141
224
  const agentIgnores = models.filter(isAgentIgnore);
142
225
  const manualPrompts = models.filter(isManualPrompt);
143
226
  // Track unsupported types (future types)
144
227
  for (const model of models) {
145
- if (!isGlobalPrompt(model) && !isFileRule(model) && !isAgentSkill(model) && !isAgentIgnore(model) && !isManualPrompt(model)) {
228
+ if (!isGlobalPrompt(model) && !isFileRule(model) && !isSimpleAgentSkill(model) && !isAgentSkillIO(model) && !isAgentIgnore(model) && !isManualPrompt(model)) {
146
229
  unsupported.push(model);
147
230
  }
148
231
  }
149
- // === Emit GlobalPrompts as CLAUDE.md ===
232
+ // === Emit GlobalPrompts as .claude/rules/*.md ===
150
233
  if (globalPrompts.length > 0) {
151
- const sections = globalPrompts.map((gp) => {
152
- const header = `## From: ${gp.sourcePath}`;
153
- return `${header}\n\n${gp.content}`;
154
- });
155
- const content = sections.join('\n\n---\n\n');
156
- const claudePath = path.join(root, 'CLAUDE.md');
157
- // Check if file exists before writing
158
- let isNewFile = true;
159
- try {
160
- await fs.access(claudePath);
161
- isNewFile = false; // File exists
162
- }
163
- catch {
164
- isNewFile = true; // File does not exist
165
- }
234
+ const rulesDir = path.join(root, '.claude', 'rules');
166
235
  if (!dryRun) {
167
- await fs.writeFile(claudePath, content, 'utf-8');
236
+ await fs.mkdir(rulesDir, { recursive: true });
168
237
  }
169
- written.push({
170
- path: claudePath,
171
- type: CustomizationType.GlobalPrompt,
172
- itemCount: globalPrompts.length,
173
- isNewFile,
174
- sourceItems: globalPrompts,
175
- });
176
- if (globalPrompts.length > 1) {
177
- warnings.push({
178
- code: WarningCode.Merged,
179
- message: `Merged ${globalPrompts.length} items into single CLAUDE.md`,
180
- sources: globalPrompts.map((gp) => gp.sourcePath),
238
+ const usedFilenames = new Set();
239
+ for (const gp of globalPrompts) {
240
+ // Get unique filename to avoid collisions
241
+ const baseName = sanitizeFilename(gp.sourcePath);
242
+ const filename = getUniqueFilename(baseName, usedFilenames, '.md');
243
+ const rulePath = path.join(rulesDir, filename);
244
+ const content = formatGlobalPromptAsClaudeRule(gp);
245
+ // Check if file exists before writing
246
+ let isNewFile = true;
247
+ try {
248
+ await fs.access(rulePath);
249
+ isNewFile = false; // File exists
250
+ }
251
+ catch {
252
+ isNewFile = true; // File does not exist
253
+ }
254
+ if (!dryRun) {
255
+ await fs.writeFile(rulePath, content, 'utf-8');
256
+ }
257
+ written.push({
258
+ path: rulePath,
259
+ type: CustomizationType.GlobalPrompt,
260
+ itemCount: 1,
261
+ isNewFile,
262
+ sourceItems: [gp],
181
263
  });
182
264
  }
183
265
  }
184
- // === Emit FileRules as .a16n/rules/*.md + .claude/settings.local.json ===
266
+ // === Emit FileRules as .claude/rules/*.md ===
185
267
  if (fileRules.length > 0) {
186
- const hooks = [];
268
+ const rulesDir = path.join(root, '.claude', 'rules');
187
269
  const usedFilenames = new Set();
188
270
  let validFileRulesExist = false;
189
271
  for (const rule of fileRules) {
@@ -198,19 +280,18 @@ export async function emit(models, root, options) {
198
280
  });
199
281
  continue;
200
282
  }
201
- // Create directories only when we have valid rules (skip in dry-run)
283
+ // Create directory only when we have valid rules (skip in dry-run)
202
284
  if (!validFileRulesExist && !dryRun) {
203
- const rulesDir = path.join(root, '.a16n', 'rules');
204
285
  await fs.mkdir(rulesDir, { recursive: true });
205
- const claudeDir = path.join(root, '.claude');
206
- await fs.mkdir(claudeDir, { recursive: true });
207
286
  }
208
287
  validFileRulesExist = true;
209
288
  // Get unique filename to avoid collisions
210
289
  const baseName = sanitizeFilename(rule.sourcePath);
211
290
  const filename = getUniqueFilename(baseName, usedFilenames, '.md');
212
- const rulePath = `.a16n/rules/${filename}`;
213
- const fullPath = path.join(root, rulePath);
291
+ const fullPath = path.join(rulesDir, filename);
292
+ // Filter to only valid globs for emission
293
+ const filteredRule = { ...rule, globs: validGlobs };
294
+ const content = formatFileRuleAsClaudeRule(filteredRule);
214
295
  // Check if file exists before writing
215
296
  let isNewFile = true;
216
297
  try {
@@ -222,7 +303,7 @@ export async function emit(models, root, options) {
222
303
  }
223
304
  // Write rule content (skip in dry-run)
224
305
  if (!dryRun) {
225
- await fs.writeFile(fullPath, rule.content, 'utf-8');
306
+ await fs.writeFile(fullPath, content, 'utf-8');
226
307
  }
227
308
  written.push({
228
309
  path: fullPath,
@@ -231,73 +312,11 @@ export async function emit(models, root, options) {
231
312
  isNewFile,
232
313
  sourceItems: [rule],
233
314
  });
234
- // Build hook for this rule with filtered valid globs
235
- const filteredRule = { ...rule, globs: validGlobs };
236
- hooks.push(buildHookConfig(filteredRule, rulePath));
237
- }
238
- // Only write settings.local.json if there are valid hooks
239
- if (hooks.length > 0) {
240
- const claudeDir = path.join(root, '.claude');
241
- if (!dryRun) {
242
- await fs.mkdir(claudeDir, { recursive: true });
243
- }
244
- // Write settings.local.json, merging with existing content if present
245
- const settingsPath = path.join(claudeDir, 'settings.local.json');
246
- let settings = { hooks: { PreToolUse: hooks } };
247
- let isNewFile = true;
248
- try {
249
- const existingContent = await fs.readFile(settingsPath, 'utf-8');
250
- isNewFile = false; // File exists
251
- const existing = JSON.parse(existingContent);
252
- const existingHooks = existing.hooks;
253
- const existingPreToolUse = Array.isArray(existingHooks?.PreToolUse)
254
- ? existingHooks.PreToolUse
255
- : [];
256
- // Merge: preserve existing settings, append new PreToolUse hooks
257
- settings = {
258
- ...existing,
259
- hooks: {
260
- ...existingHooks,
261
- PreToolUse: [...existingPreToolUse, ...hooks],
262
- },
263
- };
264
- }
265
- catch (err) {
266
- // File doesn't exist or isn't valid JSON - use fresh settings
267
- if (err.code !== 'ENOENT') {
268
- // Only warn if it's not a "file not found" error
269
- warnings.push({
270
- code: WarningCode.Skipped,
271
- message: `Could not parse existing settings.local.json, overwriting: ${err.message}`,
272
- sources: [settingsPath],
273
- });
274
- }
275
- // If ENOENT, isNewFile remains true
276
- }
277
- if (!dryRun) {
278
- await fs.writeFile(settingsPath, JSON.stringify(settings, null, 2), 'utf-8');
279
- }
280
- // Collect all FileRules that were successfully processed (have valid globs)
281
- const validFileRules = fileRules.filter(r => r.globs.some(g => g.trim().length > 0));
282
- written.push({
283
- path: settingsPath,
284
- type: CustomizationType.FileRule,
285
- itemCount: hooks.length,
286
- isNewFile,
287
- sourceItems: validFileRules,
288
- });
289
- // Emit approximation warning for successfully processed FileRules
290
- const processedRules = fileRules.filter(r => r.globs.some(g => g.trim().length > 0));
291
- warnings.push({
292
- code: WarningCode.Approximated,
293
- message: `FileRule approximated via @a16njs/glob-hook (behavior may differ slightly)`,
294
- sources: processedRules.map((r) => r.sourcePath),
295
- });
296
315
  }
297
316
  }
298
317
  // Track .claude/skills directory names across skills + commands to prevent collisions
299
318
  const usedSkillNames = new Set();
300
- // === Emit AgentSkills as .claude/skills/*/SKILL.md ===
319
+ // === Emit SimpleAgentSkills as .claude/skills/*/SKILL.md ===
301
320
  if (agentSkills.length > 0) {
302
321
  for (const skill of agentSkills) {
303
322
  // Get unique skill name to avoid directory collisions
@@ -323,7 +342,7 @@ export async function emit(models, root, options) {
323
342
  }
324
343
  written.push({
325
344
  path: skillPath,
326
- type: CustomizationType.AgentSkill,
345
+ type: CustomizationType.SimpleAgentSkill,
327
346
  itemCount: 1,
328
347
  isNewFile,
329
348
  sourceItems: [skill],
@@ -435,6 +454,13 @@ export async function emit(models, root, options) {
435
454
  });
436
455
  }
437
456
  }
457
+ // === Emit AgentSkillIOs (Phase 8 B4) ===
458
+ if (agentSkillIOs.length > 0) {
459
+ for (const skillIO of agentSkillIOs) {
460
+ const skillIOWritten = await emitAgentSkillIO(skillIO, root, dryRun, usedSkillNames);
461
+ written.push(...skillIOWritten);
462
+ }
463
+ }
438
464
  return { written, warnings, unsupported };
439
465
  }
440
466
  //# sourceMappingURL=emit.js.map
package/dist/emit.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"emit.js","sourceRoot":"","sources":["../src/emit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../src/emit.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ const claudePlugin = {
11
11
  supports: [
12
12
  CustomizationType.GlobalPrompt,
13
13
  CustomizationType.FileRule,
14
- CustomizationType.AgentSkill,
14
+ CustomizationType.SimpleAgentSkill,
15
15
  ],
16
16
  discover,
17
17
  emit,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;GAGG;AACH,MAAM,YAAY,GAAe;IAC/B,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE;QACR,iBAAiB,CAAC,YAAY;QAC9B,iBAAiB,CAAC,QAAQ;QAC1B,iBAAiB,CAAC,UAAU;KAC7B;IAED,QAAQ;IACR,IAAI;CACL,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;GAGG;AACH,MAAM,YAAY,GAAe;IAC/B,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE;QACR,iBAAiB,CAAC,YAAY;QAC9B,iBAAiB,CAAC,QAAQ;QAC1B,iBAAiB,CAAC,gBAAgB;KACnC;IAED,QAAQ;IACR,IAAI;CACL,CAAC;AAEF,eAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@a16njs/plugin-claude",
3
- "version": "0.5.0",
3
+ "version": "0.7.0",
4
4
  "description": "Claude Code plugin for a16n",
5
5
  "license": "AGPL-3.0",
6
6
  "author": "Texarkanine",
@@ -9,7 +9,7 @@
9
9
  "url": "git+https://github.com/Texarkanine/a16n.git",
10
10
  "directory": "packages/plugin-claude"
11
11
  },
12
- "homepage": "https://github.com/Texarkanine/a16n#readme",
12
+ "homepage": "https://texarkanine.github.io/a16n/plugin-claude",
13
13
  "bugs": {
14
14
  "url": "https://github.com/Texarkanine/a16n/issues"
15
15
  },
@@ -33,7 +33,7 @@
33
33
  "dist"
34
34
  ],
35
35
  "dependencies": {
36
- "@a16njs/models": "0.4.0"
36
+ "@a16njs/models": "0.6.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/node": "^20.0.0",
@@ -45,6 +45,7 @@
45
45
  "clean": "rimraf dist *.tsbuildinfo",
46
46
  "typecheck": "tsc --noEmit",
47
47
  "test": "vitest run",
48
- "test:watch": "vitest"
48
+ "test:watch": "vitest",
49
+ "test:coverage": "vitest run --coverage"
49
50
  }
50
51
  }