Predict Intelligence Skill
You generate a professional PDF intelligence brief. The user should
grasp the key finding in 30 seconds. You own information efficiency.
Agent Requirements
| Capability |
What you need |
| Web search |
Search the internet for news, analysis, data |
| URL fetch |
Open a URL and read its content |
| File read/write |
Read template, write HTML report |
| Shell execute |
Run Python 3.9+ scripts |
First-Time Setup
pip install playwright
playwright install chromium
No other Python packages needed (Jinja2, requests, etc. are NOT required).
How It Works
Read template → Do research → Write HTML → Convert to PDF
- Read
SKILL_DIR/templates/report_template.html — your structural reference.
- Research and analyze the topic (Steps 1–8 below).
- Generate a NEW
.html file following the template's exact structure.
- Convert to PDF:
python SKILL_DIR/scripts/to_pdf.py report.html predict_report.pdf
The template IS the spec. It contains:
- All CSS (copy verbatim — never modify)
- All D3 visualization code (copy verbatim — only change data variables)
- Example content showing exact formatting for every section
- Extensive comments explaining what each section does and how to fill it
Step 0 — Domain Detection
| Signal |
Domain |
| Countries, leaders, military, diplomacy, sanctions |
Geopolitical |
| Stocks, crypto, Fed, rates, commodities |
Financial |
| Tech releases, AI models, products |
Technology |
| M&A, acquisitions, IPO, corporate |
Corporate |
| Other |
Custom |
Classification bar is always: ANYGEN PREDICT INTELLIGENCE ASSESSMENT
with #YY-MM-DD on the right (2-digit year, e.g. #26-03-12).
The report structure and design are IDENTICAL across all domains.
Only research sources and visualization choices change.
See Domain Adaptation at the bottom.
Step 1 — Parse Query
Extract:
- event: what is being predicted
- actors: who is involved
- regions / sectors: geographic or industry scope
- timeframe: any dates or deadlines
- question type:
temporal ("when"), binary ("will"), or multi_outcome ("what")
Step 2 — Research
Search the web at least 8 times, covering:
- Breaking news (last 48 hours)
- Diplomatic / military / industry developments
- Decision-makers' public statements
- Historical precedent
- Expert / think-tank / analyst reports
- Regional or sector-specific media
- Economic / financial context
- Low-probability high-impact wildcards
CRITICAL: For every fact, save the exact article URL.
For geopolitical / diplomacy / military / sanctions topics, ALSO collect:
- 3–5 key locations (cities, capitals, bases, meeting venues) with lat/lon
- ISO alpha-2 country codes of all parties involved
- Any diplomatic channels, proxy lines, or trade routes between locations
This data is required for the V2 Regional Map in Step 7. Collect it now.
fact: "Oman hosted senior US-Iran talks on March 5"
url: "https://reuters.com/world/middle-east/oman-hosts-rare-us-iran-talks-2026-03-06/"
Homepage URLs are forbidden. Every URL must point to a specific article.
Step 3 — Formulate Predictions
Create outcomes sorted by probability descending. All must sum to ~100%.
The verdict has five parts:
- verdict_number: top probability as text (e.g. "34%") — displayed at 52px, the BIGGEST element
- verdict_outcome: 3–6 word label
- verdict_detail: 1 sentence — "Most likely path: ..."
- verdict_bg (Context): 2–3 sentences of BACKGROUND BRIEFING — what led to
the current situation, key prior events, the "前情提要" (previously on...)
- verdict_context: 2–3 sentences of assessment reasoning with key evidence
Calibration:
| Confidence |
Range |
| Near-certain |
90–99% |
| Very likely |
75–89% |
| Likely |
60–74% |
| Toss-up |
40–59% |
| Unlikely |
25–39% |
| Very unlikely |
10–24% |
| Remote |
1–9% |
Step 4 — Key Drivers (5 items, causal logic required)
Each driver MUST have:
- Title: 3–5 words
- Direction:
positive (↑ increases likelihood) or negative (↓ decreases)
- Causal logic: 1 sentence: fact → mechanism → directional impact
- Source URL: exact article URL
❌ Bad: "Sanctions pressure — Iran inflation at 45%"
✅ Good: "Sanctions pressure ↑ — 45% inflation pushes Tehran toward concessions for relief"
The bad one states facts. The good one explains the causal chain.
Step 5 — Watch List (5 items, forward-looking only)
Each item is a FUTURE event or trigger that could shift the predict.
No past events. No source URLs (these haven't happened yet).
Each item MUST have:
- Date or window: specific date or range (e.g. "Apr 3", "Late March")
- Trigger: 3–6 words describing what might happen
- Conditional impact: 1 sentence — "If [X] → [how probability shifts]"
✅ Good: "Apr 3 — UNSC sanctions vote — If passed → ceasefire probability ↑10-15%"
✅ Good: "Late Mar — FOMC meeting — Dovish tone → ↑ rate cut odds; hawkish → ↓"
❌ Bad: "Mar 5 — Secret Muscat meeting happened" (PAST event — belongs in Key Drivers)
The distinction:
- Key Drivers = WHY the current probability is what it is (past + present evidence, with source URLs)
- Watch List = WHAT could change the probability next (future triggers, no sources needed)
Step 6 — Polymarket Data
Run:
python SKILL_DIR/scripts/fetch_polymarket.py --query "<keywords>" --limit 10
From results:
- Add your probability estimate for each option
- Calculate delta = your_estimate − market_probability
- Select 3 markets with highest absolute delta
- Sort by delta descending (most undervalued first)
If no script available, search "polymarket [topic]" on the web.
If no markets exist, skip the Polymarket section entirely.
Step 7 — Visualization (REQUIRED)
⚠ MANDATORY MAP RULE — READ THIS FIRST
If the topic involves countries, regions, borders, military, diplomacy,
or sanctions → you MUST include V2 (Regional Map). Non-negotiable.
Do NOT skip V2 because:
- "I only want one chart" → V2 IS that one chart. Add a second if needed.
- "It needs extra dependencies" → TopoJSON is already in the template
<head>.
Just keep the <script> tag. Do NOT remove it.
- "I don't have good marker data" → You researched 8+ sources in Step 2.
You have city names, country names, and actor locations. Use them.
Minimum: 3 markers from your research + highlight the relevant countries.
Only these domains are exempt from V2: financial, technology, corporate,
budget/aid (unless they have a geographic dimension).
Choosing visualizations
Pick 1 or 2 types total. Minimum 1, maximum 2.
| Domain |
Required |
Optional 2nd |
| War / conflict |
V2 (map) |
V3 (entity) |
| Sanctions / trade |
V2 (map) |
V5 (comparison) or V8 (sankey) |
| Military balance |
V2 (map) |
V5 (comparison bars) |
| Diplomacy |
V2 (map) |
V9 (gantt phases) |
| Election |
V7 (choropleth) |
V1 (polling trend) |
| Economic / monetary |
V1 (trend) |
V10 (key rate) or V5 (comparison) |
| Budget / aid flow |
V8 (sankey) |
V5 (comparison) |
| Multi-phase process |
V9 (gantt) |
V4 (timeline) |
V2 data — how to fill it
From your Step 2 research, extract:
markers[]: 3–5 locations mentioned in your sources (capitals, cities,
military bases, meeting venues). Use real lat/lon coordinates.
connections[]: diplomatic channels, proxy influence lines, trade routes.
hlCodes[]: ISO alpha-2 codes of countries involved (e.g. ["IR","IQ","OM"]).
This data comes from your research. You already have it. Do not skip.
Available types
9 pre-built types (there is NO V6). DO NOT write custom D3/SVG.
| Type |
ID |
When to use |
| Regional Map |
V2 |
Geographic theater with markers |
| Metric Trend |
V1 |
Data over time — polls, rates, escalation |
| Entity Graph |
V3 |
Actor networks — alliances, proxies |
| Event Timeline |
V4 |
Complex event sequences (sparingly) |
| Comparison Bars |
V5 |
Ranked values — spending, strength, polls |
| Choropleth |
V7 |
Election maps / regional statistics |
| Sankey |
V8 |
Flow diagrams — funding, resources, influence |
| Gantt |
V9 |
Phase / timeline bars for overlapping activities |
| Big Number |
V10 |
1–3 key metrics as large display (see rules below) |
V10 Big Number — VERY RARE, strict rules:
- Use ONLY when a specific number is truly critical to the analytical argument
- The number must NOT already appear in the Verdict
- Maximum 3 number cards
- Must include delta/change indicator (↑ or ↓ with amount)
- ✅ "US unemployment 4.1% (↑0.3pp)" when discussing Fed rate decisions
- ✅ "$12B reserves (↓40% YoY)" when discussing Iran sanctions threshold
- ❌ Generic statistics, redundant percentages, or decorative numbers
Placement and rules
Section order: Visualization comes AFTER Predict → Key Drivers →
Watch List, and BEFORE Polymarket.
For each type you use:
- Keep its
<section> in the HTML body (after Watch List section)
- Keep its matching
<script> block at the bottom
- Only change the data variables at the top of the script (
AGENT: markers)
- Delete ALL unused types — both HTML
<section> AND <script>
<h2> title MUST describe what the chart shows
Label limits (auto-truncated, keep short anyway):
| Type |
Limits |
| V2 |
marker labels ≤20 |
| V1 |
y-label ≤20, series ≤20, max 12 x-points, max 3 lines |
| V3 |
node ≤16, edge ≤14, max 8 nodes |
| V4 |
labels ≤45, max 8 items |
| V5 |
bar labels ≤18, max 8 bars |
| V7 |
category labels ≤20 |
| V8 |
node names ≤18, max 12 nodes, max 15 links |
| V9 |
task labels ≤22, max 8 tasks |
| V10 |
max 3 cards |
Step 8 — Fact Check
This report may inform six-figure financial decisions.
Step 9 — Generate HTML
Open SKILL_DIR/templates/report_template.html and read it.
Then generate a new HTML file following the same structure:
- Copy the entire
<style> block verbatim — never modify CSS.
- Copy D3
<script> blocks for the 1–2 viz types you chose.
Only replace the data variables at the top of each script
(clearly marked with AGENT: Replace comments).
- CDN dependencies:
- D3: always include (needed for V1–V9)
- TopoJSON: only for V2 (map), V7 (choropleth)
- d3-sankey: only for V8 (sankey)
- V10 (Big Number) needs NO scripts — pure HTML/CSS
- Fill in the HTML content sections following the template's structure.
Section order: [A] → [B] → [E] → [F] → [G] → Visualization → [H] → [I]
- Delete ALL unused viz types — both
<section> and matching <script>.
- No Polymarket → delete section [H]
Save as report.html in the working directory.
Step 10 — Convert to PDF
python SKILL_DIR/scripts/to_pdf.py report.html predict_report.pdf
Step 11 — Deliver
Tell the user the PDF is ready. State the verdict in one sentence:
"Report generated. 34% chance of ceasefire before April 15 — most
likely via Omani-mediated direct talks."
Template Quick Reference
The template contains example content for a "US-Iran Ceasefire" report.
Here's the section-by-section mapping:
| Order |
Section |
What to fill |
| 1 |
Classification bar [A] |
ANYGEN PREDICT INTELLIGENCE ASSESSMENT + #YY-MM-DD |
| 2 |
Header + verdict [B] |
Title, date, verdict number/outcome/detail/context-bg/context |
| 3 |
Predict [E] |
Outcome divs with probability bars |
| 4 |
Key Drivers [F] |
5 driver items with ↑/↓, causal logic, source URL |
| 5 |
Watch List [G] |
5 future triggers with date/window, trigger title, conditional impact |
| 6 |
Visualization |
REQUIRED — pick 1–2 of 9 types (V1–V5, V7–V10). See domain rules for mandatory types. |
| 7 |
Polymarket [H] |
Optional: 3 market blocks with option tables |
| 8 |
Footer [I] |
Source list + disclaimer |
Domain Adaptation
Research Sources by Domain
| Domain |
Primary sources |
| Geopolitical |
Reuters, AP, Al Jazeera, CSIS, IISS, Brookings, ICG |
| Financial |
Bloomberg, FT, WSJ, Fed minutes, bank research, on-chain analytics |
| Technology |
TechCrunch, The Verge, Ars Technica, company blogs, SEC filings |
| Corporate |
SEC filings, press releases, industry analysts, FT, Bloomberg |
Visualization by Domain (pick 1–2, min 1 max 2)
⚠ V2 (Regional Map) is MANDATORY for Geopolitical, Diplomacy, Military,
and Sanctions topics. Do not substitute Gantt, Timeline, or any other type
in place of V2. V2 must always be included; add a second chart if needed.
| Domain |
Required viz |
Optional 2nd |
Rule |
| Geopolitical |
V2 (map) |
V3 (entity) |
V2 MANDATORY — never omit |
| Diplomacy |
V2 (map) |
V9 (gantt — phases) |
V2 MANDATORY — never omit |
| Military |
V2 (map) |
V5 (comparison) |
V2 MANDATORY — never omit |
| Sanctions |
V2 (map) |
V5 or V8 (sankey) |
V2 MANDATORY — never omit |
| Financial |
V1 (trend) |
V10 (key metric) or V5 |
|
| Technology |
V1 (trend) |
V3 (entity — ecosystem) |
|
| Corporate |
V3 (entity — M&A) |
V8 (sankey — deal flow) |
|
| Election |
V7 (choropleth) |
V1 (polling trend) |
V7 MANDATORY |
| Budget / aid |
V8 (sankey — flow) |
V5 (comparison) |
|
What NEVER Changes
- White monochrome CIA-brief aesthetic with ANYGEN classification bars
- 52px verdict number — the biggest element on the page
- Verdict block: number → outcome → detail → context background → assessment
- Probability-ranked outcomes with bars
- Key drivers with ↑/↓ direction and causal logic
- Watch list with forward-looking triggers and conditional impacts
- Polymarket delta comparison with UNDERVALUED highlight (when markets exist)
- Every URL must be a real article, never a homepage
- 30-second scannability — no filler, no academic prose
Writing Rules
| Element |
Rule |
| Verdict number |
52px. THE biggest element. |
| Verdict outcome |
3–6 words |
| Verdict context |
2–3 sentences of reasoning |
| Driver title |
3–5 words |
| Driver detail |
1 sentence: fact → mechanism → direction |
| Watch trigger |
3–6 words |
| Watch impact |
1 sentence: "If [X] → [shift]" |
| URLs |
Real article URLs. Never homepages. |
| Polymarket |
3 markets, delta-sorted, highlight undervalued |
| General |
If a word doesn't add information, cut it |
1---2name: predict-intelligence3description: Predict intelligence skill for AI agents. Generates professional PDF reports with probability-ranked predictions, D3 visualizations, and Polymarket consensus signals. Covers geopolitics, finance, tech, elections, and any predicting question. Use when user asks about event predictions, probability predicts, "when will X happen", "will X happen", or outcome analysis.4---56# Predict Intelligence Skill78You generate a professional PDF intelligence brief. The user should9grasp the key finding in **30 seconds**. You own **information efficiency**.1011## Agent Requirements1213| Capability | What you need |14|---|---|15| **Web search** | Search the internet for news, analysis, data |16| **URL fetch** | Open a URL and read its content |17| **File read/write** | Read template, write HTML report |18| **Shell execute** | Run Python 3.9+ scripts |1920## First-Time Setup2122```bash23pip install playwright24playwright install chromium25```2627No other Python packages needed (Jinja2, requests, etc. are NOT required).2829---3031## How It Works3233```34Read template → Do research → Write HTML → Convert to PDF35```36371. Read `SKILL_DIR/templates/report_template.html` — your structural reference.382. Research and analyze the topic (Steps 1–8 below).393. Generate a NEW `.html` file following the template's exact structure.404. Convert to PDF:41 ```bash42 python SKILL_DIR/scripts/to_pdf.py report.html predict_report.pdf43 ```4445**The template IS the spec.** It contains:46- All CSS (copy verbatim — never modify)47- All D3 visualization code (copy verbatim — only change data variables)48- Example content showing exact formatting for every section49- Extensive comments explaining what each section does and how to fill it5051---5253## Step 0 — Domain Detection5455| Signal | Domain |56|---|---|57| Countries, leaders, military, diplomacy, sanctions | **Geopolitical** |58| Stocks, crypto, Fed, rates, commodities | **Financial** |59| Tech releases, AI models, products | **Technology** |60| M&A, acquisitions, IPO, corporate | **Corporate** |61| Other | **Custom** |6263Classification bar is always: `ANYGEN PREDICT INTELLIGENCE ASSESSMENT`64with `#YY-MM-DD` on the right (2-digit year, e.g. `#26-03-12`).6566The report structure and design are IDENTICAL across all domains.67Only research sources and visualization choices change.68See **Domain Adaptation** at the bottom.6970## Step 1 — Parse Query7172Extract:73- **event**: what is being predicted74- **actors**: who is involved75- **regions / sectors**: geographic or industry scope76- **timeframe**: any dates or deadlines77- **question type**: `temporal` ("when"), `binary` ("will"), or `multi_outcome` ("what")7879## Step 2 — Research8081Search the web at least 8 times, covering:82831. Breaking news (last 48 hours)842. Diplomatic / military / industry developments853. Decision-makers' public statements864. Historical precedent875. Expert / think-tank / analyst reports886. Regional or sector-specific media897. Economic / financial context908. Low-probability high-impact wildcards9192**CRITICAL**: For every fact, **save the exact article URL**.9394**For geopolitical / diplomacy / military / sanctions topics, ALSO collect:**95- 3–5 key locations (cities, capitals, bases, meeting venues) with lat/lon96- ISO alpha-2 country codes of all parties involved97- Any diplomatic channels, proxy lines, or trade routes between locations98This data is required for the V2 Regional Map in Step 7. Collect it now.99100```101fact: "Oman hosted senior US-Iran talks on March 5"102url: "https://reuters.com/world/middle-east/oman-hosts-rare-us-iran-talks-2026-03-06/"103```104105Homepage URLs are forbidden. Every URL must point to a specific article.106107## Step 3 — Formulate Predictions108109Create outcomes sorted by probability descending. All must sum to ~100%.110111The verdict has five parts:112- **verdict_number**: top probability as text (e.g. "34%") — displayed at 52px, the BIGGEST element113- **verdict_outcome**: 3–6 word label114- **verdict_detail**: 1 sentence — "Most likely path: ..."115- **verdict_bg** (Context): 2–3 sentences of BACKGROUND BRIEFING — what led to116 the current situation, key prior events, the "前情提要" (previously on...)117- **verdict_context**: 2–3 sentences of assessment reasoning with key evidence118119Calibration:120121| Confidence | Range |122|---|---|123| Near-certain | 90–99% |124| Very likely | 75–89% |125| Likely | 60–74% |126| Toss-up | 40–59% |127| Unlikely | 25–39% |128| Very unlikely | 10–24% |129| Remote | 1–9% |130131## Step 4 — Key Drivers (5 items, causal logic required)132133Each driver MUST have:134- **Title**: 3–5 words135- **Direction**: `positive` (↑ increases likelihood) or `negative` (↓ decreases)136- **Causal logic**: 1 sentence: fact → mechanism → directional impact137- **Source URL**: exact article URL138139❌ Bad: "Sanctions pressure — Iran inflation at 45%"140✅ Good: "Sanctions pressure ↑ — 45% inflation pushes Tehran toward concessions for relief"141142The bad one states facts. The good one explains the causal chain.143144## Step 5 — Watch List (5 items, forward-looking only)145146Each item is a FUTURE event or trigger that could shift the predict.147No past events. No source URLs (these haven't happened yet).148149Each item MUST have:150- **Date or window**: specific date or range (e.g. "Apr 3", "Late March")151- **Trigger**: 3–6 words describing what might happen152- **Conditional impact**: 1 sentence — "If [X] → [how probability shifts]"153154✅ Good: "Apr 3 — UNSC sanctions vote — If passed → ceasefire probability ↑10-15%"155✅ Good: "Late Mar — FOMC meeting — Dovish tone → ↑ rate cut odds; hawkish → ↓"156❌ Bad: "Mar 5 — Secret Muscat meeting happened" (PAST event — belongs in Key Drivers)157158**The distinction:**159- **Key Drivers** = WHY the current probability is what it is (past + present evidence, with source URLs)160- **Watch List** = WHAT could change the probability next (future triggers, no sources needed)161162## Step 6 — Polymarket Data163164Run:165```bash166python SKILL_DIR/scripts/fetch_polymarket.py --query "<keywords>" --limit 10167```168169From results:1701. Add your probability estimate for each option1712. Calculate delta = your_estimate − market_probability1723. Select **3 markets with highest absolute delta**1734. Sort by delta descending (most undervalued first)174175If no script available, search "polymarket [topic]" on the web.176If no markets exist, skip the Polymarket section entirely.177178## Step 7 — Visualization (REQUIRED)179180### ⚠ MANDATORY MAP RULE — READ THIS FIRST181182**If the topic involves countries, regions, borders, military, diplomacy,183or sanctions → you MUST include V2 (Regional Map). Non-negotiable.**184185Do NOT skip V2 because:186- "I only want one chart" → V2 IS that one chart. Add a second if needed.187- "It needs extra dependencies" → TopoJSON is already in the template `<head>`.188 Just keep the `<script>` tag. Do NOT remove it.189- "I don't have good marker data" → You researched 8+ sources in Step 2.190 You have city names, country names, and actor locations. Use them.191 Minimum: 3 markers from your research + highlight the relevant countries.192193**Only these domains are exempt from V2:** financial, technology, corporate,194budget/aid (unless they have a geographic dimension).195196### Choosing visualizations197198Pick 1 or 2 types total. Minimum 1, maximum 2.199200| Domain | Required | Optional 2nd |201|---|---|---|202| War / conflict | **V2 (map)** | V3 (entity) |203| Sanctions / trade | **V2 (map)** | V5 (comparison) or V8 (sankey) |204| Military balance | **V2 (map)** | V5 (comparison bars) |205| Diplomacy | **V2 (map)** | V9 (gantt phases) |206| Election | **V7 (choropleth)** | V1 (polling trend) |207| Economic / monetary | V1 (trend) | V10 (key rate) or V5 (comparison) |208| Budget / aid flow | V8 (sankey) | V5 (comparison) |209| Multi-phase process | V9 (gantt) | V4 (timeline) |210211### V2 data — how to fill it212213From your Step 2 research, extract:214- `markers[]`: 3–5 locations mentioned in your sources (capitals, cities,215 military bases, meeting venues). Use real lat/lon coordinates.216- `connections[]`: diplomatic channels, proxy influence lines, trade routes.217- `hlCodes[]`: ISO alpha-2 codes of countries involved (e.g. `["IR","IQ","OM"]`).218219This data comes from your research. You already have it. Do not skip.220221### Available types2222239 pre-built types (there is NO V6). **DO NOT write custom D3/SVG.**224225| Type | ID | When to use |226|---|---|---|227| **Regional Map** | V2 | Geographic theater with markers |228| **Metric Trend** | V1 | Data over time — polls, rates, escalation |229| **Entity Graph** | V3 | Actor networks — alliances, proxies |230| **Event Timeline** | V4 | Complex event sequences (sparingly) |231| **Comparison Bars** | V5 | Ranked values — spending, strength, polls |232| **Choropleth** | V7 | Election maps / regional statistics |233| **Sankey** | V8 | Flow diagrams — funding, resources, influence |234| **Gantt** | V9 | Phase / timeline bars for overlapping activities |235| **Big Number** | V10 | 1–3 key metrics as large display (see rules below) |236237**V10 Big Number — VERY RARE, strict rules:**238- Use ONLY when a specific number is truly critical to the analytical argument239- The number must NOT already appear in the Verdict240- Maximum 3 number cards241- Must include delta/change indicator (↑ or ↓ with amount)242- ✅ "US unemployment 4.1% (↑0.3pp)" when discussing Fed rate decisions243- ✅ "$12B reserves (↓40% YoY)" when discussing Iran sanctions threshold244- ❌ Generic statistics, redundant percentages, or decorative numbers245246### Placement and rules247248**Section order:** Visualization comes AFTER Predict → Key Drivers →249Watch List, and BEFORE Polymarket.250251For each type you use:2521. Keep its `<section>` in the HTML body (after Watch List section)2532. Keep its matching `<script>` block at the bottom2543. Only change the **data variables** at the top of the script (`AGENT:` markers)2554. **Delete ALL unused types** — both HTML `<section>` AND `<script>`2565. `<h2>` title MUST describe what the chart shows257258**Label limits** (auto-truncated, keep short anyway):259260| Type | Limits |261|---|---|262| V2 | marker labels ≤20 |263| V1 | y-label ≤20, series ≤20, max 12 x-points, max 3 lines |264| V3 | node ≤16, edge ≤14, max 8 nodes |265| V4 | labels ≤45, max 8 items |266| V5 | bar labels ≤18, max 8 bars |267| V7 | category labels ≤20 |268| V8 | node names ≤18, max 12 nodes, max 15 links |269| V9 | task labels ≤22, max 8 tasks |270| V10 | max 3 cards |271272## Step 8 — Fact Check273274**This report may inform six-figure financial decisions.**275276- [ ] Every source URL is a real article page you actually visited277- [ ] Every Polymarket URL is a real event page on polymarket.com278- [ ] All stated facts match their sources279- [ ] Probabilities sum to ~100%280- [ ] Remove any claim without a verified source URL281282## Step 9 — Generate HTML283284Open `SKILL_DIR/templates/report_template.html` and read it.285Then generate a **new** HTML file following the same structure:2862871. **Copy the entire `<style>` block verbatim** — never modify CSS.2882. **Copy D3 `<script>` blocks for the 1–2 viz types you chose.**289 Only replace the data variables at the top of each script290 (clearly marked with `AGENT: Replace` comments).2913. **CDN dependencies:**292 - D3: always include (needed for V1–V9)293 - TopoJSON: only for V2 (map), V7 (choropleth)294 - d3-sankey: only for V8 (sankey)295 - V10 (Big Number) needs NO scripts — pure HTML/CSS2964. **Fill in the HTML content sections** following the template's structure.297 **Section order:** [A] → [B] → [E] → [F] → [G] → Visualization → [H] → [I]2985. **Delete ALL unused viz types** — both `<section>` and matching `<script>`.299 - No Polymarket → delete section [H]300301Save as `report.html` in the working directory.302303## Step 10 — Convert to PDF304305```bash306python SKILL_DIR/scripts/to_pdf.py report.html predict_report.pdf307```308309## Step 11 — Deliver310311Tell the user the PDF is ready. State the verdict in one sentence:312"Report generated. **34% chance of ceasefire before April 15** — most313likely via Omani-mediated direct talks."314315---316317## Template Quick Reference318319The template contains example content for a "US-Iran Ceasefire" report.320Here's the section-by-section mapping:321322| Order | Section | What to fill |323|---|---|---|324| 1 | Classification bar `[A]` | `ANYGEN PREDICT INTELLIGENCE ASSESSMENT` + `#YY-MM-DD` |325| 2 | Header + verdict `[B]` | Title, date, verdict number/outcome/detail/context-bg/context |326| 3 | Predict `[E]` | Outcome divs with probability bars |327| 4 | Key Drivers `[F]` | 5 driver items with ↑/↓, causal logic, source URL |328| 5 | Watch List `[G]` | 5 future triggers with date/window, trigger title, conditional impact |329| 6 | **Visualization** | **REQUIRED** — pick 1–2 of 9 types (V1–V5, V7–V10). See domain rules for mandatory types. |330| 7 | Polymarket `[H]` | Optional: 3 market blocks with option tables |331| 8 | Footer `[I]` | Source list + disclaimer |332333---334335## Domain Adaptation336337### Research Sources by Domain338339| Domain | Primary sources |340|---|---|341| Geopolitical | Reuters, AP, Al Jazeera, CSIS, IISS, Brookings, ICG |342| Financial | Bloomberg, FT, WSJ, Fed minutes, bank research, on-chain analytics |343| Technology | TechCrunch, The Verge, Ars Technica, company blogs, SEC filings |344| Corporate | SEC filings, press releases, industry analysts, FT, Bloomberg |345346### Visualization by Domain (pick 1–2, min 1 max 2)347348**⚠ V2 (Regional Map) is MANDATORY for Geopolitical, Diplomacy, Military,349and Sanctions topics. Do not substitute Gantt, Timeline, or any other type350in place of V2. V2 must always be included; add a second chart if needed.**351352| Domain | Required viz | Optional 2nd | Rule |353|---|---|---|---|354| Geopolitical | **V2 (map)** | V3 (entity) | **V2 MANDATORY — never omit** |355| Diplomacy | **V2 (map)** | V9 (gantt — phases) | **V2 MANDATORY — never omit** |356| Military | **V2 (map)** | V5 (comparison) | **V2 MANDATORY — never omit** |357| Sanctions | **V2 (map)** | V5 or V8 (sankey) | **V2 MANDATORY — never omit** |358| Financial | V1 (trend) | V10 (key metric) or V5 | |359| Technology | V1 (trend) | V3 (entity — ecosystem) | |360| Corporate | V3 (entity — M&A) | V8 (sankey — deal flow) | |361| Election | **V7 (choropleth)** | V1 (polling trend) | **V7 MANDATORY** |362| Budget / aid | V8 (sankey — flow) | V5 (comparison) | |363364### What NEVER Changes3653661. White monochrome CIA-brief aesthetic with ANYGEN classification bars3672. 52px verdict number — the biggest element on the page3683. Verdict block: number → outcome → detail → context background → assessment3694. Probability-ranked outcomes with bars3705. Key drivers with ↑/↓ direction and causal logic3716. Watch list with forward-looking triggers and conditional impacts3727. Polymarket delta comparison with UNDERVALUED highlight (when markets exist)3738. Every URL must be a real article, never a homepage3749. 30-second scannability — no filler, no academic prose375376## Writing Rules377378| Element | Rule |379|---|---|380| Verdict number | 52px. THE biggest element. |381| Verdict outcome | 3–6 words |382| Verdict context | 2–3 sentences of reasoning |383| Driver title | 3–5 words |384| Driver detail | 1 sentence: fact → mechanism → direction |385| Watch trigger | 3–6 words |386| Watch impact | 1 sentence: "If [X] → [shift]" |387| URLs | Real article URLs. Never homepages. |388| Polymarket | 3 markets, delta-sorted, highlight undervalued |389| General | If a word doesn't add information, cut it |