enhance_prd
Improve product requirements documents by adding missing elements, enhancing clarity, and providing comprehensive analysis using AI-powered tools.
Instructions
Enhance an existing PRD with AI-powered improvements, adding missing elements, improving clarity, and providing comprehensive analysis
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| prdContent | Yes | ||
| enhancementType | Yes | ||
| focusAreas | No | ||
| includeResearch | Yes | ||
| targetAudience | Yes | ||
| industryContext | No | ||
| addMissingElements | Yes | ||
| improveExisting | Yes | ||
| validateQuality | Yes |
Input Schema (JSON Schema)
{
"properties": {
"addMissingElements": {
"type": "string"
},
"enhancementType": {
"enum": [
"comprehensive",
"technical",
"user_focused",
"business_focused"
]
},
"focusAreas": {
"items": {
"type": "string"
},
"type": "array"
},
"improveExisting": {
"type": "string"
},
"includeResearch": {
"type": "string"
},
"industryContext": {
"type": "string"
},
"prdContent": {
"type": "string"
},
"targetAudience": {
"type": "string"
},
"validateQuality": {
"type": "string"
}
},
"required": [
"prdContent",
"enhancementType",
"includeResearch",
"targetAudience",
"addMissingElements",
"improveExisting",
"validateQuality"
],
"type": "object"
}
Implementation Reference
- Main handler function executeEnhancePRD that orchestrates PRD enhancement using PRDGenerationService, validation, feature extraction, summary generation, and response formatting.async function executeEnhancePRD(args: EnhancePRDArgs): Promise<MCPResponse> { const prdService = new PRDGenerationService(); try { // Enhance the PRD using AI const enhancedPRD = await prdService.enhancePRD({ currentPRD: args.prdContent, enhancementType: args.enhancementType, focusAreas: args.focusAreas }); // Validate the enhanced PRD if requested let validation; if (args.validateQuality) { validation = await prdService.validatePRDCompleteness(enhancedPRD); } // Extract features for analysis const features = await prdService.extractFeaturesFromPRD(JSON.stringify(enhancedPRD)); // Generate enhancement summary const enhancementSummary = generateEnhancementSummary( args.prdContent, enhancedPRD, args.enhancementType, args.focusAreas ); // Format response const summary = formatPRDEnhancement( enhancedPRD, validation, features, enhancementSummary, args ); return ToolResultFormatter.formatSuccess('enhance_prd', { summary, enhancedPRD, validation, features, enhancementSummary, qualityScore: validation?.score || 0 }); } catch (error) { process.stderr.write(`Error in enhance_prd tool: ${error}\n`); return ToolResultFormatter.formatSuccess('enhance_prd', { error: `Failed to enhance PRD: ${error instanceof Error ? error.message : 'Unknown error'}`, success: false }); } }
- Tool definition enhancePRDTool including name, description, input schema (enhancePRDSchema), and usage examples.export const enhancePRDTool: ToolDefinition<EnhancePRDArgs> = { name: "enhance_prd", description: "Enhance an existing PRD with AI-powered improvements, adding missing elements, improving clarity, and providing comprehensive analysis", schema: enhancePRDSchema as unknown as ToolSchema<EnhancePRDArgs>, examples: [ { name: "Enhance PRD with technical focus", description: "Enhance a basic PRD with detailed technical requirements", args: { prdContent: "# Basic App PRD\n\n## Overview\nWe want to build a task management app...\n\n## Features\n- Create tasks\n- Assign tasks\n- Track progress", enhancementType: "technical", focusAreas: ["technical requirements", "architecture", "scalability"], includeResearch: false, targetAudience: "technical", addMissingElements: true, improveExisting: true, validateQuality: true } } ] };
- src/infrastructure/tools/ToolRegistry.ts:191-199 (registration)Registration of enhancePRDTool in the ToolRegistry's registerBuiltInTools method, making it available for list_tools and validation.// Register AI task management tools this.registerTool(addFeatureTool); this.registerTool(generatePRDTool); this.registerTool(parsePRDTool); this.registerTool(getNextTaskTool); this.registerTool(analyzeTaskComplexityTool); this.registerTool(expandTaskTool); this.registerTool(enhancePRDTool); this.registerTool(createTraceabilityMatrixTool);
- src/index.ts:377-378 (registration)Direct handler dispatch in the main server switch statement for executing the enhance_prd tool.case "enhance_prd": return await executeEnhancePRD(args);