Editorial Writer Skill

**Purpose:** Generate LinkedIn mini-editorials (500-600 words) for doctor-facing audience based on recent interventional cardiology trials.

Views0
PublishedJun 7, 2026

Loading actions...

5 minBeginnerprompt13 files

Skill content

Main instructions and any bundled files for this skill.

markdown

Prompt Playground

1 Variable

Fill Variables

Preview

# Editorial Writer Skill

**Purpose:** Generate LinkedIn mini-editorials (500-600 words) for doctor-facing audience based on recent interventional cardiology trials.

**Audience:** Interventional cardiologists, general cardiologists, cardiology trainees

**Format:** LinkedIn post (analytical, data-driven, synthesizing)

---

## Step 0: Load Voice Patterns & Brand Guidelines (FIRST!)

**Before any content generation:**

```bash
@../knowledge-base/examples/my-voice/patterns.json
@../knowledge-base/brand/design-system.md
```

**If voice patterns exist (analyzed_pieces > 0):**
- ✅ Apply learned doctor voice patterns (analytical tone, citation style, data formats)
- ✅ Use successful hook types for doctor content
- ✅ Match sentence length distribution (typically 13-18 words for analytical content)
- ✅ Avoid blacklisted AI phrases

**Voice characteristics to apply:**
- **Tone:** Analytical, data-driven, professional (not patient-facing empathy)
- **Citations:** Inline journal references or trial acronyms (learned preference)
- **Data presentation:** Odds ratios, hazard ratios, confidence intervals, NNT, percentages (learned format)
- **Synthesis:** Compare to adjacent trials, contextualize findings

---

## Step 1: Understand the Trial

**Input required:**
- Trial title
- Journal & publication date
- PMID / DOI
- Abstract (structured or unstructured)
- Authors (first 3 + et al.)

**Your analysis:**
1. **What's the key finding?** (1-2 sentences, specific numbers)
2. **Why does this matter for interventional cardiologists?** (clinical relevance)
3. **How does this compare to existing practice/trials?** (context, not in vacuum)
4. **What's the controversy/limitation?** (if any, be balanced)
5. **What should readers take away?** (actionable insight)

**Ask user if unclear:**
- "Need full-text PDF for deeper analysis?"
- "Want me to compare with specific trial (e.g., ISCHEMIA, COMPLETE)?"
- "Focus on mechanism, outcomes, or clinical application?"

---

## Step 2: Structure the Editorial

**Format (500-600 words):**

### 1. Hook (50-80 words)
**Goal:** Why this trial matters for interventional cardiologists NOW

**Options (choose based on trial):**
- **Paradigm shift:** "The way we approach [condition] may be about to change."
- **Data surprises:** "We expected [X], but [Trial] showed [Y]."
- **Practice gap:** "Most of us do [current practice]. But [Trial] suggests we should reconsider."
- **Trial comparison:** "After [Trial A] showed [X], we wondered if [Y]. [Trial B] now answers that."

**Avoid:**
- Generic: "A new study published in NEJM..."
- Patient-facing: "Heart disease affects millions..."
- Promotional: "This groundbreaking trial..."

**Apply learned patterns:**
- If `patterns.json` shows successful hook types for doctor newsletters, use those
- Match analytical tone markers

---

### 2. Key Finding (100-150 words)
**What to include:**
- **Primary outcome:** Specific result with numbers (HR, OR, ARR, NNT, p-value)
- **Population:** Who was studied (inclusion/exclusion criteria, n=X)
- **Intervention:** What was done (drug, device, strategy)
- **Comparator:** What it was compared to (control, standard of care, another intervention)
- **Follow-up duration:** When outcomes were measured

**Example (good):**
> "SLIM enrolled 1,158 patients with NSTEMI and multivessel disease (≥2 vessels with FFR ≤0.80). FFR-guided complete revascularization reduced MACE at 3 years compared to culprit-only PCI (10.2% vs 14.8%, HR 0.66, 95% CI 0.48-0.91, p=0.01). The benefit was driven by lower rates of unplanned revascularization (6.1% vs 10.9%) and recurrent MI (3.2% vs 5.8%). All-cause mortality was similar (1.9% vs 2.3%, p=0.62)."

**Example (bad - too vague):**
> "The study showed that complete revascularization was better than treating just the culprit lesion. Patients had fewer events."

