Action Report
Render prioritized action reports in the artifact panel via preview_action_report. The agent writes a YAML file defining an executive summary and a list of action items; the MCP App renders them as visual cards sorted by priority.
Building the Report Incrementally
CRITICAL: Large reports (6+ actions) MUST be built in batches to avoid output truncation. Do NOT attempt to write the entire YAML in a single tool call.
- Write the file with
title, subtitle, summary, and the first 2–3 actions
- Edit the file to append the next 2–3 actions at the end of the
actions array
- Repeat step 2 until all actions are written
- Call
preview_action_report once at the end — never mid-build
Each Edit call should add at most 3 action items. This keeps individual tool call output small and prevents mid-generation truncation.
YAML Structure
title: "SEO Action Report: example.com"
subtitle: "Analyzed 2026-02-18 (28-day window)" # optional
summary: |
AEO Score: 58/100 (C). 12 quick wins identified.
Estimated total impact: +190-270 clicks/month.
actions:
- title: "Rewrite H1 to include primary keyword"
priority: high # high | medium | low
category: "Content Structure" # optional — shown as badge
as_is: |
```html
<h1>Making Marketers Superhuman</h1>
```
to_be: |
```html
<h1>Treasure Data CDP | AI-Native Customer Data Platform</h1>
```
reason: |
Current H1 has no keyword signals. Top 5 competitors
all include "CDP" in H1. Expected: +15-20% CTR.
impact: "+35-40 clicks/month" # optional — shown at bottom of card
- title: "Add FAQPage JSON-LD schema"
priority: high
category: "Structured Data"
as_is: |
Only Article schema present
to_be: |
```json
{
"@type": "FAQPage",
"mainEntity": [
{"@type": "Question", "name": "How does a CDP work?", "acceptedAnswer": {"@type": "Answer", "text": "..."}},
{"@type": "Question", "name": "CDP vs DMP?", "acceptedAnswer": {"@type": "Answer", "text": "..."}}
]
}
```
reason: |
4/5 competitors have FAQPage schema. Sites with 3+ schema types
show ~13% higher AI citation rate.
impact: "+50-80 clicks/month"
Fields
| Field |
Required |
Description |
title |
Yes |
Report title (e.g., "SEO Action Report: example.com") |
subtitle |
No |
Subtitle shown below title (e.g., date range, analysis scope) |
summary |
Yes |
Executive summary — markdown text shown at top of report |
actions |
Yes |
Array of action items (at least one) |
Action Item Fields
| Field |
Required |
Description |
title |
Yes |
Short action title (imperative form: "Add...", "Rewrite...", "Fix...") |
priority |
Yes |
high, medium, or low — determines sort order and color |
category |
No |
Category tag (e.g., "Content Structure", "Technical SEO") |
as_is |
Yes |
As-Is (current state) — markdown (use code blocks for HTML/JSON/config) |
to_be |
Yes |
To-Be (recommended state) — markdown (complete replacement, not a diff) |
reason |
Yes |
Why this change — cite data, competitor patterns, expected effect |
impact |
No |
Expected impact (e.g., "+35-40 clicks/month", "CTR +2%") |
Rendering
The dashboard renders actions sorted by priority (high → medium → low) as flat cards with no expand/collapse. Each card shows:
- Header: number badge, title, priority badge, category badge
- Diff area: As-Is (red card) / To-Be (green card) stacked vertically
- Reason: explanation text below the diff
- Impact: metric at bottom of card (if provided)
Copy as Markdown
A Copy as Markdown button in the header copies the entire report as formatted markdown to the clipboard. This allows users to paste into docs, tickets, or share with team members.
Calling the tool
Write the YAML file and call:
preview_action_report({ file_path: "/absolute/path/to/action-report.yaml" })
Writing Guidelines
as_is and to_be: Include actual current content and complete replacement — not vague descriptions. Use code blocks for HTML, JSON-LD, config snippets.
reason: Cite specific data — competitor patterns, SERP features, score dimensions, metrics. Not just "this is better."
priority: Based on effort-to-impact ratio. High = low effort + high impact. Low = high effort or low impact.
summary: Lead with the most important finding. Include key scores and total expected impact.
Fallback (No Artifact Panel)
When preview_action_report is not available (CLI mode), output the same information as formatted markdown directly in the conversation.
1---2name: action-report3description: YAML format reference for action reports rendered via preview_action_report. MUST be read before writing any action report YAML — defines the report structure (title, summary, actions array) and action item fields (as_is, to_be, reason, priority, category, impact) with incremental build workflow. Required by seo-analysis and any skill that produces prioritized recommendations.4---56# Action Report78Render prioritized action reports in the artifact panel via `preview_action_report`. The agent writes a YAML file defining an executive summary and a list of action items; the MCP App renders them as visual cards sorted by priority.910## Building the Report Incrementally1112**CRITICAL**: Large reports (6+ actions) MUST be built in batches to avoid output truncation. Do NOT attempt to write the entire YAML in a single tool call.13141. **Write** the file with `title`, `subtitle`, `summary`, and the first 2–3 actions152. **Edit** the file to append the next 2–3 actions at the end of the `actions` array163. Repeat step 2 until all actions are written174. Call `preview_action_report` **once** at the end — never mid-build1819Each Edit call should add at most 3 action items. This keeps individual tool call output small and prevents mid-generation truncation.2021## YAML Structure2223```yaml24title: "SEO Action Report: example.com"25subtitle: "Analyzed 2026-02-18 (28-day window)" # optional26summary: |27 AEO Score: 58/100 (C). 12 quick wins identified.28 Estimated total impact: +190-270 clicks/month.2930actions:31 - title: "Rewrite H1 to include primary keyword"32 priority: high # high | medium | low33 category: "Content Structure" # optional — shown as badge34 as_is: |35 ```html36 <h1>Making Marketers Superhuman</h1>37 ```38 to_be: |39 ```html40 <h1>Treasure Data CDP | AI-Native Customer Data Platform</h1>41 ```42 reason: |43 Current H1 has no keyword signals. Top 5 competitors44 all include "CDP" in H1. Expected: +15-20% CTR.45 impact: "+35-40 clicks/month" # optional — shown at bottom of card4647 - title: "Add FAQPage JSON-LD schema"48 priority: high49 category: "Structured Data"50 as_is: |51 Only Article schema present52 to_be: |53 ```json54 {55 "@type": "FAQPage",56 "mainEntity": [57 {"@type": "Question", "name": "How does a CDP work?", "acceptedAnswer": {"@type": "Answer", "text": "..."}},58 {"@type": "Question", "name": "CDP vs DMP?", "acceptedAnswer": {"@type": "Answer", "text": "..."}}59 ]60 }61 ```62 reason: |63 4/5 competitors have FAQPage schema. Sites with 3+ schema types64 show ~13% higher AI citation rate.65 impact: "+50-80 clicks/month"66```6768## Fields6970| Field | Required | Description |71|-------|----------|-------------|72| `title` | Yes | Report title (e.g., "SEO Action Report: example.com") |73| `subtitle` | No | Subtitle shown below title (e.g., date range, analysis scope) |74| `summary` | Yes | Executive summary — markdown text shown at top of report |75| `actions` | Yes | Array of action items (at least one) |7677### Action Item Fields7879| Field | Required | Description |80|-------|----------|-------------|81| `title` | Yes | Short action title (imperative form: "Add...", "Rewrite...", "Fix...") |82| `priority` | Yes | `high`, `medium`, or `low` — determines sort order and color |83| `category` | No | Category tag (e.g., "Content Structure", "Technical SEO") |84| `as_is` | Yes | As-Is (current state) — markdown (use code blocks for HTML/JSON/config) |85| `to_be` | Yes | To-Be (recommended state) — markdown (complete replacement, not a diff) |86| `reason` | Yes | Why this change — cite data, competitor patterns, expected effect |87| `impact` | No | Expected impact (e.g., "+35-40 clicks/month", "CTR +2%") |8889## Rendering9091The dashboard renders actions sorted by priority (high → medium → low) as flat cards with no expand/collapse. Each card shows:9293- **Header**: number badge, title, priority badge, category badge94- **Diff area**: As-Is (red card) / To-Be (green card) stacked vertically95- **Reason**: explanation text below the diff96- **Impact**: metric at bottom of card (if provided)9798### Copy as Markdown99100A **Copy as Markdown** button in the header copies the entire report as formatted markdown to the clipboard. This allows users to paste into docs, tickets, or share with team members.101102### Calling the tool103104Write the YAML file and call:105106```107preview_action_report({ file_path: "/absolute/path/to/action-report.yaml" })108```109110## Writing Guidelines111112- **`as_is` and `to_be`**: Include **actual current content** and **complete replacement** — not vague descriptions. Use code blocks for HTML, JSON-LD, config snippets.113- **`reason`**: Cite specific data — competitor patterns, SERP features, score dimensions, metrics. Not just "this is better."114- **`priority`**: Based on effort-to-impact ratio. High = low effort + high impact. Low = high effort or low impact.115- **`summary`**: Lead with the most important finding. Include key scores and total expected impact.116117## Fallback (No Artifact Panel)118119When `preview_action_report` is not available (CLI mode), output the same information as formatted markdown directly in the conversation.