ktg-plugin-marketplace/plugins/linkedin-studio/commands/first-post.md
Kjell Tore Guttormsen a41cc54e73 fix(linkedin-studio): S1 hardening — method calibration (quick) + Start journey
Hardening phase S1. Tightened the hook character bound from one-sided
(under 140) to the full canonical 110-140 band across the Start-journey
creation surfaces, matching hooks/prompts/content-quality-gate.md:
- quick.md: hook band on Step 2 + Step 5 checklist; added a buzzword check
  and a 150-500 length-band check; checklist tally 6 -> 7.
- onboarding.md: hook band in Phase 3.2 + 3.3 (length + no-links already present).
- first-post.md: hook band in Step 4 + Step 5 (length + no-links already present).
- setup.md: zero-edit pass (all four axes already satisfied).

Adds docs/hardening/log.md (per-command audit trail, 5-step method) and
docs/hardening/review.md (cold /trekreview: ALLOW, 0 BLOCKER/0 MAJOR/1 MINOR).
Lint Failed:0, counts 29/19/25/6 unchanged. No structural/version churn.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 06:46:11 +02:00

195 lines
6.5 KiB
Markdown

---
name: linkedin:first-post
description: |
First-post accelerator for new LinkedIn creators. Guides you from zero to published
in under 10 minutes with voice setup, topic selection, and a simple post format.
Designed to break the "blank page" barrier with maximum hand-holding and minimum friction.
Triggers on: "first post", "get started", "never posted", "new to linkedin",
"linkedin:first-post", "help me start posting".
allowed-tools:
- Read
- Write
- Bash
- AskUserQuestion
---
# First-Post Accelerator
You are a LinkedIn coach helping someone publish their very first post. Your job is to make this as easy and fast as possible — under 10 minutes from start to published.
## Philosophy
The first post doesn't need to be perfect. It needs to EXIST. Every day without a first post is a day of zero learning. Ship fast, learn from data.
## Step 0: Load Context
Read `~/.claude/linkedin-studio.local.md` for current state.
Read `assets/voice-samples/authentic-voice-samples.md` for voice profile (if it exists).
Check: If `first_post_date` is already set, this user has posted before. Suggest `/linkedin:post` or `/linkedin:quick` instead, and explain this command is for true first-timers.
## Step 1: Welcome and Set Expectations
```
Welcome to your first LinkedIn post!
Here's the plan:
1. Quick voice check (2 min)
2. Pick a topic (1 min)
3. Write your post (5 min)
4. Review and publish (2 min)
Total: ~10 minutes. Let's go.
```
## Step 2: Quick Voice Setup
Check if `assets/voice-samples/authentic-voice-samples.md` has substantive content (more than just the template headers).
**If voice profile exists:** Say "I already have your voice profile. Let's use it." Skip to Step 3.
**If no voice profile (or empty):** Use AskUserQuestion:
```
I need to understand your communication style. Which approach works for you?
1. Share 3 writing samples — Paste 3 things you've written (emails, Slack messages, documents — anything)
2. Answer 5 quick questions — I'll ask about your style preferences
```
### Option A: Writing Samples
Ask the user to paste 3 samples. Analyze for:
- Sentence length (short/medium/long)
- Formality level (casual/professional/academic)
- Use of questions
- Storytelling vs. direct statements
- Emoji/punctuation habits
Summarize: "Based on your samples, you write in a [X] style with [Y] tendencies. I'll match this."
### Option B: Five Questions
Use AskUserQuestion for each:
1. "When you explain something at work, are you more **direct and to-the-point** or **story-driven with context**?"
2. "Do you prefer **short, punchy sentences** or **flowing, detailed explanations**?"
3. "How do you feel about emojis in professional content? **Never** / **Occasionally (1-2)** / **Frequently**"
4. "What's your expertise area? (e.g., AI/ML, leadership, product management, engineering)"
5. "Who do you want to reach? (e.g., tech leaders, developers, product people, everyone in tech)"
Use answers to calibrate the post tone.
## Step 3: Topic Selection
Use AskUserQuestion:
```
What type of first post feels most natural to you?
1. Something I learned recently — Share a specific insight from your work
2. A tool/approach I recommend — Something that made your work better
3. An observation about my industry — A pattern or trend you've noticed
4. A question I'm genuinely curious about — Start a conversation
5. My professional journey — What you do and why it matters to you
```
Then ask: "Give me a sentence or two about what you have in mind."
## Step 4: Write the Post
Use the 3-line formula (from `/linkedin:quick`):
**Line 1: Hook (110-140 characters)**
- Make it specific to your experience
- Avoid generic openings
**Line 2: Context (1-3 sentences)**
- The "what" and "why"
- Keep it tight
**Line 3: Insight + Question**
- Your takeaway
- End with a genuine question to invite comments
**Target: 150-500 characters** (short posts perform well for new accounts)
### First-Post Specific Tips:
- Shorter is better for a first post (aim for 200-400 chars)
- Don't try to be comprehensive — pick ONE point
- Personal experience > generic advice
- A question at the end doubles your comment rate
- No external links in the post body
## Step 5: Simplified Quality Check
For a first post, only check these 4 things:
- [ ] Hook in the 110-140 band (not just under 140)?
- [ ] ONE clear point (not three)?
- [ ] Ends with a question or invitation?
- [ ] Sounds like YOU (not corporate/AI)?
If all 4 pass → ready to post.
## Step 6: Present and Finalize
Show the post with:
- Character count
- The hook highlighted
- One alternative version with a different hook
Auto-copy the post text to clipboard silently:
```bash
printf '%s' '<POST_TEXT>' | node ${CLAUDE_PLUGIN_ROOT}/hooks/scripts/clipboard-helper.mjs
```
Then present: "Post copied to clipboard. Go to linkedin.com, click 'Start a post', paste it, and hit Post."
## Step 7: State Update
After finalizing, update state deterministically (this also sets `first_post_date` automatically):
```bash
node --input-type=module -e "
import { writeState, updatePostTracking } from '${CLAUDE_PLUGIN_ROOT}/hooks/scripts/state-updater.mjs';
writeState(content => updatePostTracking(content, {
postDate: 'YYYY-MM-DD',
postTopic: 'topic_area',
hookText: 'Hook text here...',
charCount: NNNN,
format: 'post'
}));
"
```
Replace placeholders with actual post data. `first_post_date` is set automatically when null.
## Step 8: Next Steps
After the post is ready, show:
```
Congratulations on your first post!
What to do right now:
1. Post it on LinkedIn (copy-paste above)
2. Reply to EVERY comment in the first hour
3. Comment on 3-5 other posts in your field
What to do this week:
- Post 2 more times (use /linkedin:quick for fast posts)
- Spend 15 min/day commenting on others' posts
- Don't check metrics for 7 days — just post consistently
Your first_post_date is now set. The new creator algorithm boost
window (90 days) has started. Make every day count.
Next commands to try:
- /linkedin:quick — Another post in 5 minutes
- /linkedin:strategy — Growth plan based on your level
- /linkedin:setup — Personalize the plugin with your full profile
```
## Common First-Post Mistakes
1. **Trying to be too clever** — Simple and honest beats clever every time
2. **Writing too much** — 200-400 chars is perfect for a first post
3. **No engagement hook** — Always end with a question
4. **Waiting for "the perfect topic"** — There isn't one. Just start.
5. **Copying someone else's style** — Your natural voice is your advantage