agent-skills-cli 1.0.9 → 1.1.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.
Files changed (60) hide show
  1. package/README.md +26 -2
  2. package/dist/adapters/adapter.d.ts +51 -0
  3. package/dist/adapters/adapter.d.ts.map +1 -0
  4. package/dist/adapters/adapter.js +51 -0
  5. package/dist/adapters/adapter.js.map +1 -0
  6. package/dist/adapters/claude.d.ts +16 -0
  7. package/dist/adapters/claude.d.ts.map +1 -0
  8. package/dist/adapters/claude.js +30 -0
  9. package/dist/adapters/claude.js.map +1 -0
  10. package/dist/adapters/copilot.d.ts +16 -0
  11. package/dist/adapters/copilot.d.ts.map +1 -0
  12. package/dist/adapters/copilot.js +32 -0
  13. package/dist/adapters/copilot.js.map +1 -0
  14. package/dist/adapters/cursor.d.ts +17 -0
  15. package/dist/adapters/cursor.d.ts.map +1 -0
  16. package/dist/adapters/cursor.js +34 -0
  17. package/dist/adapters/cursor.js.map +1 -0
  18. package/dist/adapters/index.d.ts +11 -0
  19. package/dist/adapters/index.d.ts.map +1 -0
  20. package/dist/adapters/index.js +10 -0
  21. package/dist/adapters/index.js.map +1 -0
  22. package/dist/adapters/universal.d.ts +12 -0
  23. package/dist/adapters/universal.d.ts.map +1 -0
  24. package/dist/adapters/universal.js +16 -0
  25. package/dist/adapters/universal.js.map +1 -0
  26. package/dist/cli/agents.d.ts +11 -0
  27. package/dist/cli/agents.d.ts.map +1 -1
  28. package/dist/cli/agents.js +47 -0
  29. package/dist/cli/agents.js.map +1 -1
  30. package/dist/cli/commands/convert.d.ts.map +1 -1
  31. package/dist/cli/commands/convert.js +16 -65
  32. package/dist/cli/commands/convert.js.map +1 -1
  33. package/dist/cli/commands/export.d.ts.map +1 -1
  34. package/dist/cli/commands/export.js +15 -7
  35. package/dist/cli/commands/export.js.map +1 -1
  36. package/dist/cli/commands/score.d.ts +10 -0
  37. package/dist/cli/commands/score.d.ts.map +1 -0
  38. package/dist/cli/commands/score.js +91 -0
  39. package/dist/cli/commands/score.js.map +1 -0
  40. package/dist/cli/commands/show.d.ts.map +1 -1
  41. package/dist/cli/commands/show.js +8 -0
  42. package/dist/cli/commands/show.js.map +1 -1
  43. package/dist/cli/commands/submit-repo.d.ts +11 -0
  44. package/dist/cli/commands/submit-repo.d.ts.map +1 -0
  45. package/dist/cli/commands/submit-repo.js +133 -0
  46. package/dist/cli/commands/submit-repo.js.map +1 -0
  47. package/dist/cli/commands/submit.d.ts.map +1 -1
  48. package/dist/cli/commands/submit.js +10 -0
  49. package/dist/cli/commands/submit.js.map +1 -1
  50. package/dist/cli/index.js +4 -0
  51. package/dist/cli/index.js.map +1 -1
  52. package/dist/core/index.d.ts +2 -0
  53. package/dist/core/index.d.ts.map +1 -1
  54. package/dist/core/index.js +2 -0
  55. package/dist/core/index.js.map +1 -1
  56. package/dist/core/quality.d.ts +48 -0
  57. package/dist/core/quality.d.ts.map +1 -0
  58. package/dist/core/quality.js +241 -0
  59. package/dist/core/quality.js.map +1 -0
  60. package/package.json +1 -1
package/README.md CHANGED
@@ -1,12 +1,14 @@
1
1
  # Agent Skills CLI 🚀
