
Proposal / Statement of Work
Draft a client proposal or statement of work that wins the deal and prevents scope creep — covering objectives, scope, deliverables, timeline/milestones, pricing, assumptions, and acceptance criteria. Scopes the engagement and the in-scope/out-of-scope boundary FIRST (the boundary is what protects both sides), writes persuasive yet precise proposal copy, then formats it into a clean client-ready document with a structured deliverables-and-pricing table. Use for freelance/agency bids, consulting SOWs, and project proposals.
Steps
Entry step: scope. Each step names the specialist role it wants; the full working prompt is expandable.
- Scope the engagementplannerentry
objectives, in/out-of-scope boundary, deliverables, milestones, price
Show working prompt
Define the engagement precisely before any selling prose. Step 1: state the client's objective and the outcome the work delivers. Step 2: enumerate the deliverables concretely, and — critically — draw the IN-SCOPE vs OUT-OF-SCOPE boundary explicitly (the out-of-scope list is what prevents scope creep and disputes). Step 3: lay out the timeline as milestones/phases with rough durations and dependencies. Step 4: decide the pricing model (fixed, T&M, retainer), the amount or rate, and the payment schedule tied to milestones. Step 5: list assumptions and client responsibilities (access, approvals, content) and the per-deliverable acceptance criteria. Step 6: write an acceptance-criteria checklist for the document itself ('objective stated', 'explicit out-of-scope section', 'deliverables map to milestones', 'pricing tied to a payment schedule', 'assumptions + client responsibilities listed', 'acceptance criteria per deliverable'). Write all decisions + checklist via write_task_note AND to notes/scope.md. No prose or formatting yet. - Write the proposalcopywriter
persuasive, precise proposal copy section by section
Show working prompt
Write the proposal copy from the locked scope — persuasive about value, precise about commitments. Step 1: open with a short overview that restates the client's objective in their language and frames your approach. Step 2: write the approach/methodology section showing HOW you will deliver, then a deliverables section listing each deliverable with its acceptance criterion. Step 3: write the timeline section as milestones, and a clearly worded scope section with the in-scope list AND a plainly labeled out-of-scope list. Step 4: write the investment/pricing section in client-friendly terms tied to the payment schedule, then the assumptions + client-responsibilities section, and a short next-steps/sign-off close. Step 5: keep the tone confident and specific — no vague 'best efforts' language around commitments. Do not soften or drop the out-of-scope boundary. Write the section-by-section copy via write_task_note AND to notes/write.md.
- Format the documentdeveloper
render proposal.html with cover, deliverables/pricing tables, sign-off
Show working prompt
Format the approved copy into a client-ready document as a single self-contained proposal.html (inline CSS with print @page rules). Step 1: build a cover/header with the project title, client name, your name/company, and date. Step 2: lay out the sections in proposal order (overview, approach, deliverables, scope incl. out-of-scope, timeline, pricing, assumptions/responsibilities, next steps). Step 3: render the deliverables and the pricing/payment schedule as clean bordered tables (deliverable | acceptance criterion; milestone | amount | due) — these must be unambiguous. Step 4: visually distinguish the out-of-scope list (e.g. its own boxed callout) so it cannot be missed. Step 5: add a sign-off block (signature lines, date) and clean print page breaks. Drop the approved copy in verbatim; do not rewrite commitments. On a loop-back, fix ONLY the named gaps. Write the path + a note confirming the tables and out-of-scope section are present via write_task_note.
- Evaluatereviewer
Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.
Show working prompt
QA the proposal against the locked criteria. Step 1: open/render proposal.html. Step 2: check EACH acceptance criterion: the client objective is stated up front, there is an explicit and visually distinct out-of-scope section, deliverables are listed with acceptance criteria and map to the timeline milestones, pricing is shown as a table tied to a payment schedule, assumptions + client responsibilities are listed, and a sign-off block is present. Step 3: confirm the deliverables and pricing tables are unambiguous and the commitment language is specific (no vague hedging where commitments belong). Step 4: confirm it prints cleanly. Write PASS/FAIL per criterion, noting the offending section on any FAIL. Then route — this is the whole point of the loop: - **Every criterion PASSES →** call `advance_task_step({ ref, stepId: "evaluate", next: "finish" })`. - **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: "evaluate", next: "format" })` to loop back. The builder fixes exactly those gaps. Never route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in. - Finishdeveloper
All acceptance criteria met. Stamp a short summary and report DONE.
Show working prompt
Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.
Triggers
Phrases that suggest this craftbook to a crew.
- write a proposal
- statement of work
- sow
- client proposal
- project proposal
- consulting proposal
Source
View this craftbook on GitHub · MIT license