@rpamis/comet 0.3.6 → 0.3.7

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 (53) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +175 -63
  3. package/assets/manifest.json +11 -1
  4. package/assets/skills/comet/SKILL.md +44 -16
  5. package/assets/skills/comet/reference/dirty-worktree.md +1 -0
  6. package/assets/skills/comet/rules/comet-phase-guard.md +90 -0
  7. package/assets/skills/comet/scripts/comet-archive.sh +71 -55
  8. package/assets/skills/comet/scripts/comet-guard.sh +174 -18
  9. package/assets/skills/comet/scripts/comet-handoff.sh +133 -6
  10. package/assets/skills/comet/scripts/comet-hook-guard.sh +260 -0
  11. package/assets/skills/comet/scripts/comet-state.sh +300 -25
  12. package/assets/skills/comet/scripts/comet-yaml-validate.sh +24 -1
  13. package/assets/skills/comet-archive/SKILL.md +43 -10
  14. package/assets/skills/comet-build/SKILL.md +117 -22
  15. package/assets/skills/comet-design/SKILL.md +119 -13
  16. package/assets/skills/comet-hotfix/SKILL.md +51 -9
  17. package/assets/skills/comet-open/SKILL.md +86 -13
  18. package/assets/skills/comet-tweak/SKILL.md +33 -8
  19. package/assets/skills/comet-verify/SKILL.md +48 -9
  20. package/assets/skills-zh/comet/SKILL.md +47 -16
  21. package/assets/skills-zh/comet/reference/dirty-worktree.md +2 -1
  22. package/assets/skills-zh/comet-archive/SKILL.md +44 -11
  23. package/assets/skills-zh/comet-build/SKILL.md +120 -25
  24. package/assets/skills-zh/comet-design/SKILL.md +123 -16
  25. package/assets/skills-zh/comet-hotfix/SKILL.md +47 -9
  26. package/assets/skills-zh/comet-open/SKILL.md +87 -14
  27. package/assets/skills-zh/comet-tweak/SKILL.md +29 -8
  28. package/assets/skills-zh/comet-verify/SKILL.md +49 -12
  29. package/bin/comet.js +3 -3
  30. package/dist/commands/doctor.d.ts.map +1 -1
  31. package/dist/commands/doctor.js +22 -0
  32. package/dist/commands/doctor.js.map +1 -1
  33. package/dist/commands/init.d.ts +5 -1
  34. package/dist/commands/init.d.ts.map +1 -1
  35. package/dist/commands/init.js +64 -9
  36. package/dist/commands/init.js.map +1 -1
  37. package/dist/commands/update.d.ts.map +1 -1
  38. package/dist/commands/update.js +60 -1
  39. package/dist/commands/update.js.map +1 -1
  40. package/dist/core/codegraph.d.ts +9 -0
  41. package/dist/core/codegraph.d.ts.map +1 -0
  42. package/dist/core/codegraph.js +96 -0
  43. package/dist/core/codegraph.js.map +1 -0
  44. package/dist/core/platforms.d.ts +10 -0
  45. package/dist/core/platforms.d.ts.map +1 -1
  46. package/dist/core/platforms.js +163 -15
  47. package/dist/core/platforms.js.map +1 -1
  48. package/dist/core/skills.d.ts +34 -1
  49. package/dist/core/skills.d.ts.map +1 -1
  50. package/dist/core/skills.js +360 -1
  51. package/dist/core/skills.js.map +1 -1
  52. package/package.json +3 -1
  53. package/scripts/postinstall.js +44 -44
@@ -0,0 +1,96 @@
1
+ import { execFileSync } from 'child_process';
2
+ import { isCommandAvailable, getNpmExecutable } from './openspec.js';
3
+ import { printCommandErrorDetails } from './command-error.js';
4
+ const CODEGRAPH_SUPPORTED_TARGETS = {
5
+ claude: 'claude',
6
+ cursor: 'cursor',
7
+ codex: 'codex',
8
+ opencode: 'opencode',
9
+ gemini: 'gemini',
10
+ kiro: 'kiro',
11
+ antigravity: 'antigravity',
12
+ };
13
+ function filterSupportedPlatforms(platformIds) {
14
+ const supported = [];
15
+ const unsupported = [];
16
+ for (const id of platformIds) {
17
+ if (CODEGRAPH_SUPPORTED_TARGETS[id]) {
18
+ supported.push(CODEGRAPH_SUPPORTED_TARGETS[id]);
19
+ }
20
+ else {
21
+ unsupported.push(id);
22
+ }
23
+ }
24
+ return { supported, unsupported };
25
+ }
26
+ async function ensureCodegraphCli(projectPath) {
27
+ if (isCommandAvailable('codegraph')) {
28
+ return true;
29
+ }
30
+ console.log(' Installing CodeGraph CLI...');
31
+ try {
32
+ execFileSync(getNpmExecutable(), ['install', '-g', '@colbymchenry/codegraph'], {
33
+ cwd: projectPath,
34
+ stdio: 'inherit',
35
+ timeout: 180_000,
36
+ shell: process.platform === 'win32',
37
+ });
38
+ return isCommandAvailable('codegraph');
39
+ }
40
+ catch (error) {
41
+ console.error(` Failed to install CodeGraph CLI: ${error.message}`);
42
+ printCommandErrorDetails(error);
43
+ return false;
44
+ }
45
+ }
46
+ async function installCodegraph(projectPath, platformIds, scope) {
47
+ const { supported, unsupported } = filterSupportedPlatforms(platformIds);
48
+ if (supported.length === 0) {
49
+ if (unsupported.length > 0) {
50
+ console.log(` CodeGraph: no supported platforms among selected (${unsupported.join(', ')}). Skipping.`);
51
+ }
52
+ return 'skipped';
53
+ }
54
+ if (unsupported.length > 0) {
55
+ console.log(` CodeGraph: skipping unsupported platforms: ${unsupported.join(', ')}`);
56
+ }
57
+ const cliReady = await ensureCodegraphCli(projectPath);
58
+ if (!cliReady) {
59
+ console.error(' CodeGraph CLI not available. Install manually: npm install -g @colbymchenry/codegraph');
60
+ return 'failed';
61
+ }
62
+ const location = scope === 'global' ? 'global' : 'local';
63
+ try {
64
+ console.log(` Running: codegraph install --target=${supported.join(',')} --location=${location} --yes`);
65
+ execFileSync('codegraph', ['install', `--target=${supported.join(',')}`, `--location=${location}`, '--yes'], {
66
+ cwd: projectPath,
67
+ stdio: 'inherit',
68
+ timeout: 120_000,
69
+ shell: process.platform === 'win32',
70
+ });
71
+ }
72
+ catch (error) {
73
+ console.error(` CodeGraph install failed: ${error.message}`);
74
+ printCommandErrorDetails(error);
75
+ return 'failed';
76
+ }
77
+ if (scope === 'project') {
78
+ try {
79
+ console.log(' Running: codegraph init -i');
80
+ execFileSync('codegraph', ['init', '-i'], {
81
+ cwd: projectPath,
82
+ stdio: 'inherit',
83
+ timeout: 300_000,
84
+ shell: process.platform === 'win32',
85
+ });
86
+ }
87
+ catch (error) {
88
+ console.error(` CodeGraph init failed: ${error.message}`);
89
+ printCommandErrorDetails(error);
90
+ return 'failed';
91
+ }
92
+ }
93
+ return 'installed';
94
+ }
95
+ export { installCodegraph, filterSupportedPlatforms, CODEGRAPH_SUPPORTED_TARGETS };
96
+ //# sourceMappingURL=codegraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegraph.js","sourceRoot":"","sources":["../../src/core/codegraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAI9D,MAAM,2BAA2B,GAA2B;IAC1D,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,aAAa;CAC3B,CAAC;AAEF,SAAS,wBAAwB,CAAC,WAAqB;IAIrD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;QAC7B,IAAI,2BAA2B,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,SAAS,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IACnD,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,yBAAyB,CAAC,EAAE;YAC7E,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;SACpC,CAAC,CAAC;QACH,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wCAAyC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAClF,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,WAAmB,EACnB,WAAqB,EACrB,KAAmB;IAEnB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAEzE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CACT,yDAAyD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAC9F,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,kDAAkD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CACX,2FAA2F,CAC5F,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAEzD,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CACT,2CAA2C,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,QAAQ,QAAQ,CAC9F,CAAC;QACF,YAAY,CACV,WAAW,EACX,CAAC,SAAS,EAAE,YAAY,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,QAAQ,EAAE,EAAE,OAAO,CAAC,EACjF;YACE,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;SACpC,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAkC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,YAAY,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBACxC,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA+B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,CAAC"}
@@ -12,6 +12,16 @@ export interface Platform {
12
12
  globalSkillsDir?: string;
13
13
  detectionPaths?: string[];
14
14
  openspecToolId: string;
15
+ /** Platform's rules/instructions subdirectory relative to rulesBaseDir (defaults to baseDir). Omit if unsupported. */
16
+ rulesDir?: string;
17
+ /** Override base directory for rules. When set, rules go to rulesBaseDir/rulesDir instead of skillsDir/rulesDir. Useful when rules live outside the skills config dir (e.g., Cline's .clinerules/ is at project root, not inside .cline/). */
18
+ rulesBaseDir?: string;
19
+ /** Rule file format: 'md' = plain markdown, 'mdc' = Cursor MDC with frontmatter, 'copilot' = GitHub Copilot instructions format. */
20
+ rulesFormat?: 'md' | 'mdc' | 'copilot';
21
+ /** Whether this platform supports PreToolUse hooks. */
22
+ supportsHooks?: boolean;
23
+ /** Hook configuration format. Determines how installCometHooksForPlatform writes the hook config. */
24
+ hookFormat?: 'claude-code' | 'gemini' | 'windsurf' | 'copilot' | 'qwen' | 'kiro' | 'qoder';
15
25
  }
