{"id":566118,"recorded_at":"2026-10-27T21:59:26.315693Z","observed_at":"2026-10-27T21:59:26.315528Z","subject_kind":"endpoint","subject":"88d46c34-4207-4bee-b12d-84cb261cde55","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":2,"tools":[{"description":"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.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"answers":{"description":"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.","properties":{"accessControl":{"type":"string"},"accessibilityNotes":{"type":"string"},"activeUsers":{"type":"string"},"apiResponseTime":{"type":"string"},"apiStyle":{"type":"string"},"authStrategy":{"type":"string"},"availability":{"type":"string"},"buildTimeline":{"type":"string"},"cicd":{"items":{"type":"string"},"type":"array"},"compliance":{"items":{"type":"string"},"type":"array"},"constraintDescription":{"type":"string"},"customUserType":{"type":"string"},"dataSyncStrategy":{"type":"string"},"databases":{"items":{"type":"string"},"type":"array"},"deploymentTargets":{"items":{"type":"string"},"type":"array"},"designNotes":{"type":"string"},"designSystem":{"type":"string"},"figmaUrl":{"type":"string"},"handle":{"type":"string"},"hasDesignAssets":{"type":"boolean"},"ideAgent":{"type":"string"},"integrations":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"propertyNames":{"type":"string"},"type":"object"},"isNewBuild":{"type":"boolean"},"languageOverride":{"type":"string"},"localDatabases":{"items":{"type":"string"},"type":"array"},"nonGoals":{"type":"string"},"offlineSupport":{"type":"boolean"},"otherApis":{"type":"string"},"platforms":{"items":{"type":"string"},"type":"array"},"projectCategory":{"anyOf":[{"enum":["saas","api","mobile","cli","pipeline","ml","static","docs","extension","library","other"],"type":"string"},{"type":"null"}]},"projectDescription":{"type":"string"},"projectName":{"type":"string"},"realtimeEnabled":{"type":"boolean"},"realtimeTypes":{"items":{"type":"string"},"type":"array"},"scaleTier":{"type":"string"},"securityConcerns":{"items":{"type":"string"},"type":"array"},"specialConsiderations":{"items":{"type":"string"},"type":"array"},"systemPattern":{"type":"string"},"teamSize":{"type":"string"},"technicalConstraints":{"items":{"type":"string"},"type":"array"},"testingStrategy":{"items":{"type":"string"},"type":"array"},"uiStyle":{"type":"string"},"userTypes":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"required":["answers"],"type":"object"},"name":"specpilot_generate_specs"},{"description":"Returns the unanswered SpecPilot onboarding questions of the next incomplete step, gated by the answers so far: questions that do not apply are omitted, and options are filtered, badged or flagged as in the SpecPilot web chat. Stateless: send every answer collected so far on each call.\n\nProcedure: (1) Set `isNewBuild` from whether the repo already has real source code. (2) Infer what the repo answers instead of asking: `platforms` from the manifests and layout, `languageOverride`, `ideAgent` (you are the IDE), `handle` from git config or the origin remote, `projectName` from the manifest or folder name, `projectDescription` from the README only if it plainly says what the project is. (3) Call this tool, answer what the repo makes obvious and ask the developer the rest, a whole step per message. Send an empty value for a declined optional question or it is asked again; send `todoSentinel` verbatim when they do not know yet. For `projectDescription`, an exact returned chip label infers `projectCategory` and gates later questions; free prose infers nothing. Confirm pre-seeded values rather than accepting them silently. (4) Loop until `done` is true, then call specpilot_generate_specs and follow its `nextSteps` for where each file goes.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"answers":{"description":"Every SpecPilot onboarding answer collected so far. The server is stateless, so resend the whole object on every call; omit it entirely on the first call to get step 1.","properties":{"accessControl":{"description":"The access control model.","type":"string"},"accessibilityNotes":{"description":"Anything further on accessibility or constraints, in free text.","type":"string"},"activeUsers":{"description":"Roughly how many active users are expected, as a range.","type":"string"},"apiResponseTime":{"description":"Target API response time.","type":"string"},"apiStyle":{"description":"API style - REST, GraphQL, gRPC or tRPC.","type":"string"},"authStrategy":{"description":"Auth approach - a protocol built in-house (JWT/OAuth/SAML) or a managed service (Clerk, Auth0, Firebase).","type":"string"},"availability":{"description":"Availability SLA target as a fraction of uptime.","type":"string"},"buildTimeline":{"description":"How long the build is expected to take.","type":"string"},"cicd":{"description":"CI/CD practices - automatically running tests and deploying on every change.","items":{"type":"string"},"type":"array"},"compliance":{"description":"Compliance regimes that apply - GDPR, HIPAA, SOC 2. Pick by the actual situation (EU users, health data, payments).","items":{"type":"string"},"type":"array"},"constraintDescription":{"description":"More detail on whatever was named in technicalConstraints.","type":"string"},"customUserType":{"description":"A user type in free text, when none of the userTypes options fit.","type":"string"},"dataSyncStrategy":{"description":"How conflicting local and server state gets reconciled once the device is back online.","type":"string"},"databases":{"description":"Database kinds in use - SQL, NoSQL, cache/key-value, vector. As many as apply.","items":{"type":"string"},"type":"array"},"deploymentTargets":{"description":"Where this ships - cloud hosting, a package registry, a browser store. The option list depends on the project type.","items":{"type":"string"},"type":"array"},"designNotes":{"description":"Notes on the designs.","type":"string"},"designSystem":{"description":"Design system in use.","type":"string"},"figmaUrl":{"description":"Figma link.","type":"string"},"handle":{"description":"The developer GitHub handle. Optional. Infer from git config or the origin remote.","type":"string"},"hasDesignAssets":{"description":"Whether Figma files, a design system or mockups exist.","type":"boolean"},"ideAgent":{"description":"The editor or AI IDE in use - claudecode, cursor, copilot, codex, windsurf. You are the IDE, so set this yourself.","type":"string"},"integrations":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"description":"Third-party integrations keyed by category, e.g. { payments: [\"stripe\"] }. Only categories relevant to the project type apply.","propertyNames":{"type":"string"},"type":"object"},"isNewBuild":{"description":"True for a greenfield project, false when adding onto an existing codebase.","type":"boolean"},"languageOverride":{"description":"Primary language, when it should override what SpecPilot infers from the repo.","type":"string"},"localDatabases":{"description":"On-device stores backing offline support. Leave empty when offline is not needed.","items":{"type":"string"},"type":"array"},"nonGoals":{"description":"What this project explicitly will NOT do.","type":"string"},"offlineSupport":{"description":"Whether this has to work offline. Set automatically when localDatabases is non-empty.","type":"boolean"},"otherApis":{"description":"External APIs or services not covered by integrations.","type":"string"},"platforms":{"description":"Platforms this should run on, e.g. web, ios, android, desktop. Infer from the dependency manifests and repo layout.","items":{"type":"string"},"type":"array"},"projectCategory":{"anyOf":[{"enum":["saas","api","mobile","cli","pipeline","ml","static","docs","extension","library","other"],"type":"string"},{"type":"null"}],"description":"Project archetype. Normally inferred from projectDescription when it exactly matches a returned chip label - send it only if you already know it."},"projectDescription":{"description":"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.","type":"string"},"projectName":{"description":"Short name for the project. Required by specpilot_generate_specs. Infer from the package manifest or the folder name.","type":"string"},"realtimeEnabled":{"description":"Whether anything updates live without a refresh. Set automatically when realtimeTypes is non-empty.","type":"boolean"},"realtimeTypes":{"description":"Realtime transports - WebSockets, SSE, polling. Leave empty when nothing needs to update live.","items":{"type":"string"},"type":"array"},"scaleTier":{"description":"Expected scale of the system.","type":"string"},"securityConcerns":{"description":"Security measures to plan for - encryption, rate limiting, audit logging.","items":{"type":"string"},"type":"array"},"specialConsiderations":{"description":"Cross-cutting concerns that apply, such as accessibility, internationalisation or offline support.","items":{"type":"string"},"type":"array"},"systemPattern":{"description":"Architecture pattern - monolith, modular monolith, or microservices.","type":"string"},"teamSize":{"description":"How many people are building this.","type":"string"},"technicalConstraints":{"description":"Hard constraints - budget, existing infrastructure, legacy systems, a fixed deadline.","items":{"type":"string"},"type":"array"},"testingStrategy":{"description":"Testing approaches this project will use.","items":{"type":"string"},"type":"array"},"uiStyle":{"description":"Preferred UI style.","type":"string"},"userTypes":{"description":"Who is going to use this system, e.g. end users, admins, internal staff.","items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},"name":"specpilot_next_questions"}]},"body_sha256":"12c62748d3416948b90ae7b9130c13e8944d2a8c529edd2958014ad10ad00483","prev_id":null,"leaf":"0xc8860795fd0cc557dfabc53d12a3e9fe8ea092012100a7bb41a922efa9b503cb","leaf_text":"{\"body\":\"12c62748d3416948b90ae7b9130c13e8944d2a8c529edd2958014ad10ad00483\",\"id\":566118,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793138366315528,\"prev\":null,\"subject\":\"88d46c34-4207-4bee-b12d-84cb261cde55\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-27","leaves":273461,"root":"0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795","chained":"0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4","anchor_chain":"eip155:5042002","anchor_tx":"0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4","anchor_block":69414147},"proof":["0xc886042ef63dfc31024771146f68490d9cfc234c569d8c957f22de7adf571d75","0xcf0e28305c4f014239df5f0e6af9189cd0a29b41f029d965965a05934b46f177","0x3691a0fbf85afdae9cb4cb7b07b8e345fb3c2388fd2ce1f7189e60d3846bb62c","0x3837dc172c70022be3ab8a8a7790d9b7f611802e53a0a0fc4cef9aab77104fea","0xf976a0e94218a758668ae3659048972238f22f19abaf577ed27519f874bd9db3","0x3e18e6c8e134ec136e2e338e2e4ddc572422784abf6c6f799906f27b83cd971e","0xea38ff15278666052d17e8a82bd39aec1515070f940c44aa7455f708fb4a7961","0xbff69b5a449426746fb87521b989542f04660b2c072d72a1de40b715614097ff","0x9d79fcbf85b18acafae8fbf8f715e557ee2a4a7e98ac6b2b40db37c6fe25c9f3","0xc07f68881be9c6fd04904f0cba37bbbe3a2a90327d812665083d299dcb343ba7","0x057a79dae7284d2b0542272663bf1bcad5f3c4a13e38a7fdd7392ad650b50c86","0xd16d7e5f125e1d777c4add2d34626605aa2a6b03288469395f9c1f401de8e9e1","0x938752e9acd199cd15f468392bc2dd8eefc52293e7144e30b87b241ca6b2513b","0xcc49fd573532e5a29f5be4033f62a2eff71456c020bd2258312b98e95cfe301e","0x969cd44e5a4e8dc3110540398fbf689659eb51df735c1cda5d8f021ef9ff5683","0xa94627de1af0e823832e05a9069b304ecccb8c0cdb8f9cfc4f2039bfb9799dc5","0xdf1105afdc109de3c09a98fc8a3864159ad964e6f49b635c105a27a1e1f14310","0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197","0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699"]}