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 orchardcore-ai-documentsgit 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/orchardcore-ai-documents)<a href="https://agentmods.dev/skills/crestapps/crestapps.agentskills/orchardcore-ai-documents"><img src="https://agentmods.dev/badge/skills/crestapps/crestapps.agentskills/orchardcore-ai-documents/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/orchardcore-ai-documents"><img src="https://agentmods.dev/badge/skills/crestapps/crestapps.agentskills/orchardcore-ai-documents.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Excessive Agency · line 263 Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
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.00216 | $0.02919 |
| Opus 5.5 | $0.00086 | $0.01168 |
| Sonnet 5.5 | $0.00043 | $0.00584 |
| Haiku 4.5 | $0.00022 | $0.00292 |
Grade A, and why
orchardcore-ai-documents 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 3d ago.
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 — 223 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Orchard Core AI Documents
Configure document upload and RAG
You are an Orchard Core expert. Generate configuration, recipes, and code that let users and administrators attach documents to CrestApps AI chat surfaces, and let the model retrieve from them.
Guidelines
- The base feature
CrestApps.OrchardCore.AI.DocumentsisEnabledByDependencyOnly. It depends onCrestApps.OrchardCore.AI.Chat.InteractionsandOrchardCore.Indexing, and comes along with any of the sub-features below. - Embeddable documents follow upload, scan, extract, chunk, embed, index, and vector search. Tabular files (
.csv,.tsv,.xlsx,.xls) are non-embeddable; they are loaded into the conversation's tabular workspace instead. - Indexing needs an AI Documents index profile from
CrestApps.OrchardCore.AI.Documents.ElasticsearchorCrestApps.OrchardCore.AI.Documents.AzureAI(seeorchardcore-ai-documents-elasticsearchandorchardcore-ai-documents-azureai). - The AI Documents index names its embedding deployment. The picker lists deployments in the
embeddingslot, so the deployment must declaretextEmbedding. It is locked once the index exists. - Pick the active index once. Changing it later loses access to documents of existing sessions.
- PDF and Office formats need the extractor features (see
orchardcore-ai-documents-extractors). Azure Blob Storage is optional (seeorchardcore-ai-documents-azure-storage). - Every upload is scanned before it is stored. Enable
OrchardCore.Antivirusto add ClamAV. - Install packages in the web/startup project.
Features
| Feature | Feature ID | Depends on |
|---|---|---|
| AI Documents | CrestApps.OrchardCore.AI.Documents |
CrestApps.OrchardCore.AI.Chat.Interactions, OrchardCore.Indexing (dependency only) |
| AI Documents for Chat Interactions | CrestApps.OrchardCore.AI.Documents.ChatInteractions |
AI Documents |
| AI Documents for Profiles | CrestApps.OrchardCore.AI.Documents.Profiles |
AI Documents, CrestApps.OrchardCore.AI.Chat.Core |
| AI Documents for Chat Sessions | CrestApps.OrchardCore.AI.Documents.ChatSessions |
AI Documents, CrestApps.OrchardCore.AI.Chat |
| AI Documents - Azure Blob Storage | CrestApps.OrchardCore.AI.Documents.Azure |
AI Documents |
| AI Documents indexing using Azure AI Search | CrestApps.OrchardCore.AI.Documents.AzureAI |
AI Documents, OrchardCore.AzureAI |
| AI Documents indexing using Elasticsearch | CrestApps.OrchardCore.AI.Documents.Elasticsearch |
AI Documents, OrchardCore.Elasticsearch |
| AI Documents (PDF) | CrestApps.OrchardCore.AI.Documents.Pdf |
none |
| AI Documents (OpenXml) | CrestApps.OrchardCore.AI.Documents.OpenXml |
none |
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.
- 3d ago Changed · -104 lines · +91 tokens per session 9304c5b561b1
- 1mo ago First seen · 327 lines · 125 tokens per session scan A 5dc0b640a754
orchardcore-ai-documents is a skill published in the GitHub repository CrestApps/CrestApps.AgentSkills (13 stars, last pushed 4d ago), licensed MIT. It adds 216 tokens to every session and 2,919 once invoked, about $0.0009 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-08-30.
Other skills, from other repositories
hybrid-rag
Create and query a per-review hybrid RAG index of included PRISMA evidence. Uses dense sentence-transformers retrieval plus BM25 (Qdrant/ChromaDB) or native FTS (LanceDB), fused with Reciprocal Rank Fusion.
markitdown
Converts heterogeneous documents and selected URIs to Markdown with Microsoft MarkItDown for text analysis, search, and LLM/RAG ingestion. Covers safe local conversion, streams, Office/PDF/data formats, batch workflows, plugins, vision OCR, Azure extraction, and the official MCP server.
azure-ai
Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.
microsoft-extensions-ai
Build provider-agnostic .NET AI integrations with Microsoft.Extensions.AI, IChatClient, embeddings, middleware, structured output, vector search, and evaluation. USE FOR: building or reviewing .NET code that uses Microsoft.Extensions.AI, Microsoft.Extensions.AI.Abstractions, IChatClient, IEmbeddingGenerator…
managedcode-markitdown
Use ManagedCode.MarkItDown when a .NET application needs deterministic document-to-Markdown conversion for ingestion, indexing, summarization, or content-processing workflows. USE FOR: ManagedCode.MarkItDown integration; document ingestion flows; Office or rich-text conversion to Markdown; indexing and summarization…
rag-web-fallback
Only reach for external web search when the local corpus comes back empty or clearly insufficient. Forces the agent to try knowledge-rag first, then explicitly document why it needed to escalate. Prevents wasted API cost, latency, and (in air-gapped deployments) accidental network calls.