diff --git a/plugins/linkedin-thought-leadership/commands/pipeline.md b/plugins/linkedin-thought-leadership/commands/pipeline.md index faef7da..769f9a1 100644 --- a/plugins/linkedin-thought-leadership/commands/pipeline.md +++ b/plugins/linkedin-thought-leadership/commands/pipeline.md @@ -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 diff --git a/plugins/linkedin-thought-leadership/commands/quick.md b/plugins/linkedin-thought-leadership/commands/quick.md index eac0dfa..40cb309 100644 --- a/plugins/linkedin-thought-leadership/commands/quick.md +++ b/plugins/linkedin-thought-leadership/commands/quick.md @@ -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' '' | 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`: diff --git a/plugins/linkedin-thought-leadership/commands/react.md b/plugins/linkedin-thought-leadership/commands/react.md index 115766c..6636cfe 100644 --- a/plugins/linkedin-thought-leadership/commands/react.md +++ b/plugins/linkedin-thought-leadership/commands/react.md @@ -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' '' | 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