2
2
 
3
- > **One CLI. 100,000+ skills. 42 AI agents.**
3
+ > **One CLI. 175,000+ skills. 42 AI agents.**
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/agent-skills-cli)](https://www.npmjs.com/package/agent-skills-cli)
6
6
  [![license](https://img.shields.io/npm/l/agent-skills-cli)](LICENSE)
7
7
 
8
8
  Install skills from the world's largest marketplace and sync them to **42 AI agents** including Cursor, Claude Code, GitHub Copilot, Windsurf, Cline, Gemini CLI, Zed, and more — all with a single command.
9
9
 
10
+ **What's new in v1.1.0:** Quality scoring (`skills score`), repo auto-indexing (`skills submit-repo`), and a formal adapter pattern architecture.
11
+
10
12
  🌐 **Website:** [agentskills.in](https://agentskills.in)
11
13
 
12
14
  ```bash
@@ -18,9 +20,12 @@ skills install @anthropic/xlsx
18
20
 
19
21
  ## ✨ Features
20
22
 
21
- - **100,000+ Skills** — Access the largest collection of AI agent skills
23
+ - **175,000+ Skills** — Access the largest collection of AI agent skills
22
24
  - **FZF Interactive Search** — Real-time search with keyboard navigation: `skills search -i`
23
25
  - **42 AI Agents** — Cursor, Claude, Copilot, Windsurf, Cline, Gemini CLI, Zed, and 35+ more
26
+ - **Quality Scoring** — 4-dimension skill scoring (0–100): `skills score`
27
+ - **Repo Auto-Index** — Submit entire repos to the marketplace: `skills submit-repo owner/repo`
28
+ - **Adapter Architecture** — Formal adapter pattern for clean multi-agent support
24
29
  - **Lock File Tracking** — Track all installations in `~/.skills/skills.lock`
25
30
  - **Git URL Support** — Install from GitHub, GitLab, or repos: `skills add owner/repo@skill`
26
31
  - **Platform Targeting** — Install to specific platforms with `-t claude,cursor`
@@ -94,6 +99,8 @@ skills search react --json
94
99
  | `skills check` | Check installed skills with source and version info |
95
100
  | `skills update` | Update skills from their source repos |
96
101
  | `skills remove` | Remove installed skills (interactive multi-select) |
102
+ | `skills score [path]` | Score skill quality (0–100, grades F–A) |
103
+ | `skills submit-repo <repo>` | Submit a GitHub repo for marketplace auto-indexing |
97
104
  | `skills doctor` | Diagnose issues |
98
105
 
99
106
  ### Install Options
@@ -130,6 +137,23 @@ skills sync # Sync to Antigravity workflows
130
137
  skills info # Show installation status
131
138
  ```
132
139
 
140
+ ### Quality Scoring
141
+
142
+ ```bash
143
+ skills score ./my-skill # Score a skill (0–100, grade F–A)
144
+ skills score ./my-skill --verbose # Show individual check details
145
+ skills score ./my-skill --json # Machine-readable output
146
+ ```
147
+
148
+ **Dimensions:** Structure (30%), Clarity (30%), Specificity (30%), Advanced (10%)
149
+
150
+ ### Submit Repos to Marketplace
151
+
152
+ ```bash
153
+ skills submit-repo Jeffallan/claude-skills # Auto-index all skills in repo
154
+ skills submit-repo vercel-labs/agent-skills # Skills appear on marketplace
155
+ ```
156
+
133
157
  ---
134
158
 
135
159
  ## 🤖 Supported Platforms (42 Agents)
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Agent Adapter — Base Interface & Abstract Class
3
+ *
4
+ * Provides a formal adapter pattern for all 42 supported AI agents.
5
+ * Each agent can override config path generation, format rendering,
6
+ * and feature detection.
7
+ */
8
+ export interface AgentAdapter {
9
+ /** Internal key, e.g. "cursor" */
10
+ readonly name: string;
11
+ /** Human-readable name, e.g. "Cursor" */
12
+ readonly displayName: string;
13
+ /** Relative project-level skill directory */
14
+ getProjectDir(): string;
15
+ /** Absolute global skill directory */
16
+ getGlobalDir(): string;
17
+ /** Full path for a given skill, e.g. `.cursor/skills/my-skill/SKILL.md` */
18
+ getConfigPath(skillName: string, global: boolean): string;
19
+ /** Generate agent-specific config content from parsed skill */
20
+ generateConfig(parsed: ParsedSkillInput): string;
21
+ /** Does this adapter support a particular format? */
22
+ supportsFormat(format: string): boolean;
23
+ /** Get the filename the agent expects (usually SKILL.md) */
24
+ getSkillFilename(): string;
25
+ }
26
+ /** Minimal skill input for config generation */
27
+ export interface ParsedSkillInput {
28
+ name: string;
29
+ description: string;
30
+ rawContent: string;
31
+ sections?: {
32
+ heading: string;
33
+ content: string;
34
+ }[];
35
+ frontmatter?: Record<string, any>;
36
+ }
37
+ export declare abstract class BaseAdapter implements AgentAdapter {
38
+ abstract readonly name: string;
39
+ abstract readonly displayName: string;
40
+ protected readonly projectDir: string;
41
+ protected readonly globalDir: string;
42
+ constructor(projectDir: string, globalDir: string);
43
+ getProjectDir(): string;
44
+ getGlobalDir(): string;
45
+ getConfigPath(skillName: string, global: boolean): string;
46
+ generateConfig(parsed: ParsedSkillInput): string;
47
+ supportsFormat(format: string): boolean;
48
+ getSkillFilename(): string;
49
+ }
50
+ export declare const HOME: string;
51
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,MAAM,WAAW,YAAY;IACzB,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,6CAA6C;IAC7C,aAAa,IAAI,MAAM,CAAC;IACxB,sCAAsC;IACtC,YAAY,IAAI,MAAM,CAAC;IACvB,2EAA2E;IAC3E,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1D,+DAA+D;IAC/D,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACjD,qDAAqD;IACrD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACxC,4DAA4D;IAC5D,gBAAgB,IAAI,MAAM,CAAC;CAC9B;AAED,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC;AAID,8BAAsB,WAAY,YAAW,YAAY;IACrD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEtC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEzB,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKjD,aAAa,IAAI,MAAM;IAIvB,YAAY,IAAI,MAAM;IAItB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM;IAKzD,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;IAiBhD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIvC,gBAAgB,IAAI,MAAM;CAG7B;AAID,eAAO,MAAM,IAAI,QAAY,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Agent Adapter — Base Interface & Abstract Class
3
+ *
4
+ * Provides a formal adapter pattern for all 42 supported AI agents.
5
+ * Each agent can override config path generation, format rendering,
6
+ * and feature detection.
7
+ */
8
+ import { homedir } from 'os';
9
+ import { join } from 'path';
10
+ // ── Base Adapter ─────────────────────────────────────────────────────────
11
+ export class BaseAdapter {
12
+ projectDir;
13
+ globalDir;
14
+ constructor(projectDir, globalDir) {
15
+ this.projectDir = projectDir;
16
+ this.globalDir = globalDir;
17
+ }
18
+ getProjectDir() {
19
+ return this.projectDir;
20
+ }
21
+ getGlobalDir() {
22
+ return this.globalDir;
23
+ }
24
+ getConfigPath(skillName, global) {
25
+ const base = global ? this.getGlobalDir() : this.getProjectDir();
26
+ return join(base, skillName, this.getSkillFilename());
27
+ }
28
+ generateConfig(parsed) {
29
+ // Default: output as standard SKILL.md format
30
+ const lines = [];
31
+ if (parsed.frontmatter && Object.keys(parsed.frontmatter).length > 0) {
32
+ lines.push('---');
33
+ for (const [key, value] of Object.entries(parsed.frontmatter)) {
34
+ lines.push(`${key}: ${typeof value === 'string' ? value : JSON.stringify(value)}`);
35
+ }
36
+ lines.push('---');
37
+ lines.push('');
38
+ }
39
+ lines.push(parsed.rawContent);
40
+ return lines.join('\n');
41
+ }
42
+ supportsFormat(format) {
43
+ return format === 'skill.md' || format === 'markdown';
44
+ }
45
+ getSkillFilename() {
46
+ return 'SKILL.md';
47
+ }
48
+ }
49
+ // ── Home directory constant ──────────────────────────────────────────────
50
+ export const HOME = homedir();
51
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapters/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAiC5B,4EAA4E;AAE5E,MAAM,OAAgB,WAAW;IAIV,UAAU,CAAS;IACnB,SAAS,CAAS;IAErC,YAAY,UAAkB,EAAE,SAAiB;QAC7C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,MAAe;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,cAAc,CAAC,MAAwB;QACnC,8CAA8C;QAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC5D,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvF,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,cAAc,CAAC,MAAc;QACzB,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,CAAC;IAC1D,CAAC;IAED,gBAAgB;QACZ,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AAED,4EAA4E;AAE5E,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Claude Adapter
3
+ * Handles Claude Code-specific skill format (CLAUDE.md awareness)
4
+ */
5
+ import { BaseAdapter, type ParsedSkillInput } from './adapter.js';
6
+ export declare class ClaudeAdapter extends BaseAdapter {
7
+ readonly name = "claude";
8
+ readonly displayName = "Claude Code";
9
+ constructor();
10
+ supportsFormat(format: string): boolean;
11
+ /**
12
+ * Generate CLAUDE.md format (Claude Code's native config)
13
+ */
14
+ toClaudeMd(parsed: ParsedSkillInput): string;
15
+ }
16
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAQ,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAExE,qBAAa,aAAc,SAAQ,WAAW;IAC1C,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,iBAAiB;;IAMrC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAW/C"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Claude Adapter
3
+ * Handles Claude Code-specific skill format (CLAUDE.md awareness)
4
+ */
5
+ import { BaseAdapter, HOME } from './adapter.js';
6
+ export class ClaudeAdapter extends BaseAdapter {
7
+ name = 'claude';
8
+ displayName = 'Claude Code';
9
+ constructor() {
10
+ super('.claude/skills', `${HOME}/.claude/skills`);
11
+ }
12
+ supportsFormat(format) {
13
+ return format === 'skill.md' || format === 'claudemd';
14
+ }
15
+ /**
16
+ * Generate CLAUDE.md format (Claude Code's native config)
17
+ */
18
+ toClaudeMd(parsed) {
19
+ const lines = [];
20
+ lines.push(`# ${parsed.name}`);
21
+ lines.push('');
22
+ if (parsed.description) {
23
+ lines.push(`> ${parsed.description}`);
24
+ lines.push('');
25
+ }
26
+ lines.push(parsed.rawContent);
27
+ return lines.join('\n');
28
+ }
29
+ }
30
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,IAAI,EAAyB,MAAM,cAAc,CAAC;AAExE,MAAM,OAAO,aAAc,SAAQ,WAAW;IACjC,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,aAAa,CAAC;IAErC;QACI,KAAK,CAAC,gBAAgB,EAAE,GAAG,IAAI,iBAAiB,CAAC,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,MAAc;QACzB,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAwB;QAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACJ"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copilot Adapter
3
+ * Handles GitHub Copilot-specific skill paths (.github/)
4
+ */
5
+ import { BaseAdapter, type ParsedSkillInput } from './adapter.js';
6
+ export declare class CopilotAdapter extends BaseAdapter {
7
+ readonly name = "copilot";
8
+ readonly displayName = "GitHub Copilot";
9
+ constructor();
10
+ supportsFormat(format: string): boolean;
11
+ /**
12
+ * Generate Copilot instructions format
13
+ */
14
+ toCopilotInstructions(parsed: ParsedSkillInput): string;
15
+ }
16
+ //# sourceMappingURL=copilot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/adapters/copilot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAQ,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAExE,qBAAa,cAAe,SAAQ,WAAW;IAC3C,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,oBAAoB;;IAMxC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAa1D"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copilot Adapter
3
+ * Handles GitHub Copilot-specific skill paths (.github/)
4
+ */
5
+ import { BaseAdapter, HOME } from './adapter.js';
6
+ export class CopilotAdapter extends BaseAdapter {
7
+ name = 'copilot';
8
+ displayName = 'GitHub Copilot';
9
+ constructor() {
10
+ super('.github/skills', `${HOME}/.github/skills`);
11
+ }
12
+ supportsFormat(format) {
13
+ return format === 'skill.md' || format === 'copilot';
14
+ }
15
+ /**
16
+ * Generate Copilot instructions format
17
+ */
18
+ toCopilotInstructions(parsed) {
19
+ const lines = [];
20
+ lines.push(`# ${parsed.name}`);
21
+ lines.push('');
22
+ if (parsed.description) {
23
+ lines.push(`**Purpose:** ${parsed.description}`);
24
+ lines.push('');
25
+ }
26
+ lines.push('## Instructions');
27
+ lines.push('');
28
+ lines.push(parsed.rawContent);
29
+ return lines.join('\n');
30
+ }
31
+ }
32
+ //# sourceMappingURL=copilot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/adapters/copilot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,IAAI,EAAyB,MAAM,cAAc,CAAC;AAExE,MAAM,OAAO,cAAe,SAAQ,WAAW;IAClC,IAAI,GAAG,SAAS,CAAC;IACjB,WAAW,GAAG,gBAAgB,CAAC;IAExC;QACI,KAAK,CAAC,gBAAgB,EAAE,GAAG,IAAI,iBAAiB,CAAC,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,MAAc;QACzB,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,MAAwB;QAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACJ"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Cursor Adapter
3
+ * Handles Cursor-specific skill format (.cursorrules legacy + SKILL.md)
4
+ */
5
+ import { BaseAdapter, type ParsedSkillInput } from './adapter.js';
6
+ export declare class CursorAdapter extends BaseAdapter {
7
+ readonly name = "cursor";
8
+ readonly displayName = "Cursor";
9
+ constructor();
10
+ supportsFormat(format: string): boolean;
11
+ generateConfig(parsed: ParsedSkillInput): string;
12
+ /**
13
+ * Generate .cursorrules format (legacy Cursor config)
14
+ */
15
+ toCursorRules(parsed: ParsedSkillInput): string;
16
+ }
17
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAQ,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAExE,qBAAa,aAAc,SAAQ,WAAW;IAC1C,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,YAAY;;IAMhC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIvC,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;IAKhD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAWlD"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Cursor Adapter
3
+ * Handles Cursor-specific skill format (.cursorrules legacy + SKILL.md)
4
+ */
5
+ import { BaseAdapter, HOME } from './adapter.js';
6
+ export class CursorAdapter extends BaseAdapter {
7
+ name = 'cursor';
8
+ displayName = 'Cursor';
9
+ constructor() {
10
+ super('.cursor/skills', `${HOME}/.cursor/skills`);
11
+ }
12
+ supportsFormat(format) {
13
+ return format === 'skill.md' || format === 'cursorrules' || format === 'mdc';
14
+ }
15
+ generateConfig(parsed) {
16
+ // Cursor uses standard SKILL.md but also supports .cursorrules
17
+ return super.generateConfig(parsed);
18
+ }
19
+ /**
20
+ * Generate .cursorrules format (legacy Cursor config)
21
+ */
22
+ toCursorRules(parsed) {
23
+ const lines = [];
24
+ lines.push(`# ${parsed.name}`);
25
+ lines.push('');
26
+ if (parsed.description) {
27
+ lines.push(parsed.description);
28
+ lines.push('');
29
+ }
30
+ lines.push(parsed.rawContent);
31
+ return lines.join('\n');
32
+ }
33
+ }
34
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,IAAI,EAAyB,MAAM,cAAc,CAAC;AAExE,MAAM,OAAO,aAAc,SAAQ,WAAW;IACjC,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,QAAQ,CAAC;IAEhC;QACI,KAAK,CAAC,gBAAgB,EAAE,GAAG,IAAI,iBAAiB,CAAC,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,MAAc;QACzB,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,KAAK,CAAC;IACjF,CAAC;IAED,cAAc,CAAC,MAAwB;QACnC,+DAA+D;QAC/D,OAAO,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAwB;QAClC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACJ"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Adapters — barrel file
3
+ * Re-exports all agent adapters and the factory function
4
+ */
5
+ export type { AgentAdapter, ParsedSkillInput } from './adapter.js';
6
+ export { BaseAdapter, HOME } from './adapter.js';
7
+ export { CursorAdapter } from './cursor.js';
8
+ export { ClaudeAdapter } from './claude.js';
9
+ export { CopilotAdapter } from './copilot.js';
10
+ export { UniversalAdapter } from './universal.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Adapters — barrel file
3
+ * Re-exports all agent adapters and the factory function
4
+ */
5
+ export { BaseAdapter, HOME } from './adapter.js';
6
+ export { CursorAdapter } from './cursor.js';
7
+ export { ClaudeAdapter } from './claude.js';
8
+ export { CopilotAdapter } from './copilot.js';
9
+ export { UniversalAdapter } from './universal.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Universal Adapter
3
+ * Handles all agents that use the standard SKILL.md format.
4
+ * Dynamically configured via the existing AGENTS record.
5
+ */
6
+ import { BaseAdapter } from './adapter.js';
7
+ export declare class UniversalAdapter extends BaseAdapter {
8
+ readonly name: string;
9
+ readonly displayName: string;
10
+ constructor(name: string, displayName: string, projectDir: string, globalDir: string);
11
+ }
12
+ //# sourceMappingURL=universal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"universal.d.ts","sourceRoot":"","sources":["../../src/adapters/universal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAyB,MAAM,cAAc,CAAC;AAElE,qBAAa,gBAAiB,SAAQ,WAAW;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAQvF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Universal Adapter
3
+ * Handles all agents that use the standard SKILL.md format.
4
+ * Dynamically configured via the existing AGENTS record.
5
+ */
6
+ import { BaseAdapter } from './adapter.js';
7
+ export class UniversalAdapter extends BaseAdapter {
8
+ name;
9
+ displayName;
10
+ constructor(name, displayName, projectDir, globalDir) {
11
+ super(projectDir, globalDir);
12
+ this.name = name;
13
+ this.displayName = displayName;
14
+ }
15
+ }
16
+ //# sourceMappingURL=universal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"universal.js","sourceRoot":"","sources":["../../src/adapters/universal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAyB,MAAM,cAAc,CAAC;AAElE,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IACpC,IAAI,CAAS;IACb,WAAW,CAAS;IAE7B,YAAY,IAAY,EAAE,WAAmB,EAAE,UAAkB,EAAE,SAAiB;QAChF,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;CAIJ"}
@@ -7,4 +7,15 @@ export interface AgentConfig {
7
7
  export declare const AGENTS: Record<string, AgentConfig>;
8
8
  /** Helper to get install path */
9
9
  export declare function getInstallPath(agent: string, global: boolean): string;
10
+ import type { AgentAdapter } from '../adapters/adapter.js';
11
+ /**
12
+ * Get an adapter for a given agent name.
13
+ * Returns specific adapters for cursor/claude/copilot,
14
+ * and a UniversalAdapter for everything else.
15
+ */
16
+ export declare function getAdapter(agentName: string): AgentAdapter;
17
+ /**
18
+ * Get all adapters for all known agents.
19
+ */
20
+ export declare function getAllAdapters(): AgentAdapter[];
10
21
  //# sourceMappingURL=agents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/cli/agents.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAgQ9C,CAAC;AAEF,iCAAiC;AACjC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAIrE"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/cli/agents.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAgQ9C,CAAC;AAEF,iCAAiC;AACjC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAIrE;AAID,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAS3D;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CA8B1D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,YAAY,EAAE,CAE/C"}
@@ -267,4 +267,51 @@ export function getInstallPath(agent, global) {
267
267
  return `.${agent}/skills`;
268
268
  return global ? config.globalDir : config.projectDir;
269
269
  }
270
+ import { CursorAdapter } from '../adapters/cursor.js';
271
+ import { ClaudeAdapter } from '../adapters/claude.js';
272
+ import { CopilotAdapter } from '../adapters/copilot.js';
273
+ import { UniversalAdapter } from '../adapters/universal.js';
274
+ /** Cache for adapters (lazy singleton per agent) */
275
+ const adapterCache = new Map();
276
+ /**
277
+ * Get an adapter for a given agent name.
278
+ * Returns specific adapters for cursor/claude/copilot,
279
+ * and a UniversalAdapter for everything else.
280
+ */
281
+ export function getAdapter(agentName) {
282
+ const cached = adapterCache.get(agentName);
283
+ if (cached)
284
+ return cached;
285
+ let adapter;
286
+ switch (agentName) {
287
+ case 'cursor':
288
+ adapter = new CursorAdapter();
289
+ break;
290
+ case 'claude':
291
+ adapter = new ClaudeAdapter();
292
+ break;
293
+ case 'copilot':
294
+ adapter = new CopilotAdapter();
295
+ break;
296
+ default: {
297
+ const config = AGENTS[agentName];
298
+ if (config) {
299
+ adapter = new UniversalAdapter(config.name, config.displayName, config.projectDir, config.globalDir);
300
+ }
301
+ else {
302
+ // Fallback for unknown agents
303
+ adapter = new UniversalAdapter(agentName, agentName, `.${agentName}/skills`, `${home}/.${agentName}/skills`);
304
+ }
305
+ break;
306
+ }
307
+ }
308
+ adapterCache.set(agentName, adapter);
309
+ return adapter;
310
+ }
311
+ /**
312
+ * Get all adapters for all known agents.
313
+ */
314
+ export function getAllAdapters() {
315
+ return Object.keys(AGENTS).map(name => getAdapter(name));
316
+ }
270
317
  //# sourceMappingURL=agents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/cli/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/cli/agents.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/convert.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAe7D"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/convert.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAe7D"}
@@ -8,16 +8,9 @@ import ora from 'ora';
8
8
  import { readFile, writeFile, mkdir } from 'fs/promises';
9
9
  import { existsSync } from 'fs';
10
10
  import { resolve, join, basename, dirname } from 'path';
11
- // File patterns for each agent format
12
- const FORMAT_MAP = {
13
- cursor: { file: 'SKILL.md', dir: '.cursor/skills' },
14
- claude: { file: 'SKILL.md', dir: '.claude/skills' },
15
- copilot: { file: 'SKILL.md', dir: '.github/skills' },
16
- codex: { file: 'SKILL.md', dir: '.codex/skills' },
17
- windsurf: { file: 'SKILL.md', dir: '.windsurf/skills' },
18
- antigravity: { file: 'SKILL.md', dir: '.agent/skills' },
19
- };
20
- const VALID_FORMATS = Object.keys(FORMAT_MAP);
11
+ import { getAdapter, AGENTS } from '../agents.js';
12
+ // Derive valid formats from the AGENTS registry + well-known names
13
+ const VALID_FORMATS = Object.keys(AGENTS);
21
14
  /**
22
15
  * Register the convert command
23
16
  */
@@ -60,13 +53,19 @@ async function convertCommand(source, targetFormat, options) {
60
53
  }
61
54
  // Parse source into intermediate representation
62
55
  const parsed = parseSkillContent(content, sourceFormat);
63
- // Convert to target format
64
- const converted = renderToFormat(parsed, targetFormat);
65
- // Determine output path
66
- const target = FORMAT_MAP[targetFormat];
56
+ // Convert to target format using adapter
57
+ const adapter = getAdapter(targetFormat);
58
+ const converted = adapter.generateConfig({
59
+ name: parsed.name,
60
+ description: parsed.description,
61
+ rawContent: parsed.rawContent,
62
+ sections: parsed.sections,
63
+ frontmatter: parsed.frontmatter,
64
+ });
65
+ // Determine output path using adapter
67
66
  const outputPath = options.output
68
67
  ? resolve(options.output)
69
- : join(dirname(sourcePath), target.dir, target.file);
68
+ : join(dirname(sourcePath), adapter.getProjectDir(), adapter.getSkillFilename());
70
69
  if (existsSync(outputPath) && !options.overwrite) {
71
70
  spinner.fail(`Output file exists: ${outputPath}`);
72
71
  console.log(chalk.dim('Use --overwrite to replace'));
@@ -150,23 +149,8 @@ function parseSkillContent(content, format) {
150
149
  }
151
150
  return parsed;
152
151
  }
153
- function renderToFormat(parsed, format) {
154
- switch (format) {
155
- case 'antigravity':
156
- return renderAsSkillMd(parsed);
157
- case 'cursor':
158
- case 'windsurf':
159
- return renderAsCursorRules(parsed);
160
- case 'claude':
161
- return renderAsClaudeMd(parsed);
162
- case 'copilot':
163
- return renderAsCopilot(parsed);
164
- case 'codex':
165
- return renderAsAgentsMd(parsed);
166
- default:
167
- return parsed.rawContent;
168
- }
169
- }
152
+ // Legacy render functions kept for backwards compatibility
153
+ // Adapters call these internally when needed
170
154
  function renderAsSkillMd(parsed) {
171
155
  const lines = [];
172
156
  lines.push('---');
@@ -183,37 +167,4 @@ function renderAsSkillMd(parsed) {
183
167
  }
184
168
  return lines.join('\n');
185
169
  }
186
- function renderAsCursorRules(parsed) {
187
- const lines = [];
188
- if (parsed.name)
189
- lines.push(`# ${parsed.name}`);
190
- lines.push('');
191
- for (const section of parsed.sections) {
192
- if (section.heading)
193
- lines.push(`## ${section.heading}`);
194
- if (section.content)
195
- lines.push(section.content);
196
- lines.push('');
197
- }
198
- return lines.join('\n');
199
- }
200
- function renderAsClaudeMd(parsed) {
201
- return renderAsCursorRules(parsed);
202
- }
203
- function renderAsCopilot(parsed) {
204
- const lines = [];
205
- lines.push(`# Copilot Instructions${parsed.name ? `: ${parsed.name}` : ''}`);
206
- lines.push('');
207
- for (const section of parsed.sections) {
208
- if (section.heading)
209
- lines.push(`## ${section.heading}`);
210
- if (section.content)
211
- lines.push(section.content);
212
- lines.push('');
213
- }
214
- return lines.join('\n');
215
- }
216
- function renderAsAgentsMd(parsed) {
217
- return renderAsClaudeMd(parsed);
218
- }
219
170
  //# sourceMappingURL=convert.js.map