provide_feature_input
Submit responses to feature discussion prompts with implementation details and architecture recommendations for software development projects.
Instructions
Provide information for the current feature discussion prompt
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"featureId": "<featureId>",
"response": "<response>"
},
"name": "provide_feature_input"
}
}Input 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-302 (handler)Handler for the 'provide_feature_input' tool. Processes user response to current prompt, updates feature discussion data, advances to next prompt or completes discussion, and returns confirmation message.
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:189-207 (registration)Tool registration in ListToolsRequestSchema handler, defining name, description, and input schema for 'provide_feature_input'.
{ 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"] } } ] - src/index.ts:192-205 (schema)Input schema definition for the 'provide_feature_input' tool, specifying required parameters: featureId and response.
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"] }