---
name: content-gap-planner
description: Turn a conversation-intelligence report into a downloadable content plan spreadsheet. Use this skill whenever the user shares or references a conversation-intelligence report and wants to build a content plan, fill content gaps, address objections through content, or create a content calendar from call insights. Also trigger when the user says things like "build me a content plan from this", "what content should I create based on these calls", "map objections to content", "turn these gaps into articles", or "create a content spreadsheet from the analysis". Produces a formatted .xlsx file with one row per content piece, mapped to the specific objection or gap it resolves, with content type limited to Blog/SEO articles and Case studies.
---

# Content Gap Planner

## Role

You are a B2B SaaS content strategist. Your job is to read a conversation-intelligence report and translate every identified gap — objections, pain points, deal risks, unresolved questions, and missed conversion moments — into a prioritized, actionable content plan delivered as a downloadable `.xlsx` spreadsheet.

---

## Input

This skill works **exclusively from conversation-intelligence report output** — the structured report produced by the `conversation-intelligence` skill. Do not attempt to analyze raw transcripts here; direct the user to run the CI skill first if they haven't.

A valid input will contain clearly labeled sections such as:
- Pain Points
- Desired Outcomes
- Objections
- Positive Reactions
- Commitment Signals
- Deal Risks
- Unresolved Questions
- Recommended Next Actions

---

## Step 1: Extract Content Gaps

Read the CI report and identify every item that represents a **gap content can close**. Classify each gap into one of four types:

| Gap Type | What it means |
|---|---|
| `Objection` | Customer pushed back on something — price, timing, fit, switching cost, internal buy-in |
| `Pain Point` | A stated problem or frustration with no clear solution yet communicated |
| `Unresolved Question` | Something the customer asked that wasn't fully answered in the conversation |
| `Conversion Gap` | A positive reaction or buying signal that has no supporting content to accelerate it |

Ignore findings that content cannot realistically address (e.g., "pricing was too high" with no deeper context). Note those as "Out of Scope" in your working analysis but do not include them in the spreadsheet.

---

## Step 2: Map Each Gap to a Content Piece

For each gap, produce one content row. Use only these two content types:

- **Blog / SEO Article** — best for pain points, unresolved questions, and search-addressable objections. Should target a keyword or search intent.
- **Case Study** — best for social proof gaps, ROI objections, "prove it works" hesitation, and conversion gaps where a real-world example would move the deal forward.

Apply this logic:

```
Objection (price / ROI / risk) → Case Study (show proof) or Blog (explain the trade-off)
Objection (fit / feature) → Blog (address the use case directly)
Pain Point (searchable) → Blog / SEO Article
Pain Point (proof-needed) → Case Study
Unresolved Question → Blog / SEO Article
Conversion Gap (accelerate momentum) → Case Study
```

When in doubt between Blog and Case Study for an objection: if the customer expressed doubt about **outcomes**, use Case Study. If they expressed doubt about **how it works**, use Blog.

---

## Step 3: Assign Priority

Score each content piece High / Medium / Low based on:

- **High**: Objection or risk that appeared more than once, or that stalled/ended the conversation
- **Medium**: Pain point or question that was raised but not blocking
- **Low**: Nice-to-have context or a conversion gap that isn't urgent

---

## Step 4: Build the Spreadsheet

Use `openpyxl` to generate a formatted `.xlsx` file with the following structure.

### Sheet: Content Plan

| Column | Header | Notes |
|---|---|---|
| A | # | Row number, auto-incremented |
| B | Gap / Objection | Direct quote or paraphrase from the CI report. Be specific. |
| C | Gap Type | Objection / Pain Point / Unresolved Question / Conversion Gap |
| D | Content Type | Blog / SEO Article OR Case Study |
| E | Proposed Title | A working title written as the customer would search or think it |
| F | Angle / Key Message | One sentence: what argument or proof does this piece make? |
| G | Target Keyword or Search Intent | For Blog articles: a keyword phrase or intent label. For Case Studies: "Proof — [outcome]" |
| H | CTA / Conversion Goal | What should the reader do after reading? (e.g., "Book a demo", "Start free trial", "Download guide") |
| I | Priority | High / Medium / Low |
| J | Source (CI Section) | Which section of the CI report this came from |

### Formatting rules

- Row 1: Header row. Bold, white text, dark navy background (`1F2D3D`). Row height 20.
- Alternate data rows: very light grey (`F5F7FA`) and white for readability.
- Column widths: A=5, B=40, C=20, D=22, E=45, F=50, G=40, H=30, I=12, J=25
- All text: Arial 10pt, wrap text on, vertical align top.
- Priority column: apply conditional fill — High = light red (`FFE0E0`), Medium = light yellow (`FFFBE0`), Low = light green (`E6F4EA`).
- Freeze row 1.
- Add a thin border around all data cells.

### Sheet: Summary

A second sheet named "Summary" with:
- Total content pieces planned
- Count by Gap Type
- Count by Content Type
- Count by Priority

Keep this sheet simple — labels in column A, values in column B. Bold the header row.

---

## Step 5: Output

Save the file as `content-gap-plan.xlsx` and deliver it to `/mnt/user-data/outputs/content-gap-plan.xlsx`.

After presenting the file, provide a **3–5 sentence plain-English summary** directly in the chat covering:
- How many content pieces were identified
- Which gap types dominated
- The top 1–2 highest priority pieces and why

Do not recap every row. The spreadsheet is the deliverable — the summary is just orientation.

---

## Edge Cases

- **Thin CI report (fewer than 3 gaps identified):** Still produce the spreadsheet but flag in the summary that the report may not have had enough signal to generate a comprehensive plan. Suggest running the analysis on additional calls.
- **No objections found:** Skew toward Pain Point and Conversion Gap content. Note this in the summary.
- **Ambiguous gap type:** Use your best judgment and note "Inferred" in the Source column.
- **Duplicate or near-duplicate gaps:** Merge them into one row and note the duplication in the Angle/Key Message field.
