feat(linkedin-thought-leadership): v1.1.0 — Q2 2026 feature release

9 improvements across 3 tracks:

Onboarding: /linkedin:onboarding wizard, README Quick Start rewrite
Content Quality: voice drift scoring, industry angle variants,
  /linkedin:carousel, /linkedin:react multi-URL comparison
Analytics: automated week-rollover, day-of-week heatmap,
  month-over-month reports

25→27 commands. All Q2 ROADMAP items completed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-04-08 06:16:35 +02:00
commit 1a8cc1942c
33 changed files with 1726 additions and 236 deletions

View file

@ -26,7 +26,7 @@ First, load persistent state and personalization:
- Read `assets/voice-samples/authentic-voice-samples.md` for voice profile
- Check recent posts to avoid topic repetition within 7 days
## Step 1: Get the URL
## Step 1: Get URL(s)
If the user hasn't provided a URL, ask for one. Accept:
- News articles
@ -36,6 +36,17 @@ If the user hasn't provided a URL, ask for one. Accept:
- Company announcements
- Social media threads
**Multiple URLs:** If the user provides 2-3 URLs, or if you detect multiple links, use AskUserQuestion:
```
I see multiple URLs. Would you like to:
1. React to a single article (pick the most interesting one)
2. Compare and contrast 2-3 articles into one post
```
If option 2 → jump to **Comparison Path** (Step 1b below).
If option 1 or single URL → continue to Step 2.
## Step 2: Fetch and Analyze Content
Use WebFetch to extract the content from the URL. Ask WebFetch to extract:
@ -143,6 +154,96 @@ After the post is finalized, update `~/.claude/linkedin-thought-leadership.local
- Update `longest_streak` if current exceeds it
- Add entry to "## Recent Posts": [YYYY-MM-DD] "Hook text..." (char count) - topic
---
## Comparison Path (Multi-URL)
When the user wants to compare 2-3 articles into one post.
### Step 1b: Collect URLs
Collect 2-3 URLs. Minimum 2, maximum 3. If the user provided them already, confirm the list.
### Step 2b: Fetch All Sources
Use WebFetch on each URL. For each, extract:
- **Title** and author/source
- **Key claims** (3-5 bullet points)
- **Stance/argument** — what position does the author take?
- **Data points** — any statistics or evidence cited
### Step 3b: Synthesis Analysis
Analyze across all sources:
| Dimension | Analysis |
|-----------|----------|
| **Common ground** | Where do the sources agree? |
| **Tension points** | Where do they disagree or contradict? |
| **Blind spots** | What are ALL of them missing? |
| **Your unique angle** | Given your expertise, what perspective do you add? |
### Step 4b: Choose Comparison Angle
Present 3 angles via AskUserQuestion:
1. **Synthesis** — "These perspectives seem opposed, but the truth is more nuanced. Here's how I connect them."
2. **Contrarian to all** — "Both/all articles miss the real issue. Here's what actually matters."
3. **Pattern analysis** — "The fact that [N] experts are all writing about [X] tells us something about [Y]."
### Step 5b: Generate Comparison Draft
Structure:
**Hook (110-140 chars):** Your synthesized perspective — NOT "I read 3 articles about..." Avoid mentioning the number of sources in the hook.
**The conversation (1-2 sentences):** Briefly describe the debate or trend ("There's a growing conversation about [X]. Perspectives range from [A] to [B].")
**Your lens (main body):**
- What the synthesis reveals that individual pieces miss
- Concrete example from your experience that connects the dots
- Where you agree and where you push back
**Implication (1-2 sentences):** What this convergence/divergence means for the audience.
**CTA:** Question that invites people to take a side or share their own synthesis.
### Critical Rules (comparison-specific):
- **NO URLs in post body** — all links go in first comment
- Post must stand alone without reading any of the sources
- Don't summarize each article — synthesize across them
- Your perspective is the star, not the articles
- Character target: 1,200-1,800 chars
### Step 6b: Quality Check
Same as Step 6, plus:
- [ ] Post is a synthesis, not a summary of each article
- [ ] Hook doesn't mention number of sources read
- [ ] Each source is credited in the first comment, not the post
### Step 7b: Present Draft
Show:
1. The main draft with character count
2. 2 alternative hooks
3. Suggested first comment with ALL URLs:
```
Sources referenced:
1. "[Title]" by [Author] — [URL]
2. "[Title]" by [Author] — [URL]
3. "[Title]" by [Author] — [URL] (if applicable)
```
4. Recommended posting time
Offer same refinement options as Step 7.
### Step 8b: State Update
Same as Step 8 — update state file with topic, increment counts, etc.
---
## Reference Files
- `assets/voice-samples/authentic-voice-samples.md` — Voice matching