Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add CrestApps/CrestApps.AgentSkills --skill crestapps-core-document-agentsgit clone --depth 1 https://github.com/CrestApps/CrestApps.AgentSkillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/crestapps/crestapps.agentskills/crestapps-core-document-agents)<a href="https://agentmods.dev/skills/crestapps/crestapps.agentskills/crestapps-core-document-agents"><img src="https://agentmods.dev/badge/skills/crestapps/crestapps.agentskills/crestapps-core-document-agents/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/crestapps/crestapps.agentskills/crestapps-core-document-agents"><img src="https://agentmods.dev/badge/skills/crestapps/crestapps.agentskills/crestapps-core-document-agents.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00161 | $0.02489 |
| Opus 5.5 | $0.00064 | $0.00996 |
| Sonnet 5.5 | $0.00032 | $0.00498 |
| Haiku 4.5 | $0.00016 | $0.00249 |
Grade A, and why
crestapps-core-document-agents scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 213 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CrestApps.Core Document Agents
Four code-defined system agents work on files for the primary model. Each is always available to orchestration, hidden from AI Profile and Chat Interaction agent pickers, published through an A2A host, and runs its own hidden tools. The primary model delegates every request that produces or changes that kind of file, and every follow-up ("make the title blue"), to the agent. Base document processing is in crestapps-core-document-processing.
| Agent | Name | Registered by | Package |
|---|---|---|---|
| Tabular Data Agent | tabular-data-agent |
AddDocumentProcessing() |
CrestApps.Core.AI.Documents |
| Presentation Agent | presentation-agent |
AddOpenXml() |
CrestApps.Core.AI.Documents.OpenXml (agent code in CrestApps.Core.AI.Documents) |
| Word Agent | word-agent |
AddWord() |
CrestApps.Core.AI.Documents.Word |
| PDF Agent | pdf-agent |
AddPdf() on the document-processing builder |
CrestApps.Core.AI.Documents.Pdf |
Registration
using CrestApps.Core.AI.Documents;
using CrestApps.Core.AI.Documents.Endpoints;
using CrestApps.Core.AI.Documents.OpenXml;
using CrestApps.Core.AI.Documents.Pdf;
using CrestApps.Core.AI.Documents.Word;
builder.Services.AddCrestAppsCore(crestApps => crestApps
.AddAISuite(ai => ai
.AddOpenAI()
.AddChatInteractions(chatInteractions => chatInteractions.AddYesSqlStores())
.AddDocumentProcessing(documentProcessing => documentProcessing
.AddYesSqlStores()
.AddOpenXml() // Office readers and writers, Presentation Agent
.AddWord() // Word Agent (uses the OpenXml .docx support)
.AddPdf() // PDF reader and writer, PDF Agent, PDF export of decks
.AddPdfSigning(options =>
{
options.CertificatePath = builder.Configuration["Pdf:CertificatePath"];
options.CertificatePassword = builder.Configuration["Pdf:CertificatePassword"];
options.TimestampAuthorityUrl = "https://timestamp.example.com";
})
.AddReferenceDownloads())));
var app = builder.Build();
app.AddDownloadAIDocumentEndpoint();
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 213 lines · 161 tokens per session scan A 7cbda1eb80b3
crestapps-core-document-agents is a skill published in the GitHub repository CrestApps/CrestApps.AgentSkills (13 stars, last pushed yesterday), licensed MIT. It adds 161 tokens to every session and 2,489 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-22.
Other skills, from other repositories
n8n-binary-and-data
Handle files and binary data in n8n correctly. Use when working with files, images, PDFs, attachments, uploads or downloads, base64, vision/multimodal input, or when an AI agent needs a file as tool input or output — and whenever the user mentions $binary, binaryPropertyName, "read the PDF", "attach the file", "send…
markdown-to-pdf
Convert a markdown file to PDF using mistune + reportlab. Use when the user wants to convert a .md file to PDF, or when another skill needs to produce a PDF from markdown output.
kami
Generate PDFs, resumes, CVs, letters, slide decks, portfolios, one-pagers, white papers, and professional documents. Use when user asks to create a PDF, make a resume, write a letter, design slides, format a document, typeset a report, build a portfolio, make a presentation, or create a one-pager. Warm parchment…
kagen
Convert Kami HTML templates to production-grade PDF via Chromium/Playwright. Complements Kami (design) with PDF rendering. Use when user asks to generate PDF files, render HTML to PDF, or export documents.
pdf-guide
Searches and reads Riksarkivet's archival PDF guides (medieval Sweden, governance 1520-1920, Sami history). Use when user asks about Swedish history, archives, medieval charters, governance, Sami, or wants to open/search PDF guides. Provides section-level references with page numbers for citation.
gewerbe-registration
Prepare a German trade-office registration (Gewerbeanmeldung, form GewA 1) through a guided chat. Use when the user wants to register a trade/business with the Gewerbeamt, file a Gewerbeanmeldung, or asks what to do after founding a GmbH/UG or finishing the tax registration (Fragebogen). Germany only.