How to Write a Prompt That Gets a Usable Scope of Work
Why this matters
A scope of work is the paragraph a customer argues with six weeks later. "I thought the new valve was included." "Nobody said the drywall was mine." If an AI tool writes it from a one-line request, you get something that sounds thorough and commits to nothing, or worse, commits to things your tech never said. The fix is not a better tool. It is a better prompt: one that hands the model your facts, your boundaries and your format, so it is arranging what you know instead of inventing what a scope usually contains.
Why this works at all is the mechanism card's job: the model writes the most predictable text for what it can see, so what you put in front of it decides what comes out. See related: What a Language Model Is Actually Doing When It Answers.
The four elements, and what each one changes
A usable prompt has four parts. Each one closes a specific gap the model would otherwise fill with guesses.
- Role and audience decide the vocabulary and the level of detail.
- Facts decide what the scope is about. Without them the model writes an average scope for the job type.
- Constraints decide what it must not do: invent prices, cite code, promise dates, include work you are not doing.
- Format decides whether the output drops straight into your estimate or needs rebuilding.
There is a fifth instruction that costs one line and saves the most trouble: tell it what to do when a fact is missing. By default it fills the gap. You want it to flag the gap.
Worked example: the same job, two prompts
The job: a residential gas water heater replacement. The tech's notes from the site visit say 50 gallon atmospheric-vent gas unit in the garage, sitting on an 18 inch stand, no thermal expansion tank, relief valve discharge pipe ends about a foot above the floor of the stand rather than near the garage floor, permit required in this town, customer wants the old unit hauled away, customer wants a quote by Friday.
WEAK PROMPT
Write a scope of work for a water heater replacement.
ANSWER (excerpt)
We will remove your existing water heater and install
a new high-efficiency unit to code. Includes all
necessary materials, venting and connections. Job
includes a 6-year parts warranty. Work typically
completed in 4 to 6 hours.
REWRITTEN PROMPT
You are drafting the scope section of a plumbing
estimate for a homeowner. Plain words, no jargon.
FACTS: replace 50 gal atmospheric-vent gas heater,
garage, existing 18 in stand. Add thermal expansion
tank. Extend relief discharge line to within 6 in of
floor. Pull permit. Haul away old unit.
RULES: no prices, no warranty terms, no durations,
no code section numbers. Do not add any work not in
FACTS. If something a homeowner would ask about is
not covered, list it under QUESTIONS FOR THE OFFICE.
FORMAT: headings INCLUDED, NOT INCLUDED, YOU PROVIDE,
QUESTIONS FOR THE OFFICE. Bullets, one line each.
ANSWER (excerpt)
INCLUDED
- Remove and haul away your current water heater
- Install a new 50 gallon gas water heater on the
existing stand
- Add a thermal expansion tank
- Extend the relief valve drain line to near the floor
- Obtain the town permit and schedule the inspection
NOT INCLUDED
- Changes to the gas line beyond the heater connection
YOU PROVIDE
- Clear access to the garage on install day
QUESTIONS FOR THE OFFICE
- Is the stand being reused as-is or replaced?
- Who attends the inspection?
Look at what the weak answer did. "High-efficiency unit" is an upsell nobody quoted; "to code" is a promise with no code named and no way to check; "all necessary materials, venting and connections" is the sentence that becomes a dispute when the vent connector turns out to need replacing; the 6-year warranty and the 4 to 6 hours are invented. Every one of those is a commitment the shop never made, in the document that defines what the shop committed to.
The rewritten answer is narrower and better. It contains only work the tech found, and its two questions are real gaps in the tech's notes: the notes say the unit sits on a stand, not whether the stand stays, and nobody decided who meets the inspector. Those are exactly the details that turn into "I assumed you were." The model did not know the answers. It was told to say so, and it did.
Step 1: Give it a role and a reader
Write one sentence saying what the output is and who reads it: "You are drafting the scope section of a plumbing estimate for a homeowner." The role sets the register: a scope for a general contractor can say "replace like-for-like, reconnect to existing vent"; a scope for a homeowner has to say what that means. The reader sets the detail level.
What breaks if you skip it: the model picks a register on its own, usually a marketing voice ("our expert technicians"), because marketing copy about water heaters is far more common in what it learned from than plain scope sections are.
Step 2: Paste the facts, in the tech's terms
Copy the tech's findings and the agreed work, close to word for word. Measurements stay as measurements: "18 in stand", not "raised stand." Things the tech recommended but the customer has not agreed to go in a separate line marked as options, or stay out.
Strip anything that identifies the customer before it goes in. Names, address and phone are filled in afterwards from the job record. The rules for what may go into an AI tool belong to the shop policy; see related: The Shop AI Use Policy SOP.
What breaks if you skip it: the model writes the average scope for "water heater replacement." That average includes things your job does not (a new vent connector, a drain pan, a gas shutoff) and omits things it does (the expansion tank, the relief line). The output still reads complete, which is why this failure is easy to miss.
Step 3: State the constraints as rules it must follow
Four rules carry most of the value for a scope:
- No prices. Your price book sets them; a model computing or recalling a figure is guessing.
- No warranty terms or durations. Both are commitments, and both vary by the unit and the crew.
- No code section numbers. A scope can say "permit and inspection included"; it should not cite a section, because cited sections are where models invent most confidently. See related: The AI Quoted a Code Section That Does Not Exist.
- No work that is not in the facts. Say it in exactly those words.
Then add the gap instruction: "If something a homeowner would ask about is not covered, list it under QUESTIONS FOR THE OFFICE." This turns the model's habit of filling gaps into a list of gaps, which is the most useful thing it produced in the example above.
What breaks if you skip it: the model includes whatever usually appears in documents of this shape. Warranties and durations appear in most published estimates, so they appear in yours.
Step 4: Specify the exact format
Name the headings, the bullet style and the line length. Use the headings your estimate template already has, in the order it has them. "INCLUDED / NOT INCLUDED / YOU PROVIDE" is a strong default for residential scopes because the middle heading is where disputes are prevented: a line saying "changes to the gas line beyond the heater connection" are not included is cheap to write and expensive to be missing.
What breaks if you skip it: you get paragraphs, which you then reformat by hand, and during the reformatting you stop reading critically. Format is not cosmetic; it decides whether review is a read-through or a rewrite.
Step 5: Check it like any other AI output
Go through the answer line by line against the tech's notes. Every INCLUDED line must trace to a fact you supplied. Any line that does not trace is the model adding work, and it comes out. Answer each QUESTION FOR THE OFFICE before the scope goes to the customer, either by asking the tech or by adding a line to NOT INCLUDED.
In the example, two lines needed attention. "Install a new 50 gallon gas water heater" is fine. "Extend the relief valve drain line to near the floor" softened the tech's "within 6 in of floor"; put the measurement back, because "near" is what an inspector and a customer will read differently. The general standard for checking specifics belongs to: The Verify-Before-You-Send Rule for AI Output.
What breaks if you skip it: the scope looks like your scope, so it gets sent. The model's additions are indistinguishable from yours on the page.
What changes the approach
- A commercial or GC customer. Drop "plain words" and allow trade terms; add a line asking for exclusions in their standard form. The constraints stay.
- A job with options. Give each option its own FACTS block and ask for a separate INCLUDED list per option. One mixed list is how a customer ends up believing the premium option's extras came with the basic one.
- A repeat job type. Once a prompt produces clean scopes three times running, save it to the shop's prompt library rather than retyping it. See related: Building a Shop Prompt Library the Office Will Actually Use.
How to tell the prompt is working
Take the last three AI-drafted scopes and count lines in INCLUDED that do not trace to the tech's notes. A working prompt produces zero; one or more means a constraint is missing or the facts were too thin. Then count the QUESTIONS FOR THE OFFICE. A good prompt on a real job usually produces one to three. Zero questions every time suggests the model is filling gaps quietly rather than flagging them, and the gap instruction needs to be louder or moved to the end of the prompt, where it competes with less text.
References
- See related: What a Language Model Is Actually Doing When It Answers
- See related: The Verify-Before-You-Send Rule for AI Output
- See related: Building a Shop Prompt Library the Office Will Actually Use
- See related: Using AI to Check an Estimate, Not to Build It