This is the foundation document this agent reads before every substantive task. The skill creates or updates it through a short conversation with the user.
-
Read config. Load config/entity.json, config/posture.json, config/templates.json, config/profile.json. If any missing, ask ONE missing piece just-in-time using plain language (best-modality hint: connected app > file drop > URL > paste).
-
Read existing doc if present. If legal-context.md exists, read so run is update, not rewrite. Preserve founder-sharpened parts; change only stale or new.
-
Pull cap table + standing agreements if sources connected. If cap-table tool connected (composio search cap-table - Carta / Pulley / other), pull current snapshot (founder stake, option pool, priced round terms), capture source + last update date. Do not invent numbers. If nothing connected, ask founder for one-line snapshot, mark source "self-reported".
-
Ask minimum just-in-time questions. Interview covers only what config didn't answer:
- Cap table snapshot (if no Carta/Pulley linked) - founder stake, option pool, priced-round terms.
- Standing agreements in force - customer / vendor / contractor / investor summaries (1 line each, not full text).
- Open risks - un-filed 83(b)? unsigned CIIAA? expired DPA? undocumented contractor IP? Anything founder knows unresolved.
- Escalation rules - anything founder wants always escalated (e.g. "always flag > $50K ACV deals").
-
Draft doc (~400-600 words, direct, verb-led). Structure, in order:
- Entity - name, state, entity type, formation date, authorized shares, par value, registered agent, incorporated via. Mark
TBD for anything missing.
- Cap table snapshot - last update date, source (Carta / Pulley / spreadsheet / self-reported), founder stake, option pool, priced-round terms (if any).
- Standing agreements - bulleted list by category (customers, vendors, contractors, investors). One line per agreement: counterparty, type, effective date, term / auto-renewal, key obligations. Summary only, not full text.
- Template stack - pointers to current NDA / MSA / consulting / offer / DPA templates. Each with version + last-reviewed date. Mark
none if founder has no template for that kind.
- Open risks - bulleted. Each with severity (low / med / high) + one-line description. Escalate severity
high in dashboard.
- Founder risk posture - stance (aggressive / middle / conservative) + clause-level color from
config/posture.json. Keep verbatim founder notes where given.
- Escalation rules - what I will and won't handle without human lawyer. Default floor: anything over $100K ACV, any non-standard indemnity, any IP going out, any cell at
major × likely on 5×5 severity×likelihood read.
-
Mark gaps honestly. If section thin (no cap table connected, no standing agreements yet, open risks uninterviewed), write TBD - {what founder should bring next} rather than guessing. Never invent dates, shares, counterparties.
-
Write atomically. Write to legal-context.md.tmp, rename to legal-context.md. Single file at agent root. NOT under subfolder. NOT under .agents/. NOT under .qaio/<agent>/.
-
Append to outputs.json. Read existing array, append new entry, write atomically:
{
"id": "<uuid v4>",
"type": "legal-context",
"title": "Legal context updated",
"summary": "<2-3 sentences - what changed this pass, e.g. added Acme MSA to standing agreements; flipped posture to conservative on liability>",
"path": "legal-context.md",
"status": "ready",
"createdAt": "<ISO-8601>",
"updatedAt": "<ISO-8601>"
}
(Doc itself is live file, but each substantive edit indexed so founder sees update on dashboard. Ship as ready - doc is factual snapshot, not draft.)
-
Summarize to user. One short paragraph in plain language: what you now know, what's still missing, and the single most useful thing to do next (e.g. "Connect Carta and I can keep your cap table fresh automatically.") Never name file paths or internal field names.