provide_feature_input
Submit feature discussion responses to AI-driven prompts, enabling informed input for software development planning, implementation, and best practices.
Instructions
Provide information for the current feature discussion prompt
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| featureId | Yes | ID of the feature being discussed | |
| response | Yes | Your response to the current prompt |
Implementation Reference
- src/index.ts:251-303 (handler)Main execution logic for 'provide_feature_input' tool: processes user response to current feature prompt, updates feature discussion data and context, advances to next prompt or completes discussion.case "provide_feature_input": { const { featureId, response } = request.params.arguments as any; const feature = featureDiscussions[featureId]; const context = discussionContexts[featureId]; if (!feature) { throw new Error(`Feature ${featureId} not found`); } // Find current prompt const currentPromptIndex = FEATURE_DISCUSSION_PROMPTS.findIndex(p => p.id === feature.currentPrompt); const currentPrompt = FEATURE_DISCUSSION_PROMPTS[currentPromptIndex]; // Store the response if (currentPrompt.field === 'requirements' || currentPrompt.field === 'targetUsers' || currentPrompt.field === 'successCriteria' || currentPrompt.field === 'risks') { // Handle array fields feature[currentPrompt.field] = response.split('\n').map((r: string) => r.trim()).filter(Boolean); } else { // Handle string fields feature[currentPrompt.field] = response; } // Update conversation history context.conversationHistory.push({ prompt: currentPrompt.message, response, timestamp: new Date().toISOString() }); // Move to next prompt if available const nextPrompt = FEATURE_DISCUSSION_PROMPTS[currentPromptIndex + 1]; let responseMessage = "Response recorded. "; if (nextPrompt) { feature.currentPrompt = nextPrompt.id; responseMessage += `\n\nNext question:\n${nextPrompt.message}`; } else { feature.status = 'proposed'; feature.currentPrompt = undefined; responseMessage += "\n\nThank you! The feature has been fully documented. You can now use the 'analyze_feature' or 'suggest_architecture' prompts to get AI guidance on implementation."; } feature.updatedAt = new Date().toISOString(); return { content: [{ type: "text", text: responseMessage }] }; }
- src/index.ts:192-205 (schema)Input schema defining parameters for the 'provide_feature_input' tool: featureId (string) and response (string), both required.inputSchema: { type: "object", properties: { featureId: { type: "string", description: "ID of the feature being discussed" }, response: { type: "string", description: "Your response to the current prompt" } }, required: ["featureId", "response"] }
- src/index.ts:189-206 (registration)Tool registration in ListToolsRequestSchema handler, including name, description, and input schema.{ name: "provide_feature_input", description: "Provide information for the current feature discussion prompt", inputSchema: { type: "object", properties: { featureId: { type: "string", description: "ID of the feature being discussed" }, response: { type: "string", description: "Your response to the current prompt" } }, required: ["featureId", "response"] } }