UNPKG

@nicolasmirson/plan-mode-claude

Version:

Structured planning workflow for AI assistants with MCP integration

77 lines (63 loc) 2.98 kB
#!/usr/bin/env node const fs = require('fs'); const path = require('path'); const os = require('os'); // Get the user's home directory const homeDir = os.homedir(); const globalCursorRulesDir = path.join(homeDir, '.cursor', 'rules'); const globalRuleFilePath = path.join(globalCursorRulesDir, 'plan-mode-claude.mdc'); // Also create in the directory where npm was invoked (so user can review) const npmInvokedDir = process.env.INIT_CWD || process.cwd(); const localCursorRulesDir = path.join(npmInvokedDir, '.cursor', 'rules'); const localRuleFilePath = path.join(localCursorRulesDir, 'plan-mode-claude.mdc'); // Read the template file const templatePath = path.join(__dirname, '..', 'templates', 'cursor-rules.mdc'); function createCursorRules() { try { // Check if template exists if (!fs.existsSync(templatePath)) { console.log('⚠️ Template file not found, skipping Cursor rules creation'); return; } const templateContent = fs.readFileSync(templatePath, 'utf8'); let createdFiles = []; // Create global rules (home directory) if (!fs.existsSync(globalCursorRulesDir)) { fs.mkdirSync(globalCursorRulesDir, { recursive: true }); console.log('📁 Created global .cursor/rules directory'); } if (!fs.existsSync(globalRuleFilePath)) { fs.writeFileSync(globalRuleFilePath, templateContent); createdFiles.push('~/.cursor/rules/plan-mode-claude.mdc'); console.log('✅ Created global Cursor rules file: ~/.cursor/rules/plan-mode-claude.mdc'); } else { console.log('📝 Global Plan Mode Cursor rules already exist'); } // Create local rules (current directory) if (!fs.existsSync(localCursorRulesDir)) { fs.mkdirSync(localCursorRulesDir, { recursive: true }); console.log('📁 Created local .cursor/rules directory'); } if (!fs.existsSync(localRuleFilePath)) { fs.writeFileSync(localRuleFilePath, templateContent); createdFiles.push('./.cursor/rules/plan-mode-claude.mdc'); console.log('✅ Created local Cursor rules file: ./.cursor/rules/plan-mode-claude.mdc'); } else { console.log('📝 Local Plan Mode Cursor rules already exist'); } if (createdFiles.length > 0) { console.log('🔄 Restart Cursor to load the new rules'); } } catch (error) { console.log('⚠️ Could not create Cursor rules file:', error.message); console.log(' You can manually copy the rules from the templates/ directory'); } } // Always run the setup for global installations // We can detect if it's global by checking if we're in a global node_modules const isGlobal = __dirname.includes('/lib/node_modules/') || __dirname.includes('/global/node_modules/'); console.log('🚀 Setting up Plan Mode Claude...'); console.log(`Installation path: ${__dirname}`); console.log(`Global installation: ${isGlobal}`); console.log(`Local rules will be created in: ${npmInvokedDir}`); createCursorRules();