Legal Lead
The Legal Lead keeps the Startup’s terms, privacy notice, and Consent rules current and routes every Reserved Act to a licensed Human.
It holds one seat on the Legal Team and reports to the Founder.
Responsibilities
- Publishes terms, a privacy notice, and Consent rules before launch.
- Routes each Reserved Act to a credentialed Human, who checks conflicts and standing, then attests.
- Labels AI and common ownership wherever the law requires.
- Records the holding Company and its registrations.
Verbs
| Verb | Object | Event |
|---|---|---|
| Agreement.create | Agreement | Agreement.created |
| Agreement.update | Agreement | Agreement.updated |
| Purpose.create | Purpose | Purpose.created |
| Offer.update | Offer | Offer.updated |
| Approval.create | Approval | Approval.created |
| Collection.export | Collection | Collection.exported |
| Company.incorporate | Company | Company.incorporated |
| Company.update | Company | Company.updated |
| Document.create | Document | Document.created |
| Message.create | Message | Message.created |
| Page.create | Page | Page.created |
| Share.issue | Share | Share.issued |
| Task.create | Task | Task.created |
| Task.delegate | Task | Task.delegated |
Reads: Company.get.
Tools: legal, privacy, contracts, e-sign.
Role contract
| Part | This seat |
|---|---|
| Purpose | So the Startup’s terms hold up, and every regulated act reaches a licensed Human. |
| Results | Standard-terms share |
| Standards | Routes every regulated act to a credentialed Human. Reviews every non-standard term before signature. |
| Processes owned | Screening, Licensed review, Contracting, Privacy, Compliance, Legal notices, Incorporation, Company filings |
| Works in | Graduate, Sell |
| Autonomy | assist; supervised on Low decisions |
| Schedule | daily |
| Channels | email |
| Also called | Head of Legal, Legal Ops |
| Filled by | A role agent, from the start; a person answers its Approvals. |
Hands off to
Escalates to Founder.
Processes owned
Accountable for Screening, Licensed review, Contracting, Privacy, Compliance and Legal notices. Does the work in Graduate and Sell.
Metrics
| Metric | Definition |
|---|---|
| Outside revenue | Outside revenue is revenue from Customers who share no owner, Studio account, Agreement or sibling chain with the Startup. |
| Outside paying Customers | Outside paying Customers counts distinct outside Customers with at least one paid, unrefunded Order in the window. |
Approvals
- Asks first. An Action above the seat's Limit opens an Approval for the Founder and waits.
- Takes escalations from the Compliance Officer, Privacy Officer and Contracts Manager.
Filled by
A role agent fills the seat in every new Startup. Put another Agent or a Human in it and the contract stays: same Permissions, same Limits, same record. Buy a specialist agent or invite a person to swap it; the window below sets how much the agent does alone.
Set how much the Legal Lead agent does without asking.
Show me what the Legal Lead agent did this week.
# 1. Role.update
curl -X PATCH https: //api.sb/ leaseline.app/ roles/ legal-lead \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"name": "Legal Lead", "autonomy": {"default": "assist", "byClass": {"low": "supervised"}}}'
# 2. Action.list
curl "https: //api.sb/ leaseline.app/ actions? limit= 50& where= by%20%3D%20%22agent_legal_lead%22%20and%20createdAt%20%3E%3D%20%222026-10-16%22& sort= -createdAt" \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
import { $ } from 'startup-builder'
await $.Role.update({ id: 'legal-lead', name: 'Legal Lead', autonomy: { default: 'assist', byClass: { low: 'supervised' } } })
await $.Action.list({ limit: 50, where: 'by = "agent_legal_lead" and createdAt >= "2026-10-16"', sort: '-createdAt' })
npx startup-builder do Role.update --json '{"id": "legal-lead", "name": "Legal Lead", "autonomy": {"default": "assist", "byClass": {"low": "supervised"}}}'
npx startup-builder do Action.list --json '{"limit": 50, "where": "by = \"agent_legal_lead\" and createdAt >= \"2026-10-16\"", "sort": "-createdAt"}'
{
"name": "do",
"arguments": {
"code": "await $.Role.update({ id: 'legal-lead', name: 'Legal Lead', autonomy: { default: 'assist', byClass: { low: 'supervised' } } })\nreturn await $.Action.list({ limit: 50, where: 'by = \"agent_legal_lead\" and createdAt >= \"2026-10-16\"', sort: '-createdAt' })"
}
}
Example
In a patent-drafting Startup, the Legal Lead Agent is named Lei. Filing a patent application for someone else is a Reserved Act. Lei routes every filing to a registered patent practitioner, who checks conflicts and standing before signing.