Named after Themis (Θέμις), Titaness of divine law, custom, and what is right. She holds the scales of judgment. Her name comes from the Greek for "that which is laid down" — established order, divine ordinance. Federal grant writing is her domain twice over: agencies have rigid structural rules (page limits, required sections, published review criteria), and proposals are judged against those rules by panels wielding the agency's own scales of merit.
How it works
Themis parses the solicitation into structured requirements, drafts each section under the agency's page budget in a cloned PI voice, then runs a simulated three-reviewer panel that scores the proposal against the solicitation's actual published criteria. If the panel doesn't recommend fund, Themis revises the weakest sections against the reviewers' specific critiques and runs the panel again — up to three rounds.
A word about how to use this
Themis is a drafting and review assistant, not a ghostwriter. It does the mechanical parts of proposal development — parsing a FOA into structured requirements, enforcing page limits, flagging AI-isms, running a simulated review panel against published criteria — so a PI can spend their time on the things only they can do: the science, the story, the judgment calls about what matters.
Every draft it produces is a starting point. You still read every sentence. You still make it yours. You still own every claim in the final document. The review panel is a proxy — useful, but not a substitute for a real program officer or a colleague who knows your field. Treat Themis the way you'd treat a capable grad-student RA: helpful, fast, worth their weight in gold — and absolutely not the signatory on your proposal.
MCP tools
parse_solicitation— extract structured requirements from a FOA / PAPPG / SF424.analyze_grant_voice— clone a PI's grant-writing style across 10 dimensions from a funded proposal.plan_proposal— agency-compliant outline with per-section page budgets; initializes the 5-layer context stack.write_section— draft one section at a time, page-limit aware, slop-scanned, canon-updating.review_proposal— three parallel Opus reviewers scoring against the solicitation's actual criteria.revise_section— targeted revision against specific reviewer concerns.generate_budget— agency-aware line items with a justification narrative.check_compliance— validate page limits, required sections, subsection headings, formatting, references.get_proposal— retrieve current state, word counts, last review scores.export_proposal— render to markdown / PDF / DOCX.
Agency support
| Agency | Source of truth | Sections enforced | Review scale |
|---|---|---|---|
| NSF | PAPPG | Project Summary (1 pg) · Project Description (15 pg) · Data Management Plan (2 pg) · References · Biosketch · Budget Justification | 1–5 (Intellectual Merit + Broader Impacts) |
| NIH | SF424 | Specific Aims (1 pg) · Research Strategy (12 pg: Significance + Innovation + Approach) · Biosketch · Resource Sharing | 1–9 (Significance · Innovation · Approach · Investigator · Environment) |
| DOE | FOA-specific | Pulled dynamically from parse_solicitation | FOA-specific |
The 5-layer context stack
Every section draft reads from the same five layers:
- Solicitation — the rules extracted by
parse_solicitation. - Sources — research context from hyperion, if provided.
- Outline — a windowed view: previous section, current section (full detail), next section.
- Voice — the PI voice profile, defaulted from
grants/voice_profile.md(~28K chars distilled from 6 funded proposals). - Canon — what earlier sections have already established: hypotheses stated, methods promised, aims defined, numbers committed.
Notable design notes
- MiMo drafts, Opus judges. Cheap fast model writes; premium model evaluates. Mirrors how real grant writing works — write fast, revise on hard feedback.
- Page limits are hard constraints. Go over and the agency returns the proposal without review.
check_compliancevalidates before export. - The slop scanner flags "groundbreaking," "paradigm shift," "transformative," empty modifiers like "robust" or "novel," and "research shows" without a citation. Reviewers read dozens of proposals; AI-isms cost you points.
- Canon prevents continuity drift. After each section, an LLM pass extracts what has been committed to. The next section sees those commitments in its context stack and stays consistent with them.
Stack
- FastMCP (Python)
- Anthropic Opus 4.7 (review + revise)
- OpenRouter
- MiMo (drafting)
- Claude Sonnet (parsing + voice)
- pandoc + tectonic (PDF)
- Docker Compose
- LibreChat (host)
Typical chain for a proposal: hyperion investigates the field → themis structures the findings into a compliant proposal and runs the simulated review panel → aletheia verifies every claim against mnemo before submission.