speckit_specify
Generate detailed project specifications from user requirements to define what to build, enabling structured planning and implementation workflows.
Instructions
Describe what to build
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| request | No | The user's requirement (e.g., speckit: add new user) |
Implementation Reference
- src/index.ts:274-286 (handler)The core handler function for the 'speckit_specify' tool. It constructs a user message prompting the LLM to read a specification template from the commands directory and describe what to build based on the provided request.const userRequest = request || "No specific requirement provided."; return { messages: [ { role: "user", content: { type: "text", text: `Please read the specification template at 'commands/speckit.specify'[Note that if this file exists, it is generally in the current directory's commands/ directory,Scan this folder directly to obtain it,And the suffixes of each project are not consistent: speckit.specify.xxx] [It's important. You must read it]. Combine this template with the User Requirement: '${userRequest}' to describe what to build.`, }, }, ], }; }
- src/index.ts:147-155 (schema)Input schema definition for the 'speckit_specify' tool, specifying a required 'request' string parameter.inputSchema: { type: "object", properties: { request: { type: "string", description: "The user's requirement (e.g., speckit: add new user)", }, }, },
- src/index.ts:144-156 (registration)Tool registration in the tools/list response, including name, description, and input schema.{ name: "speckit_specify", description: "Describe what to build", inputSchema: { type: "object", properties: { request: { type: "string", description: "The user's requirement (e.g., speckit: add new user)", }, }, }, },
- src/index.ts:203-205 (registration)Dispatch case in the CallToolRequestSchema handler that routes 'speckit_specify' calls to the handleSpecify function.case "speckit_specify": result = await this.handleSpecify(commandsPath, args.request as string); break;