Skip to main content
Glama

SpecPilot: generate the .specs/ files

specpilot_generate_specs
Read-onlyIdempotent

Generates the complete SpecPilot .specs/ file set plus the matching IDE rules and slash-command files from a full answer set - identical to what the SpecPilot web chat produces for the same answers. Requires projectName and projectDescription. Returns the files to write and the steps to follow after writing them.

Input Schema

NameRequiredDescriptionDefault
answersYesThe complete SpecPilot answer set to generate from - everything collected through specpilot_next_questions, whose schema describes each field. projectName and projectDescription are required; every other field falls back to a sensible default.

Output Schema

NameRequiredDescriptionDefault
filesYesEvery file to write - spec files, the .specs/ README, and IDE or repository config.
fileCountYesHow many files were generated.
nextStepsYesWhat to do after writing the files, including where each path belongs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed39 schema fields changed
    • changedInput schema / properties / answers / description
      Previous value: -"The complete SpecPilot answer set to generate from - everything collected through specpilot_next_questions. projectName and projectDescription are required; every other field falls back to a sensible default."New value: +"The complete SpecPilot answer set to generate from - everything collected through specpilot_next_questions, whose schema describes each field. projectName and projectDescription are required; every other field falls back to a sensible default."
    • removedInput schema / properties / answers / properties / accessControl / description
      Removed value: -"The access control model. Drives the security spec auth/authorization section and the permission model."
    • removedInput schema / properties / answers / properties / accessibilityNotes / description
      Removed value: -"Anything further on accessibility or constraints, in free text."
    • removedInput schema / properties / answers / properties / activeUsers / description
      Removed value: -"Roughly how many active users are expected, as a range."
    • removedInput schema / properties / answers / properties / apiResponseTime / description
      Removed value: -"Target API response time."
    • removedInput schema / properties / answers / properties / apiStyle / description
      Removed value: -"API style - REST, GraphQL, gRPC or tRPC. Shapes how the architecture spec documents client-server communication."
    • removedInput schema / properties / answers / properties / authStrategy / description
      Removed value: -"Auth approach - a protocol built in-house (JWT/OAuth/SAML) or a managed service (Clerk, Auth0, Firebase). Feeds the security spec."
    • removedInput schema / properties / answers / properties / availability / description
      Removed value: -"Availability SLA target as a fraction of uptime; higher percentages allow far less downtime per year."
    • removedInput schema / properties / answers / properties / buildTimeline / description
      Removed value: -"How long the build is expected to take."
    • removedInput schema / properties / answers / properties / cicd / description
      Removed value: -"CI/CD practices - automatically running tests and deploying on every change."
    • removedInput schema / properties / answers / properties / compliance / description
      Removed value: -"Compliance regimes that apply - GDPR, HIPAA, SOC 2. Pick by the actual situation (EU users, health data, payments), since getting it wrong has legal consequences."
    • removedInput schema / properties / answers / properties / constraintDescription / description
      Removed value: -"More detail on whatever was named in technicalConstraints."
    • removedInput schema / properties / answers / properties / customUserType / description
      Removed value: -"A user type in free text, when none of the userTypes options fit."
    • removedInput schema / properties / answers / properties / dataSyncStrategy / description
      Removed value: -"How conflicting local and server state gets reconciled once the device is back online."
    • removedInput schema / properties / answers / properties / databases / description
      Removed value: -"Database kinds in use - SQL, NoSQL, cache/key-value, vector. As many as apply."
    • removedInput schema / properties / answers / properties / deploymentTargets / description
      Removed value: -"Where this ships - cloud hosting, a package registry, a browser store. The option list depends on the project type."
    • removedInput schema / properties / answers / properties / handle / description
      Removed value: -"The developer GitHub handle. Optional; it namespaces generated task IDs (e.g. CD-jsmith-001). Infer from git config or the origin remote."
    • removedInput schema / properties / answers / properties / ideAgent / description
      Removed value: -"The editor or AI IDE in use - claudecode, cursor, copilot, codex, windsurf. You are the IDE, so set this yourself; it decides which rules and config files are generated."
    • removedInput schema / properties / answers / properties / integrations / description
      Removed value: -"Third-party integrations keyed by category, e.g. { payments: [\"stripe\"] }. Only categories relevant to the project type apply."
    • removedInput schema / properties / answers / properties / isNewBuild / description
      Removed value: -"True for a greenfield project, false when adding onto an existing codebase. Decides which onboarding analysis is generated at the end."
    • removedInput schema / properties / answers / properties / languageOverride / description
      Removed value: -"Primary language, when it should override what SpecPilot infers from the repo."
    • removedInput schema / properties / answers / properties / localDatabases / description
      Removed value: -"On-device stores backing offline support. Leave empty when offline is not needed."
    • removedInput schema / properties / answers / properties / nonGoals / description
      Removed value: -"What this project explicitly will NOT do. Becomes the non-goals section of the specs."
    • removedInput schema / properties / answers / properties / offlineSupport / description
      Removed value: -"Whether this has to work offline. Set automatically when localDatabases is non-empty."
    • removedInput schema / properties / answers / properties / otherApis / description
      Removed value: -"External APIs or services not covered by integrations."
    • removedInput schema / properties / answers / properties / platforms / description
      Removed value: -"Platforms this should run on, e.g. web, ios, android, desktop. Infer from the dependency manifests and repo layout."
    • removedInput schema / properties / answers / properties / projectCategory / description
      Removed value: -"Project archetype. Normally inferred from projectDescription when it exactly matches a returned chip label - send it only if you already know it."
    • removedInput schema / properties / answers / properties / projectDescription / description
      Removed value: -"One line saying what the project is. Required by specpilot_generate_specs. Sending one of the chip labels returned by specpilot_next_questions verbatim is what infers projectCategory and gates every later question; free prose infers nothing."
    • removedInput schema / properties / answers / properties / projectName / description
      Removed value: -"Short name for the project. Required by specpilot_generate_specs. Infer from the package manifest or the folder name."
    • removedInput schema / properties / answers / properties / realtimeEnabled / description
      Removed value: -"Whether anything updates live without a refresh. Set automatically when realtimeTypes is non-empty."
    • removedInput schema / properties / answers / properties / realtimeTypes / description
      Removed value: -"Realtime transports - WebSockets, SSE, polling. Leave empty when nothing needs to update live."
    • removedInput schema / properties / answers / properties / scaleTier / description
      Removed value: -"Expected scale of the system. Drives infrastructure and architecture choices."
    • removedInput schema / properties / answers / properties / securityConcerns / description
      Removed value: -"Security measures to plan for - encryption, rate limiting, audit logging."
    • removedInput schema / properties / answers / properties / specialConsiderations / description
      Removed value: -"Cross-cutting concerns that apply, such as accessibility, internationalisation or offline support."
    • removedInput schema / properties / answers / properties / systemPattern / description
      Removed value: -"Architecture pattern - monolith, modular monolith, or microservices."
    • removedInput schema / properties / answers / properties / teamSize / description
      Removed value: -"How many people are building this."
    • removedInput schema / properties / answers / properties / technicalConstraints / description
      Removed value: -"Hard constraints - budget, existing infrastructure, legacy systems, a fixed deadline."
    • removedInput schema / properties / answers / properties / testingStrategy / description
      Removed value: -"Testing approaches this project will use."
    • removedInput schema / properties / answers / properties / userTypes / description
      Removed value: -"Who is going to use this system, e.g. end users, admins, internal staff."
  2. Changed2 schema fields changed
    • addedInput schema / properties / answers / description
      Added value: +"The complete SpecPilot answer set to generate from - everything collected through specpilot_next_questions. projectName and projectDescription are required; every other field falls back to a sensible default."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "fileCount": {
      +      "description": "How many files were generated.",
      +      "type": "number"
      +    },
      +    "files": {
      +      "description": "Every file to write - spec files, the .specs/ README, and IDE or repository config.",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "content": {
      +            "description": "Full file contents to write verbatim.",
      +            "type": "string"
      +          },
      +          "path": {
      +            "description": "Path to write, relative to the repository root. Do not rename it.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "path",
      +          "content"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "nextSteps": {
      +      "description": "What to do after writing the files, including where each path belongs.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "files",
      +    "fileCount",
      +    "nextSteps"
      +  ],
      +  "type": "object"
      +}
  3. Changed38 schema fields changed
    • addedInput schema / properties / answers / properties / accessControl / description
      Added value: +"The access control model. Drives the security spec auth/authorization section and the permission model."
    • addedInput schema / properties / answers / properties / accessibilityNotes / description
      Added value: +"Anything further on accessibility or constraints, in free text."
    • addedInput schema / properties / answers / properties / activeUsers / description
      Added value: +"Roughly how many active users are expected, as a range."
    • addedInput schema / properties / answers / properties / apiResponseTime / description
      Added value: +"Target API response time."
    • addedInput schema / properties / answers / properties / apiStyle / description
      Added value: +"API style - REST, GraphQL, gRPC or tRPC. Shapes how the architecture spec documents client-server communication."
    • addedInput schema / properties / answers / properties / authStrategy / description
      Added value: +"Auth approach - a protocol built in-house (JWT/OAuth/SAML) or a managed service (Clerk, Auth0, Firebase). Feeds the security spec."
    • addedInput schema / properties / answers / properties / availability / description
      Added value: +"Availability SLA target as a fraction of uptime; higher percentages allow far less downtime per year."
    • addedInput schema / properties / answers / properties / buildTimeline / description
      Added value: +"How long the build is expected to take."
    • addedInput schema / properties / answers / properties / cicd / description
      Added value: +"CI/CD practices - automatically running tests and deploying on every change."
    • addedInput schema / properties / answers / properties / compliance / description
      Added value: +"Compliance regimes that apply - GDPR, HIPAA, SOC 2. Pick by the actual situation (EU users, health data, payments), since getting it wrong has legal consequences."
    • addedInput schema / properties / answers / properties / constraintDescription / description
      Added value: +"More detail on whatever was named in technicalConstraints."
    • addedInput schema / properties / answers / properties / customUserType / description
      Added value: +"A user type in free text, when none of the userTypes options fit."
    • addedInput schema / properties / answers / properties / dataSyncStrategy / description
      Added value: +"How conflicting local and server state gets reconciled once the device is back online."
    • addedInput schema / properties / answers / properties / databases / description
      Added value: +"Database kinds in use - SQL, NoSQL, cache/key-value, vector. As many as apply."
    • addedInput schema / properties / answers / properties / deploymentTargets / description
      Added value: +"Where this ships - cloud hosting, a package registry, a browser store. The option list depends on the project type."
    • addedInput schema / properties / answers / properties / handle / description
      Added value: +"The developer GitHub handle. Optional; it namespaces generated task IDs (e.g. CD-jsmith-001). Infer from git config or the origin remote."
    • addedInput schema / properties / answers / properties / ideAgent / description
      Added value: +"The editor or AI IDE in use - claudecode, cursor, copilot, codex, windsurf. You are the IDE, so set this yourself; it decides which rules and config files are generated."
    • addedInput schema / properties / answers / properties / integrations / description
      Added value: +"Third-party integrations keyed by category, e.g. { payments: [\"stripe\"] }. Only categories relevant to the project type apply."
    • addedInput schema / properties / answers / properties / isNewBuild / description
      Added value: +"True for a greenfield project, false when adding onto an existing codebase. Decides which onboarding analysis is generated at the end."
    • addedInput schema / properties / answers / properties / languageOverride / description
      Added value: +"Primary language, when it should override what SpecPilot infers from the repo."
    • addedInput schema / properties / answers / properties / localDatabases / description
      Added value: +"On-device stores backing offline support. Leave empty when offline is not needed."
    • addedInput schema / properties / answers / properties / nonGoals / description
      Added value: +"What this project explicitly will NOT do. Becomes the non-goals section of the specs."
    • addedInput schema / properties / answers / properties / offlineSupport / description
      Added value: +"Whether this has to work offline. Set automatically when localDatabases is non-empty."
    • addedInput schema / properties / answers / properties / otherApis / description
      Added value: +"External APIs or services not covered by integrations."
    • addedInput schema / properties / answers / properties / platforms / description
      Added value: +"Platforms this should run on, e.g. web, ios, android, desktop. Infer from the dependency manifests and repo layout."
    • addedInput schema / properties / answers / properties / projectCategory / description
      Added value: +"Project archetype. Normally inferred from projectDescription when it exactly matches a returned chip label - send it only if you already know it."
    • addedInput schema / properties / answers / properties / projectDescription / description
      Added value: +"One line saying what the project is. Required by specpilot_generate_specs. Sending one of the chip labels returned by specpilot_next_questions verbatim is what infers projectCategory and gates every later question; free prose infers nothing."
    • addedInput schema / properties / answers / properties / projectName / description
      Added value: +"Short name for the project. Required by specpilot_generate_specs. Infer from the package manifest or the folder name."
    • addedInput schema / properties / answers / properties / realtimeEnabled / description
      Added value: +"Whether anything updates live without a refresh. Set automatically when realtimeTypes is non-empty."
    • addedInput schema / properties / answers / properties / realtimeTypes / description
      Added value: +"Realtime transports - WebSockets, SSE, polling. Leave empty when nothing needs to update live."
    • addedInput schema / properties / answers / properties / scaleTier / description
      Added value: +"Expected scale of the system. Drives infrastructure and architecture choices."
    • addedInput schema / properties / answers / properties / securityConcerns / description
      Added value: +"Security measures to plan for - encryption, rate limiting, audit logging."
    • addedInput schema / properties / answers / properties / specialConsiderations / description
      Added value: +"Cross-cutting concerns that apply, such as accessibility, internationalisation or offline support."
    • addedInput schema / properties / answers / properties / systemPattern / description
      Added value: +"Architecture pattern - monolith, modular monolith, or microservices."
    • addedInput schema / properties / answers / properties / teamSize / description
      Added value: +"How many people are building this."
    • addedInput schema / properties / answers / properties / technicalConstraints / description
      Added value: +"Hard constraints - budget, existing infrastructure, legacy systems, a fixed deadline."
    • addedInput schema / properties / answers / properties / testingStrategy / description
      Added value: +"Testing approaches this project will use."
    • addedInput schema / properties / answers / properties / userTypes / description
      Added value: +"Who is going to use this system, e.g. end users, admins, internal staff."
  4. First observed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description usefully corroborates that this does not write to disk by saying it "returns the files to write and the steps to follow after writing them" - a real post-condition detail the annotations cannot express. It does not cover size/volume of the file set or any failure modes when answers are incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: what is produced, what is required, and what comes back. Front-loaded with the outcome and no redundant restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter generation tool with full schema coverage, an output schema, and explicit annotations, the description covers what is produced, the input precondition, and the follow-up action required after the call. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single `answers` object documents each field, so baseline is 3. The description's note that projectName and projectDescription are required is genuinely useful because the top-level schema only requires `answers`, but that same requirement is already stated in the schema's nested description, so it adds little net new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and a concrete set of artifacts: the SpecPilot .specs/ file set plus matching IDE rules and slash-command files. It also anchors the output to a known reference ("identical to what the SpecPilot web chat produces"), so an agent knows exactly what it is asking for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"from a full answer set" plus "Requires projectName and projectDescription" establishes the precondition clearly, which is what routes an agent here after collecting answers. It never names specpilot_next_questions as the prerequisite step or states when not to use it, so the alternative relationship is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.