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 agentmods add skills/zircote-plugins/sigint/report-writingnpx skills add zircote-plugins/sigint --skill report-writinggit clone --depth 1 https://github.com/zircote-plugins/sigintWrote 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/zircote-plugins/sigint/report-writing)<a href="https://agentmods.dev/skills/zircote-plugins/sigint/report-writing"><img src="https://agentmods.dev/badge/skills/zircote-plugins/sigint/report-writing.svg" alt="Measured on agentmods" 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.00061 | $0.03168 |
| Opus 5 | $0.00030 | $0.01584 |
| Sonnet 5 | $0.00012 | $0.00634 |
| Haiku 4.5 | $0.00006 | $0.00317 |
Grade A, and why
report-writing 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 6d 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 — 335 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Report Writing
Overview
Report writing transforms research findings into clear, actionable documents for decision-makers. This skill covers best practices for structuring, writing, and visualizing market research outputs.
Critical Rules
- ALWAYS start with the Executive Summary — no report should open with methodology, background, or definitions. The first substantive section must state the bottom-line findings and recommendation.
- NEVER fabricate data — if a number is not provided, say so explicitly. Present ranges when sources disagree. Use hedging language ("data suggests", "estimated") for uncertain claims.
- EVERY finding must have a "so what" — orphan facts that don't connect to implications or recommendations waste the reader's time.
- ALWAYS use active voice — passive voice obscures who did what. Write "Stripe captured 40% share" not "40% share was captured by Stripe".
- ALWAYS include at least one Mermaid diagram — visualization is not optional. Use pie charts for composition, quadrant charts for positioning, state diagrams for scenarios.
- Recommendations MUST include What/Why/How/Risk — vague recommendations ("consider expanding") are useless. Be specific and actionable.
- Preserve exact data from the user — do not round, reinterpret, or omit numbers the user provides. Every data point given must appear in the output.
- Match report type to audience — executive briefs for C-suite (1-2 pages), research summaries for VPs (3-5 pages), full reports for analysts (10-30 pages).
Report Type Selection
When the user does not specify a report type, use this decision table:
| Signal in User Prompt | Default Report Type |
|---|---|
| "executive brief", "for the CEO", "quick summary" | Executive Brief |
| "research summary", "3-5 pages", "for VPs" | Research Summary |
| "full report", "comprehensive", "detailed", "include everything" | Full Report |
| "data pack", "supporting data", "appendix only" | Appendix/Data Pack |
| No clear signal | Research Summary (safest default) |
What ships with it
7 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 6d ago First seen · 335 lines · 61 tokens per session scan A c9178892861a
report-writing is a skill published in the GitHub repository zircote-plugins/sigint (20 stars, last pushed 19d ago), licensed MIT. It adds 61 tokens to every session and 3,168 once invoked, about $0.0003 per session on Opus 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
gr-competitor
竞品深度扫描。批量抓取对手落地页(title/h1/intro/pricing)、定价页、博客 top 10、 变更历史(Wayback)。底层调 actionbook(并发 30 tab + 省 90% token)。 当用户说"分析对手"、"看看竞品在做啥"、"找对标"、"扫一下 top 10"时调用。.
radar-publish-council
Publishes the Strategic War Room addendum from /radar-council to all three surfaces. Appends the addendum to the local briefing markdown, fills the warroom section of the dashboard data and re-renders the dashboard, and appends the addendum to the Notion briefing page while checking its War Room box. Use after the…
radar-onboard
Run this FIRST, before any other radar skill. Sets up Competitive Intelligence Radar by ASKING whether BrightData and Notion are connected, live-testing one real call to each, detecting which MCP prefix is actually live, and writing radar.config.json with the user's business context. Use when the user runs…
radar-provision-notion
Creates the two Notion databases (Competitors and Briefings) the radar publishes to, but ONLY after SHOWING the proposed schema and getting the user's explicit approval. Use during /radar-setup after onboarding, or when radar-publish-notion reports the databases are missing. Idempotent: if the databases already exist…
radar-publish-notion
Publishes the run to Notion. Upserts one row per competitor in the Competitors database (matched by domain, with a Change field for week-over-week tracking) and creates a Briefings page holding the full briefing. Use after radar-merge-briefing. Requires the databases to exist (radar-provision-notion). Writing rows to…
radar-diff-changes
Diffs this run's competitor dossiers against the previous run to find what materially changed (SERP moves, price changes, new news, sentiment shifts, new or dropped competitors). Produces a ranked change set the briefing and dashboard use. Use after all competitor-scout subagents have written their dossiers and before…