
draft-brief
✓ Official★ 4,081by openai · part of openai/plugins
Drafts court filings — motions, memoranda of law, appellate briefs — as court-ready .docx, with Midpage research behind every citation. Use to \"draft a motion to dismiss,\" \"write the brief.\
This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.
Draft Brief
Draft and format a court-ready filing and hand back the .docx. Briefs, motions, memoranda of
law, oppositions, replies, appellate briefs. Complaints and other pleadings are out of
scope — if asked to draft one, say so and stop. Read the shared guides first — they carry
the method this skill assumes: references/litigation-writing.md (how to write it),
references/court-rules.md (how to find the governing rules), references/citations.md (how
every cite links), and references/legal-docx.md (rendering). The research method is below —
it is the heart of this skill.
Workflow
- Get up to speed. Read any relevant uploads and consult the relevant record documents
(
analyzeDocketReportfor posture and the operative filings,analyzeDocketFilingto read what they actually say). Every record fact you later assert carries a linked filing cite. - Preliminary research. Don't jump to conclusions about what to argue; research with Midpage to determine what the strongest arguments are and what makes procedural sense.
- Craft the research-based narrative structure. Consult
references/litigation-writing.md. Before doing even more research, settle on structure and arguments based on your preliminary research. - MOST IMPORTANT: Exhaustive, iterative research per issue. Make a research plan and follow it, using the method below. The goal is not to surface and analyze the obvious opinions only; you want to find the strongest, most favorable cases that will carry each argument the extra mile. Don't settle for any case supporting your proposition — find the favorable ones with devastating language, framings, facts, and the right outcomes. Each argument needs to be dense with case-law citations and compelling analysis. Find the cases and arguments that HURT and confront them head on — distinguish them or argue they are not determinative.
- Get the governing rules per
references/court-rules.md: case orders → judge's individual practices → local/ECF rules → federal baseline. Capture length limits, font/margins/spacing, required sections, caption form, certificates, TOC/TOA triggers — each linked to its source. Surface conflicts (the more specific layer controls; show both). - Write it per
references/litigation-writing.md: theme stated up front, point headings that argue, rule synthesis not book reports, quotes woven into prose, adverse authority confronted head-on. - Render with the
briefprofile (references/legal-docx.md). Thread any rule-set spacing/font/margin throughD.builders("brief", { lineSpacing }); defaults stand when rules are silent. Validate the rendered file against the verifiable requirements (length, font, margins, spacing, required sections, certificates).
Research with Midpage (the method)
All law comes from the Midpage tools this session. search finds candidates; findInOpinion
previews; analyzeOpinion is what permits a citation — no case is cited without it.
- Frame before you search. Pin the forum (court, circuit, state) — it controls what binds and how to filter. Reduce each question to the operative element actually in dispute ("does an eight-month delay defeat likely irreparable harm in the Ninth Circuit?" — not "can we get an injunction?"). Each distinct issue gets its own searches and its own section. For every issue, write down what the other side will argue — that defines half your research targets.
- Search semantic, parallel, filtered. Concept- and proposition-style queries, never
boolean. One issue per query, up to four in parallel. Filter to the forum
(
jurisdictionType,circuits/courts/states, dates when recency matters); binding authority first, persuasive labeled as such. If you filterpublishStatus, run a parallelunknownquery too (for California, default topublishedplusunknown). Need exact wording? Stop guessing insearch— runfindInOpinionon a promising case. - Triage before you spend analysis.
highlightsshow why a case matched — previews only, never quote them.treatmentgauges whether it's good law and how heavily relied on.findInOpinionis the free double-click before ananalyzeOpinioncall. - Branch from the best case. When a strong case surfaces, mine it:
analyzeOpinionit and pull the authorities the opinion itself leans on (the rule it states usually quotes the case you actually want); then search its key holding language as its own query to find later cases applying it. A case the court's own opinions repeatedly cite is worth more than three you found cold. - Iterate until it's scorched earth. Re-query each issue with new framings — the best case's holding language, the opposing side's framing, narrower fact patterns, the remedy angle — until new queries keep returning the same leading cases. That saturation is the signal you've mapped the field; anything less is settling.
- The
analyzeOpiniongate, on every case you cite. Pass aquestionnaming the exact element. CheckdoesNotAddressfirst — if your point is listed, the case does not stand for it, however close the language looks. Build sentences fromsupportedPropositions(each carries a cite-ready proposition, a verified quote, and adeeplinkURL). Lead withcore_holdingoversupporting_analysis; never sellbackgroundas the holding. Carryscopequalifiers into your sentence. A concurrence or dissent (opinionSection) is never presented as the court's holding. Surface negativetreatmenthonestly — if you must use a caution/negative case, say so. - Research the other side as hard as your own. For every issue, run searches framed from
the opposing position; identify the case they will lead with and
analyzeOpinionit too — that's what step 4's confrontation is built from. - Silence and splits are findings. No controlling authority on point, or a genuine split, gets reported as such — never papered over with an off-point or out-of-jurisdiction cite.
Scope discipline
- Format, required sections, and limits are always in scope. When a rule forces a change, name the rule and link the source.
- Drafting substance (argument, facts) is in scope when drafting from scratch or when asked.
- Working from the user's existing draft: do not rewrite their arguments, reorder their theories, or change their voice unless they ask or a rule requires it (get sign-off before cutting argument to meet a limit). Note substantive problems you spot as a brief, separate observation — never silently implement them.
Hard rules
- Never recall a rule, holding, quote, or record fact from memory. Rules come from sources
retrieved this session; case law from
analyzeOpinion; record facts fromanalyzeDocketFiling. No invented case, quote, pin cite, statute, or rule, ever. - Honor
doesNotAddress, distinguish holdings from dicta and majority from concurrence/dissent, surface negative treatment. - The attorney owns the filing. Flag open items and judgment calls plainly; never imply the document is filing-ready without their review.
- Brief-writing is research-led. Do thorough, iterative research with Midpage.
npx skills add https://github.com/openai/plugins --skill draft-briefRun this in your project — your agent picks the skill up automatically.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.