Cavaridge Academy
Quoting Mastery
Module 3 of 5

SoW authoring with Ducky

Use Ducky to draft an SoW that conforms to the master spec — and what to never let it do.

Video — pending production
Read the transcript below. Once recording is complete, the video will replace this notice.
--- title: SoW authoring with Ducky status: draft note: AI-generated first-pass transcript pending video production + SME review. --- Statements of Work in Cavaridge Operations have a published spec — `SOW-MASTER-SPEC-v2_3` — and Ducky helps you fill it in. The spec is LOCKED, and the platform refuses to render an SoW that doesn't conform. That's a feature. ## What the spec mandates Every SoW has the same structure. Sections 1–5 are administrative (parties, term, contacts, references). Section 6 is the body of the work and has prescribed subsections. Sections 7–9 are acceptance, change control, and signatures. In Section 6 you'll always have: - **Scope** — what's in, what's out. - **Approach** — how the work gets done, in plain language. - **Deliverables** — concrete artifacts the customer receives. - **Assumptions** — what must be true for the estimate to hold. - **Roles & Responsibilities** — who does what. - **Milestones** — where progress checkpoints land. - **Pricing structure** — fixed, T&M, or hybrid; references to schedules. - **Three mandatory PM tasks**: kickoff + project plan + milestone tracking, status reporting cadence, project closeout + retro. Ducky knows this. When you ask Ducky to draft an SoW, every required piece is generated. When something is missing, the renderer blocks publish. ## The labor-hours table This is the single rule that trips people up: > Labor-hours tables are `Role | Scope | Hour-range` only. No rates. > No dollar amounts. No totals. Rates resolve from `tenantConfig` at render time. The reason is simple: if rates change, every active SoW renders correctly without edits. If you bake rates into the table, you're shipping a one-time artifact that diverges from canon the moment your rate card moves. When Ducky tries to add a Rate column, refuse. The renderer would block it anyway, but you should catch it first. ## Drafting flow In the sandbox, the **cavalier-sow-starter** seed gives you a partial SoW for a clinical-IT engagement. 1. Open the SoW; some fields are filled, some empty. 2. Ask Ducky: "complete this SoW for a Cavaridge Healthcare migration, 8 weeks, two consultants." 3. Ducky drafts every required section. 4. Review each section. **Don't trust without reading.** ## What to verify - **Scope** is precise. Vague scope kills change control later. - **Assumptions** are honest. If client environment access is required by week 1, say so. - **Milestones** are real. "Week 2: discovery complete" is real. "Week 2: kickoff meeting" is decoration if you've already done it. - **PM tasks** are present and not collapsed into vague phrases. ## When Ducky goes wrong Two failure modes you'll see: - **Citations to docs that don't apply.** Ducky may cite the Cavaridge Market quoting guide when you're writing a Healthcare SoW. Open the citation; if irrelevant, ignore. - **Generic boilerplate in Assumptions.** Ducky tends to over-generalize here. Replace generic assumptions with the customer-specific ones. ## Hands-on Complete the seeded SoW. Render it. Try to slip a Rate column into the labor-hours table. Watch the renderer block. Remove the column; watch publish succeed. You're now drafting compliant SoWs in minutes. Use that speed to spend more time on the parts that need human judgment: scope edges, risk acknowledgment, customer-specific assumptions.
Hands-on sandbox
cavalier · seed: cavalier-sow-starter · 60 min

Knowledge check

  1. Question 1 · select one
    SoW labor-hours tables must be
  2. Question 2 · select one
    Section 6 of every SoW includes
  3. Question 3 · select all that apply
    Three mandatory PM tasks that every SoW must include