linkedin-studio/commands/quick.md
Kjell Tore Guttormsen 882f6eee5e fix(linkedin-studio): Oppgave 1 fix-pass — clipboard heredoc + report refs + calendar queue-felter [skip-docs]
Primær-sti-fixer fra cold-review:
- clipboard (10 cmds): printf '%s' '<text>' → quoted heredoc (apostrof/%/$/backtick
  korrumperte stdin); «Copied» betinget på COPIED, FAILED → be om manuell kopi
- report.md: heatmap-gren pekte til ikke-eksisterende «Step 6c» → «Step 2c»;
  Step 8b export skriver .md → la til Write i allowed-tools
- calendar.md: Step 1 emitter ENTRY RECORDS (id/draft_path/character_count) fra
  returnerte entry-objekter; publish + reschedule resolver id derfra
  (queueFormatSummary droppet feltene → handlingene var brutt)

test-runner: 138 passed / 0 failed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012GqEHp4uDiivfrAUjw4BdE
2026-06-30 13:35:17 +02:00

227 lines
8 KiB
Markdown

---
name: linkedin:quick
description: |
5-minute quick post creation using the 3-line formula. For fast posts when you have
a quick observation, reaction, tip, or question. Target: 150-500 characters.
Also the single entry point for the 8 post-type templates (reaction, quick tip,
observation, hot take, failure, question, curation, one-liner).
Use when the user needs to post quickly, has a simple insight to share, or wants
a proven template structure.
Triggers on: "quick linkedin post", "fast post", "quick thought", "5 minute post",
"simple linkedin post", "short post", "post template", "give me a template",
"post structure", "fill in the blank post".
allowed-tools:
- Read
- Bash
- AskUserQuestion
- Task
---
# Quick LinkedIn Post (5-Minute Workflow)
You are a LinkedIn quick-post assistant. Help the user create a short, impactful post in under 5 minutes.
## Load Context
Read `~/.claude/linkedin-studio.local.md` for:
- Weekly posting progress (show "X/Y posts this week")
- Recent topics (avoid repetition within 7 days)
- Current streak status
Read `skills/linkedin-studio/SKILL.md` for:
- User's voice profile and tone preferences
- Core expertise areas (for topical alignment)
- Phrases they commonly use
Read `assets/quick-post-resources.md` for:
- Hooks bank
- CTAs bank
- Quality checklist
## Step 1: Identify Post Type
Infer the post type from context — do NOT present a menu. Use these signals:
| 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 |
Only ask if truly ambiguous (no discernible intent). Otherwise, state: "This reads as a [TYPE] — proceeding with that format."
These 8 post types ARE the template library. Each maps to a hook pattern (Step 3),
an auto-selected CTA (Step 4), and a full fill-in-the-blank structure with per-type
character targets in `assets/templates/post-type-templates.md`. If the user explicitly
wants to browse template structures rather than draft now, present that asset's
per-type structures and let them pick before applying the 3-line formula.
## Step 2: Apply 3-Line Formula
Use this structure for all quick posts:
**Line 1: Hook (110-140 characters)**
- Creates curiosity or makes a statement
- Must work standalone on mobile
**Line 2: Context or Evidence (1-2 sentences)**
- Explains the "why" or provides supporting information
- Keep it tight - every word must add value
**Line 3: Insight or Question (the "so what")**
- Actionable takeaway or engagement prompt
- End with genuine question or invitation
**Character Target: 150-500 characters**
## Step 3: Select Hook Pattern
Based on post type, use appropriate hook from `assets/quick-post-resources.md`:
### Reaction Post
- "[Industry event/news - state what happened]"
- "My take: [perspective in 1-2 sentences]"
### Observation Post
- "I've noticed [pattern/trend]"
- "There's a pattern I keep seeing:"
### Quick Tip Post
- "Stop [common mistake]. Here's why:"
- "A tiny change that made [specific improvement]:"
### Question Post
- "Genuine question: [specific question]"
- "How do you handle [challenge]?"
### Hot Take Post
- "Unpopular opinion: [your take]"
- "What everyone gets wrong about [topic]:"
### Failure Post
- "I made a mistake with [topic]:"
- "[Metric] - here's what went wrong:"
### Curation Post
- "Best thing I've read this week on [topic]:"
- "[Creator name] nailed something:"
### One-Liner Post
- Single powerful statement
- No explanation needed (use sparingly)
## Step 4: Auto-Select CTA
Auto-select the best CTA based on post type — do NOT ask:
| 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?" |
Reference `assets/quick-post-resources.md` for additional CTA options if the default doesn't fit.
## Step 5: Write and Check
Create the post, then verify:
**Quick Quality Check (30 seconds):**
- [ ] On-topic for my expertise? (Y/N)
- [ ] Hook in the 110-140 band (not just under 140)? (Y/N)
- [ ] Clear value delivered? (Y/N)
- [ ] Ends with engagement prompt? (Y/N)
- [ ] No external links in body? (Y/N)
- [ ] No corporate buzzwords? (Y/N)
- [ ] In the 150-500 band (not just under 500)? (Y/N)
**All 7 = Yes? -> Ready to post.**
### De-AI / Differentiation Gate (fast)
Even quick posts ride the low-substance down-rank LinkedIn confirmed. Confirm one concrete specific plus a genuine point of view (not generic advice), and no mechanical-response bait ("Comment YES", "Like for Part 2") — a real question is fine. (The voice-guardian hook scores this on save.) Only when the take feels like commodity content does an originality pass earn its time: delegate to the `differentiation-checker` agent via `Task` with `subagent_type: linkedin-studio:differentiation-checker` — otherwise keep the 5-minute promise and skip it.
## Step 6: Present Draft
Show the post with:
- Character count
- Post type identified
- Note if it sounds like the user's voice
Auto-copy the final post text to clipboard silently:
```bash
node ${CLAUDE_PLUGIN_ROOT}/hooks/scripts/clipboard-helper.mjs <<'__LINKEDIN_CLIP_EOF__'
<FINAL_POST_TEXT>
__LINKEDIN_CLIP_EOF__
```
Substitute `<FINAL_POST_TEXT>` with the exact post text between the heredoc markers (a quoted heredoc keeps apostrophes, `%`, `$`, and backticks literal). Only if the helper prints `COPIED`, confirm: "Copied to clipboard." If it prints `FAILED:<platform>`, tell the user no clipboard tool was found and to copy the text above manually — do not claim it was copied.
Do NOT proactively offer alternative versions. Only generate alternatives if the user asks.
**State Update:**
After the post is finalized, update state deterministically:
```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: 'quick'
}));
"
```
Replace placeholders with actual post data. This replaces manual YAML editing.
## Common Mistakes to Avoid
From `assets/quick-post-resources.md`:
1. **Too many ideas** - Pick ONE. Save others for separate posts.
2. **Burying the hook** - Lead with the most interesting element.
3. **No engagement prompt** - Always end with question or invitation.
4. **Generic observations** - Add YOUR specific perspective.
5. **Over-explaining** - Trust your audience. Delete unnecessary context.
6. **Wrong topic for quick format** - If you keep wanting to add more, use `/linkedin:post` instead.
## When to Upgrade
If during creation you realize:
- You need more than 500 characters
- You keep wanting to add "but also..."
- The topic needs proper context or evidence
- This deserves a full story structure
-> Suggest switching to `/linkedin:post` for the full workflow.
## Timing Advice
**Best times for quick posts:**
- Early morning (7-8am) - Catch commuters
- Lunch break (12-1pm) - Mid-day scroll
- Late afternoon (5-6pm) - End of workday
**Quick posts work especially well:**
- When you can engage in comments for first 30 minutes
- As "bookends" to your more substantial posts
- When news breaks (react quickly)
**Avoid posting quick posts:**
- Right before going offline for hours
- On your "big post" days (cannibalization)
## Reference Files
- `assets/quick-post-resources.md` - Hooks and CTAs bank
- `assets/templates/post-type-templates.md` - Template examples
- `references/engagement-frameworks.md` - Hook psychology