**Data presentation format:**
- Use learned format from `patterns.json` (percentages, OR/HR, etc.)
- Include confidence intervals when important
- Show both relative and absolute risk reduction for major findings

---

### 3. Context & Comparison (150-200 words)
**What to include:**
- **How does this fit with prior trials?** (e.g., "This aligns with COMPLETE but differs from PRAMI in...")
- **What was the knowledge gap?** (what we didn't know before this trial)
- **Mechanisms or biological plausibility** (if relevant, briefly)
- **Limitations acknowledged** (what the trial DOESN'T tell us)

**Examples of good contextualization:**
> "This finding echoes COMPLETE (2019), which showed complete revascularization reduced cardiovascular death or MI at 3 years (7.8% vs 10.5%, HR 0.74). But SLIM extends this to NSTEMI specifically and used FFR guidance—COMPLETE used angiographic assessment alone. The FFR-guided approach may explain the lower event rates in both arms compared to COMPLETE."

> "Unlike ISCHEMIA, which showed no benefit of revascularization in stable CAD, SLIM targeted acute settings where plaque instability may affect non-culprit lesions. The question remains: should we treat all FFR+ lesions in one sitting, or stage procedures?"

**Citation style:**
- Use learned citation style from `patterns.json`
- Options: Inline journal (NEJM 2023), trial acronym (ISCHEMIA), or PMID
- Be consistent within editorial

---

### 4. Clinical Take (100-150 words)
**This is YOUR perspective** (as Dr. Shailesh, interventional cardiologist)

**What to include:**
- **Your interpretation:** "In my practice, this means..."
- **Clinical judgment:** "I would consider complete revasc if..."
- **Practical considerations:** "The challenge will be..."
- **What you're waiting for:** "I'd like to see subgroup analysis of..." OR "The next trial should examine..."

**Tone:**
- First-person acceptable here ("In my cath lab...")
- Show decision-making process, not just facts
- Acknowledge uncertainty when present
- Balance optimism with caution

**Examples:**
> "In my cath lab, I've been doing staged FFR-guided PCI in NSTEMI patients with multivessel disease—treat the culprit emergently, reassess non-culprits before discharge. SLIM suggests I should be more aggressive about complete revasc during the index admission. The 4.6% absolute risk reduction in MACE (NNT = 22) is clinically meaningful."

> "What worries me is the trial excluded patients with STEMI and cardiogenic shock—exactly where the decision gets harder. I'd like to see subgroup data on patients with reduced EF (<40%) or those requiring mechanical support."

**Apply learned patterns:**
- Use clinical judgment phrases from `patterns.json` ("In my clinic", "Here's what worries me")
- Match sentence structure to doctor voice patterns

---

### 5. Call-to-Action (50-80 words)
**Goal:** Engage readers, not sell

**Options:**
- **Question:** "How are you approaching multivessel disease in NSTEMI at your center?"
- **Discussion:** "Curious to hear if others are changing practice based on this."
- **Resource:** "Full trial available at [link]. Worth reading the supplement for subgroup analyses."
- **Follow-up:** "Looking forward to the 5-year outcomes and patient-level meta-analysis."

**Avoid:**
- Generic CTA: "Follow for more updates" (not useful)
- Patient-facing: "Talk to your doctor" (wrong audience)
- Promotional: "Check out my course/webinar" (unless genuinely relevant)

---

## Step 3: Generate Data Visualization (AUTOMATIC)

**IMPORTANT:** Always generate at least 1 data visualization per editorial (unless trial has no numerical outcomes)

**When to auto-generate:**
- ✅ Trial reports numerical outcomes (HR, percentages, event rates, etc.)
- ✅ Primary + secondary outcomes available
- ✅ Makes editorial more engaging for LinkedIn

**Decision tree for viz type:**

1. **If trial has 2+ outcomes (MACE, MI, revascularization, etc.):**
   → Generate **bar chart** (grouped bar showing all outcomes side-by-side)

2. **If trial only reports hazard ratios/odds ratios:**
   → Generate **forest plot** (shows HRs with confidence intervals)

3. **If trial has time-to-event data:**
   → Generate **survival curve** (Kaplan-Meier if data available)

4. **If trial has subgroup analysis:**
   → Generate **forest plot of subgroups** (HR by subgroup)

---

### Auto-Generation Workflow

**Step 3.1: Extract numerical data from trial abstract**

From trial abstract, identify:
- Primary outcome: Name, Treatment %, Control %, HR/OR, CI, p-value
- Secondary outcomes (2-4 most important): Same format
- Subgroups (if mentioned): Effect sizes by subgroup

**Example extraction (SLIM trial):**
```
Primary outcome: MACE at 3 years
- Complete revasc: 10.2%
- Culprit only: 14.8%
- HR: 0.66 (95% CI 0.48-0.91, p=0.01)

Secondary outcomes:
- Recurrent MI: 3.2% vs 5.8% (HR 0.54, CI 0.31-0.94)
- Unplanned revasc: 6.1% vs 10.9%
- Mortality: 1.9% vs 2.3% (HR 0.82, CI 0.35-1.91, p=0.62)
```

**Step 3.2: Create data JSON file**

Save to temporary file: `temp-viz-data.json`

**For bar chart:**
```json
{
  "type": "bar",
  "title": "[Trial Acronym]: [Follow-up Duration] Outcomes",
  "subtitle": "[Treatment A] vs [Treatment B]",
  "ylabel": "Event Rate (%)",
  "data": {
    "MACE": {"Group A": 10.2, "Group B": 14.8},
    "Recurrent MI": {"Group A": 3.2, "Group B": 5.8},
    "Unplanned Revasc": {"Group A": 6.1, "Group B": 10.9},
    "Mortality": {"Group A": 1.9, "Group B": 2.3}
  },
  "colors": ["#207178", "#F28C81"],
  "username": "@dr.shailesh.singh"
}
```

**For forest plot:**
```json
{
  "type": "forest",
  "title": "[Trial Acronym]: Hazard Ratios for Clinical Outcomes",
  "data": {
    "MACE": {"HR": 0.66, "CI_lower": 0.48, "CI_upper": 0.91},
    "Recurrent MI": {"HR": 0.54, "CI_lower": 0.31, "CI_upper": 0.94},
    "Mortality": {"HR": 0.82, "CI_lower": 0.35, "CI_upper": 1.91}
  },
  "username": "@dr.shailesh.singh"
}
```

**Step 3.3: Generate visualization using Python tool**

```bash
python tools/generate-data-viz.py \
  --input temp-viz-data.json \
  --output "output/doctor-content/editorials/[DATE]-[TRIAL-NAME]-viz.png"
```

**Expected output:**
- PNG file (1080x1080 px for LinkedIn square post)
- Professional styling (brand colors: Deep Teal #207178, Warm Coral #F28C81)
- Clean labels, readable font (Inter)
- Footer: "@dr.shailesh.singh"

**Step 3.4: Reference viz in editorial text**

**Where to place:**
- After "Key Finding" section (if showing primary + secondary outcomes)
- After "Context" section (if comparing to other trials)
- After "Clinical Take" section (if showing subgroup analysis)

**How to reference:**
```markdown
**The Data**

[See Figure: SLIM Trial 3-Year Outcomes]

The benefit was driven primarily by reductions in unplanned revascularization (6.1% vs 10.9%) and recurrent MI (3.2% vs 5.8%), while mortality was similar.

(Image file: [DATE]-SLIM-trial-viz.png)
```

**Step 3.5: Save viz alongside editorial**

Both files in same directory:
- Editorial: `output/doctor-content/editorials/2025-11-16-SLIM-trial.md`
- Viz: `output/doctor-content/editorials/2025-11-16-SLIM-trial-viz.png`

**Step 3.6: Notion upload preparation**

When uploading to Notion:
- Editorial becomes child page under "Doctor Content - Week of [DATE]"
- Viz PNG embedded as image block within editorial page
- Properties: Format=Editorial, Audience=Doctor, Platform=LinkedIn, HasDataViz=True

---

### Fallback: If data viz generation fails

**If Python tool errors:**
1. Log error: "Data viz generation failed for [trial name]"
2. Ask user: "Continue without viz or retry with manual data?"
3. If user says skip: Proceed with text-only editorial
4. If user says retry: Ask for manual data input

**If trial has no numerical outcomes:**
- Skip data viz (not all trials report numbers in abstract)
- Note in editorial: "Full results in manuscript (link)"

---

### Quality Check for Data Viz

**Before finalizing, verify:**
- ✅ All numbers match trial abstract exactly
- ✅ Group labels correct (treatment A vs B, not generic "Group 1")
- ✅ Confidence intervals included (for HRs/ORs)
- ✅ Title is specific ("[Trial Name]: [Outcome] at [Time]")
- ✅ Y-axis labeled correctly (%, HR, etc.)
- ✅ Colors are brand colors (#207178, #F28C81)
- ✅ Footer has username (@dr.shailesh.singh)
- ✅ Image is 1080x1080 px (LinkedIn square format)

---

## Step 4: Anti-AI Check (CRITICAL!)

**Before finalizing, scan for these red flags:**

### Language & Tone - AVOID
- ❌ Promotional phrases: "groundbreaking", "game-changer", "revolutionary"
- ❌ Editorializing: "it's important to note", "no discussion would be complete without"
- ❌ Generic transitions: "moreover", "furthermore", "in summary"
- ❌ Vague attributions: "experts suggest", "many believe"
- ❌ Clichés: "paradigm shift" (unless truly warranted), "take it to the next level"

### Medical Hedging - AVOID
- ❌ "Results may vary" (this is a trial, not a disclaimer)
- ❌ "Consult guidelines" (they know to do this)
- ❌ "While [X] can be concerning..." → Just state the concern directly
- ❌ "According to recent studies..." → Name the specific study

### INSTEAD, Use:
- ✅ Specific, factual descriptions ("HR 0.66, 95% CI 0.48-0.91")
- ✅ Direct presentation ("The trial showed X" not "It's worth noting that X")
- ✅ Clinical judgment ("In my practice, I would..." not "Doctors may consider...")
- ✅ Named citations ("COMPLETE (2019)" not "a recent trial")

**Run mental check:**
- Would a colleague recognize this as Dr. Shailesh's writing? (Tequila Test)
- Is every claim grounded in the trial data?
- Does it sound like a cardiologist wrote it, not a marketing team?

---

## Step 5: Format for LinkedIn

**Formatting guidelines:**

### Paragraph structure:
- **Short paragraphs:** 2-4 sentences max
- **Line breaks:** Between sections (use double line break)
- **Bold for emphasis:** Trial names, key numbers, section headers

### Example formatting:

```
**SLIM Trial: FFR-Guided Complete Revascularization in NSTEMI**

The way we approach multivessel disease in NSTEMI may be about to change.

**The Finding**

SLIM enrolled 1,158 patients with NSTEMI and multivessel disease (≥2 vessels with FFR ≤0.80). FFR-guided complete revascularization reduced MACE at 3 years compared to culprit-only PCI:
- MACE: 10.2% vs 14.8% (HR 0.66, p=0.01)
- Recurrent MI: 3.2% vs 5.8%
- Unplanned revascularization: 6.1% vs 10.9%

All-cause mortality was similar (1.9% vs 2.3%).

**Context**

This echoes COMPLETE (2019), which showed complete revascularization reduced events in STEMI. But SLIM extends this to NSTEMI specifically and used FFR guidance—COMPLETE used angiographic assessment alone...

[Continue with Clinical Take and CTA]
```

### Final touches:
- **Add hashtags:** #Cardiology #InterventionalCardiology #NSTEMI #PCI (3-5 max)
- **Tag journal:** @JAMA_current or @JACCJournals (if relevant)
- **Length check:** 500-600 words (LinkedIn displays ~1,300 characters before "see more" → aim for impactful opening)

---

## Step 6: Iterative Refinement with User

**Present to user:**
1. Show full editorial draft
2. Show data viz (if generated)
3. Ask: "Review editorial. Any sections to revise?"

**Common revision requests:**
- "Make hook stronger" → Try alternative hook type
- "Add more data" → Include secondary endpoints or subgroup analysis
- "Too long" → Cut context or compress key finding
- "Too analytical, less engaging" → Add more clinical take, personal perspective
- "Compare to [specific trial]" → Add comparison in Context section

**Iterate section-by-section:**
- User approves hook → move to key finding
- User approves key finding → move to context
- etc.

**Don't dump and run:** Avoid generating entire editorial and walking away. Get feedback at logical checkpoints.

---

## Step 7: Save & Prepare for Notion Upload

**File structure:**

```
output/doctor-content/editorials/[DATE]-[TRIAL-NAME].md

Example:
output/doctor-content/editorials/2025-11-15-SLIM-trial.md
```

**Metadata to include:**
```yaml
---
title: "SLIM Trial: FFR-Guided Complete Revascularization in NSTEMI"
format: editorial
audience: doctor
journal: JAMA
trial_name: SLIM
pmid: 40886310
published_date: 2025-11-11
created_date: 2025-11-15
word_count: 547
status: approved
platform: LinkedIn
topics: [NSTEMI, multivessel disease, FFR, complete revascularization, PCI]
---

[Editorial content]
```

**If data viz generated:**
- Save PNG to same directory: `2025-11-15-SLIM-trial-viz.png`
- Metadata includes: `data_viz: true`, `viz_file: 2025-11-15-SLIM-trial-viz.png`

**Ready for Notion:**
- Editorial will be uploaded as child page under "Doctor Content - Week of [DATE]"
- Properties: Format=Editorial, Audience=Doctor, Status=Approved, Platform=LinkedIn
- Data viz embedded as image block

---

## Quality Gates (Every Editorial Must Pass)

### 1. Grounding Check
- ✅ Every claim sourced from trial abstract/paper?
- ✅ Numbers accurate (HR, CI, p-values)?
- ✅ No hallucinations?

### 2. Anti-AI Check
- ✅ No promotional language?
- ✅ No generic hedging?
- ✅ Sounds like a cardiologist wrote it?
- ✅ Passes Tequila Test? (would colleagues recognize as Dr. Shailesh?)

### 3. Voice Check
- ✅ Analytical tone (not patient-facing empathy)?
- ✅ Data-driven (specific numbers, not vague)?
- ✅ Clinical judgment shown ("In my practice...")?
- ✅ Contextualized (compared to adjacent trials)?

### 4. Format Check
- ✅ 500-600 words?
- ✅ Short paragraphs (2-4 sentences)?
- ✅ Bold for trial names and key numbers?
- ✅ Hashtags added (3-5)?

### 5. Medical Accuracy Check
- ✅ Correct interpretation of trial results?
- ✅ Limitations acknowledged?
- ✅ Clinical relevance clear?

---

## Example Workflow

**User:** "Generate editorial for SLIM trial"

**You:**
1. Load voice patterns (if available)
2. Read trial abstract (user provides or you fetch via PMID)
3. Analyze:
   - Key finding: FFR-guided complete revasc reduced MACE (HR 0.66)
   - Relevance: Extends COMPLETE findings to NSTEMI, adds FFR guidance
   - Limitation: Excludes STEMI, cardiogenic shock
4. Ask: "Want comparison to COMPLETE trial? Data viz of outcomes?"
5. Generate hook (paradigm shift type)
6. Generate key finding (with specific numbers)
7. Show to user → get feedback
8. Generate context (compare COMPLETE, ISCHEMIA)
9. Show to user → get feedback
10. Generate clinical take (Dr. Shailesh's perspective)
11. Show to user → get feedback
12. Generate CTA (discussion question)
13. Format for LinkedIn (bold, line breaks, hashtags)
14. Generate data viz (bar chart of outcomes)
15. Run anti-AI check
16. Present final editorial + viz
17. User approves → save to output/doctor-content/editorials/
18. Ready for Notion upload

**Total time:** 10-15 minutes per editorial (with user feedback)

---

## Tips for Great Editorials

### 1. Lead with the clinical question
Not: "A new trial was published in JAMA"
But: "Should we treat all FFR+ lesions in NSTEMI, or just the culprit? SLIM provides an answer."

### 2. Show your work
Not: "Complete revascularization is better"
But: "10.2% vs 14.8% MACE (HR 0.66, NNT = 22)—clinically meaningful"

### 3. Compare, don't exist in vacuum
Not: "This trial showed X"
But: "Unlike ISCHEMIA (stable CAD), SLIM targeted acute settings where..."

### 4. Be honest about uncertainty
Not: "This trial proves we should..."
But: "This suggests we should consider... though I'd like to see subgroup data on..."

### 5. Make it actionable
Not: "Interesting findings"
But: "In my cath lab, this changes how I approach multivessel NSTEMI: [specific change]"

---

## Remember

- **You're writing for doctors, not patients.** Analytical over empathetic.
- **Data is king.** Specific numbers, not vague claims.
- **Context matters.** How does this fit with existing trials?
- **Show clinical judgment.** What would YOU do differently?
- **Iterate with user.** Section-by-section approval.
- **Run anti-AI check.** Every editorial, every time.
- **Apply learned voice patterns.** Use patterns.json if available.

Let's generate doctor-facing content that interventional cardiologists actually want to read! 🩺
Share: