SKILL.md
Contract and Proposal Writer
Draft complete, jurisdiction-correct documents fast, then hand them to a human. This skill produces strong starting points, not legal advice, and nothing goes to a client without owner review.
Workflow
- Gather requirements. Ask for: document type (contract / proposal / SOW / NDA / MSA), jurisdiction (US-Delaware / EU / UK / DACH), engagement type (fixed-price / hourly / retainer), parties with legal names and addresses, 1-3 sentence scope, total value or rate, dates or duration, special requirements (IP assignment, white-label, subcontractors).
- Select the template. Templates live in references/templates.md: fixed-price development contract, consulting retainer, SaaS partnership agreement, plus the GDPR Data Processing Addendum block. NDAs derive from the confidentiality clauses with mutual or one-way scope.
- Apply jurisdiction rules. Read references/jurisdictions.md before drafting anything outside plain US-Delaware work. The rules that bite: work-for-hire language alone fails in the EU, DACH requires explicit transfer of Nutzungsrechte and written-form clauses, any personal-data processing in EU/DACH requires a DPA.
- Fill and flag. Replace every
[BRACKETED]placeholder with real data. Anything the user did not supply gets markedREQUIRED:inline, never silently defaulted for party names, money, dates, or governing law. - Check the standard clause set. Every contract needs: payment terms with late-payment interest, IP ownership matched to jurisdiction, liability cap, termination (for cause with cure period, for convenience with notice), confidentiality with survival term, warranty scope, dispute resolution, written-amendments clause. Options per clause are in references/templates.md.
- Convert. Deliver Markdown plus the pandoc command:
pandoc contract.md -o contract.docx --number-sections -V fontsize=11pt(add--reference-doc=<TEMPLATE_DOCX>for house styling). - Hand off. Return the draft path, open legal questions, and the next step (owner review, then signature). Stop before anything is sent to a client. Drafts always get human legal review for high-value or complex engagements.
Verification
Run grep -nE "\[[A-Z][A-Z _/-]+\]|REQUIRED:" contract.md. Expect zero [BRACKETED] placeholders and only deliberate REQUIRED: flags that you list in the handoff note. Any unflagged placeholder: fill it or flag it. Then re-add milestone amounts by hand and compare to the total fee. Mismatch: fix the math before delivering.
Good vs Bad
Bad: A fixed-price contract for a German client using Delaware law, work-for-hire IP language, and no DPA, because that was the default template. Unenforceable IP transfer, GDPR exposure, and enforcement headaches.
Good: Same deal drafted under German law: explicit Nutzungsrechte transfer, Schriftformklausel, DIS arbitration, and an Art. 28 DPA attached because the project touches user data. One REQUIRED: flag where the client's registered address is missing.
Footguns
- Work-for-hire outside the US. The doctrine does not exist in most EU states. Fix: explicit assignment language, and Nutzungsrechte transfer for DACH.
- Vague acceptance criteria. "Upon acceptance" without a definition means payment disputes. Fix: written sign-off plus a fixed rejection window (e.g., 10 business days).
- No change-order clause. Scope creep kills fixed-price work. Fix: out-of-scope work requires a written change order with pricing.
- Missing liability cap. One bug, unlimited damages. Fix: cap at 1x fees paid (3x for high-risk consulting), exclude consequential damages.
- Oral amendment risk. Verbal changes are unenforceable chaos. Fix: written-amendments clause in every document.
Completion checklist
- [ ] Document type, jurisdiction, and engagement type confirmed
- [ ] Jurisdiction rules from references/jurisdictions.md applied
- [ ] grep check clean, all gaps flagged
REQUIRED:and listed - [ ] Milestone math equals total fee
- [ ] Standard clause set present, docx conversion command provided
- [ ] Draft held for owner review, not sent
Any box unchecked: not done. Fix or say so.