begin_feature_discussion
Start a new feature discussion to explore implementation options, architecture considerations, and best practices with AI guidance.
Instructions
Start a new feature discussion
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title or name of the feature |
Implementation Reference
- src/index.ts:216-249 (handler)The switch case handler that executes the 'begin_feature_discussion' tool. It generates a feature ID, initializes the feature discussion object with the provided title and sets the first prompt, creates discussion context, and returns a response with the feature ID and initial prompt.case "begin_feature_discussion": { const { title } = request.params.arguments as any; const id = `f${Object.keys(featureDiscussions).length + 1}`; // Initialize new feature discussion featureDiscussions[id] = { id, title, description: "", requirements: [], status: 'in-discussion', createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(), currentPrompt: FEATURE_DISCUSSION_PROMPTS[0].id }; // Initialize discussion context discussionContexts[id] = { previousDecisions: [], relatedFeatures: [], technicalConstraints: [], conversationHistory: [] }; // Return the first prompt return { content: [ { type: "text", text: `Feature discussion started for: ${title}\n\nFeature ID: ${id}\n\nFirst question:\n${FEATURE_DISCUSSION_PROMPTS[0].message}` } ] }; }
- src/index.ts:175-188 (registration)Registers the 'begin_feature_discussion' tool by defining its name, description, and input schema (requiring a 'title' string) in the ListToolsRequestSchema handler.{ name: "begin_feature_discussion", description: "Start a new feature discussion", inputSchema: { type: "object", properties: { title: { type: "string", description: "Title or name of the feature" } }, required: ["title"] } },
- src/index.ts:76-117 (helper)Defines the array of sequential prompts used throughout feature discussions. The 'begin_feature_discussion' tool initializes new discussions with the first prompt from this array ('initial_description').const FEATURE_DISCUSSION_PROMPTS: FeaturePrompt[] = [ { id: "initial_description", message: "Please provide a brief description of the feature you'd like to discuss.", field: "description" }, { id: "business_value", message: "What business value does this feature provide? How does it benefit users or stakeholders?", field: "businessValue" }, { id: "target_users", message: "Who are the target users for this feature?", field: "targetUsers" }, { id: "requirements", message: "What are the key requirements or constraints for this feature?", field: "requirements" }, { id: "success_criteria", message: "What are the success criteria for this feature? How will we know it's working as intended?", field: "successCriteria" }, { id: "technical_approach", message: "Do you have any specific technical approach in mind for implementing this feature?", field: "technicalApproach" }, { id: "risks", message: "Are there any potential risks or challenges we should consider?", field: "risks" }, { id: "timeline", message: "What's the desired timeline or priority for this feature?", field: "timeline" } ];