Skip to main content
Glama

VibeCoding System

by Zenobia000
create-enhanced-project-v3.cjs15.7 kB
#!/usr/bin/env node /** * VibeCoding Enhanced Project Structure Creator v3 * 整合 v1 完整內容 + v2 架構優化 + 完全遵循 .vibecoding/prompts 指導原則 */ const fs = require('fs-extra'); const path = require('path'); console.log('🚀 VibeCoding Enhanced Project Structure Creator v3'); 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': { 'api': {}, 'components': {}, 'services': {}, 'utils': {} }, 'tests': { 'unit': {}, 'integration': {}, 'e2e': {} }, 'scripts': {} }, '3_validation': { 'test-reports': {}, 'quality-metrics': {}, 'benchmarks': {} }, '4_deployment': { 'environments': { 'development': {}, 'staging': {}, 'production': {} }, 'ci-cd': {}, 'monitoring': {} }, 'knowledge-base': { 'patterns': {}, 'solutions': { 'frontend': {}, 'backend': {}, 'database': {}, 'deployment': {}, 'performance': {}, 'security': {} }, 'retrospectives': {}, 'decisions': {} }, '.vibecoding': { 'conversations': {}, 'decisions': {}, 'insights': {} }, 'docs': { 'api': {}, 'user-guide': {}, 'technical': {} }, 'config': {} }; // 主要執行函數 async function createEnhancedProject() { try { console.log(`📁 正在建立專案結構於: ${projectPath}`); console.log(`📝 專案名稱: ${projectName}\n`); // 建立目錄結構 console.log('📁 建立目錄結構...'); await createDirectoryStructure(projectPath, PROJECT_STRUCTURE); // 建立基本檔案 console.log('📄 建立基本檔案...'); await createBasicFiles(); // 建立階段檔案 console.log('📄 建立階段檔案...'); await createPhaseFiles(); // 顯示成功訊息 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 createBasicFiles() { const basicFiles = { 'README.md': generateMainReadme(), '.gitignore': generateGitignore(), 'package.json': generatePackageJson(), 'VIBECODING_WORKFLOW.md': generateWorkflowGuide() }; for (const [filePath, content] of Object.entries(basicFiles)) { const fullPath = path.join(projectPath, filePath); await fs.writeFile(fullPath, content, 'utf8'); } } // 建立階段檔案 async function createPhaseFiles() { const phaseFiles = { '0_discovery/README.md': generateDiscoveryReadme(), '0_discovery/clarifications/questions_template.md': generateQuestionsTemplate(), '0_discovery/requirements/user_stories_template.md': generateUserStoriesTemplate(), '1_design/README.md': generateDesignReadme(), '2_implementation/README.md': generateImplementationReadme(), '3_validation/README.md': generateValidationReadme(), '4_deployment/README.md': generateDeploymentReadme(), 'knowledge-base/README.md': generateKnowledgeBaseReadme(), '.vibecoding/README.md': generateVibeCodingReadme() }; for (const [filePath, content] of Object.entries(phaseFiles)) { const fullPath = path.join(projectPath, filePath); await fs.ensureDir(path.dirname(fullPath)); await fs.writeFile(fullPath, content, 'utf8'); } } // 生成函數 function generateMainReadme() { 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 v3 自動生成*`; } function generateGitignore() { return `# Dependencies node_modules/ npm-debug.log* # Build outputs dist/ build/ # Environment variables .env .env.local # IDE files .vscode/ .idea/ # OS generated files .DS_Store Thumbs.db # Logs logs/ *.log # VibeCoding specific test-project/ debug.txt`; } function generatePackageJson() { 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", "mvp", "poc" ], "author": "", "license": "MIT", "dependencies": {}, "devDependencies": {}, "vibecoding": { "version": "3.0.0", "created": "${new Date().toISOString()}", "structure": "enhanced-complete", "prompts-compliant": true } }`; } function generateWorkflowGuide() { return `# VibeCoding 工作流程指南 ## 🎯 對話驅動開發流程 ## 🚀 快速開始 ### 1️⃣ 專案初始化 \`\`\`bash @vibe start "${projectName}" \`\`\` ### 2️⃣ 需求澄清 (Discovery Phase) \`\`\`bash @vibe ask "您的回答內容" @vibe prd @vibe insight "如何優化需求收集?" \`\`\` ### 3️⃣ 系統設計 (Design Phase) \`\`\`bash @vibe plan @vibe arch "微服務架構,使用 React + Node.js" @vibe 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 帶來的智能開發體驗!*`; } function generateDiscoveryReadme() { 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-5 個最重要的功能。** ### 🎯 問題 3: 技術偏好和約束 **您對技術選型有什麼偏好或限制?** ### 🎯 問題 4: 用戶體驗期望 **您希望用戶在使用這個應用時有什麼樣的體驗?** ### 🎯 問題 5: 規模和性能要求 **預期的用戶規模和性能要求是什麼?** ### 🎯 問題 6: 時程和資源限制 **專案的時間限制和可用資源是什麼?** ### 🎯 問題 7: 成功標準定義 **如何衡量這個專案的成功?有什麼具體的指標嗎?** ## 📋 澄清完成檢查清單 - [ ] 核心問題和用戶痛點已明確 - [ ] 主要功能範圍已界定 - [ ] 技術約束和偏好已確認 - [ ] 用戶體驗期望已理解 - [ ] 性能和規模要求已確定 - [ ] 時程和資源限制已明確 - [ ] 成功標準已定義 完成澄清後,請使用 \`@vibe prd\` 生成產品需求文檔。`; } function generateUserStoriesTemplate() { return `# 用戶故事文檔 ## 🎯 VibeCoding 用戶故事撰寫指南 ## 📝 用戶故事撰寫格式 **作為一個** [用戶角色],**我希望** [功能描述],**這樣** [業務價值]。 ### 增強格式(推薦) \`\`\`markdown ## Story: [故事標題] **作為一個** [用戶角色] **我希望** [功能描述] **這樣** [業務價值] ### 驗收標準 (Acceptance Criteria) **Given** [前置條件] **When** [用戶行為] **Then** [預期結果] ### 定義完成 (Definition of Done) - [ ] 功能開發完成 - [ ] 單元測試通過 - [ ] 集成測試通過 - [ ] 代碼審查完成 - [ ] 用戶驗收測試通過 \`\`\` ## 📊 故事管理 ### 優先級分類 - **Must Have**: 核心功能,MVP 必需 - **Should Have**: 重要但非關鍵功能 - **Could Have**: 增值功能 - **Won't Have**: 此版本不考慮的功能`; } function generateDesignReadme() { return `# 🎨 Design Phase - 設計階段 ## 🎯 階段目標 - ��️ 設計系統整體架構 - 📡 定義 API 規格和介面 - 🗄️ 設計資料庫結構 - 🎨 規劃使用者介面 ## 🛠️ VibeCoding 工具使用 \`\`\`bash @vibe plan # 生成實施計劃 @vibe arch "系統架構設計" # 設計系統架構 @vibe api "API 設計" # 生成 API 設計 @vibe db "資料庫設計" # 資料庫設計 \`\`\` ## 📁 資料夾結構說明 - **architecture/**: 系統架構文檔和圖表 - **api-contracts/**: API 規格和合約定義 - **flow-diagrams/**: 系統流程圖和使用者流程 ## ✅ 完成檢查清單 - [ ] 完成系統架構設計 - [ ] 定義主要 API 接口 - [ ] 設計資料庫結構 - [ ] 創建系統流程圖 - [ ] 確定技術選型`; } function generateImplementationReadme() { return `# 💻 Implementation Phase - 實作階段 ## �� 階段目標 - 🛠️ 撰寫核心程式碼 - 📡 實作 API 和服務 - 🔗 整合第三方服務 - 🧪 開發單元測試 ## 🛠️ VibeCoding 工具使用 \`\`\`bash @vibe code "核心功能" # 生成核心代碼 @vibe comp "React 組件" # 生成組件 @vibe api "API 接口" # 生成 API @vibe review "[代碼]" # 代碼審查 @vibe refactor "優化代碼" # 重構代碼 \`\`\` ## 📁 資料夾結構說明 - **src/**: 源代碼檔案 - **tests/**: 測試代碼和測試策略 - **scripts/**: 建構和部署腳本 ## ✅ 完成檢查清單 - [ ] 完成核心功能開發 - [ ] 實作所有 API 接口 - [ ] 撰寫單元測試 - [ ] 完成代碼審查 - [ ] 處理錯誤和異常情況`; } function generateValidationReadme() { return `# 🧪 Validation Phase - 驗證階段 ## 🎯 階段目標 - 🧪 執行各種類型的測試 - 📊 進行代碼品質檢查 - ⚡ 評估系統性能 - 🔒 執行安全性檢查 ## 🛠️ VibeCoding 工具使用 \`\`\`bash @vibe test # 執行測試 @vibe cover # 檢查測試覆蓋率 @vibe report # 生成測試報告 @vibe perf "性能測試" # 性能測試 @vibe scan # 安全掃描 \`\`\` ## ✅ 完成檢查清單 - [ ] 單元測試覆蓋率 > 80% - [ ] 整合測試全部通過 - [ ] 性能測試達到要求 - [ ] 安全掃描無高風險漏洞 - [ ] 代碼品質符合標準`; } function generateDeploymentReadme() { return `# 🚀 Deployment Phase - 部署階段 ## 🎯 階段目標 - ⚙️ 配置部署環境 - 🔄 設定 CI/CD 流水線 - 📊 建立監控和日誌 - 🚀 執行正式部署 ## 🛠️ VibeCoding 工具使用 \`\`\`bash @vibe deploy # 配置部署環境 @vibe monitor # 設定監控 @vibe alert # 設定告警 @vibe rollback "版本" # 回滾部署 \`\`\` ## ✅ 完成檢查清單 - [ ] 配置生產環境 - [ ] 設定 CI/CD 流水線 - [ ] 建立監控儀表板 - [ ] 配置告警規則 - [ ] 完成正式部署 - [ ] 驗證部署成功`; } function generateKnowledgeBaseReadme() { return `# 📚 Knowledge Base - 知識庫 ## 🎯 目的 建立專案開發過程中的知識積累和經驗分享平台。 ## 📁 結構說明 - **patterns/**: 設計模式和架構模式 - **solutions/**: 分類的解決方案庫 - **retrospectives/**: 專案回顧和總結 - **decisions/**: 重要決策記錄 ## 🔄 持續更新 定期更新知識庫內容,確保團隊經驗的有效傳承。`; } function generateVibeCodingReadme() { return `# .vibecoding - VibeCoding 專用目錄 ## 🎯 目的 記錄與 VibeCoding AI 助手的互動過程和重要決策。 ## 📁 結構說明 - **conversations/**: 重要對話記錄 - **decisions/**: 技術決策記錄 (ADR) - **insights/**: AI 洞察和建議 ## 📝 使用方式 所有 VibeCoding 相關的對話和決策都會自動記錄到此目錄中。`; } // 顯示成功訊息 function displaySuccessMessage() { console.log('\n🎉 VibeCoding Enhanced Project Structure v3 建立完成!'); console.log('\n✅ 已自動創建:'); console.log(' 📁 5個開發階段資料夾 + 完整子資料夾結構'); console.log(' 📄 完全遵循 .vibecoding/prompts 指導原則'); console.log(' 🎯 100% VibeCoding 指令輸出路徑對應'); console.log(' 📚 知識庫和解決方案管理系統'); console.log(' 🤖 AI 對話、決策記錄和洞察管理'); console.log('\n🎯 v3 版本特色:'); console.log(' ✨ 整合 v1 完整內容 + v2 架構優化'); console.log(' 🎯 完全對應到正確的資料夾位置'); console.log(' 📋 遵循所有 .vibecoding/prompts 指導原則'); console.log('\n🎯 下一步:'); console.log(` 1. 在 Cursor 或 Claude Desktop 中開啟專案`); console.log(` 2. 使用 @vibe start "${projectName}" 開始開發`); console.log(` 3. 所有 VibeCoding 指令輸出都會自動放入對應資料夾`); 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