metacoding 1.5.0 → 2.0.1

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 (95) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +108 -514
  3. package/lib/cli.d.ts.map +1 -1
  4. package/lib/cli.js +18 -19
  5. package/lib/cli.js.map +1 -1
  6. package/lib/commands/init.d.ts +8 -14
  7. package/lib/commands/init.d.ts.map +1 -1
  8. package/lib/commands/init.js +105 -387
  9. package/lib/commands/init.js.map +1 -1
  10. package/lib/commands/update.d.ts +9 -9
  11. package/lib/commands/update.d.ts.map +1 -1
  12. package/lib/commands/update.js +141 -320
  13. package/lib/commands/update.js.map +1 -1
  14. package/lib/services/backup.d.ts +1 -1
  15. package/lib/services/backup.d.ts.map +1 -1
  16. package/lib/services/backup.js +10 -6
  17. package/lib/services/backup.js.map +1 -1
  18. package/lib/services/filesystem.d.ts.map +1 -1
  19. package/lib/services/filesystem.js +11 -5
  20. package/lib/services/filesystem.js.map +1 -1
  21. package/lib/services/gitignore-manager.js +5 -5
  22. package/lib/services/gitignore-manager.js.map +1 -1
  23. package/lib/services/project-detector.d.ts +9 -8
  24. package/lib/services/project-detector.d.ts.map +1 -1
  25. package/lib/services/project-detector.js +79 -197
  26. package/lib/services/project-detector.js.map +1 -1
  27. package/lib/services/skill-manager.d.ts +23 -0
  28. package/lib/services/skill-manager.d.ts.map +1 -0
  29. package/lib/services/skill-manager.js +212 -0
  30. package/lib/services/skill-manager.js.map +1 -0
  31. package/lib/types/index.d.ts +5 -15
  32. package/lib/types/index.d.ts.map +1 -1
  33. package/package.json +9 -17
  34. package/skills/metacoding-workflow/SKILL.md +52 -0
  35. package/skills/metacoding-workflow/agents/openai.yaml +4 -0
  36. package/skills/metacoding-workflow/assets/templates/changelog-entry.md +6 -0
  37. package/skills/metacoding-workflow/assets/templates/project-context.md +18 -0
  38. package/skills/metacoding-workflow/assets/templates/repeated-task-checklist.md +8 -0
  39. package/skills/metacoding-workflow/assets/templates/task-entry.md +9 -0
  40. package/skills/metacoding-workflow/assets/templates/test-plan.md +8 -0
  41. package/skills/metacoding-workflow/references/javascript.md +7 -0
  42. package/skills/metacoding-workflow/references/node.md +7 -0
  43. package/skills/metacoding-workflow/references/platform-adaptation.md +37 -0
  44. package/skills/metacoding-workflow/references/python.md +7 -0
  45. package/skills/metacoding-workflow/references/react.md +7 -0
  46. package/skills/metacoding-workflow/references/repository-organization.md +84 -0
  47. package/skills/metacoding-workflow/references/typescript.md +7 -0
  48. package/skills/metacoding-workflow/references/workflow-rules.md +54 -0
  49. package/skills/vendor-templates/claude-agent.md.template +41 -0
  50. package/lib/services/assistant-adapter.d.ts +0 -18
  51. package/lib/services/assistant-adapter.d.ts.map +0 -1
  52. package/lib/services/assistant-adapter.js +0 -246
  53. package/lib/services/assistant-adapter.js.map +0 -1
  54. package/lib/services/cursor.d.ts +0 -47
  55. package/lib/services/cursor.d.ts.map +0 -1
  56. package/lib/services/cursor.js +0 -314
  57. package/lib/services/cursor.js.map +0 -1
  58. package/lib/services/template-manager.d.ts +0 -23
  59. package/lib/services/template-manager.d.ts.map +0 -1
  60. package/lib/services/template-manager.js +0 -374
  61. package/lib/services/template-manager.js.map +0 -1
  62. package/lib/services/vscode.d.ts +0 -10
  63. package/lib/services/vscode.d.ts.map +0 -1
  64. package/lib/services/vscode.js +0 -108
  65. package/lib/services/vscode.js.map +0 -1
  66. package/templates/assistants/AGENTS.md +0 -203
  67. package/templates/assistants/CLAUDE.md +0 -156
  68. package/templates/assistants/GEMINI.md +0 -193
  69. package/templates/general/code-review.instructions.md +0 -265
  70. package/templates/general/copilot-instructions.md +0 -427
  71. package/templates/general/docs-update.instructions.md +0 -275
  72. package/templates/general/release.instructions.md +0 -242
  73. package/templates/general/template.json +0 -9
  74. package/templates/general/test-runner.instructions.md +0 -188
  75. package/templates/javascript/javascript.coding.instructions.md +0 -500
  76. package/templates/javascript/javascript.docs.instructions.md +0 -563
  77. package/templates/javascript/javascript.testing.instructions.md +0 -686
  78. package/templates/javascript/template.json +0 -36
  79. package/templates/node/nodejs.coding.instructions.md +0 -249
  80. package/templates/node/nodejs.docs.instructions.md +0 -261
  81. package/templates/node/nodejs.testing.instructions.md +0 -373
  82. package/templates/node/template.json +0 -23
  83. package/templates/python/python.coding.instructions.md +0 -338
  84. package/templates/python/python.docs.instructions.md +0 -1178
  85. package/templates/python/python.testing.instructions.md +0 -1073
  86. package/templates/python/template.json +0 -75
  87. package/templates/react/react.coding.instructions.md +0 -694
  88. package/templates/react/react.docs.instructions.md +0 -451
  89. package/templates/react/react.testing.instructions.md +0 -192
  90. package/templates/react/template.json +0 -14
  91. package/templates/react/test-runner.instructions.md +0 -135
  92. package/templates/typescript/template.json +0 -16
  93. package/templates/typescript/typescript.coding.instructions.md +0 -368
  94. package/templates/typescript/typescript.docs.instructions.md +0 -760
  95. package/templates/typescript/typescript.testing.instructions.md +0 -739
@@ -1,314 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.CursorService = void 0;
37
- const path = __importStar(require("path"));
38
- const os = __importStar(require("os"));
39
- const fs_1 = require("fs");
40
- class CursorService {
41
- constructor(templateManager, fileSystemService) {
42
- this.templateManager = templateManager;
43
- this.fileSystemService = fileSystemService;
44
- }
45
- async detectCursorIDE() {
46
- try {
47
- const configPath = this.getCursorConfigPath();
48
- await fs_1.promises.access(configPath);
49
- return true;
50
- }
51
- catch {
52
- return false;
53
- }
54
- }
55
- async validateCursorCompatibility() {
56
- return await this.detectCursorIDE();
57
- }
58
- getCursorConfigPath(customPath) {
59
- if (customPath) {
60
- return customPath;
61
- }
62
- return path.join(os.homedir(), '.cursor');
63
- }
64
- async generateWorkflowRules(projectPath, templateType, projectConfig) {
65
- try {
66
- const instructionFiles = await this.templateManager.getInstructionFiles(templateType);
67
- const copilotInstructionsFile = instructionFiles.find((file) => file.path.includes('copilot-instructions.md'));
68
- if (!copilotInstructionsFile) {
69
- return this.createDefaultWorkflowRules();
70
- }
71
- return this.processInstructionFile(copilotInstructionsFile, projectConfig);
72
- }
73
- catch (error) {
74
- throw new Error(`Failed to generate workflow rules: ${error instanceof Error ? error.message : String(error)}`);
75
- }
76
- }
77
- async generatePatternRules(projectPath, templateType) {
78
- const instructionFiles = await this.templateManager.getInstructionFiles(templateType);
79
- const patternRules = [];
80
- for (const file of instructionFiles) {
81
- if (file.path.includes('copilot-instructions')) {
82
- continue;
83
- }
84
- const pattern = this.determineFilePattern(file.path, templateType);
85
- const mdcFile = this.extractPatternSpecificRules(file, pattern);
86
- patternRules.push(mdcFile);
87
- }
88
- return patternRules;
89
- }
90
- async installCursorRules(projectPath, workflowContent, patternRules) {
91
- const conflicts = [];
92
- const backups = [];
93
- const cursorRulesDir = path.join(projectPath, '.cursor', 'rules');
94
- const workflowRulesPath = path.join(cursorRulesDir, 'workflow.mdc');
95
- if (await this.fileSystemService.fileExists(workflowRulesPath)) {
96
- conflicts.push('.cursor/rules/workflow.mdc');
97
- }
98
- for (const rule of patternRules) {
99
- const rulePath = path.join(cursorRulesDir, rule.filename);
100
- if (await this.fileSystemService.fileExists(rulePath)) {
101
- conflicts.push(path.join('.cursor', 'rules', rule.filename));
102
- }
103
- }
104
- if (conflicts.length > 0) {
105
- return {
106
- success: false,
107
- conflicts,
108
- backups: [],
109
- };
110
- }
111
- try {
112
- await this.fileSystemService.ensureDirectoryExists(cursorRulesDir);
113
- const workflowMdcContent = this.createMdcContent(workflowContent, '**/*');
114
- await this.fileSystemService.writeFile(workflowRulesPath, workflowMdcContent);
115
- for (const rule of patternRules) {
116
- const rulePath = path.join(cursorRulesDir, rule.filename);
117
- await this.fileSystemService.writeFile(rulePath, rule.content);
118
- }
119
- return {
120
- success: true,
121
- conflicts: [],
122
- backups,
123
- };
124
- }
125
- catch (error) {
126
- throw new Error(`Failed to install Cursor rules: ${error instanceof Error ? error.message : String(error)}`);
127
- }
128
- }
129
- async backupExistingRules(projectPath) {
130
- const backups = [];
131
- const legacyWorkflowPath = path.join(projectPath, 'workflow.cursorrules');
132
- if (await this.fileSystemService.fileExists(legacyWorkflowPath)) {
133
- const backupPath = await this.fileSystemService.backupFile(legacyWorkflowPath);
134
- backups.push(backupPath);
135
- }
136
- const cursorRulesDir = path.join(projectPath, '.cursor', 'rules');
137
- if (await this.fileSystemService.fileExists(cursorRulesDir)) {
138
- const files = await this.fileSystemService.listFiles(cursorRulesDir);
139
- const mdcFiles = files.filter((file) => file.endsWith('.mdc'));
140
- for (const file of mdcFiles) {
141
- const filePath = path.join(cursorRulesDir, file);
142
- const backupPath = await this.fileSystemService.backupFile(filePath);
143
- backups.push(backupPath);
144
- }
145
- }
146
- return backups;
147
- }
148
- processInstructionTemplate(instructionContent) {
149
- const header = this.createCursorRulesHeader();
150
- const processedContent = instructionContent
151
- .replace(/# GitHub Copilot/gi, '# Cursor AI')
152
- .replace(/GitHub Copilot/g, 'Cursor AI')
153
- .replace(/Copilot/g, 'Cursor AI')
154
- .replace(/\.vscode/g, '.cursor')
155
- .replace(/VS Code/g, 'Cursor IDE')
156
- .replace(/Visual Studio Code/g, 'Cursor IDE');
157
- return `${header}\n\n${processedContent}`;
158
- }
159
- processInstructionFile(instructionFile, projectConfig) {
160
- let content = instructionFile.content;
161
- if (projectConfig) {
162
- content = this.applyTemplateSubstitution(content, projectConfig);
163
- }
164
- const cleanedContent = this.processInstructionContentOnly(content);
165
- const header = this.createCursorRulesHeader();
166
- return `${header}\n\n<!-- Source: ${instructionFile.path} -->\n${cleanedContent}`;
167
- }
168
- mergeInstructionFiles(instructionFiles, projectConfig) {
169
- const processedFiles = instructionFiles.map((file) => {
170
- let content = file.content;
171
- if (projectConfig) {
172
- content = this.applyTemplateSubstitution(content, projectConfig);
173
- }
174
- const cleanedContent = this.processInstructionContentOnly(content);
175
- return `<!-- Source: ${file.path} -->\n${cleanedContent}`;
176
- });
177
- const header = this.createCursorRulesHeader();
178
- const mergedContent = processedFiles.join('\n\n---\n\n');
179
- return `${header}\n\n${mergedContent}`;
180
- }
181
- extractPatternSpecificRules(instructionFile, pattern) {
182
- const filename = this.generateMdcFilename(instructionFile.path);
183
- const content = this.createMdcContent(instructionFile.content, pattern);
184
- return {
185
- filename,
186
- content,
187
- pattern,
188
- };
189
- }
190
- validateRulesContent(content) {
191
- if (content.includes('<!--') && content.includes('-->')) {
192
- return false;
193
- }
194
- return content.trim().length > 0;
195
- }
196
- createDefaultWorkflowRules() {
197
- const header = this.createCursorRulesHeader();
198
- const defaultContent = `# Default Cursor AI Rules
199
-
200
- No specific instructions found for this project type.
201
-
202
- Please follow general best practices for code quality, maintainability, and documentation.`;
203
- return `${header}\n\n${defaultContent}`;
204
- }
205
- createCursorRulesHeader() {
206
- return `<!--
207
- Generated by metacoding v${this.getMetacodingVersion()}
208
- Cursor AI rules for enhanced development experience
209
- Do not edit manually - regenerate using metacoding update
210
- This content will be wrapped in MDC format when saved to .cursor/rules/
211
- -->
212
-
213
- # Cursor AI Development Rules`;
214
- }
215
- determineFilePattern(instructionPath, templateType) {
216
- if (instructionPath.includes('typescript') ||
217
- instructionPath.includes('ts')) {
218
- return '**/*.ts';
219
- }
220
- if (instructionPath.includes('test')) {
221
- switch (templateType) {
222
- case 'typescript':
223
- case 'node':
224
- return '**/*.test.ts';
225
- case 'react':
226
- return '**/*.test.{tsx,ts}';
227
- case 'python':
228
- return '**/*.test.py';
229
- default:
230
- return '**/*.test.*';
231
- }
232
- }
233
- if (instructionPath.includes('react')) {
234
- return '**/*.{tsx,jsx}';
235
- }
236
- if (instructionPath.includes('python')) {
237
- return '**/*.py';
238
- }
239
- switch (templateType) {
240
- case 'typescript':
241
- case 'node':
242
- return '**/*.{ts,js}';
243
- case 'react':
244
- return '**/*.{tsx,jsx,ts,js}';
245
- case 'python':
246
- return '**/*.py';
247
- default:
248
- return '**/*';
249
- }
250
- }
251
- generateMdcFilename(instructionPath) {
252
- const basename = path.basename(instructionPath, '.md');
253
- const cleanName = basename
254
- .replace('.instructions', '-instructions')
255
- .replace('.coding', '-coding')
256
- .replace(/[^a-zA-Z0-9-]/g, '-')
257
- .replace(/-+/g, '-')
258
- .replace(/^-+|-+$/g, '')
259
- .toLowerCase();
260
- return `${cleanName}.mdc`;
261
- }
262
- createMdcContent(instructionContent, pattern) {
263
- const frontmatter = `---
264
- description: "${pattern === '**/*' ? 'General workflow and development rules' : `AI rules for ${pattern} files`}"
265
- patterns: ["${pattern}"]
266
- alwaysApply: ${pattern === '**/*' ? 'true' : 'false'}
267
- ---
268
-
269
- `;
270
- let processedContent;
271
- if (pattern === '**/*' &&
272
- instructionContent.includes('# Cursor AI Development Rules')) {
273
- processedContent = instructionContent;
274
- }
275
- else {
276
- processedContent = this.processInstructionTemplate(instructionContent);
277
- }
278
- return frontmatter + processedContent;
279
- }
280
- getMetacodingVersion() {
281
- return '1.1.4';
282
- }
283
- applyTemplateSubstitution(content, projectConfig) {
284
- let substituted = content;
285
- const replacements = {
286
- '{{PROJECT_NAME}}': projectConfig?.projectName || 'Project',
287
- '{{PROJECT_DESCRIPTION}}': projectConfig?.projectDescription ||
288
- 'A guided development project using metacoding workflow',
289
- '{{TECH_STACK}}': projectConfig?.techStack
290
- ? Array.isArray(projectConfig.techStack)
291
- ? projectConfig.techStack.join(', ')
292
- : projectConfig.techStack
293
- : 'TypeScript, Jest',
294
- '{{PROJECT_DOMAIN}}': projectConfig?.projectDomain || 'software',
295
- '{{PROJECT_SPECIFIC_GUIDANCE}}': projectConfig?.projectSpecificGuidance ||
296
- '- **Best Practices:** Follow language-specific coding standards and conventions\n- **Architecture:** Implement modular and maintainable code structure\n- **Testing:** Write comprehensive tests for all functionality\n- **Documentation:** Maintain clear and up-to-date documentation',
297
- };
298
- for (const [placeholder, value] of Object.entries(replacements)) {
299
- substituted = substituted.replace(new RegExp(placeholder.replace(/[{}]/g, '\\$&'), 'g'), value);
300
- }
301
- return substituted;
302
- }
303
- processInstructionContentOnly(instructionContent) {
304
- return instructionContent
305
- .replace(/# GitHub Copilot/gi, '# Cursor AI')
306
- .replace(/GitHub Copilot/g, 'Cursor AI')
307
- .replace(/Copilot/g, 'Cursor AI')
308
- .replace(/\.vscode/g, '.cursor')
309
- .replace(/VS Code/g, 'Cursor IDE')
310
- .replace(/Visual Studio Code/g, 'Cursor IDE');
311
- }
312
- }
313
- exports.CursorService = CursorService;
314
- //# sourceMappingURL=cursor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/services/cursor.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { Template, ProjectConfig } from '../types';
2
- export declare class TemplateManager {
3
- private readonly templatesDir;
4
- private readonly instructionsDir;
5
- constructor();
6
- getTemplate(templateName: string, projectConfig?: ProjectConfig): Promise<Template>;
7
- private loadInstructionFiles;
8
- processTemplate(template: Template, config: ProjectConfig): Promise<Array<{
9
- path: string;
10
- content: string;
11
- }>>;
12
- getAvailableTemplates(): Promise<string[]>;
13
- private loadTemplateFiles;
14
- private processTemplateContent;
15
- private getProjectDomain;
16
- private getProjectSpecificGuidance;
17
- getInstructionFiles(templateType: string): Promise<Array<{
18
- path: string;
19
- content: string;
20
- }>>;
21
- private getCodingInstructionFiles;
22
- }
23
- //# sourceMappingURL=template-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-manager.d.ts","sourceRoot":"","sources":["../../src/services/template-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKnD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;;IAYnC,WAAW,CACf,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,QAAQ,CAAC;YAwCN,oBAAoB;IAqI5B,eAAe,CACnB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAqC9C,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YA4BlC,iBAAiB;IAsD/B,OAAO,CAAC,sBAAsB;IA8D9B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,0BAA0B;IAmC5B,mBAAmB,CACvB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAqDpD,OAAO,CAAC,yBAAyB;CAkClC"}