feat(linkedin): reduce interactive steps in quick, react, pipeline commands

quick.md:
- Replace 8-option post type menu with context inference
- Auto-select CTA based on post type
- Remove proactive alternative version offering
- AskUserQuestion: 0 in main flow (was 1 implicit menu)

react.md:
- Auto-select strongest angle instead of 3-option AskUserQuestion
- Replace 6-option refinement AskUserQuestion with plain text options
- Same treatment for comparison path (Step 4b)
- AskUserQuestion: 1 in main flow (multi-URL only, was 3)

pipeline.md:
- Skip ideation ask if topic provided with command invocation
- Auto-propose planned topic without AskUserQuestion
- Inline angle selection (auto-select strongest)
- AskUserQuestion: 2 in main flow (ideation fallback + scheduling, was 3)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-04-10 15:18:50 +02:00
commit 10b70dba10
3 changed files with 61 additions and 68 deletions

View file

@ -38,31 +38,20 @@ Next planned topic: [topic or "none"]
## Step 1: Ideation
Help the user select or generate a topic.
If the user already provided a topic with the command invocation (e.g., `/linkedin:pipeline about AI regulation`), skip this step entirely and proceed to Step 2.
**Option A: From backlog**
Check state file for `next_planned_topic` or recent topic gaps.
**Option B: From input**
Ask the user what they want to post about.
**Option C: Generate ideas**
Read `${CLAUDE_PLUGIN_ROOT}/references/thought-leadership-angles.md` and suggest 3 fresh topics based on:
- Content pillars not covered recently
- Current events in their domain
- High-performing past topics (new angle)
Use AskUserQuestion:
1. Use a planned topic
2. I have an idea already
3. Generate ideas for me
Otherwise, check state file for `next_planned_topic`:
- If a planned topic exists, propose it: "You had planned to write about [topic]. Proceeding with that. (Say 'different topic' if you'd prefer another.)" — do NOT use AskUserQuestion.
- If no planned topic and no user input, use AskUserQuestion to ask:
1. I have an idea already
2. Generate ideas for me
## Step 2: Draft
Once topic is chosen, create the draft using the full post workflow:
Once topic is chosen, create the draft:
1. **Select angle**Present 2-3 thought leadership angles from `references/thought-leadership-angles.md`
2. **Choose format** — Text post, carousel, video script based on content type
1. **Select angle** — Auto-select the strongest angle from `references/thought-leadership-angles.md` based on topic and user's expertise. Present ONE recommended angle with reasoning. Do NOT use AskUserQuestion — just proceed. If user disagrees, offer alternatives.
2. **Infer format** — Default to text post. Only mention carousel/video as a note if particularly well-suited.
3. **Write draft** — Following the structure:
- Hook: 110-140 characters
- Context: 200-300 characters

View file