16
26
  export declare function getPlatformSkillsDir(platform: Platform, scope: InstallScope): string;
17
27
  export declare function getPlatformSkillsDirs(platform: Platform, scope: InstallScope): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"platforms.d.ts","sourceRoot":"","sources":["../../src/core/platforms.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAKpF;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAEvF;AAED,eAAO,MAAM,SAAS,EAAE,QAAQ,EA0D/B,CAAC"}
1
+ {"version":3,"file":"platforms.d.ts","sourceRoot":"","sources":["../../src/core/platforms.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,sHAAsH;IACtH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8OAA8O;IAC9O,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oIAAoI;IACpI,WAAW,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;IACvC,uDAAuD;IACvD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qGAAqG;IACrG,UAAU,CAAC,EAAE,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC5F;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAKpF;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAEvF;AAED,eAAO,MAAM,SAAS,EAAE,QAAQ,EA8M/B,CAAC"}
@@ -14,24 +14,91 @@ export function getPlatformSkillsDirs(platform, scope) {
14
14
  return [getPlatformSkillsDir(platform, scope)];
15
15
  }
16
16
  export const PLATFORMS = [
17
- { id: 'claude', name: 'Claude Code', skillsDir: '.claude', openspecToolId: 'claude' },
18
- { id: 'cursor', name: 'Cursor', skillsDir: '.cursor', openspecToolId: 'cursor' },
19
- { id: 'codex', name: 'Codex', skillsDir: '.codex', openspecToolId: 'codex' },
17
+ {
18
+ id: 'claude',
19
+ name: 'Claude Code',
20
+ skillsDir: '.claude',
21
+ globalSkillsDir: '.claude',
22
+ openspecToolId: 'claude',
23
+ rulesDir: 'rules',
24
+ rulesFormat: 'md',
25
+ supportsHooks: true,
26
+ hookFormat: 'claude-code',
27
+ },
28
+ {
29
+ id: 'cursor',
30
+ name: 'Cursor',
31
+ skillsDir: '.cursor',
32
+ globalSkillsDir: '.cursor',
33
+ openspecToolId: 'cursor',
34
+ rulesDir: 'rules',
35
+ rulesFormat: 'mdc',
36
+ },
37
+ {
38
+ id: 'codex',
39
+ name: 'Codex',
40
+ skillsDir: '.codex',
41
+ globalSkillsDir: '.codex',
42
+ openspecToolId: 'codex',
43
+ rulesDir: 'rules',
44
+ rulesFormat: 'md',
45
+ supportsHooks: true,
46
+ hookFormat: 'claude-code',
47
+ },
20
48
  {
21
49
  id: 'opencode',
22
50
  name: 'OpenCode',
23
51
  skillsDir: '.opencode',
24
52
  globalSkillsDir: '.config/opencode',
25
53
  openspecToolId: 'opencode',
54
+ rulesDir: 'rules',
55
+ rulesFormat: 'md',
56
+ },
57
+ {
58
+ id: 'windsurf',
59
+ name: 'Windsurf',
60
+ skillsDir: '.windsurf',
61
+ globalSkillsDir: '.windsurf',
62
+ openspecToolId: 'windsurf',
63
+ rulesDir: 'rules',
64
+ rulesFormat: 'md',
65
+ supportsHooks: true,
66
+ hookFormat: 'windsurf',
67
+ },
68
+ {
69
+ id: 'cline',
70
+ name: 'Cline',
71
+ skillsDir: '.cline',
72
+ globalSkillsDir: '.cline',
73
+ openspecToolId: 'cline',
74
+ // Cline rules go to .clinerules/ at project root, NOT inside .cline/
75
+ rulesBaseDir: '',
76
+ rulesDir: '.clinerules',
77
+ rulesFormat: 'md',
78
+ },
79
+ {
80
+ id: 'roocode',
81
+ name: 'RooCode',
82
+ skillsDir: '.roo',
83
+ globalSkillsDir: '.roo',
84
+ openspecToolId: 'roocode',
85
+ rulesDir: 'rules',
86
+ rulesFormat: 'md',
87
+ },
88
+ {
89
+ id: 'continue',
90
+ name: 'Continue',
91
+ skillsDir: '.continue',
92
+ globalSkillsDir: '.continue',
93
+ openspecToolId: 'continue',
94
+ rulesDir: 'rules',
95
+ rulesFormat: 'md',
26
96
  },
27
- { id: 'windsurf', name: 'Windsurf', skillsDir: '.windsurf', openspecToolId: 'windsurf' },
28
- { id: 'cline', name: 'Cline', skillsDir: '.cline', openspecToolId: 'cline' },
29
- { id: 'roocode', name: 'RooCode', skillsDir: '.roo', openspecToolId: 'roocode' },
30
- { id: 'continue', name: 'Continue', skillsDir: '.continue', openspecToolId: 'continue' },
31
97
  {
32
98
  id: 'github-copilot',
33
99
  name: 'GitHub Copilot',
34
100
  skillsDir: '.github',
101
+ globalSkillsDir: '.github',
35
102
  detectionPaths: [
36
103
  '.github/copilot-instructions.md',
37
104
  '.github/instructions',
@@ -39,19 +106,82 @@ export const PLATFORMS = [
39
106
  '.github/skills',
40
107
  ],
41
108
  openspecToolId: 'github-copilot',
109
+ // Copilot uses .github/instructions/*.instructions.md format
110
+ rulesDir: 'instructions',
111
+ rulesFormat: 'copilot',
112
+ supportsHooks: true,
113
+ hookFormat: 'copilot',
114
+ },
115
+ {
116
+ id: 'gemini',
117
+ name: 'Gemini CLI',
118
+ skillsDir: '.gemini',
119
+ globalSkillsDir: '.gemini',
120
+ openspecToolId: 'gemini',
121
+ // Gemini uses GEMINI.md files, not a rules directory — no rulesDir
122
+ supportsHooks: true,
123
+ hookFormat: 'gemini',
124
+ },
125
+ {
126
+ id: 'amazon-q',
127
+ name: 'Amazon Q Developer',
128
+ skillsDir: '.amazonq',
129
+ globalSkillsDir: '.amazonq',
130
+ openspecToolId: 'amazon-q',
131
+ rulesDir: 'rules',
132
+ rulesFormat: 'md',
133
+ supportsHooks: true,
134
+ hookFormat: 'claude-code',
135
+ },
136
+ {
137
+ id: 'qwen',
138
+ name: 'Qwen Code',
139
+ skillsDir: '.qwen',
140
+ globalSkillsDir: '.qwen',
141
+ openspecToolId: 'qwen',
142
+ rulesDir: 'rules',
143
+ rulesFormat: 'md',
144
+ supportsHooks: true,
145
+ hookFormat: 'qwen',
146
+ },
147
+ {
148
+ id: 'kilocode',
149
+ name: 'Kilo Code',
150
+ skillsDir: '.kilocode',
151
+ globalSkillsDir: '.kilocode',
152
+ openspecToolId: 'kilocode',
153
+ rulesDir: 'rules',
154
+ rulesFormat: 'md',
155
+ },
156
+ {
157
+ id: 'auggie',
158
+ name: 'Auggie (Augment CLI)',
159
+ skillsDir: '.augment',
160
+ globalSkillsDir: '.augment',
161
+ openspecToolId: 'auggie',
162
+ rulesDir: 'rules',
163
+ rulesFormat: 'md',
164
+ },
165
+ {
166
+ id: 'kiro',
167
+ name: 'Kiro',
168
+ skillsDir: '.kiro',
169
+ globalSkillsDir: '.kiro',
170
+ openspecToolId: 'kiro',
171
+ // Kiro uses .kiro/steering/ not .kiro/rules/
172
+ rulesDir: 'steering',
173
+ rulesFormat: 'md',
174
+ supportsHooks: true,
175
+ hookFormat: 'kiro',
42
176
  },
43
- { id: 'gemini', name: 'Gemini CLI', skillsDir: '.gemini', openspecToolId: 'gemini' },
44
- { id: 'amazon-q', name: 'Amazon Q Developer', skillsDir: '.amazonq', openspecToolId: 'amazon-q' },
45
- { id: 'qwen', name: 'Qwen Code', skillsDir: '.qwen', openspecToolId: 'qwen' },
46
- { id: 'kilocode', name: 'Kilo Code', skillsDir: '.kilocode', openspecToolId: 'kilocode' },
47
- { id: 'auggie', name: 'Auggie (Augment CLI)', skillsDir: '.augment', openspecToolId: 'auggie' },
48
- { id: 'kiro', name: 'Kiro', skillsDir: '.kiro', openspecToolId: 'kiro' },
49
177
  {
50
178
  id: 'lingma',
51
179
  name: 'Lingma',
52
180
  skillsDir: '.lingma',
53
181
  globalSkillsDir: '.lingma',
54
182
  openspecToolId: 'lingma',
183
+ rulesDir: 'rules',
184
+ rulesFormat: 'md',
55
185
  },
56
186
  { id: 'junie', name: 'Junie', skillsDir: '.junie', openspecToolId: 'junie' },
57
187
  { id: 'codebuddy', name: 'CodeBuddy Code', skillsDir: '.codebuddy', openspecToolId: 'codebuddy' },
@@ -60,7 +190,17 @@ export const PLATFORMS = [
60
190
  { id: 'factory', name: 'Factory Droid', skillsDir: '.factory', openspecToolId: 'factory' },
61
191
  { id: 'iflow', name: 'iFlow', skillsDir: '.iflow', openspecToolId: 'iflow' },
62
192
  { id: 'pi', name: 'Pi', skillsDir: '.pi', openspecToolId: 'pi' },
63
- { id: 'qoder', name: 'Qoder', skillsDir: '.qoder', openspecToolId: 'qoder' },
193
+ {
194
+ id: 'qoder',
195
+ name: 'Qoder',
196
+ skillsDir: '.qoder',
197
+ globalSkillsDir: '.qoder',
198
+ openspecToolId: 'qoder',
199
+ rulesDir: 'rules',
200
+ rulesFormat: 'md',
201
+ supportsHooks: true,
202
+ hookFormat: 'qoder',
203
+ },
64
204
  {
65
205
  id: 'antigravity',
66
206
  name: 'Antigravity',
@@ -70,6 +210,14 @@ export const PLATFORMS = [
70
210
  },
71
211
  { id: 'bob', name: 'Bob Shell', skillsDir: '.bob', openspecToolId: 'bob' },
72
212
  { id: 'forgecode', name: 'ForgeCode', skillsDir: '.forge', openspecToolId: 'forgecode' },
73
- { id: 'trae', name: 'Trae', skillsDir: '.trae', openspecToolId: 'trae' },
213
+ {
214
+ id: 'trae',
215
+ name: 'Trae',
216
+ skillsDir: '.trae',
217
+ globalSkillsDir: '.trae',
218
+ openspecToolId: 'trae',
219
+ rulesDir: 'rules',
220
+ rulesFormat: 'md',
221
+ },
74
222
  ];
75
223
  //# sourceMappingURL=platforms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platforms.js","sourceRoot":"","sources":["../../src/core/platforms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platforms.js","sourceRoot":"","sources":["../../src/core/platforms.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,15 @@ type LanguageConfig = {
5
5
  name: string;
6
6
  skillsDir: string;
7
7
  };
8
+ type HookConfig = {
9
+ matcher: string;
10
+ description: string;
11
+ };
8
12
  type Manifest = {
9
13
  version: string;
10
14
  skills: string[];
15
+ rules?: string[];
16
+ hooks?: Record<string, HookConfig>;
11
17
  languages?: LanguageConfig[];
12
18
  };
13
19
  declare function getAssetsDir(): string;
@@ -17,7 +23,34 @@ declare function copyCometSkillsForPlatform(baseDir: string, platform: Platform,
17
23
  }>;
18
24
  declare function readManifest(): Promise<Manifest>;
19
25
  declare function getManifestSkills(): Promise<string[]>;
26
+ /**
27
+ * Copy Comet rule files to a platform's rules directory.
28
+ * Formats:
29
+ * 'md' = plain markdown copy
30
+ * 'mdc' = Cursor MDC with frontmatter
31
+ * 'copilot' = GitHub Copilot .instructions.md with applyTo frontmatter
32
+ * Skips platforms without rulesDir.
33
+ */
34
+ declare function copyCometRulesForPlatform(baseDir: string, platform: Platform, overwrite: boolean, scope?: InstallScope): Promise<{
35
+ copied: number;
36
+ skipped: number;
37
+ }>;
38
+ /**
39
+ * Install Comet hooks for platforms that support them.
40
+ * Supports multiple hook formats:
41
+ * 'claude-code' — settings.local.json with PreToolUse array (Claude Code, Codex, Amazon Q)
42
+ * 'qwen' — settings.json with PreToolUse/hooks array (Qwen Code)
43
+ * 'qoder' — settings.json with PreToolUse/hooks array (Qoder)
44
+ * 'gemini' — settings.json with hooks.BeforeTool array (Gemini CLI)
45
+ * 'windsurf' — hooks.json with pre_write_code array
46
+ * 'copilot' — hooks/*.json with preToolUse
47
+ * 'kiro' — hooks/*.kiro.hook JSON files
48
+ */
49
+ declare function installCometHooksForPlatform(baseDir: string, platform: Platform, scope?: InstallScope): Promise<{
50
+ installed: boolean;
51
+ reason?: string;
52
+ }>;
20
53
  declare function createWorkingDirs(projectPath: string): Promise<void>;
21
- export { copyCometSkillsForPlatform, readManifest, getManifestSkills, createWorkingDirs, getAssetsDir, };
54
+ export { copyCometSkillsForPlatform, copyCometRulesForPlatform, installCometHooksForPlatform, readManifest, getManifestSkills, createWorkingDirs, getAssetsDir, };
22
55
  export type { Manifest, LanguageConfig };
23
56
  //# sourceMappingURL=skills.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,KAAK,cAAc,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B,CAAC;AAOF,iBAAS,YAAY,IAAI,MAAM,CAE9B;AAED,iBAAe,0BAA0B,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,OAAO,EAClB,iBAAiB,GAAE,MAAiB,EACpC,KAAK,GAAE,YAAwB,GAC9B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAiD9C;AAgED,iBAAe,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAI/C;AAED,iBAAe,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGpD;AAED,iBAAe,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASnE;AAED,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,CAAC;AACF,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,KAAK,cAAc,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B,CAAC;AAOF,iBAAS,YAAY,IAAI,MAAM,CAE9B;AAED,iBAAe,0BAA0B,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,OAAO,EAClB,iBAAiB,GAAE,MAAiB,EACpC,KAAK,GAAE,YAAwB,GAC9B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAiD9C;AAgED,iBAAe,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAI/C;AAED,iBAAe,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGpD;AAED;;;;;;;GAOG;AACH,iBAAe,yBAAyB,CACtC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,OAAO,EAClB,KAAK,GAAE,YAAwB,GAC9B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAmD9C;AAwCD;;;;;;;;;;GAUG;AACH,iBAAe,4BAA4B,CACzC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,YAAwB,GAC9B,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoClD;AAyTD,iBAAe,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAenE;AAED,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,4BAA4B,EAC5B,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,CAAC;AACF,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC"}