Draft a Legal Document
Draft a legal document for you, like an NDA, a customer contract, an offer letter, a privacy policy, terms of service, a board decision, a reply to a customer data request, or a brief to send a real lawyer. I work from your existing templates if I have them, or from market-standard wording with a clear note. Drafts only, never sent or signed.
Draft a Legal Document
One skill for every first-draft founder need. type param picks template + structure + citations. "Drafts only, never send / file / sign" discipline shared.
Parameter: type
Commercial paper (reads template library first):
nda- bilateral or one-way NDA anchored on your template.consulting- consulting / contractor agreement anchored on CIIAA + deliverables + term.offer-letter- employee offer letter anchored on 409A + compensation + vesting + at-will language.msa- customer-facing master services agreement.order-form- order form tied to existing MSA.board-consent- written board consent (routine: officer appointment, option grant, 409A adoption, bank resolutions).
Privacy / policy:
privacy-policy- full Privacy Policy with AI-training disclosure, SCCs, subprocessor list, legal-basis citations.tos- Terms of Service (usage, IP, acceptable use, liability cap, dispute forum).
Regulatory response:
dsr-response- GDPR Art. 15 / CCPA DSR first-touch packet: acknowledgment + identity-verification request + export cover note (3 files).
Escalation:
escalation-brief- structured brief for outside counsel: 2-3 sentence matter summary, specific questions for lawyer, quoted excerpts with cite, deadline, recommended firm type (corporate / commercial lit / privacy / IP / employment). Never names specific firms.
User names type in plain English ("draft NDA with Acme", "write our privacy policy", "package this for counsel") → infer. Ambiguous → ask ONE question naming 10 options grouped by bucket.
When to use
- Explicit: "draft {type}", "write our privacy policy", "respond to this DSR", "escalate this to counsel".
- Plain-English asks map to a
type: "draft an NDA for {counterparty}" →nda; "draft a contractor / consulting agreement" →consulting; "draft a customer contract" / "MSA for {customer}" / "order form" →msaororder-form; "draft a board consent" / "board decision for {action}" →board-consent; "draft / update our privacy policy" →privacy-policy; "draft our terms of service" →tos; "a customer asked for their data" / "respond to a DSR / GDPR / CCPA request" →dsr-response; "package this for a lawyer" / "prep a handoff to outside counsel" / "trademark handoff to a lawyer" →escalation-brief. - Implicit: chained from
review-a-contractwhen output recommends counter-draft (type picked by contract type); fromaudit-compliance(scope=privacy-posture) when audit says policy stale; fromplan-contract-pushbackwhen redline needs specific clause text drafted.
Ledger fields I read
Reads config/context-ledger.json first.
universal.legalContext+context/legal-context.md- required every type (entity, cap table, standing agreements, template stack, open risks, risk posture). Missing → runset-up-my-legal-infoskill first (or ask ONE targeted question if skip ahead).universal.company- name, stage (language calibration all types).universal.entity- required foroffer-letter(state of incorporation, issued shares),board-consent(authorized shares, directors, officers),escalation-brief(entity snapshot).domains.contracts.templateLibrary- pointing to template set → anchor draft there. Missing for commercial types → ask ONE question: paste template URL, connect Google Drive, or proceed from market-standard boilerplate with "no template found, using market-standard boilerplate" caveat stamped on draft.domains.compliance.landingPageUrl- required forprivacy-policyandtos(Firecrawl scrape infer product surface, data collection, analytics).domains.compliance.dataGeography- required forprivacy-policyanddsr-response(EU inclusion triggers SCCs + GDPR-Art-15 timing).subprocessor-inventory.json- required forprivacy-policy(vendor list + DPA status).universal.posture.escalationThreshold- required forescalation-brief(frames "why we need counsel" framing).
Steps
- Read ledger + legal context. Gather missing required fields per above. Write atomically.
- Discover tools via Composio only when type needs one:
googledocs/notionfor mirror-copy (optional),googledrivefor reading template library,firecrawlfor landing-page scrape (privacy-policy, tos). - Branch on
type.nda/consulting/offer-letter/msa/order-form/board-consent: load matching template from library (or use market-standard boilerplate with caveat stamp). Collect variables (counterparty, dates, commercials, candidate name, grant size, vesting cliff - whichever apply). Substitute variables. Produce draft with top comment-block listing (a) variables substituted, (b) any variables needing founder confirmation. Comp structure (offer-letter) or share math (board-consent) non-standard → flagattorneyReviewRequired: true.privacy-policy/tos: scrape landing page via Firecrawl, cross-referencesubprocessor-inventory.json, identify data-collection surfaces (forms, analytics, cookies, payment), pick right sections (Collection / Use / Disclosure / Retention / Rights / Transfers / Security / Changes / Contact for privacy; Usage / Account / IP / Acceptable-Use / Payment / Termination / Warranty / Liability / Disputes for ToS). Cite GDPR articles for EU-inclusive geography, CCPA/CPRA for US. AI-training disclosure explicit (opt-in or opt-out, state it). Produce sectioned markdown draft.dsr-response: compute statutory clock (GDPR Art. 15 → 30 days, CCPA → 45 days). Produce three files:acknowledgment.md(received, clock start, expected turnaround - no commitments beyond statutory timeline),identity-verification.md(what we need to confirm it's them),export-cover-note.md(template cover note; actual data export out of scope - founder runs export). Clock already < 7 days from statutory deadline → flagattorneyReviewRequired: true. Write as folderdsr-responses/{request-id}-{YYYY-MM-DD}/.escalation-brief: structured brief in this order - (1) Matter in 2-3 sentences, (2) Specific questions for lawyer (numbered, scoped), (3) Deadline + why, (4) Quoted excerpts with cite (contract clause, email thread, statute), (5) Entity snapshot fromuniversal.entity, (6) Recommended firm type (corporate / commercial lit / privacy / IP / employment - no firm names), (7) What we'd accept as outcome.
- Write draft atomically (
*.tmp→ rename):- Commercial types →
drafts/{type}/{counterparty-or-candidate}-{YYYY-MM-DD}.md. privacy-policy→privacy-drafts/privacy-policy-{YYYY-MM-DD}.md.tos→privacy-drafts/tos-{YYYY-MM-DD}.md.dsr-response→dsr-responses/{request-id}-{YYYY-MM-DD}/(folder with three files).escalation-brief→escalations/{matter-slug}-{YYYY-MM-DD}.md.
- Commercial types →
- Optional Google Docs mirror.
googledocsconnected → offer mirror draft (skill discovers slug at runtime, user confirms, mirror created with link back in artifact footer). - Append to
outputs.json- read-merge-write atomically:{ id, type: "draft" | "privacy-policy" | "tos-draft" | "dsr-response" | "escalation-brief", title, summary, path, status: "draft", domain: "contracts" (commercial) | "compliance" (privacy/dsr) | "entity" (board-consent) | "advisory" (escalation-brief), createdAt, updatedAt, attorneyReviewRequired? }. - Summarize to user. One short message in plain language: what you drafted, that it's a draft for review (not signed/sent), and whether a real lawyer should look at it. Never mention file names, paths, or the underlying procedure.
What I never do
- Send, file, post, or request signature on any draft. Founder delivers, publishes, or packages-for-counsel. Every artifact opens with one-line "DRAFT - NOT FOR SIGNATURE / NOT FOR PUBLISH" stamp.
- Invent clause, statute, or precedent I can't cite.
- Name specific law firms in
escalation-brief. Firm type only. - Make timeline commitments in
dsr-responsebeyond statutory clock - dates cited are statutory, not promises. - Hardcode tool names - Composio discovery at runtime only.
- Skip
attorneyReviewRequired: trueon comp-structure anomalies, share-math anomalies, or DPA gaps.
Outputs
drafts/{type}/{slug}-{YYYY-MM-DD}.md(commercial types).privacy-drafts/privacy-policy-{YYYY-MM-DD}.md/tos-{YYYY-MM-DD}.md.dsr-responses/{request-id}-{YYYY-MM-DD}/(3-file folder).escalations/{matter-slug}-{YYYY-MM-DD}.md.- Appends to
outputs.json.
No additional documents ship with this skill.
Related Skills
Business Agreement Generator
Generates customized business agreements for 10 common relationship types with plain English annotations. Use when formalizing a business relationshi…
AI 智能合同审查系统
Automates contract review by identifying clause risks, comparing against standard contracts, and managing contract lifecycles including expiry remind…
amendment-history
Trace how a contract has changed across its base agreement and all amendments — either a summary of all changes over time, or a provision trace for a…
amendment-history-anthropics
Trace how a contract has changed across its base agreement and all amendments — either a summary of all changes over time, or a provision trace for a…
Amendment History
Trace how a contract has changed across its base agreement and all amendments — either a summary of all changes over time, or a provision trace for a…