@ -35,20 +35,20 @@ Read `assets/quick-post-resources.md` for:
## Step 1: Identify Post Type
Ask the user (or infer from context) what triggered this post:
Infer the post type from context — do NOT present a menu. Use these signals:
```
What triggered this post?
| User Signal | Post Type |
|-------------|-----------|
| "Something happened..." / reacting to event | REACTION POST |
| "I noticed..." / pattern observation | OBSERVATION POST |
| "I learned..." / tip or lesson | QUICK TIP POST |
| Asking a question / "I wonder..." | QUESTION POST |
| Strong opinion / "I disagree..." | HOT TAKE POST |
| "I made a mistake..." / failure story | FAILURE POST |
| Shared a link / "I saw this..." | CURATION POST |
| Brief insight, no elaboration needed | ONE-LINER POST |
1. Something happened today -> REACTION POST
2. I noticed something -> OBSERVATION POST
3. I learned something -> QUICK TIP POST
4. I want to hear others -> QUESTION POST
5. I disagree with wisdom -> HOT TAKE POST
6. I made a mistake -> FAILURE POST
7. I saw something worth sharing -> CURATION POST
8. I have a simple insight -> ONE-LINER POST
```
Only ask if truly ambiguous (no discernible intent). Otherwise, state: "This reads as a [TYPE] — proceeding with that format."
## Step 2: Apply 3-Line Formula
@ -104,15 +104,21 @@ Based on post type, use appropriate hook from `assets/quick-post-resources.md`:
- Single powerful statement
- No explanation needed (use sparingly)
## Step 4: Select CTA
## Step 4: Auto-Select CTA
Choose from `assets/quick-post-resources.md`:
Auto-select the best CTA based on post type — do NOT ask:
**Question CTAs:** "What's your take?" | "Anyone else experiencing this?" | "What am I missing?"
| Post Type | Default CTA |
|-----------|------------|
| REACTION / OBSERVATION | "Anyone else seeing this?" |
| QUICK TIP | "What's worked for you?" |
| QUESTION | The question itself IS the CTA |
| HOT TAKE | "Change my mind." |
| FAILURE | "What's your version of this mistake?" |
| CURATION | "Worth a read — what's your take?" |
| ONE-LINER | "Agree or disagree?" |
**Challenge CTAs:** "Change my mind." | "Prove me wrong."
**Share CTAs:** "What's worked for you?" | "Drop your version in the comments."
Reference `assets/quick-post-resources.md` for additional CTA options if the default doesn't fit.
## Step 5: Write and Check
@ -141,7 +147,7 @@ printf '%s' '<FINAL_POST_TEXT>' | node ${CLAUDE_PLUGIN_ROOT}/hooks/scripts/clipb
```
Then confirm: "Copied to clipboard."
Offer one alternative version with different hook or angle.
Do NOT proactively offer alternative versions. Only generate alternatives if the user asks.
**State Update:**
After the post is finalized, update `~/.claude/linkedin-thought-leadership.local.md`:

View file

@ -71,27 +71,25 @@ Determine the content type to select the right template:
## Step 4: Select Your Angle
Present 3 angles using AskUserQuestion:
Select the strongest angle based on content type and user's expertise — do NOT use AskUserQuestion:
For **News/Announcements:**
1. **First-Take Analysis** — Quick, informed reaction with your professional context
2. **"What This Means For..."** — Implications for your audience specifically
3. **Contrarian Perspective** — Respectful disagreement or overlooked angle
**Angle selection by content type:**
For **Research/Data:**
1. **Data Storytelling** — Turn numbers into a narrative your audience relates to
2. **Practical Application** — "How to actually use this finding"
3. **Missing Context** — What the research doesn't tell you
| Content Type | Preferred Angle | Fallback |
|-------------|----------------|----------|
| News/Announcements | **First-Take Analysis** — informed reaction with professional context | "What This Means For..." |
| Research/Data | **Data Storytelling** — turn numbers into audience-relevant narrative | Practical Application |
| Blog/Opinion | **Agree-and-Extend** — build on their idea with own experience | Different Lens |
| Product/Feature | **Honest Assessment** — strengths, weaknesses, who it's for | Use Case Spotlight |
For **Blog/Opinion:**
1. **Agree-and-Extend** — Build on their idea with your own experience
2. **Real-World Test** — "I tried this approach. Here's what happened."
3. **Different Lens** — Same topic, viewed through your expertise
Present ONE recommended angle:
```
Angle: [Name] — [Why this fits the content and your expertise].
For **Product/Feature:**
1. **Honest Assessment** — Strengths, weaknesses, who it's actually for
2. **Use Case Spotlight** — Specific scenario where this shines
3. **Comparison Context** — How it fits in the broader landscape
Proceeding with this angle. (Say "try a different angle" if you'd prefer another.)
```
If the user disagrees, then present 2-3 alternatives from the full angle set below.
## Step 5: Generate Draft
@ -142,13 +140,11 @@ printf '%s' '<MAIN_DRAFT_TEXT>' | node ${CLAUDE_PLUGIN_ROOT}/hooks/scripts/clipb
```
Then confirm: "Copied to clipboard."
Offer refinement options via AskUserQuestion:
1. Perfect — ready to post
2. Adjust the hook
3. Change the angle
4. Make it shorter/punchier
5. Make it more provocative
6. Try a completely different angle
Do NOT use AskUserQuestion for refinement. Simply state:
"Want to refine? Options: adjust hook / change angle / shorter & punchier / more provocative / different angle entirely."
Wait for the user to respond naturally.
## Step 8: State Update
@ -192,11 +188,13 @@ Analyze across all sources:
### Step 4b: Choose Comparison Angle
Present 3 angles via AskUserQuestion:
Select the strongest comparison angle — do NOT use 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]."
- **Synthesis** — "These perspectives seem opposed, but the truth is more nuanced. Here's how I connect them."
- **Contrarian to all** — "Both/all articles miss the real issue. Here's what actually matters."
- **Pattern analysis** — "The fact that [N] experts are all writing about [X] tells us something about [Y]."
Present ONE recommended angle with reasoning. If the user disagrees, offer the alternatives.
### Step 5b: Generate Comparison Draft