microsoft/copilot-camp is a collection of hands-on workshops for extending Microsoft 365 Copilot and building custom engine agents. Developers use it to learn how to create declarative agents, connectors, MCP servers, multi-agent workflows, API integrations, and other Copilot extensions. The catalogue entries are skills and instructions for these development workflows.
Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/microsoft/copilot-campnpx agentmods add skills/microsoft/copilot-camp/zava-claims-exportWrote 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/microsoft/copilot-camp/zava-claims-export)<a href="https://agentmods.dev/skills/microsoft/copilot-camp/zava-claims-export"><img src="https://agentmods.dev/badge/skills/microsoft/copilot-camp/zava-claims-export/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/microsoft/copilot-camp/zava-claims-export"><img src="https://agentmods.dev/badge/skills/microsoft/copilot-camp/zava-claims-export.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00214 | $0.01395 |
| Opus 5.5 | $0.00086 | $0.00558 |
| Sonnet 5.5 | $0.00043 | $0.00279 |
| Haiku 4.5 | $0.00021 | $0.00139 |
Grade A, and why
zava-claims-export 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 2mo 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 — 113 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Claims Report
Automate the boring part of claims reporting: take a raw export and return a report a manager would be happy to open — headline numbers up top, breakdowns and charts on a Dashboard, and a tidy, filterable Claims Detail table behind it.
The report design lives in the THEME block at the top of
scripts/build_report.py. That block is the reference template — colours,
fonts, and number formats. Edit it once and every future report inherits it.
When to Use
Trigger when the user has a flat claims/loss/incident export (one claim per row) and wants it turned into a formatted, summarized report. The canonical input is the columns below; the script tolerates minor header-name variation.
When NOT to Use
- The user wants a written narrative (memo, summary letter) → use
docx. - The user wants slides for a meeting → use
pptx. - The user wants a clickable/interactive dashboard → use
canvas. - A generic spreadsheet task with no claims structure → use
xlsx. - The export is not row-per-claim (e.g. already a pivot/summary) — reshape
it first, or fall back to
xlsx.
Expected Input Schema
| Column | Example | Notes |
|---|---|---|
| Claim Number | CN202504990 |
Row key; blank / "Total" rows are dropped |
| Claimant Name | David King |
|
| Location | 9607 Maple Dr, Bellevue, WA 98004 |
City/State/ZIP parsed out |
| Damage Type | Mold damage - moderate severity; Water damage |
Split into primary / severity / other |
| Status | Open - Claim is under investigation |
Short status kept for grouping |
| Date Filed | 2026-04-11 |
ISO or common date formats |
| Estimated Cost | 10608 |
Numeric; missing values are counted, never invented |
See references/schema.md for full parsing rules and how to add a column.
Workflow
- Find the input. If the user attached a file, use that path. Otherwise
look in
input/for the claims export (Glob input/**/*.xlsx). If nothing is found, ask the user for the file — do not invent data. - Build the report into scratch space (never write to
output/directly):
The script prints a one-line summary (python scripts/build_report.py --in "<input.xlsx>" --out working/claims_report.xlsx --title "Insurance Claims Report"claims=… skipped_rows=… total_cost=… avg_cost=…) and notes any claims missing a cost. Read that line back to the user in plain language. - Publish to the user surface with the artifact tool (output/ is
read-only to direct writes):
CopyArtifact(surface="output", source="working/claims_report.xlsx", destination="Claims Report.xlsx") - Confirm delivery (blocking):
Glob output/**/*must show the file before you tell the user it's ready. If it's missing, re-run step 3. - Summarize the headline numbers (total claims, total & average estimated cost, open vs closed, top damage type) so the user gets value in the chat even before opening the file. Ground every number in the script's output — never estimate.
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.
- 2mo ago First seen · 113 lines · 214 tokens per session scan A 89036fefdc51
zava-claims-export is a skill published in the GitHub repository microsoft/copilot-camp (677 stars, last pushed 4d ago), licensed MIT. It adds 214 tokens to every session and 1,395 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.
zava-claims-export compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| zava-claims-exportmicrosoft/copilot-camp | Skill | 677 | 4d ago | MIT | A | 214 | Claude Code, Codex |
| dcf-modelNousResearch/hermes-agent | Skill | 262k | today | MIT | A | 14 | Claude Code, Codex |
| gogopenclaw/openclaw | Skill | 394k | today | MIT | A | 20 | Claude Code, Codex |
| xlsxasgeirtj/system_prompts_leaks | Skill | 71k | today | CC0-1.0 | A | 206 | Claude Code, Codex |
| audit-xlsanthropics/financial-services | Skill | 41k | 11d ago | Apache-2.0 | A | 104 | Claude Code |
| artifact-template-analytics-dashboardasgeirtj/system_prompts_leaks | Skill | 71k | today | CC0-1.0 | A | 47 | Claude Code, Codex |
| google-drive-sheetsyc-software/qm | Skill | 16k | today | MIT | A | 32 | Claude Code, Codex |