Expand description
§Proserpina
Multi-agent critique and cross-examination pipeline for documents that require intellectual rigor — pre-prints, roadmaps, plans, and specs.
Proserpina runs a configurable ensemble of critic personas over a document via
a provider-agnostic interaction-graph engine. LLM backends are pluggable
behind an Agent trait; an EchoAgent backend makes the entire engine
deterministic and testable with zero LLM dependencies.
§Architecture
- A
Subjectis the document under critique. - A
Topologydescribes how critic agents exchange messages:parallel(fan-out),rounds(adversarial cross-examination), ormoderated(Socratic dialectic). All three are instances of a generalInteractionGraph— topologies are templates, not special cases. - A
Runnerexecutes the graph against a backend agent, producing aTranscriptand a synthesizedReportofFindings.
Status: scaffold. Modules land incrementally via test-driven development (see
docs/plans/2026-06-19-proserpina-design.md). This file ships the crate-level documentation and the feature surface; individual modules are added in subsequent PRs.
§Features
std(default): standard library supportcli: theproserpinabinary and clap command line interfaceserde:Serialize/Deserializeimpls for core typesjson: machine-readable JSON report output (impliesserde)backend-http: OpenAI-compatible HTTP agent, multi-provider roster, credentials config, summarizer (impliesserde)keyring: OS keychain credential tier (impliesbackend-http); macOS Keychain + Windows Credential Manager supported, Linux gnome-keyring has a known limitation
§Usage
Once built out, the CLI runs the configured critic personas over a document and renders a markdown critique report:
proserpina critique path/to/roadmap.md -o critique.mdRe-exports§
Modules§
- backend
- Backends: concrete implementations of
crate::agent::Agent. - persona
- Critic personas — the lens an agent applies when critiquing.
Structs§
- AgentId
- A stable identifier for an agent within a single Proserpina run.
- Finding
- A single synthesized critique finding: one distinct issue raised (and possibly corroborated) across the critic panel.
- Message
- A single message routed along an edge of the interaction graph.
- Report
- A synthesized critique report: the findings folded from a transcript.
- Runner
- Executes an
InteractionGraphagainst a registry of agents. - Subject
- A
Subjectis whatever a Proserpina run is cross-examining. - Transcript
- An ordered record of the
Messages produced during a Proserpina run.
Enums§
- Interaction
Graph - A realized interaction graph: the executable form of a
Topology. - Message
Kind - The role a
Messageplays in a critique. - Proserpina
Error - The single error type for all of Proserpina.
- Severity
- How serious a
Findingis. - Topology
- A topology template: a declarative description of how critics exchange
messages, before it is lowered into an
InteractionGraph.
Traits§
- Agent
- The provider boundary.