ktg-plugin-marketplace/plugins/linkedin-studio/commands/linkedin.md
Kjell Tore Guttormsen 3235c4f166 docs(linkedin-studio): reconcile discoverability surfaces + skill naming
Wave 3 / Step 12 of the remediation plan (Phase 1 — usable by a non-author).

Fix the discoverability defects the audit flagged:
- skills/linkedin-studio/SKILL.md (the auto-activating router): self-naming 'the
  LinkedIn thought leadership plugin' -> 'LinkedIn Studio' (v3.0 rename leftover);
  the 'All Agents' table corrected from 14 to the real 19 (added editorial-reviewer,
  voice-scrubber, content-reviewer, language-reviewer, fact-reviewer); the 'All
  Commands' table completed to 26 (added headless-review, pivot, carousel) so it
  routes to newsletter/headless-review/pivot/react.
- commands/onboarding.md: '25 commands' -> '26 commands' (x2); pillar count '3-5
  expertise areas' -> '5 expertise areas' (reconciles onboarding's 3-5 with
  setup.md's '5 core topics' and the CLAUDE.md '5 core expertise areas' rule).
- commands/linkedin.md: router table + numbered option list gain headless-review
  and pivot.

Scope note (operator decision, this session): the plan's Verify grep
'grep -rni "thought leadership" skills/ -> no matches' is broader than the brief's
actual criterion (which targets only the router skill's self-naming). 'thought
leadership' is a plugin-wide DOMAIN term — the '8 Thought Leadership Angles'
framework lives in references/thought-leadership-angles.md and is referenced by ~40
files (glossary, agents, post/video/batch commands). Renaming it only inside skills/
would create cross-file inconsistency; renaming it plugin-wide is a separate
vocabulary migration outside Step 12's discoverability scope. Per operator choice,
the router SELF-NAMING is fixed (brief criterion met) and the 4 remaining skills/
hits (linkedin-content-creation headings + one linkedin-strategy phase cell) are
legitimate domain usage kept consistent with the rest of the tree.

setup.md needed no edit: its pillar number was already '5'; reconciliation was a
one-sided fix in onboarding.

Verify: router no longer says 'thought leadership plugin'; grep -nc 'headless-review'
commands/linkedin.md -> 2; onboarding pillar count '5' matches setup.md; SKILL.md
agent table 19 rows, command table 26 rows; structural lint exit 0 (61 passed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 01:05:19 +02:00

207 lines
12 KiB
Markdown

---
name: linkedin
description: |
Main router for LinkedIn thought leadership commands. Lists all available subcommands
and helps the user choose the right workflow. Use when the user mentions "linkedin",
"linkedin help", "what linkedin commands", or needs guidance on which LinkedIn command to use.
Triggers on: "linkedin", "/linkedin", "linkedin help", "show linkedin commands".
allowed-tools:
- Read
- Bash
- AskUserQuestion
---
# LinkedIn Studio Command Router
You are a LinkedIn thought leadership assistant. The user has invoked the main `/linkedin` command. Your job is to help them navigate to the right subcommand.
## Session Status
If `~/.claude/linkedin-studio.local.md` exists, read it and show a brief status line:
```
LinkedIn: X/Y posts this week | Streak: N days | Last: YYYY-MM-DD | X/10000 followers (Phase)
```
The follower segment only appears if `follower_count > 0` in the state file.
If the state file doesn't exist, show: "No LinkedIn state tracked yet. State tracking starts when you create your first post."
## Upcoming Posts
After the status line, show upcoming scheduled posts from the queue:
```bash
node --input-type=module -e "
import { queueUpcoming, queueOverdue, queueFormatSummary } from '${CLAUDE_PLUGIN_ROOT}/hooks/scripts/queue-manager.mjs';
console.log('=== UPCOMING ===');
console.log(queueFormatSummary(queueUpcoming(7)));
console.log('=== OVERDUE ===');
console.log(queueFormatSummary(queueOverdue()));
"
```
If there are upcoming posts, display:
```
Upcoming Posts (next 7 days):
[date] [time]: "[hook preview]" — [pillar] ([format])
[date] [time]: "[hook preview]" — [pillar] ([format])
```
If there are overdue posts, display with warning:
```
OVERDUE (should have been posted):
[date]: "[hook preview]" — Run /linkedin:calendar to mark as published or reschedule
```
If queue is empty: "No posts scheduled. Run /linkedin:batch to plan your week."
## Available Commands
Present these options to the user:
### Getting Started
| Command | Purpose |
|---------|---------|
| `/linkedin:onboarding` | Full onboarding wizard — profile, setup, and first post in one flow |
| `/linkedin:first-post` | First-post accelerator — zero to published in under 10 minutes |
| `/linkedin:setup` | Guided setup to populate empty asset templates with your real voice, case studies, and audience data |
### Content Creation
| Command | Purpose |
|---------|---------|
| `/linkedin:post` | Full post creation with angle selection, format choice, and refinement |
| `/linkedin:react` | React to a URL (article, news, research) and turn it into a post |
| `/linkedin:quick` | Fast 5-minute post using the 3-line formula (also the 8 post-type templates) |
| `/linkedin:pipeline` | Full end-to-end workflow from idea to post-publish analysis |
| `/linkedin:carousel` | Create structured multi-slide carousel with visual layout guidance |
| `/linkedin:video` | Create video scripts with hook, body, CTA, captions, and thumbnail suggestions |
| `/linkedin:newsletter` | Long-form orchestrator — newsletter editions, essays, series articles (research → draft → fact-check → persona-review → lock → delivery). The single long-form entry point |
| `/linkedin:headless-review` | Cold adversarial review of a FROZEN long-form draft (argument, language, facts, reader-fit) — run before lock, ideally in a fresh session for max independence |
| `/linkedin:pivot` | Re-open a long-form edition after a substantive late change so cleared gates (fact-check → editorial → persona → headless) re-run before lock |
| `/linkedin:batch` | Create a full week of content in one session |
| `/linkedin:calendar` | View and manage your post scheduling queue + run the publish action (mark a scheduled post as published) |
### Strategy & Optimization
| Command | Purpose |
|---------|---------|
| `/linkedin:strategy` | Growth strategy + authority building (phase-specific guidance, trajectory adjustments, signature content for Phase 2+) |
| `/linkedin:profile` | profile/topic-relevance optimization checklist |
| `/linkedin:analyze` | Analyze content performance or troubleshoot issues |
| `/linkedin:ab-test` | Design and manage A/B tests for content optimization |
| `/linkedin:audit` | Quarterly content strategy audit |
| `/linkedin:competitive` | Competitive analysis of other thought leaders |
| `/linkedin:import` | Import LinkedIn CSV exports for analytics |
| `/linkedin:report` | Generate weekly performance report with trends and alerts |
### Post-Publish Monitoring
| Agent | Purpose |
|-------|---------|
| `post-feedback-monitor` | Monitor post performance in the critical first 48 hours, detect anomalies, and get real-time intervention advice |
### Growth & Monetization
| Command | Purpose | Unlocks at |
|---------|---------|-----------|
| `/linkedin:monetize` | Monetization strategy (lead magnets, consulting funnel, pricing) | ~1K followers |
| `/linkedin:outreach` | Outreach orchestrator — collaborations and speaking opportunities (CFPs, partner pitches) | ~1K followers |
| `/linkedin:multiplatform` | Adapt content for Twitter/X, slides, YouTube (short-form/cross-format; long-form → `/linkedin:newsletter`) | Any phase |
**Gating rule:** the "Unlocks at ~1K followers" commands are deliberately
listed but soft-gated — they work at any follower count, but their value
compounds once a profile has the audience scale and authority signal that
makes lead magnets, partnerships, and speaking pitches realistic. Below
~1K followers the router will note the threshold and suggest
`/linkedin:strategy` first.
## Ask the User
Use AskUserQuestion to ask:
**What would you like to do?**
0. **Onboarding wizard** — Just installed? Full guided flow: profile → setup → first post
1. **Setup & personalize** — Guided setup to populate voice, case studies, frameworks, and audience data
2. **Create a post** — Full post workflow with angle selection
3. **React to a URL** — Turn an article/news into a post
4. **Quick post** — Post something fast (5 min)
5. **Full pipeline** — End-to-end: idea → draft → optimize → publish
6. **Batch create** — Create a full week of content in one session
7. **Use a template** — Browse proven post templates
8. **View calendar** — See scheduled posts and manage queue
9. **Plan content** — Weekly/monthly content planning
10. **Growth strategy & authority** — Plan growth, build signature content, compound authority
11. **Optimize profile** — topic-relevance profile audit
12. **Audit content** — Review what's working and what's not
13. **Competitive analysis** — Learn from other thought leaders
14. **Monetize** — Revenue strategies for thought leadership
15. **Outreach** — Collaborations and speaking opportunities (CFPs, partner pitches, joint content)
16. **Multi-platform** — Adapt content for other platforms
17. **Troubleshoot** — My content isn't performing well
18. **Monitor post** — Check how my latest post is performing (first 48 hours)
19. **A/B test** — Design, track, or analyze content experiments
20. **Create a video** — Script for talking head, screen recording, or slideshow
21. **Mark published** — I just published a scheduled post
22. **Write long-form** — Newsletter edition, essay, or series article (`/linkedin:newsletter`)
23. **Cold review (headless)** — Independent adversarial re-read of a frozen long-form draft before lock (`/linkedin:headless-review`)
24. **Pivot a long-form edition** — Re-open cleared gates after a late substantive change (`/linkedin:pivot`)
Based on their answer, guide them to the appropriate command or invoke it directly.
## If They Have Specific Content
If the user already has content they want to turn into a post:
- If they have a URL, article, or research, recommend `/linkedin:react`
- Ask if they want the full workflow (`/linkedin:post`) or quick version (`/linkedin:quick`)
- If they have a quick observation or reaction, recommend `/linkedin:quick`
## Direct Routing
If the user's intent is clear from context:
- Mentions "onboarding" or "just installed" or "walk me through" or "setup wizard" or "start from scratch" → Route to `/linkedin:onboarding`
- Mentions "first post" or "never posted" or "get started" or "new to linkedin" or "help me start" → Route to `/linkedin:first-post`
- Mentions "setup" or "personalize" or "templates empty" or "score" or "fill in assets" or "configure plugin" → Route to `/linkedin:setup`
- Mentions "react" or "this article" or "this url" or "turn this into" or "share this news" → Route to `/linkedin:react`
- Mentions "quick" or "fast" → Route to `/linkedin:quick`
- Mentions "pipeline" or "end to end" → Route to `/linkedin:pipeline`
- Mentions "batch" or "week of content" → Route to `/linkedin:batch`
- Mentions "calendar" or "schedule" or "queue" or "upcoming posts" or "what's scheduled" → Route to `/linkedin:calendar`
- Mentions "publish" or "mark as published" or "posted today" or "just published" or "post is live" → Route to `/linkedin:calendar` (publish action)
- Mentions "plan" → Suggest `content-planner` agent
- Mentions "profile" or "topic-relevance" → Route to `/linkedin:profile`
- Mentions "not working" or "low reach" → Route to `/linkedin:analyze`
- Mentions "strategy" or "growth plan" or "authority" or "build authority" or "signature content" or "greatest hits" or "my best content" → Route to `/linkedin:strategy`
- Mentions "carousel" or "slides" or "slide deck" or "pdf post" or "swipe" or "document post" → Route to `/linkedin:carousel`
- Mentions "template" → Route to `/linkedin:quick`
- Mentions "audit" or "review strategy" → Route to `/linkedin:audit`
- Mentions "competitive" or "learn from others" → Route to `/linkedin:competitive`
- Mentions "monetize" or "revenue" → Route to `/linkedin:monetize`. **Gating:** if state-file `follower_count` < 1000, prepend: "Heads-up: monetization compounds at ~1K followers. You're at {N}. Consider `/linkedin:strategy` to plan the path there. Continuing to `/linkedin:monetize` anyway."
- Mentions "speaking" or "conference" or "collaborate" or "partner" or "CFP" or "talk proposal" or "co-author" or "joint post" → Route to `/linkedin:outreach`. **Gating:** if state-file `follower_count` < 1000, prepend: "Heads-up: outreach lands better at ~1K followers (authority signal). You're at {N}. Consider `/linkedin:strategy` first. Continuing to `/linkedin:outreach` anyway."
- Mentions "adapt" or "cross-post" → Route to `/linkedin:multiplatform`
- Mentions "import" or "CSV" or "export data" → Route to `/linkedin:import`
- Mentions "report" or "weekly numbers" → Route to `/linkedin:report`
- Mentions "engagement tips" or "5x5x5" or "first hour strategy" or "comment strategy" or "who to comment on" or "CEA method" or "whale posts" → Suggest `engagement-coach` agent
- Mentions "optimize post" or "improve draft" or "make this better" → Suggest `content-optimizer` agent
- Mentions "trending" or "what should I post about" → Suggest `trend-spotter` agent
- Mentions "my voice" or "voice profile" or "voice audit" → Suggest `voice-trainer` agent
- Mentions "is this original" or "differentiation" or "commodity content" → Suggest `differentiation-checker` agent
- Mentions "network" or "who to connect with" → Suggest `network-builder` agent
- Mentions "performance" or "weekly report" or "how did I do" or "analyze my analytics" or "interpret data" → Suggest `analytics-interpreter` agent
- Mentions "how is my post doing" or "monitor post" or "post performance" or "first hour" or "post-publish" or "boost post" or "post feedback" → Suggest `post-feedback-monitor` agent
- Mentions "A/B test" or "split test" or "test my hooks" or "compare formats" or "experiment" or "what works better" or "test variations" → Route to `/linkedin:ab-test`
- Mentions "personalization score" or "how personalized" or "asset completeness" → Route to `/linkedin:setup` (score computed by `hooks/scripts/personalization-score.mjs`)
- Mentions "milestone" or "10K goal" or "follower target" or "growth tracking" or "am I on track" or "follower progress" → Route to `/linkedin:strategy`
- Mentions "status" or "on track" → Route to `/linkedin:calendar` (plan-vs-queue diff)
- Mentions "repurpose" or "reuse" → Suggest `content-repurposer` agent
- Mentions "video" or "video script" or "film" or "record" or "talking head" or "screen recording" or "slideshow video" → Route to `/linkedin:video`
- Has a URL to react to → Route to `/linkedin:react`
- Has substantial content to convert → Route to `/linkedin:post`
## Reference
For full skill documentation, see:
- `skills/linkedin-studio/SKILL.md` - Complete skill with personalization settings