From 9581d2125ea979e1f3607021551037ddc6e980d9 Mon Sep 17 00:00:00 2001 From: siage Date: Sat, 12 Apr 2025 14:55:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E4=B8=8D=E5=86=8D=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E4=BB=BB=E5=8B=99=E6=8F=90=E7=A4=BA=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E5=8F=8A=E7=9B=B8=E9=97=9C=E4=BB=A3=E7=A2=BC=EF=BC=8C?= =?UTF-8?q?=E7=B0=A1=E5=8C=96=E4=B8=BB=E7=A8=8B=E5=BC=8F=E9=82=8F=E8=BC=AF?= =?UTF-8?q?=EF=BC=8C=E6=8F=90=E5=8D=87=E4=BB=A3=E7=A2=BC=E5=8F=AF=E8=AE=80?= =?UTF-8?q?=E6=80=A7=E8=88=87=E7=B6=AD=E8=AD=B7=E6=80=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.ts | 61 ---------------- src/prompts/taskPrompts.ts | 138 ------------------------------------- 2 files changed, 199 deletions(-) delete mode 100644 src/prompts/taskPrompts.ts diff --git a/src/index.ts b/src/index.ts index fc4083c..f419d48 100644 --- a/src/index.ts +++ b/src/index.ts @@ -38,16 +38,6 @@ import { clearConversationLogSchema, } from "./tools/logTools.js"; -// 導入提示模板 -import { - planTaskPrompt, - planTaskPromptSchema, - executeTaskPrompt, - executeTaskPromptSchema, - verifyTaskPrompt, - verifyTaskPromptSchema, -} from "./prompts/taskPrompts.js"; - async function main() { try { console.log("啟動蝦米任務管理器服務..."); @@ -394,57 +384,6 @@ async function main() { } ); - // 註冊提示 - 使用同樣的錯誤處理模式 - server.prompt( - "plan_task_prompt", - "生成結構化的新任務規劃,包含明確目標、評估標準與執行步驟", - { - taskType: z - .string() - .describe("任務類型,例如 'bug修復'、'功能開發'、'性能優化'等"), - description: z - .string() - .describe("完整詳細的任務問題描述,包含任務背景和目標"), - codeContext: z - .string() - .optional() - .describe("相關代碼片段或文件路徑(選填)"), - }, - async (args) => { - return await planTaskPrompt(args); - } - ); - - server.prompt( - "execute_task_prompt", - "提供執行特定任務的詳細指南,包含所有必要上下文與技術細節", - { - taskId: z.string().describe("待執行任務的唯一標識符"), - additionalContext: z - .string() - .optional() - .describe("執行任務時需要參考的額外信息(選填)"), - }, - async (args) => { - return await executeTaskPrompt(args); - } - ); - - server.prompt( - "verify_task_prompt", - "生成全面的任務驗證標準與檢查清單,確保質量與完整性", - { - taskId: z.string().describe("待驗證任務的唯一標識符"), - verificationFocus: z - .string() - .optional() - .describe("特別需要關注的驗證方向,如'安全性'、'性能'等(選填)"), - }, - async (args) => { - return await verifyTaskPrompt(args); - } - ); - // 建立連接 const transport = new StdioServerTransport(); await server.connect(transport); diff --git a/src/prompts/taskPrompts.ts b/src/prompts/taskPrompts.ts deleted file mode 100644 index 43038e1..0000000 --- a/src/prompts/taskPrompts.ts +++ /dev/null @@ -1,138 +0,0 @@ -import { z } from "zod"; -import { Task } from "../types/index.js"; -import { getTaskById, getAllTasks } from "../models/taskModel.js"; - -// 開始規劃提示 -export const planTaskPromptSchema = z.object({ - description: z - .string() - .describe("完整詳細的任務問題描述,應包含任務目標、背景及預期成果"), - requirements: z - .string() - .optional() - .describe("任務的特定技術要求、業務約束條件或品質標準(選填)"), -}); - -export function planTaskPrompt({ - description, - requirements, -}: z.infer) { - let prompt = `## 任務分析請求\n\n請仔細分析以下任務問題,理解其核心要求、範圍和約束條件:\n\n\`\`\`\n${description}\n\`\`\`\n\n`; - - if (requirements) { - prompt += `## 附加要求與限制條件\n\n請確保方案完全符合以下要求:\n\n\`\`\`\n${requirements}\n\`\`\`\n\n`; - } - - prompt += `## 分析指引\n\n請執行以下步驟進行全面分析:\n\n1. 定義問題域和範圍界限\n2. 識別關鍵技術挑戰和決策點\n3. 評估可行的技術方案和架構選擇\n4. 考慮潛在的系統限制和擴展需求\n5. 識別成功標準和驗收條件\n\n如有任何疑問或需要澄清的部分,請立即向用戶提出具體問題。\n\n## 交付成果要求\n\n完成分析後,請提供:\n\n1. **結構化任務摘要** - 準確概括任務的目標、範圍及關鍵挑戰\n2. **初步解答構想** - 提出技術可行的解決方案,包括實施策略和關鍵技術選擇\n\n完成分析後,必須使用「分析問題」工具提交完整的分析結果。`; - - return { - messages: [ - { - role: "user" as const, - content: { - type: "text" as const, - text: prompt, - }, - }, - ], - }; -} - -// 執行任務提示 -export const executeTaskPromptSchema = z.object({ - taskId: z - .string() - .describe("待執行任務的唯一標識符,必須是系統中存在的有效任務ID"), -}); - -export async function executeTaskPrompt({ - taskId, -}: z.infer) { - const task = await getTaskById(taskId); - - if (!task) { - throw new Error(`找不到 ID 為 ${taskId} 的任務`); - } - - // 獲取依賴任務的名稱,以便更直觀地顯示 - let dependenciesText = ""; - if (task.dependencies && task.dependencies.length > 0) { - const allTasks = await getAllTasks(); - const depTasksInfo = task.dependencies.map((dep) => { - const depTask = allTasks.find((t) => t.id === dep.taskId); - return depTask - ? `"${depTask.name}" (ID: \`${dep.taskId}\`)` - : `ID: \`${dep.taskId}\``; - }); - dependenciesText = `\n\n### 依賴任務\n前置任務:${depTasksInfo.join(", ")}`; - } - - const prompt = `## 任務執行指示\n\n### 任務詳情\n\n- **名稱:** ${ - task.name - }\n- **ID:** \`${task.id}\`\n- **描述:** ${task.description}\n${ - task.notes ? `- **注意事項:** ${task.notes}\n` : "" - }${dependenciesText} - -## 專注限制\n\n請嚴格遵守以下操作範圍限制:\n\n- 僅執行本任務描述中明確定義的操作,不進行任何額外修改\n- 所有變更必須直接關聯任務目標,非必要不修改其他部分\n- 如發現潛在問題但不在任務範圍內,請僅做記錄不做修改\n- 確保變更對系統其他部分的影響降至最低,保持代碼一致性 - -## 執行框架\n\n請嚴格按照以下階段性流程執行任務:\n\n### 1. 需求分析 (20%)\n- 詳細分析任務描述和注意事項\n- 明確定義成功標準和驗收條件\n- 識別潛在的邊緣情況和例外狀況\n\n### 2. 技術規劃 (20%)\n- 設計詳細的技術實施方案\n- 確定所需的技術組件和依賴項\n- 制定清晰的步驟順序和里程碑\n\n### 3. 系統化實施 (40%)\n- 按照規劃順序逐步實施解決方案\n- 嚴格遵循最佳編碼實踐和架構模式\n- 確保代碼可讀性、可維護性和效能\n\n### 4. 自我驗證 (20%)\n- 對照任務需求檢查實現的完整性\n- 測試不同輸入和情境下的功能正確性\n- 優化性能並消除任何潛在風險\n\n## 注意事項\n- 如發現技術障礙或需求不明確,請立即提出具體問題\n- 在實施過程中記錄關鍵決策點和技術選擇理由\n- 考慮解決方案與現有系統的整合性和兼容性\n\n## 下一步行動\n\n完成實施後,必須使用「檢驗任務」工具進行全面驗證,確保所有功能和要求均已正確實現。`; - - return { - messages: [ - { - role: "user" as const, - content: { - type: "text" as const, - text: prompt, - }, - }, - ], - }; -} - -// 檢驗任務提示 -export const verifyTaskPromptSchema = z.object({ - taskId: z - .string() - .describe("待驗證任務的唯一標識符,必須是狀態為「進行中」的有效任務ID"), -}); - -export async function verifyTaskPrompt({ - taskId, -}: z.infer) { - const task = await getTaskById(taskId); - - if (!task) { - throw new Error(`找不到 ID 為 ${taskId} 的任務`); - } - - const prompt = `## 任務驗證評估\n\n### 任務資料\n\n- **名稱:** ${ - task.name - }\n- **ID:** \`${task.id}\`\n- **描述:** ${task.description}\n${ - task.notes ? `- **注意事項:** ${task.notes}\n` : "" - } - -## 完整性驗證標準\n\n請對實現結果進行全面且嚴格的評估,基於以下關鍵標準: - -### 1. 需求符合性 (30%)\n- 實現是否完全符合任務描述中的所有功能需求?\n- 是否遵循了所有注意事項和約束條件?\n- 是否處理了所有業務邏輯的邊緣情況? - -### 2. 技術實現質量 (30%)\n- 代碼是否遵循了項目的架構模式和設計原則?\n- 是否有適當的錯誤處理和防禦性編程?\n- 實現是否簡潔高效,避免了不必要的複雜性? - -### 3. 集成與兼容性 (20%)\n- 實現是否與現有系統無縫集成?\n- 是否考慮了與其他組件的相互作用?\n- 是否保持了向前和向後兼容性(如適用)? - -### 4. 性能與可擴展性 (20%)\n- 實現是否考慮了性能優化?\n- 系統是否能夠處理預期的負載和擴展需求?\n- 是否避免了可能的資源洩漏或瓶頸? - -## 驗證流程\n\n請執行以下驗證步驟:\n\n1. 從用戶視角測試功能的完整性和正確性\n2. 評估代碼質量和技術實現的優雅程度\n3. 檢查是否有潛在的安全風險或性能問題\n4. 對照原始需求,確保所有功能點均已實現\n\n## 驗證結果報告\n\n請提供詳細的評估報告,為每個標準分配評分並提供具體證據。對於發現的任何問題,請提供明確的修復建議。\n\n## 決策點\n\n- 如發現嚴重問題:請繼續完善實現,解決所有識別出的問題\n- 如確認任務已完全符合要求:請使用「完成任務」工具,標記任務為已完成並提交最終報告`; - - return { - messages: [ - { - role: "user" as const, - content: { - type: "text" as const, - text: prompt, - }, - }, - ], - }; -}