{"name":"turn-chat-into-spec-prompt","description":"A prompt that turns a conversation you already had with an AI into a written spec without another interview - problem, solution, numbered user stories, implementation and testing decisions, and what is out of scope - ready to paste into an issue. Use when you have talked a feature through and want it written up as a spec or ticket.","category":"writing-prompts","tags":["spec","planning","issues"],"models":["any"],"proven":false,"passing_families":0,"model_testing":"Not yet model-tested; testing Jan 2027","url":"https://theskillvault.ai/skills/turn-chat-into-spec-prompt","api_url":"https://theskillvault.ai/api/skills/turn-chat-into-spec-prompt","raw_url":"https://theskillvault.ai/api/skills/turn-chat-into-spec-prompt/raw","body":"# Turn a chat into a spec (prompt)\n\nYou have already talked a feature through. This prompt writes up what was decided, without asking you everything again.\n\n## When to use\n- A long chat with an AI has settled what to build.\n- You need a spec or issue for a teammate or a coding agent.\n- You want decisions captured before the chat is lost.\n\n## When not to use\n- Nothing has been discussed yet. Use write-prd-prompt, which interviews you.\n\n## Steps\n1. Paste the prompt at the end of the same conversation (or paste the chat after it).\n2. Check the user stories and out-of-scope list carefully.\n3. Paste the spec into an issue or save it as `docs/specs/name.md`.\n\n## Prompt\n```text\nTurn our conversation so far into a spec. Do not interview me; use only what we discussed and what you can see in the code. Mark gaps as \"Open question\".\n\n## Problem\nThe user's problem, in their words.\n\n## Solution\nWhat we will build, from the user's point of view.\n\n## User stories\nA numbered list: \"As a <who>, I want <what>, so that <why>.\" Cover edge cases and errors, not just the happy path.\n\n## Implementation decisions\nModules to build or change, interfaces, data or schema changes, API contracts and key choices made. No file paths or code unless a snippet states a decision exactly.\n\n## Testing decisions\nWhat behaviour will be tested and at which level; test behaviour, not internals.\n\n## Out of scope\nWhat we agreed not to do.\n\n## Open questions\nAnything undecided.\n```\n\n## How to adapt\n- Writing for a coding agent? Add \"keep each user story small enough for one pull request\".\n- Need tickets too? Follow with write-plan-and-tickets-prompt.\n\n## Gotchas\n- The AI may fill gaps with guesses. Anything not discussed should appear under open questions.\n- Remove customer names and private data before posting to a public issue tracker.\n\n## Portability\nWorks with any chat AI and any issue tracker (GitHub, Linear, Jira). No tool lock-in.\n\n## Done when\n- The spec covers problem, solution, user stories, decisions, tests and scope.\n- Open questions are listed rather than guessed.\n\n## Example prompt\n\"We have talked through the team invites feature. Turn this chat into a spec I can paste into a GitHub issue.\"\n\n---\nAdapted from \"to-spec\" in mattpocock/skills (MIT, Copyright (c) 2026 Matt Pocock). See LICENSE.txt.","files":["LICENSE.txt"],"license":"MIT","license_name":"MIT License","license_url":"https://opensource.org/license/mit","attribution":"Based on work by Matt Pocock (mattpocock/skills, to-spec) (Copyright (c) 2026 Matt Pocock, MIT License), https://github.com/mattpocock/skills/tree/a496f5513d4a4cf889bc48e189e579f4b0bdf6aa/skills/engineering/to-spec; adapted by TheSkillVault, https://theskillvault.ai","install":{"claude_code":"curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/turn-chat-into-spec-prompt/raw' -o ~/'.claude/skills/turn-chat-into-spec-prompt/SKILL.md' && curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/turn-chat-into-spec-prompt/files/LICENSE.txt' -o ~/'.claude/skills/turn-chat-into-spec-prompt/LICENSE.txt'","cursor":"curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/turn-chat-into-spec-prompt/raw' -o '.cursor/skills/turn-chat-into-spec-prompt/SKILL.md' && curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/turn-chat-into-spec-prompt/files/LICENSE.txt' -o '.cursor/skills/turn-chat-into-spec-prompt/LICENSE.txt'","agents":"curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/turn-chat-into-spec-prompt/raw' -o '.agents/skills/turn-chat-into-spec-prompt/SKILL.md' && curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/turn-chat-into-spec-prompt/files/LICENSE.txt' -o '.agents/skills/turn-chat-into-spec-prompt/LICENSE.txt'","mcp_url":"https://theskillvault.ai/mcp","cursor_mcp_deeplink":"cursor://anysphere.cursor-deeplink/mcp/install?name=theskillvault&config=eyJ1cmwiOiJodHRwczovL3RoZXNraWxsdmF1bHQuYWkvbWNwIn0%3D","mcp_config":{"mcpServers":{"theskillvault":{"url":"https://theskillvault.ai/mcp"}}}},"bundles":[],"tested_on":[{"family":"chatgpt","name":"ChatGPT","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"claude","name":"Claude","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"gemini","name":"Gemini","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"grok","name":"Grok","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"llama","name":"Llama","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"deepseek","name":"DeepSeek","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"mistral","name":"Mistral","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"qwen","name":"Qwen","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"kimi","name":"Kimi K","outcome":null,"date":null,"source":null,"counts":false,"stale":false}],"proven_rule":{"threshold":5,"window_days":365,"computed_at":"2026-11-02T03:20:33.817Z"}}