
draft-long-form-memo
✓ Official★ 4,081by openai · part of openai/plugins
Writes a formal objective legal research memo (Questions Presented, Brief Answers, Facts, IRAC Discussion, Conclusion) as a .docx. Use to \"draft a research memo on whether…\" Predicts, never advocates.
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 Long-Form Memo
Produce the thorough, objective memorandum a litigator hands a partner: it predicts, it does
not advocate. The test for every sentence: would you write it the same way no matter which
side retained you? Read the shared guides first — references/litigation-writing.md (the
craft; same point-first discipline, neutral verbs), references/citations.md (how every cite
links), and references/legal-docx.md. The research method is below — the memo is only as
good as the research under it.
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 each Question Presented as the operative element actually in dispute, pinned to the forum (it controls what binds and how to filter). Split multi-part questions; each issue gets its own searches, its own Brief Answer, its own Discussion section.
- Search semantic, parallel, filtered. Concept- and proposition-style queries, never
boolean; one issue per query, up to four in parallel; filtered to the forum
(
jurisdictionType,circuits/courts/states, dates). Binding authority first, persuasive labeled as such. If you filterpublishStatus, run a parallelunknownquery too (California: defaultpublishedplusunknown). - Triage on
highlights(previews only — never quote them) andtreatment; usefindInOpinionas the free double-click before spending ananalyzeOpinioncall. - Branch from the best case: pull the authorities a strong opinion itself leans on, then search its key holding language to find later cases applying it. Iterate per issue until new queries keep returning the same leading cases — saturation means the field is mapped.
- Research both sides with equal force — the memo's defining duty. For every issue, run
searches framed from each party's position and
analyzeOpinionthe strongest case on each side. The prediction is only honest if the contrary line got the same effort. - The
analyzeOpiniongate, on every case cited. Pass aquestionnaming the exact element. CheckdoesNotAddressfirst — if your point is listed, the case doesn't stand for it. Build sentences fromsupportedPropositions(verified quote +deeplinkURL); rank bycentrality(lead with holdings, never sell background as one); carryscopequalifiers; never present a concurrence/dissent (opinionSection) as the court's holding; surface negativetreatmenthonestly. - Silence and splits are answers. "No controlling authority on X in this circuit" is a finding worth reporting plainly; a genuine split is reported as one, with the best authority each way — never resolved by wishful citation.
Structure
- Caption block —
MEMORANDUM, then To / From / Date / Re: lines. From is always "Midpage Legal Research" — never an AI assistant's name. Front matter is single-spaced, no first-line indent (the body is double-spaced). - Question(s) Presented — one neutral, answerable question per distinct issue, naming the forum and the operative element. Framed so the answer is genuinely in doubt, not loaded.
- Brief Answer(s) — one-to-one with the questions: lead with the prediction ("Probably yes," "Likely not," "Unsettled, but the better view is…") plus the one-line reason. Readable on their own.
- Statement of Facts — only if the user supplied facts; even-handed; record facts cited. Omit the section entirely otherwise.
- Discussion — the heart, IRAC per issue under
h1headings: state the rule with linked controlling authority, apply it to the facts, then give the contrary or competing authority its fair statement — distinguish it, weigh it, note negative treatment honestly — and resolve with a predictive conclusion. Use predictive verbs ("a court would likely hold"), never advocacy verbs ("plaintiff plainly fails"). - Conclusion — pull the Brief Answers into a candid forecast across all issues, flagging open questions and the principal risk on each. No new authority; synthesize.
Rendering
Per references/legal-docx.md, memo profile, double-spaced:
const B = D.builders("memo", { lineSpacing: 480 });
// front matter lines: B.p([...], { lineSpacing: 240, firstLineIndent: 0 })
// Questions Presented: B.numbered(q, { instance: 1 })
// Brief Answers: B.numbered(a, { instance: 2 }) // distinct instance → restarts at 1Questions and Brief Answers are real numbered lists (hanging indents, wrapped lines aligned under the text) — never a literal "1." plus a tab.
Hard rules
- Objective, not persuasive. Present both sides fairly; predict. Advocacy is
draft-brief's job. - Tool-grounded only. Never cite a case, quote, or pin cite not run through
analyzeOpinionthis session;search/findInOpinionalone are not enough. No invented authority, ever. RespectdoesNotAddress,scope,centrality, andopinionSection; surface negative treatment. - Unsettled is an answer. A genuine split or open question is reported as one, with the best authority each way — never resolved by wishful citation.
- Every proposition carries the exact linked citation per
references/citations.md; short verbatim quotes woven into prose, no block quotes, no short cites.
npx skills add https://github.com/openai/plugins --skill draft-long-form-memoRun 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.