Skip to main content
Glama

VibeCoding System

by Zenobia000
create-enhanced-project-v2.cjs12.6 kB
#!/usr/bin/env node /** * VibeCoding Enhanced Project Structure Creator v2 * 🚀 一鍵創建完整的 VibeCoding 增強專案結構 * 遵循 .vibecoding/prompts 指導原則 */ const fs = require('fs-extra'); const path = require('path'); console.log('🚀 VibeCoding Enhanced Project Structure Creator v2'); console.log('正在創建完整的專案開發結構...\n'); // 獲取目標目錄(當前目錄) const projectPath = process.cwd(); const projectName = path.basename(projectPath); // 📁 完整的專案結構定義 const PROJECT_STRUCTURE = { // === 開發階段資料夾 === '0_discovery': { 'conversations': {}, 'clarifications': {}, 'requirements': {} }, '1_design': { 'architecture': {}, 'api-contracts': {}, 'flow-diagrams': {} }, '2_implementation': { 'src': {}, 'tests': {}, 'scripts': {} }, '3_validation': { 'test-reports': {}, 'quality-metrics': {}, 'benchmarks': {} }, '4_deployment': { 'environments': {}, 'ci-cd': {}, 'monitoring': {} }, // === 知識庫 === 'knowledge-base': { 'patterns': {}, 'solutions': {}, 'retrospectives': {}, 'decisions': {} }, // === VibeCoding 專用文件夾 === '.vibecoding': { 'conversations': {}, 'decisions': {}, 'insights': {} }, // === 專案檔案 === 'docs': {}, 'config': {} }; // 📄 專案模板檔案 const TEMPLATE_FILES = { 'README.md': generateMainReadme(projectName), '.gitignore': generateGitignore(), 'package.json': generatePackageJson(projectName), 'VIBECODING_WORKFLOW.md': generateWorkflowGuide(projectName), // Discovery Phase '0_discovery/README.md': generateDiscoveryReadme(projectName), '0_discovery/clarifications/questions_template.md': generateQuestionsTemplate(), '0_discovery/requirements/user_stories_template.md': generateUserStoriesTemplate(), // Design Phase '1_design/README.md': generateDesignReadme(), '1_design/architecture/system_architecture.md': generateArchitectureTemplate(), // Implementation Phase '2_implementation/README.md': generateImplementationReadme(), '2_implementation/tests/test-strategy.md': generateTestStrategy(), // Validation Phase '3_validation/README.md': generateValidationReadme(), // Deployment Phase '4_deployment/README.md': generateDeploymentReadme(), '4_deployment/environments/deployment-guide.md': generateDeploymentGuide(), // Knowledge Base 'knowledge-base/patterns/README.md': generatePatternsReadme(), 'knowledge-base/solutions/README.md': generateSolutionsReadme(), 'knowledge-base/retrospectives/README.md': generateRetrospectivesReadme(), // VibeCoding Files '.vibecoding/conversations/README.md': generateConversationsReadme(), '.vibecoding/decisions/README.md': generateDecisionsReadme(), '.vibecoding/insights/README.md': generateInsightsReadme() }; // 🚀 主要執行函數 async function createEnhancedProject() { try { console.log(`📁 正在建立專案結構於: ${projectPath}`); console.log(`📝 專案名稱: ${projectName}\n`); // 建立目錄結構 console.log('📁 建立目錄結構...'); await createDirectoryStructure(projectPath, PROJECT_STRUCTURE); // 建立模板檔案 console.log('📄 建立模板檔案...'); await createTemplateFiles(projectPath, TEMPLATE_FILES); // 顯示成功訊息 displaySuccessMessage(); } catch (error) { console.error('❌ 建立專案結構時發生錯誤:', error.message); process.exit(1); } } // 遞迴建立目錄結構 async function createDirectoryStructure(basePath, structure) { for (const [key, value] of Object.entries(structure)) { const dirPath = path.join(basePath, key); await fs.ensureDir(dirPath); if (typeof value === 'object' && Object.keys(value).length > 0) { await createDirectoryStructure(dirPath, value); } } } // 建立模板檔案 async function createTemplateFiles(basePath, files) { for (const [filePath, content] of Object.entries(files)) { const fullPath = path.join(basePath, filePath); await fs.ensureDir(path.dirname(fullPath)); await fs.writeFile(fullPath, content, 'utf8'); } } // 生成主 README function generateMainReadme(projectName) { return `# ${projectName} ## 🚀 專案概述 使用 VibeCoding 系統開發的專案,採用對話驅動開發模式。 ## 📋 開發階段 ### 🔍 0_discovery - 需求發現 - 專案澄清和需求收集 - 用戶故事定義 - 技術約束分析 ### 🎨 1_design - 系統設計 - 架構設計 - API 規格定義 - 資料庫設計 ### 💻 2_implementation - 開發實作 - 源代碼開發 - 單元測試 - 代碼審查 ### 🧪 3_validation - 測試驗證 - 功能測試 - 性能測試 - 安全檢查 ### 🚀 4_deployment - 部署上線 - 環境配置 - CI/CD 設定 - 監控告警 ## 🛠️ VibeCoding 快速開發 \`\`\`bash # 🆕 簡潔指令 (推薦) @vibe start "${projectName}" # 開始專案澄清 @vibe prd # 生成產品需求文檔 @vibe code "核心功能" # 生成代碼 @vibe test # 執行測試 @vibe deploy # 部署應用 \`\`\` ## 🎯 快速開始 1. **在 Cursor 或 Claude Desktop 中開啟此專案** 2. **使用 \`@vibe start "${projectName}"\` 開始開發** 3. **跟隨 AI 引導完成整個開發流程** --- *使用 VibeCoding Enhanced Project Creator 自動生成*`; } // 生成 gitignore function generateGitignore() { return `# Dependencies node_modules/ npm-debug.log* yarn-debug.log* yarn-error.log* # Build outputs dist/ build/ *.d.ts # Environment variables .env .env.local .env.development.local .env.test.local .env.production.local # IDE files .vscode/ .idea/ *.swp *.swo # OS generated files .DS_Store Thumbs.db # Logs logs/ *.log # Temporary files tmp/ temp/ # VibeCoding specific test-project/ debug.txt`; } // 生成 package.json function generatePackageJson(projectName) { return `{ "name": "${projectName.toLowerCase().replace(/\\s+/g, '-')}", "version": "1.0.0", "description": "使用 VibeCoding 開發的專案", "main": "src/index.js", "type": "module", "scripts": { "start": "node src/index.js", "dev": "node --watch src/index.js", "test": "echo \\"請使用 @vibe test 執行測試\\" && exit 1", "build": "echo \\"請使用 @vibe code 生成代碼\\" && exit 1", "deploy": "echo \\"請使用 @vibe deploy 部署應用\\" && exit 1" }, "keywords": [ "vibecoding", "ai-driven-development", "conversation-driven" ], "author": "", "license": "MIT", "vibecoding": { "version": "2.0.0", "created": "${new Date().toISOString()}", "structure": "enhanced" } }`; } // 生成工作流程指南 function generateWorkflowGuide(projectName) { return `# VibeCoding 工作流程指南 ## 🎯 對話驅動開發流程 歡迎使用 VibeCoding!本指南將帶您完整體驗對話驅動的開發流程。 ## 🚀 快速開始 ### 1️⃣ 專案初始化 \`\`\`bash @vibe start "${projectName}" \`\`\` ### 2️⃣ 需求澄清 (Discovery Phase) \`\`\`bash @vibe ask "您的回答內容" @vibe prd @vibe insight "如何優化需求收集?" \`\`\` ### 3️⃣ 系統設計 (Design Phase) \`\`\`bash @vibe plan @vibe arch "系統架構描述" @vibe api "API 設計需求" \`\`\` ### 4️⃣ 代碼實現 (Implementation Phase) \`\`\`bash @vibe code "功能需求" @vibe comp "組件需求" @vibe review "[代碼]" \`\`\` ### 5️⃣ 測試驗證 (Validation Phase) \`\`\`bash @vibe test @vibe cover @vibe report \`\`\` ### 6️⃣ 部署上線 (Deployment Phase) \`\`\`bash @vibe deploy @vibe monitor @vibe alert \`\`\` --- *享受 VibeCoding 帶來的智能開發體驗!*`; } // 生成 Discovery README function generateDiscoveryReadme(projectName) { return `# 📋 Discovery Phase - 需求發現階段 ## 🎯 階段目標 - 🔍 收集和澄清專案需求 - 📝 定義專案範圍和目標 - ⚠️ 識別技術約束和風險 - 👥 了解目標用戶和使用情境 ## 🛠️ VibeCoding 工具使用 ### 🆕 簡潔指令 (推薦) \`\`\`bash @vibe start "${projectName}" # 開始專案澄清 @vibe ask "你的回答內容" # 回答澄清問題 @vibe prd # 生成產品需求文檔 @vibe insight "問題" # 獲取 AI 洞察 \`\`\` ## 📁 資料夾結構說明 - **conversations/**: 與利害關係人的對話記錄 - **clarifications/**: 需求澄清問題與回答 - **requirements/**: 整理後的需求文檔和用戶故事 ## ✅ 完成檢查清單 - [ ] 完成 7 個澄清問題 - [ ] 生成產品需求文檔 (PRD) - [ ] 定義核心用戶故事 - [ ] 識別技術風險和限制 - [ ] 確定專案成功指標`; } // 其他生成函數的簡化版本... function generateQuestionsTemplate() { return `# 需求澄清清單 ## 🔍 VibeCoding 7 問澄清法 ### 🎯 問題 1: 核心問題定義 **這個專案主要解決什麼問題?** ### 🎯 問題 2: 核心功能範圍 **這個專案的核心功能有哪些?** ### 🎯 問題 3: 技術偏好和約束 **您對技術選型有什麼偏好或限制?** ### 🎯 問題 4: 用戶體驗期望 **您希望用戶在使用這個應用時有什麼樣的體驗?** ### 🎯 問題 5: 規模和性能要求 **預期的用戶規模和性能要求是什麼?** ### 🎯 問題 6: 時程和資源限制 **專案的時間限制和可用資源是什麼?** ### 🎯 問題 7: 成功標準定義 **如何衡量這個專案的成功?** ## 📋 澄清完成檢查清單 - [ ] 核心問題和用戶痛點已明確 - [ ] 主要功能範圍已界定 - [ ] 技術約束和偏好已確認 - [ ] 用戶體驗期望已理解 - [ ] 性能和規模要求已確定 - [ ] 時程和資源限制已明確 - [ ] 成功標準已定義 ## 🎯 下一步行動 完成澄清後,請使用 \`@vibe prd\` 生成產品需求文檔 (PRD)。`; } // 簡化的生成函數 function generateUserStoriesTemplate() { return '# 用戶故事模板\n\n基本格式:**作為** [用戶角色],**我希望** [功能描述],**以便** [業務價值]。'; } function generateDesignReadme() { return '# 🎨 Design Phase - 設計階段\n\n使用 @vibe plan 開始設計階段'; } function generateArchitectureTemplate() { return '# 系統架構設計\n\n使用 @vibe arch 生成系統架構'; } function generateImplementationReadme() { return '# 💻 Implementation Phase - 實作階段\n\n使用 @vibe code 開始實作'; } function generateTestStrategy() { return '# 🧪 測試策略\n\n使用 @vibe test 執行測試'; } function generateValidationReadme() { return '# 🧪 Validation Phase - 驗證階段\n\n使用 @vibe test 開始驗證'; } function generateDeploymentReadme() { return '# 🚀 Deployment Phase - 部署階段\n\n使用 @vibe deploy 開始部署'; } function generateDeploymentGuide() { return '# 🚀 部署指南\n\n完整的部署流程和最佳實踐'; } function generatePatternsReadme() { return '# 設計模式和架構模式\n\n記錄可重用的解決方案'; } function generateSolutionsReadme() { return '# 解決方案庫\n\n問題解決方案集'; } function generateRetrospectivesReadme() { return '# 專案回顧\n\n持續改進記錄'; } function generateConversationsReadme() { return '# VibeCoding 對話記錄\n\n對話驅動開發記錄'; } function generateDecisionsReadme() { return '# 技術決策記錄 (ADR)\n\n決策驅動開發'; } function generateInsightsReadme() { return '# AI 洞察和建議\n\n智能建議記錄'; } // 顯示成功訊息 function displaySuccessMessage() { console.log('\n🎉 VibeCoding Enhanced Project Structure v2 建立完成!'); console.log('\n✅ 已自動創建:'); console.log(' 📁 5個開發階段資料夾 + 完整子資料夾結構'); console.log(' 📄 遵循 .vibecoding/prompts 指導原則的模板'); console.log(' 🧪 測試策略和部署指南'); console.log(' 📋 README.md 和配置檔案'); console.log(' 🚀 VibeCoding 快速開發指引'); console.log(' 🤖 AI 對話和決策記錄系統'); console.log('\n🎯 下一步:'); console.log(` 1. 在 Cursor 或 Claude Desktop 中開啟專案`); console.log(` 2. 使用 @vibe start "${projectName}" 開始開發`); console.log(` 3. 跟隨 AI 引導完成整個開發流程`); console.log('\n🚀 開始享受 AI 驅動的對話式開發體驗!'); } // 執行腳本 createEnhancedProject();

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Zenobia000/vibeCoding-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server