Skip to content
Spec

Spec prompts

Writing it down so it survives contact with engineering.

The stage

The stage where a decision becomes a document specific enough that two people would build the same thing from it.

  1. 01

    Draft acceptance criteria that could actually fail

    A feature description exists but the acceptance criteria are still vague enough that two engineers would build different things.

    The prompt
    I'm going to describe a feature. Write acceptance criteria as a numbered list, where every single criterion is something a QA tester could concretely fail: it names a specific input, a specific expected output, and where relevant a measurable threshold (a time limit, a count, an error rate).
    
    Do not write a criterion using words like "should feel," "intuitive," "smooth," or "graceful" unless you immediately follow it with the concrete, testable condition that word is standing in for. If you can't make a criterion concrete, flag it as a question for me rather than writing a vague version.
    
    Feature: [describe the feature]
    Where it lets you down

    Asked for acceptance criteria, it produces some that read as specific but are actually untestable, like "errors are handled gracefully," because that phrase sounds concrete without naming an actual condition. Read every criterion and ask what a tester would type in a bug report to prove it false. Rewrite any you can't answer for.

  2. 02

    Find the missing non-goal

    A PRD's scope section only lists what's being built, and the review meeting is where scope creep usually starts.

    The prompt
    Here is a PRD's problem statement and proposed solution. Based on how similar features usually expand during a build, list 5 to 8 specific adjacent things someone on the team might reasonably assume are included, but that are not explicitly stated as in scope.
    
    For each one, phrase it as a non-goal statement I could add directly to the document, for example "Out of scope: [specific thing], because [one clause reason]." Prioritise the ones most likely to come up in the first engineering review meeting, not the most exotic edge cases.
    
    Problem and solution: [paste your PRD's problem and solution sections]
    Where it lets you down

    It lists non-goals that are too obvious to need stating ("out of scope: rewriting the entire app") instead of the genuinely tempting adjacent scope a team would actually reach for mid-sprint. Push it to name the non-goal that someone on your specific team would actually raise in a planning meeting.

  3. 03

    Turn a Slack thread into a first draft PRD

    A decision got made across forty messages in a thread and now it needs to exist as one document.

    The prompt
    Below is a Slack thread where a product decision was worked out in conversation. Turn it into a first draft one page PRD with four sections: Problem (with any evidence mentioned in the thread), Solution and non-goals, Acceptance criteria, Rollout and risk.
    
    Only include claims that are actually supported by something said in the thread. Where the thread doesn't settle a question needed for one of these sections, write "OPEN QUESTION:" followed by what needs deciding, instead of inventing an answer.
    
    Thread:
    [paste the Slack thread]
    Where it lets you down

    It fills gaps in the thread with plausible-sounding specifics that were never actually said, quietly turning an unresolved question into a stated decision. Search the draft for every specific number or decision and confirm it actually appears in the thread, not just something reasonable the thread implies.

  4. 04

    Write the edge cases a happy-path spec is missing

    A spec describes the feature working correctly and hasn't yet described what happens when something goes wrong.

    The prompt
    Here is a feature spec that describes the intended, working behaviour. List the edge cases and failure states it doesn't address: empty input, a duplicate submission, a slow or failed network call, a user who does the steps out of order, and a user who already has the end state this feature is meant to create.
    
    For each edge case, propose the specific behaviour rather than just naming that it's missing, so it can be added directly to the acceptance criteria.
    
    Spec: [paste your spec]
    Where it lets you down

    It surfaces generic edge cases ("handle network errors") without specifying what should actually happen, leaving the same ambiguity the exercise was meant to remove. Push it to state the exact behaviour for each case, in the same testable format as your other acceptance criteria.

  5. 05

    Translate a spec into a QA test plan

    The spec is done and needs to become something a tester can actually execute against, not just read.

    The prompt
    Turn this spec's acceptance criteria into a QA test plan. For each criterion, write: the exact steps to reproduce, the expected result, and one variant of the input that's likely to break it if the implementation is subtly wrong (a boundary value, an unusual but valid input, a repeat of the same action).
    
    Format as a table: Test ID, Steps, Expected result, Notes. Do not write a test that just restates the acceptance criterion as a question; write the actual steps a person would follow with the actual product.
    
    Spec: [paste your acceptance criteria]
    Where it lets you down

    It writes tests that just rephrase the acceptance criterion ("verify search is fast") instead of concrete, repeatable steps a tester could follow without asking you what to do. Check that each row could be handed to someone who has never seen the spec and still be executable.

  6. 06

    Size the spec before you commit to a sprint

    Before a spec goes into planning, to catch the parts that will blow the estimate before an engineer has to say so out loud.

    The prompt
    Here is a feature spec. Without giving me a time estimate (you don't know our codebase), identify which parts of this spec are likely to be the most expensive to build, based on common patterns: anything touching data migration, anything requiring a new third party integration, anything with a real-time or performance requirement, and anything that changes an existing, already-shipped flow rather than being purely additive.
    
    For each expensive-looking part, suggest a smaller first version that would let us ship and learn before committing to the full scope.
    
    Spec: [paste your spec]
    Where it lets you down

    It sometimes still guesses at time estimates despite the instruction, stating a number of days or sprints with false confidence and no visibility into your actual codebase or team. Ignore any estimate it gives and use only the qualitative flags: what's expensive in kind, not in days.