Bounded context and streaming exports for datasets too large for AI, plus browserless Markdown to PDF.
Pluma defines 8 tools with generally clear names and descriptions. All tools have input schemas with type information and parameter descriptions. However, output schemas are not documented in the source code provided, and several tools lack depth in their descriptions relative to production baselines (194 chars average). Tool names follow verb_noun convention well (render_pdf, read_pdf, read_html, read_url, compile_context, compile_rows, context_query, context_export). Parameter descriptions are present but often terse (e.g., 'Base64-encoded PDF bytes or file path' for pdf param). No evidence of error handling guidance, recovery patterns, or actionable error messages in the source. Security considerations for file I/O and network access are not visible in tool definitions.
Compiles a CSV/XLSX/Parquet file into a bounded context package with indexes, materialized aggregates, and token budgeting for LLM consumption.
Compiles streaming row data (AsyncIterable/NDJSON) into a bounded context package with schema, indexes, and resource budgeting.
Exports a compiled context package to CSV, XLSX, or Parquet format.
Executes a query plan against a compiled context package. Supports filtering, grouping, aggregation, and token-budgeted payloads.
Converts HTML to clean, LLM-ready Markdown. Extracts main content using readability scoring, resolves metadata, and serializes tables/code/lists deterministically.
Converts PDF to clean Markdown. Extracts text, metadata, page structure, and outline. Supports page range selection and header/footer filtering.
Fetches a URL and converts it to Markdown via readHtml. Supports network policy control for public vs. private networks.
Output schemas not documented. No tool returns a documented schema showing what fields the LLM should expect. This forces LLMs to guess at response structure and breaks downstream tool chaining.
No error handling guidance in tool descriptions. Tools that perform I/O (read_pdf, read_url, compile_context) do not document failure modes, recovery steps, or actionable error messages. LLMs cannot self-correct on failures.
Parameter descriptions lack format/constraint details. E.g., 'pages' param accepts '1-3,7' but the description does not specify the format. 'maxBytes' and 'maxTokens' lack min/max bounds. LLMs cannot validate inputs without explicit constraints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Converts Markdown to PDF using Typst compilation. Supports themes, branding, custom fonts, and frontmatter metadata.
Destructive operations (compile_context, compile_rows, context_export) lack confirmation or dry-run patterns. No evidence of idempotency guarantees or rollback mechanisms. Agents could accidentally overwrite data.
Security considerations not visible in tool definitions. read_url accepts networkPolicy enum but no description of security implications. File paths in compile_context/compile_rows/context_export are not validated against path traversal in the visible schema.