docs(linkedin-studio): rewrite README to match marketplace pattern
The README led with a ~600-word version-by-version wall and stacked seven "What's New in vX.Y.Z" sections before reaching "What Is This?", reading as a changelog rather than motivating adoption. Restructure to the sibling-plugin pattern (config-audit / llm-security / voyage): - Concise motivating intro paragraph (no version enumeration) - Keep only the latest "What's New" (v3.1.0); full history stays in the Version History table at the bottom - New "Why LinkedIn Studio Exists" section: the real pain (blank-page paralysis, inconsistency, algorithm opacity, generic AI slop, the 360Brew shift) mapped to what the plugin does about each - New "Two Engines" section framing feed vs. long-form, with the pre-lock quality gauntlet as the long-form differentiator - Refresh "What Is This?" to the LinkedIn Studio / content-engine framing - Swap the unverified "40+ ideas / Content Matrix" claim for the documented "8 universal angles" (verification duty) All accurate tables (26 commands, 19 agents, 9 hooks, 24 reference docs) and the full Version History preserved verbatim. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
e69ea1f4c9
commit
82c5249ca8
1 changed files with 104 additions and 107 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
# LinkedIn Studio Plugin for Claude Code
|
# LinkedIn Studio Plugin for Claude Code
|
||||||
|
|
||||||
> Build authentic LinkedIn authority through algorithmic understanding, strategic consistency, and AI-assisted content creation.
|
> Turn your expertise into LinkedIn authority — without the blank page, the guesswork, or the generic AI slop.
|
||||||
|
|
||||||
> **Solo-maintained, fork-and-own.** This plugin is a starting point, not a vendor product. Issues are welcome as signals; pull requests are not accepted. See [GOVERNANCE.md](GOVERNANCE.md) for the full model and what upstream provides.
|
> **Solo-maintained, fork-and-own.** This plugin is a starting point, not a vendor product. Issues are welcome as signals; pull requests are not accepted. See [GOVERNANCE.md](GOVERNANCE.md) for the full model and what upstream provides.
|
||||||
|
|
||||||
|
|
@ -14,20 +14,16 @@
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
A comprehensive Claude Code plugin that turns LinkedIn from a chore into a full-spectrum content engine — short-form feed posts, carousels, video scripts, and long-form newsletter editions. v2.0.0 consolidated the surface (27 → 24 commands, 16 → 14 agents) and added `/linkedin:newsletter` as a multi-session long-form orchestrator with fact-check + persona-sweep gates BEFORE lock. **v2.1.0** adds two more gates BEFORE prose to `/linkedin:newsletter` — a skeleton gate (Step 2.5) and a spine-prose gate (Step 3a) — encoding the Maskinrommet writing-contract §A discipline (premiss / problem / anbefaling / gevinst / vei videre) into the pipeline itself, so spine errors get caught in minutes at the skeleton stage instead of hours at the resonance stage or a full day post-lock. v2.2.0 hardened the longform gates with the lessons from the next production run: blocking persona hard-fails (primær «mistet meg» / doesn't own the action / jargon wall / model-name catalog → BLOCK), a post-cutoff fact-check mandate, a new Norwegian-chronicle de-AI voice-scrubber agent, render+annotate operator gates, and edition state reconciled with the global STATE.md continuity system. v2.3.0 makes visual assets an explicit pipeline phase — **Step 7.5 (visual-assets)** between annotation and lock: the cover (+ optional inline figures) or a carousel deck is generated and operator-gated *before* lock, so the renderer picks up `cover.png` without a post-lock re-render. **v2.4.0** adds an **editor's craft gate** — new **Step 5.5 (editorial-review)** between fact-check and the persona sweep: a new `editorial-reviewer` agent (Opus) judges *craft* (prose-craft + narrative-architecture), not reader-response, returning ≤10 flags (BLOCK / REWORK / NICE) operator-gated via `SendUserFile` so the personas measure resonance instead of stumbling on craft noise (pipeline 14 → 15 phases). **v3.1.0** adds a **cold adversarial review package** as **Step 6.5 (headless-review)** in `/linkedin:newsletter` — three new headless archetypes (`content-reviewer`, `language-reviewer`, `fact-reviewer`) that re-review a frozen draft with NO drafting-session context, surfaced standalone via the new `/linkedin:headless-review` command (run in a fresh session for maximum isolation), plus a `/linkedin:pivot` command + pivot-detection gate that re-opens cleared gates after a late change, and per-artifact personas configurable per edition (pipeline 15 → 16 phases). 26 slash commands, 19 specialized agents, 9 automated hooks, and a 24-document knowledge base grounded in LinkedIn's actual algorithm signals. Updated for the January 2026 **360Brew** algorithm change, where LinkedIn now validates your profile before distributing content.
|
Most experts know they *should* post on LinkedIn — and quietly don't. The blank editor wins. LinkedIn Studio turns that chore into a system: structured workflows that take you from idea to published, in your own voice, calibrated to how LinkedIn's **360Brew** ranking model (January 2026) actually distributes content. Two engines under one surface — a **feed engine** for short-form posts, carousels, and video scripts, and a **long-form engine** that runs newsletter editions and essays through a serious editorial pipeline before they ever lock. 26 commands, 19 specialized agents, 9 automated quality hooks, and a 24-document knowledge base grounded in the algorithm's real signals.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
- [What's New in v3.1.0](#whats-new-in-v310)
|
- [What's New in v3.1.0](#whats-new-in-v310)
|
||||||
- [What's New in v3.0.0](#whats-new-in-v300)
|
- [Why LinkedIn Studio Exists](#why-linkedin-studio-exists)
|
||||||
- [What's New in v2.4.0](#whats-new-in-v240)
|
|
||||||
- [What's New in v2.3.0](#whats-new-in-v230)
|
|
||||||
- [What's New in v2.2.0](#whats-new-in-v220)
|
|
||||||
- [What's New in v2.1.0](#whats-new-in-v210)
|
|
||||||
- [What's New in v2.0.0](#whats-new-in-v200)
|
|
||||||
- [What Is This?](#what-is-this)
|
- [What Is This?](#what-is-this)
|
||||||
|
- [Two Engines](#two-engines)
|
||||||
- [Quick Start](#quick-start)
|
- [Quick Start](#quick-start)
|
||||||
- [Commands](#commands)
|
- [Commands](#commands)
|
||||||
- [Agent Architecture](#agent-architecture)
|
- [Agent Architecture](#agent-architecture)
|
||||||
|
|
@ -47,125 +43,110 @@ A comprehensive Claude Code plugin that turns LinkedIn from a chore into a full-
|
||||||
|
|
||||||
## What's New in v3.1.0
|
## What's New in v3.1.0
|
||||||
|
|
||||||
**An adversarial review package becomes part of the long-form pipeline (Endring 9).** The Del 4 production run (the Security Champions pivot) shipped a high-quality article, but its quality assurance leaned on one good editor plus the operator's availability to re-read it several times — it did not scale. The root cause: the editor (Step 5.5) and the persona sweep (Step 6) ran *in the same session as drafting*, sharing the conversation history (which versions passed, what was cut, which flags were raised). They carried the drafting session's **framing-bias** and were therefore not independent. Three symptoms followed: the resonance sweep effectively judged an early version rather than the one that shipped, editor-approval was single-source, and the fact-check was post-hoc relative to a late pivot — so the pivot could build on an unverified premise.
|
**An adversarial review package becomes part of the long-form pipeline (Endring 9).** The most recent production run shipped a high-quality article, but its quality assurance leaned on one good editor plus the operator's availability to re-read it several times — it did not scale. The root cause: the editor and the persona sweep ran *in the same session as drafting*, sharing the conversation history (which versions passed, what was cut, which flags were raised). They carried the drafting session's **framing-bias** and were therefore not independent. Three symptoms followed: the resonance sweep effectively judged an early version rather than the one that shipped, editor-approval was single-source, and the fact-check was post-hoc relative to a late pivot — so the pivot could build on an unverified premise.
|
||||||
|
|
||||||
v3.1.0 answers the operator's explicit question — *how do I start sessions with no context from the main session, to review both content and language?* — with a **cold review package** that reconstructs everything from disk and refuses the drafting session's framing as "context pollution".
|
v3.1.0 answers this with a **cold review package** that reconstructs everything from disk and refuses the drafting session's framing as "context pollution".
|
||||||
|
|
||||||
- **Three new headless review archetypes** (all Opus, cold/headless): **`content-reviewer`** (maroon — argument integrity: C1 logical holes · C2 unsupported assumptions · C3 argument contradiction · C4 missing concretization · C5 unanswered objection; ≤8 flags), **`language-reviewer`** (navy — Norwegian language: L1 verbatim repetition · L2 anglicisms · L3 stiff bureaucratic register · L4 language-level self-contradiction · L5 clang/rhythm; ≤10 flags; a deliberate cold re-take of the editorial prose axis), and **`fact-reviewer`** (gold — cold re-verification on the frozen/pivoted version via web search: F1 verifiable claims · F2 quote precision · F3 number attribution · F4 source quality; 🔴/🟡/🟢 + a pivot-risk subsection; deliberate redundancy with `fact-checker` to catch a pivot premise that arrived after Step 5).
|
- **Three new headless review archetypes** (all Opus, cold/headless): **`content-reviewer`** (argument integrity — logical holes, unsupported assumptions, contradictions, missing concretization, unanswered objections; ≤8 flags), **`language-reviewer`** (Norwegian language — verbatim repetition, anglicisms, stiff register, self-contradiction, clang/rhythm; ≤10 flags), and **`fact-reviewer`** (cold re-verification of the frozen/pivoted version via web search, plus a pivot-risk subsection; deliberate redundancy with `fact-checker` to catch a premise that arrived after the fact-check ran).
|
||||||
- **New `/linkedin:headless-review` command** — runs the cold package on a FROZEN draft, designed to be invoked in a **fresh session** for maximum isolation (the parent then has no drafting transcript) and reconstructs the draft + writing contract + personas from disk.
|
- **New `/linkedin:headless-review` command** — runs the cold package on a FROZEN draft, designed to be invoked in a **fresh session** for maximum isolation, reconstructing the draft + writing contract + personas from disk.
|
||||||
- **New Step 6.5 (headless-review)** in `/linkedin:newsletter` — fans the package out in parallel after the in-session persona sweep (Step 6), on a frozen draft snapshot, BEFORE lock; the independence layer the in-session gates cannot be. Converged flags (two independent cold reviewers agreeing) are the strongest signal.
|
- **New Step 6.5 (headless-review)** in `/linkedin:newsletter` — fans the package out in parallel after the in-session persona sweep, on a frozen snapshot, BEFORE lock. Converged flags (two independent cold reviewers agreeing) are the strongest signal.
|
||||||
- **New `/linkedin:pivot` command + pivot-detection gate** — a late change re-opens the cleared gates (fact-check → editorial → persona → headless) so they re-run on the changed version before lock. Heuristic: a draft that drifted **> 20 % in word count OR gained > 2 sections** since Step 6 cleared fires the gate (enforced as a Step 8 lock precondition).
|
- **New `/linkedin:pivot` command + pivot-detection gate** — a late change re-opens the cleared gates so they re-run on the changed version before lock. Heuristic: a draft that drifted **> 20 % in word count OR gained > 2 sections** fires the gate.
|
||||||
- **Per-artifact personas** (`articles.NN.personas`) — one or more readers configurable **per edition**, resolved in order (edition-state → `<serie>/linkedin/personas.md` per-series file → plugin library/template → interactive definition); feeds both the Step 6 sweep and the Step 6.5 package.
|
- **Per-artifact personas** (`articles.NN.personas`) — one or more readers configurable **per edition**, resolved in order (edition-state → per-series file → plugin library → interactive).
|
||||||
|
|
||||||
Counts: 24 → 26 commands; 16 → 19 agents; newsletter pipeline 15 → 16 phases. **Backward-compatible** — every state-shape change is additive (`personas`/`pivots`/`headlessReview`); existing editions resume by `currentPhase`. **Reload required** before the three new agents resolve (the plugin agent set is built at session start).
|
Counts: 24 → 26 commands; 16 → 19 agents; newsletter pipeline 15 → 16 phases. **Backward-compatible** — every state-shape change is additive. **Reload required** before the three new agents resolve.
|
||||||
|
|
||||||
## What's New in v3.0.0
|
> See the full release-by-release history in the [Version History](#version-history) table at the bottom.
|
||||||
|
|
||||||
**The plugin is renamed `linkedin-thought-leadership` → `linkedin-studio` ("LinkedIn Thought Leadership" → LinkedIn Studio).** The old display title read as pompous; the new name is plain and matches how the plugin already describes itself — a *LinkedIn content engine*. This is a **breaking** release because the identity changes at three levels, but **no functionality changes** — v3.0.0 is byte-for-byte v2.4.0 under a new name.
|
|
||||||
|
|
||||||
- **What changed:** the marketplace **slug** (`linkedin-studio`), the **agent namespace** (`linkedin-studio:<agent>`, used by `/linkedin:newsletter`), and the **runtime state-file path** (`~/.claude/linkedin-studio.local.md`, migrated in place — your post metrics, streak, and content history are preserved).
|
|
||||||
- **What did *not* change:** the **commands**. `/linkedin:post`, `/linkedin:newsletter`, `/linkedin:quick`, and every other command are invoked exactly as before — the `/linkedin:` namespace is set per-command in frontmatter and was always independent of the plugin slug. 24 commands, 16 agents, 9 hooks — all unchanged.
|
|
||||||
- **Action required:** **reinstall the plugin** so Claude Code registers the new slug and agent namespace, then reload the session. Until reload, the renamed agents won't resolve.
|
|
||||||
|
|
||||||
## What's New in v2.4.0
|
|
||||||
|
|
||||||
**An editor's craft gate becomes an explicit pipeline phase.** The Del 4 production run exposed a gap the existing gates could not see: the persona resonance sweep returned 15 flags across three personas and *every persona reported PASS / ready-to-publish* — yet the editor (KTG) found **eight fresh editorial points on first reading**, and only ~25 % overlapped anything the personas had touched. The other six were **craft and narrative-architecture blind spots** no agent measured. `persona-reviewer` measures *reader response* (does it land?); nothing measured *prose craft* or *narrative architecture* (is it well-made?). v2.4.0 adds the missing role.
|
|
||||||
|
|
||||||
- **New `editorial-reviewer` agent** (Opus, orange) — an **editor**, not a reader. Two axes: **prosa-håndverk** (em-dash density, verbatim repetition, postulated numbers without source/hedge, internal contradictions, versal-tic — mostly grep-able) and **narrativ-arkitektur** (concrete instantiation, theory-anchored hypotheses, series-title symmetry, equally-usable action per addressee, an un-overloaded conclusion). Returns **≤10 flags** as *direction* — never rewritten copy (the jury judges, the writer writes) — each with a quote/line-ref and a **severity: BLOCK / REWORK / NICE**. The checklist is the operationalized mirror of the **Maskinrommet writing-contract §C2**. *(New agent — requires a session reload before it is invokable.)*
|
|
||||||
- **New Step 5.5 — Editorial review** (`commands/newsletter.md`), between fact-check (Step 5) and the persona sweep (Step 6). Runs a single foreground `editorial-reviewer` call, surfaces the report to the operator via **`SendUserFile`** (the same operator-gate pattern as Steps 2.5/3a/7.5), folds approved flags in *by tightening* → v(n+1), and optionally re-runs on the cleaned version.
|
|
||||||
- **Why before the persona sweep, not after** — the personas measure *response*. If the prose is locally messy (an em-dash thicket, a postulated number, a repeated phrase) the persona flags become *noise* — the reader stumbles on the craft defect instead of judging mobilization. Clean the craft first, and Step 6 measures what it was built to measure.
|
|
||||||
- **Supplementary, not a replacement** — `persona-reviewer` is unchanged. One agent measures craft (5.5), one measures response (6); the role boundary is sharp (`editorial-reviewer` never flags "this won't resonate"; `persona-reviewer` never flags em-dash density).
|
|
||||||
- **`editorial-review` phase + additive `editorialReview` state** in `config/edition-state.template.json`. Pipeline grows 14 → 15 phases; resumption stays deterministic (`factcheck-sweep` now resumes at Step 5.5).
|
|
||||||
- **Fasit fixture + structural lint** — `agents/fixtures/editorial-reviewer-cases.md` encodes the Del 4 v5 gold standard (KTG's eight points mapped to the two axes + severities; 6/8 editorial-only blind spots), with `agents/__tests__/editorial-reviewer-fixture.test.mjs` asserting its shape (7 tests, green). The calibration target for a live run (which needs a session reload + the Del 4 v5 draft).
|
|
||||||
|
|
||||||
Doc/orchestration-only for the wiring — the new agent, its fasit fixture, and the lint test are the only new files; **no new runtime code**. 16 agents (was 15). Commands (24) unchanged. Backward-compatible: the only state-shape change is additive.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## What's New in v2.3.0
|
## Why LinkedIn Studio Exists
|
||||||
|
|
||||||
**Visual assets become an explicit pipeline phase.** Until now, images (cover + inline figures) were produced ad-hoc *outside* the `/linkedin:newsletter` pipeline and referenced by hand — even though a cover is mandatory and has to coordinate with the text. v2.3.0 adds **Step 7.5 — Visual assets** between annotation (Step 7) and lock (Step 8), so visuals are resolved *before* the edition locks.
|
For most professionals, the hard part of LinkedIn isn't writing — it's everything around it. You have the expertise. What you don't have is a repeatable way to get it out the door, consistently, in a form the algorithm actually rewards.
|
||||||
|
|
||||||
- **New Step 7.5 — Visual assets** (`commands/newsletter.md`). Decides image needs from the article type (method-heavy → 1–2 inline figures; diagnosis-heavy → cover only), writes a per-image brief, generates, runs an operator-gate, and records credit + caption. It runs **before lock on purpose**: `render/build-linkedin.mjs` picks up `linkedin/NN/cover.png` + the edition-config credit/caption at lock, so generating images after lock would force a re-render and break the lock.
|
**The recognizable pattern of pain:**
|
||||||
- **Two generation routes, no lock-in** — default `mcp__mcp-image__generate_image` (Nano Banana Pro) writing `cover-v<N>-kandidat.png`, or an external route (DALL·E / Midjourney / photographer) via a `cover-raw.png` the operator drops in. The interface is pluggable (path-in / path-out); mcp-image is the default, not a hard dependency.
|
|
||||||
- **Operator-gate = the Step 2.5/3a pattern, for images** — every candidate is surfaced via `SendUserFile` for side-by-side comparison; on approval the chosen candidate is copied to the fixed `cover.png` name that the renderer reads.
|
|
||||||
- **Explicit carousel branch** — `format: "carousel"` editions render a typografisk slide-deck via the existing `render/build-carousel.mjs` instead of cover+inline.
|
|
||||||
- **New `config/image-credit-caption.template.md`** — cover motif + credit + caption table (honest-about-AI credit per the verification duty), modelled on the established series convention. Documents the `cover.png` / `cover-v<N>-kandidat.png` / `cover-raw.png` / `fig<N>.png` naming.
|
|
||||||
- **`visual-assets` phase + additive `visualAssets` state** in `config/edition-state.template.json`. Pipeline grows 13 → 14 phases; resumption stays deterministic (`annotation` now resumes at Step 7.5).
|
|
||||||
|
|
||||||
Doc/orchestration-only — **no new code**. Commands (24) and agents (15) unchanged. Backward-compatible: the only state-shape change is additive.
|
- **The blank editor wins.** You open LinkedIn to post, stare at the box, and close it. The idea was there; the activation energy wasn't.
|
||||||
|
- **You post in bursts, then go quiet.** Three posts one week, nothing for a month. The algorithm reads inconsistency as "not a creator" and quietly throttles you.
|
||||||
|
- **You can't see why anything works.** One post reaches 12,000 people; the next, near-identical one, reaches 200. With no model of the ranking signals, every post is a coin flip.
|
||||||
|
- **Generic AI output sounds like generic AI.** It doesn't sound like you, it leans on buzzwords, and LinkedIn's classifiers increasingly suppress exactly that register. "AI-assisted" only helps if it protects your voice.
|
||||||
|
- **The ground moved in January 2026.** LinkedIn's **360Brew** model now validates your *profile* before distributing your *content* — an off-topic post or an unoptimized profile caps reach regardless of how good the writing is. Most "LinkedIn tips" predate this and are now actively misleading.
|
||||||
|
|
||||||
---
|
**What the plugin does about it:**
|
||||||
|
|
||||||
## What's New in v2.2.0
|
| The pain | The plugin's answer |
|
||||||
|
|----------|---------------------|
|
||||||
|
| Blank-page paralysis | Guided workflows — from a 5-minute `/linkedin:quick` to a full `/linkedin:pipeline` — so you start from structure, not a void |
|
||||||
|
| Inconsistency | A scheduling queue, streak tracking, batch creation, and proactive posting reminders that keep cadence visible |
|
||||||
|
| Algorithm opacity | Every command is calibrated to documented 360Brew signals; hooks gate hook-length, link-suppression, buzzwords, and topic rotation *before* you publish |
|
||||||
|
| Generic slop | Voice training learns your authentic style and flags drift; a voice-guardian hook catches AI register on the way out |
|
||||||
|
| The 360Brew shift | `/linkedin:profile` aligns your profile to the new model first, because content distribution now depends on it |
|
||||||
|
|
||||||
**Longform gates hardened** — the second production run (Seres-serien) surfaced six concrete weaknesses; v2.2.0 closes all of them. A chronicle built as a model/name catalog passed review (flags were read as notes, not stop-signs) and nearly shipped; the rewrite was better but introduced fresh factual errors. The gates now make both failure modes blocking.
|
The result is not "AI writes your posts." It's a system that holds the structure, the discipline, and the algorithmic knowledge so you can focus on the one thing only you can supply — the expertise.
|
||||||
|
|
||||||
- **Persona gate is blocking, with an explicit hard-fail list** (`agents/persona-reviewer.md`, `config/personas.template.md`). The bar is the primær reader's *clean* JA — «JA med store forbehold» = NEI. Hard fails (= rewrite, not annotate): primær «mistet meg», primær doesn't own the action, **sjargong-mur**, **modell-/navne-katalog**. Any one → BLOCK regardless of the other axes.
|
> [!TIP]
|
||||||
- **Fact-check is orthogonal to narrative strength** (`agents/fact-checker.md`). The more convincing a draft reads, the *more* verification — not less. Claims dated after the model's knowledge cutoff **MUST** be web-searched (never confirmed from memory), plus an explicit checklist for the high-frequency error types (person titles, org-varying "standards", over-credited studies, source scope, founding/release years).
|
> New here? Run `/linkedin:onboarding` — it walks you through profile optimization, personalization, and your first published post in one guided flow (~10 minutes).
|
||||||
- **New `voice-scrubber` agent** (Opus) — aggressive de-AI scrub (Pass 1, objective: «la meg være ærlig», reflex rule-of-three, em-dash-spam, self-referential overhead, modell-/navne-katalog) + voice-drift correction (Pass 2, calibrated). **Gold standard = the approved Norwegian editions, NOT the English `authentic-voice-samples.md`** (which forbids the em-dash and would degrade chronicle voice). Wired into Step 4 of `/linkedin:newsletter`. *(New agent — requires a session reload before it is invokable.)*
|
|
||||||
- **Render+annotate operator gates** (`commands/newsletter.md` Steps 2.5, 3a). The operator review is HTML annotation in the browser (`render/build-html.mjs` → `file://` link), not a multiple-choice prompt — for every write deliverable, skeleton included. `AskUserQuestion` becomes a receipt + fallback.
|
|
||||||
- **Edition state reconciled with STATE.md** (ONE-system). `edition-HANDOVER.md` is gone; narrative state lives in `<serie>/STATE.md` (overwritten each phase, auto-injected by the session-start hook), machine state (fact-check log, persona verdicts, immutable rules) in `edition-state.json`. `config/edition-HANDOVER.template.md` deleted.
|
|
||||||
- **Voice-profile + longform-rules avoid-patterns** — modell-/navne-katalog, completeness-over-reader-action, and self-referential overhead openings added to `references/longform-quality-rules.md` (rules 1 + 3) and `config/user-profile.template.md`.
|
|
||||||
|
|
||||||
15 agents (was 14). No command-count change (24). Backward-compatible: existing editions resume by `currentPhase`; the only state-shape change is additive (`personaSweep.skeleton`, `immutableRules`).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## What's New in v2.1.0
|
|
||||||
|
|
||||||
**Skeleton gate before prose** in `/linkedin:newsletter` — the single most expensive failure mode in long-form (spine errors caught post-prose) is now gated before the first sentence is written. Empirically motivated by the Seres-serien Del 3 + Del 4 production (~1 day lost to spine rework that a 15-minute skeleton gate would have caught).
|
|
||||||
|
|
||||||
- **New Step 2.5 — Skeleton + section pitch** — writes `<serie>/NN-skjelett.md` with the five-line spine (premiss / problem / anbefaling / gevinst / vei videre) + one-line section pitches. Operator-gate (JA / REVIDER / NEI) AND parallel persona-skjelett-sweep must both return JA before the pipeline can advance. No prose is written until the spine is right.
|
|
||||||
- **New Step 3a — Spine prose** — one paragraph per section against the gated skeleton, ~20–30 % of final edition length. Operator-gate on whether the axis lands now that there is prose on it. The old Step 3 (Draft) is split into 3a (spine) and 3b (full expansion); 3b owns the multi-session draft-cursor logic, 3a is short enough to restart on interruption.
|
|
||||||
- **New `persona-reviewer` mode: `skjelett`** — third mode alongside `resonans` (before lock) and `konverter` (after lock). Five spine axes (Premiss / Problem / Anbefaling / Gevinst / Vei videre) scored HOLDER / TVILER / MANGLER, ≤3 direction-only flags, per-pitch section-pay-in check. Reads the skeleton + pitches only — no prose.
|
|
||||||
- **Two new phase strings** in `edition-state.template.json` — `skeleton-pitch` + `spine-prose`. The pipeline grows from 11 to 13 phases; resumption is deterministic across every new phase boundary.
|
|
||||||
- **Rule 8 — Skjelett før prosa** in `references/longform-quality-rules.md` — codifies the skeleton-before-prose pre-condition that all other quality rules implicitly rely on.
|
|
||||||
|
|
||||||
Backward-compatible: existing editions with `currentPhase: "research"` now resume at Step 2.5 (was Step 3) — an intended deterministic improvement; the contract on every other phase is bit-for-bit unchanged.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## What's New in v2.0.0
|
|
||||||
|
|
||||||
**Full-spectrum content engine** — feed posts AND long-form newsletter editions in one cohesive surface, with net-fewer commands.
|
|
||||||
|
|
||||||
- **Long-form `/linkedin:newsletter` orchestrator** — multi-session pipeline (load → calibrate → research fan-out → draft → consistency → fact-check sweep → persona sweep → lock → delivery → hook-gate → schedule) with maintained edition-state across sessions. Supports newsletter editions, essays, and series articles
|
|
||||||
- **Two new longform-quality gate agents** — `fact-checker` (Opus, verifies every factual claim against primary sources) and `persona-reviewer` (Opus, evaluates reader-persona resonance + hook-conversion). Both run BEFORE lock — the cost of fixing an error in a published edition is too high
|
|
||||||
- **Render pipeline migrated into the plugin** — `render/build-html.mjs`, `build-pdf.mjs`, `build-linkedin.mjs`, `build-carousel.mjs` + self-hosted fonts (Newsreader, Inter, JetBrains Mono) under OFL-1.1. No more cross-repo render dependency
|
|
||||||
- **Persona library** — `config/personas.template.md` lets you define reader personas with knowledge level, time-pressure, and resonance criteria. `persona-reviewer` uses these to evaluate every long-form draft
|
|
||||||
- **Edition-state schema** — `assets/editions/<slug>/state.json` tracks a long-form piece across many sessions (research notes, draft revisions, fact-check status, persona-review status, lock state)
|
|
||||||
- **Net surface reduction** — 27 → 24 commands (5 removed: `templates`, `publish`, `authority`, `collab`, `speaking` absorbed into existing commands; 2 added: `newsletter`, `outreach`). 16 → 14 agents (4 merged: `content-tracker`, `personalization-scorer`, `performance-reporter`, `comment-strategist` absorbed into `analytics-interpreter` + `engagement-coach`; 2 added: `fact-checker`, `persona-reviewer`)
|
|
||||||
- **Analytics consolidation** — `analytics-interpreter` now has interpret + report modes (replaces standalone `performance-reporter`); `engagement-coach` now owns 5x5x5 + first-hour tactics + CEA commenting + target selection + daily routine (replaces standalone `comment-strategist`)
|
|
||||||
- **`/linkedin:import` analysis delegates to `/linkedin:report`** — both consume the same `trends` CLI; the import flow runs the report inline instead of duplicating the analysis pipeline
|
|
||||||
- **Router gating** — `/linkedin:monetize` and `/linkedin:outreach` now surface "unlocks at ~1K followers" guidance so new creators are pointed at `/linkedin:strategy` first
|
|
||||||
|
|
||||||
### Friction reduction (carried forward from prior release)
|
|
||||||
|
|
||||||
- Auto-clipboard on all content commands · max 2 interactive steps · deterministic `state-updater.mjs` · MCP image carousel · progressive onboarding · iCal calendar integration
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## What Is This?
|
## What Is This?
|
||||||
|
|
||||||
This plugin gives you a complete LinkedIn thought leadership system inside Claude Code. Instead of staring at a blank post editor, you work through structured workflows that handle ideation, drafting, optimization, scheduling, publishing, and post-publish analytics — all calibrated to how LinkedIn's algorithm actually works.
|
LinkedIn Studio is a complete LinkedIn content engine inside Claude Code. Instead of an empty post editor, you work through structured workflows that handle ideation, drafting, optimization, scheduling, publishing, and post-publish analytics — all calibrated to how LinkedIn's algorithm actually distributes content.
|
||||||
|
|
||||||
Key capabilities:
|
Key capabilities:
|
||||||
|
|
||||||
- **360Brew profile optimization** aligned with LinkedIn's AI-first content distribution (January 2026 update)
|
- **360Brew profile optimization** aligned with LinkedIn's AI-first content distribution (January 2026 update)
|
||||||
- **Content Matrix System** that generates 40+ post ideas from a single topic using 8 universal thought leadership angles
|
- **Content angle system** that generates post ideas from a single topic using 8 universal thought-leadership angles
|
||||||
- **Full content pipeline** from ideation through post-publish 48-hour monitoring
|
- **Full content pipeline** from ideation through post-publish 48-hour monitoring
|
||||||
|
- **Long-form editorial pipeline** — newsletter editions and essays run through skeleton, voice, fact-check, craft, resonance, and cold adversarial review gates *before* they lock
|
||||||
- **Batch content creation** — produce a full week of posts in one session
|
- **Batch content creation** — produce a full week of posts in one session
|
||||||
- **Analytics pipeline** — import LinkedIn CSV exports, parse into structured JSON, generate performance reports
|
- **Analytics pipeline** — import LinkedIn CSV exports, parse into structured JSON, generate performance reports
|
||||||
- **Voice training** — learns your authentic writing style and flags drift
|
- **Voice training** — learns your authentic writing style and flags drift
|
||||||
- **Growth strategy** — phase-specific guidance from foundation (0-1K followers) through authority (10K+)
|
- **Growth strategy** — phase-specific guidance from foundation (0–1K followers) through authority (10K+)
|
||||||
- **Monetization and outreach** — readiness assessment, lead magnets, conference CFP templates, collaboration formats and partner pitches
|
- **Monetization and outreach** — readiness assessment, lead magnets, conference CFP templates, collaboration formats and partner pitches
|
||||||
- **Video scripting** — structured scripts for 30s/60s/90s/2min LinkedIn video
|
- **Video scripting** — structured scripts for 30s/60s/90s/2min LinkedIn video
|
||||||
- **Multi-platform repurposing** — adapt LinkedIn content for Twitter/X, newsletters, blogs, slides
|
- **Multi-platform repurposing** — adapt LinkedIn content for Twitter/X, newsletters, blogs, slides
|
||||||
- **A/B testing framework** — design and track content experiments
|
- **A/B testing framework** — design and track content experiments
|
||||||
|
|
||||||
> [!TIP]
|
---
|
||||||
> Start with `/linkedin:profile` to optimize for 360Brew, then `/linkedin:setup` to personalize, then `/linkedin:post` to create your first post.
|
|
||||||
|
## Two Engines
|
||||||
|
|
||||||
|
LinkedIn Studio is really two content engines sharing one surface. They have different speeds, different gates, and different goals.
|
||||||
|
|
||||||
|
### ⚡ The Feed Engine — short-form, fast, frictionless
|
||||||
|
|
||||||
|
For everyday presence. The point is *velocity without losing quality*: every content command auto-copies the result to your clipboard, asks at most two questions, and runs your draft through the same algorithm-aware quality gates before it ever leaves your editor.
|
||||||
|
|
||||||
|
| Want to… | Command | Time |
|
||||||
|
|----------|---------|------|
|
||||||
|
| React to an article or observation | `/linkedin:quick` | ~5 min |
|
||||||
|
| Write a substantial post | `/linkedin:post` | 10–15 min |
|
||||||
|
| Turn a URL into a reaction post | `/linkedin:react` | ~5 min |
|
||||||
|
| Build a carousel (highest engagement format) | `/linkedin:carousel` | ~15 min |
|
||||||
|
| Script a video | `/linkedin:video` | ~10 min |
|
||||||
|
| Fill a whole week in one sitting | `/linkedin:batch` | ~30 min |
|
||||||
|
|
||||||
|
### 📖 The Long-Form Engine — `/linkedin:newsletter`
|
||||||
|
|
||||||
|
For the pieces that build authority — newsletter editions, essays, series articles. This is what sets LinkedIn Studio apart from "AI writes your post" tools: a **16-phase pipeline where the draft has to survive a gauntlet of quality gates *before it locks*.**
|
||||||
|
|
||||||
|
```
|
||||||
|
skeleton gate ──▶ voice scrub ──▶ fact-check ──▶ editorial craft gate ──▶
|
||||||
|
persona resonance ──▶ cold adversarial review ──▶ visual assets ──▶ LOCK ──▶ hook conversion
|
||||||
|
(before prose) (de-AI) (sources) (is it well-made?)
|
||||||
|
(does it land?) (independent re-read)
|
||||||
|
```
|
||||||
|
|
||||||
|
Each gate exists because skipping it is expensive:
|
||||||
|
|
||||||
|
- **Skeleton before prose** — spine errors get caught in 15 minutes at the outline stage instead of a full day post-draft.
|
||||||
|
- **Fact-check before lock** — claims after the model's knowledge cutoff *must* be web-searched; the more convincing a draft reads, the more verification, not less.
|
||||||
|
- **Editorial craft gate** — an editor (not a reader) judges prose craft and narrative architecture: the blind spots a resonance sweep structurally cannot see.
|
||||||
|
- **Cold adversarial review** — three reviewers re-read a frozen draft with *no* drafting-session context, so the version that ships is the version that's actually been independently reviewed.
|
||||||
|
|
||||||
|
The cost of fixing an error in a published edition is too high — so the gates run upstream, where fixes are cheap.
|
||||||
|
|
||||||
|
> Short-form lives in `/linkedin:post`, `:quick`, `:react`, `:carousel`, `:video`. Long-form lives in `/linkedin:newsletter`. `/linkedin:multiplatform` adapts short-form across platforms; long-form repurposing routes back to `/linkedin:newsletter`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -211,6 +192,7 @@ The wizard handles everything: 360Brew profile checklist, voice and user profile
|
||||||
| Write a post | `/linkedin:post` |
|
| Write a post | `/linkedin:post` |
|
||||||
| Quick 5-min post | `/linkedin:quick` |
|
| Quick 5-min post | `/linkedin:quick` |
|
||||||
| React to an article | `/linkedin:react` |
|
| React to an article | `/linkedin:react` |
|
||||||
|
| Write a long-form edition | `/linkedin:newsletter` |
|
||||||
| View your stats | `/linkedin:report` |
|
| View your stats | `/linkedin:report` |
|
||||||
| See all commands | `/linkedin` |
|
| See all commands | `/linkedin` |
|
||||||
|
|
||||||
|
|
@ -234,9 +216,13 @@ All 26 commands use colon notation: `/linkedin:post`, `/linkedin:quick`, etc.
|
||||||
|---------|-------------|
|
|---------|-------------|
|
||||||
| `/linkedin:post` | Full interactive post creation with angle selection, format choice, and refinement. Best for substantial posts (1,200-1,800 characters). |
|
| `/linkedin:post` | Full interactive post creation with angle selection, format choice, and refinement. Best for substantial posts (1,200-1,800 characters). |
|
||||||
| `/linkedin:quick` | 5-minute quick post using the 3-line formula. Target: 150-500 characters. Best for reactions, observations, tips, and questions. Also the single entry point for the 8 post-type templates (fill-in-the-blank structures). |
|
| `/linkedin:quick` | 5-minute quick post using the 3-line formula. Target: 150-500 characters. Best for reactions, observations, tips, and questions. Also the single entry point for the 8 post-type templates (fill-in-the-blank structures). |
|
||||||
|
| `/linkedin:newsletter` | Long-form orchestrator — newsletter edition, essay, or series article end-to-end at series quality. Multi-session 16-phase pipeline with skeleton + spine-prose gates BEFORE prose, an editorial-craft gate, fact-check, persona resonance, a cold adversarial review package, and visual assets — all BEFORE lock. |
|
||||||
|
| `/linkedin:headless-review` | Cold adversarial review package — runs the 3 headless archetypes (`content-reviewer`, `language-reviewer`, `fact-reviewer`) + `persona-reviewer` (resonance/conversion) on a FROZEN draft with no drafting-session context. Step 6.5's standalone surface; run in a fresh session for maximum isolation. |
|
||||||
|
| `/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. Includes the pivot-detection heuristic (> 20 % word-count change or > 2 new sections). |
|
||||||
| `/linkedin:pipeline` | Full end-to-end content pipeline from idea to published post. Guides through ideation, drafting, optimization, scheduling, pre-engagement, publishing, and post-analysis. |
|
| `/linkedin:pipeline` | Full end-to-end content pipeline from idea to published post. Guides through ideation, drafting, optimization, scheduling, pre-engagement, publishing, and post-analysis. |
|
||||||
| `/linkedin:batch` | Create a full week of LinkedIn content in one session. Input one theme, output 3-5 posts with varying angles and formats. Writes to scheduling queue. |
|
| `/linkedin:batch` | Create a full week of LinkedIn content in one session. Input one theme, output 3-5 posts with varying angles and formats. Writes to scheduling queue. |
|
||||||
| `/linkedin:calendar` | View and manage the post scheduling queue — upcoming, overdue, published — and run the publish action (mark a scheduled post as published, update state + streak tracking, surface the first-hour engagement plan). |
|
| `/linkedin:calendar` | View and manage the post scheduling queue — upcoming, overdue, published — and run the publish action (mark a scheduled post as published, update state + streak tracking, surface the first-hour engagement plan). |
|
||||||
|
| `/linkedin:carousel` | Structured multi-slide carousel generator with slide-by-slide copy and visual layout guidance. Optionally generates slide images via `mcp-image`. |
|
||||||
| `/linkedin:video` | Video script generator for 30s, 60s, 90s, or 2-minute LinkedIn videos with pacing and visual cues. |
|
| `/linkedin:video` | Video script generator for 30s, 60s, 90s, or 2-minute LinkedIn videos with pacing and visual cues. |
|
||||||
| `/linkedin:multiplatform` | Adapt LinkedIn content for Twitter/X threads, newsletter sections, blog posts, presentation slides, and YouTube scripts. |
|
| `/linkedin:multiplatform` | Adapt LinkedIn content for Twitter/X threads, newsletter sections, blog posts, presentation slides, and YouTube scripts. |
|
||||||
| `/linkedin:react` | URL-to-post pipeline — paste an article, research paper, or news link and generate a reaction post. |
|
| `/linkedin:react` | URL-to-post pipeline — paste an article, research paper, or news link and generate a reaction post. |
|
||||||
|
|
@ -289,12 +275,12 @@ The plugin delegates specialized work to 19 purpose-built agents. Each agent has
|
||||||
| `post-feedback-monitor` | Haiku | Lime | Post-publish 48h monitoring and real-time interventions |
|
| `post-feedback-monitor` | Haiku | Lime | Post-publish 48h monitoring and real-time interventions |
|
||||||
| `video-scripter` | Sonnet | Violet | Video script creation with pacing and visual cues |
|
| `video-scripter` | Sonnet | Violet | Video script creation with pacing and visual cues |
|
||||||
| `fact-checker` | Opus | Brown | Factual-claim verification against primary/credible sources, post-cutoff web-search mandate (longform) |
|
| `fact-checker` | Opus | Brown | Factual-claim verification against primary/credible sources, post-cutoff web-search mandate (longform) |
|
||||||
| `editorial-reviewer` | Opus | Orange | Editor's craft gate (v2.4, Step 5.5, before persona sweep): **prosa-håndverk** + **narrativ-arkitektur**, ≤10 flags BLOCK/REWORK/NICE as direction, operator-gated via `SendUserFile`; mirrors Maskinrommet §C2 (longform) |
|
| `editorial-reviewer` | Opus | Orange | Editor's craft gate (Step 5.5, before persona sweep): **prosa-håndverk** + **narrativ-arkitektur**, ≤10 flags BLOCK/REWORK/NICE as direction, operator-gated via `SendUserFile`; mirrors Maskinrommet §C2 (longform) |
|
||||||
| `persona-reviewer` | Opus | Olive | Reader-persona **skeleton** (v2.1, before prose) + **resonance** (before lock) + **hook-conversion** (after lock) gate, blocking hard-fail list (longform) |
|
| `persona-reviewer` | Opus | Olive | Reader-persona **skeleton** (before prose) + **resonance** (before lock) + **hook-conversion** (after lock) gate, blocking hard-fail list (longform) |
|
||||||
| `voice-scrubber` | Opus | Red | De-AI scrub + Norwegian-chronicle voice-drift correction; gold standard = approved Norwegian editions, not the English post corpus (longform, v2.2) |
|
| `voice-scrubber` | Opus | Red | De-AI scrub + Norwegian-chronicle voice-drift correction; gold standard = approved Norwegian editions, not the English post corpus (longform) |
|
||||||
| `content-reviewer` | Opus | Maroon | (v3.1, Step 6.5 — cold/headless) Argument integrity: C1 logical holes · C2 unsupported assumptions · C3 argument contradiction · C4 missing concretization · C5 unanswered objection; ≤8 flags BLOCK/REWORK/NICE; refuses drafting-session framing as context pollution (longform) |
|
| `content-reviewer` | Opus | Maroon | (Step 6.5 — cold/headless) Argument integrity: logical holes · unsupported assumptions · contradiction · missing concretization · unanswered objection; ≤8 flags; refuses drafting-session framing as context pollution (longform) |
|
||||||
| `language-reviewer` | Opus | Navy | (v3.1, Step 6.5 — cold/headless) Norwegian language: L1 verbatim repetition · L2 anglicisms · L3 stiff bureaucratic register · L4 language-level self-contradiction · L5 clang/rhythm; ≤10 flags; deliberate cold re-take of editorial's prose axis (longform) |
|
| `language-reviewer` | Opus | Navy | (Step 6.5 — cold/headless) Norwegian language: verbatim repetition · anglicisms · stiff register · self-contradiction · clang/rhythm; ≤10 flags; deliberate cold re-take of editorial's prose axis (longform) |
|
||||||
| `fact-reviewer` | Opus | Gold | (v3.1, Step 6.5 — cold/headless) Cold re-verification on the frozen/pivoted version (web search): F1 verifiable claims · F2 quote precision · F3 number attribution · F4 source quality; 🔴/🟡/🟢 + pivot-risk; deliberate redundancy with `fact-checker` to catch a pivot premise that arrived after Step 5 (longform) |
|
| `fact-reviewer` | Opus | Gold | (Step 6.5 — cold/headless) Cold re-verification on the frozen/pivoted version (web search): verifiable claims · quote precision · number attribution · source quality; 🔴/🟡/🟢 + pivot-risk; deliberate redundancy with `fact-checker` (longform) |
|
||||||
|
|
||||||
### Content Pipeline
|
### Content Pipeline
|
||||||
|
|
||||||
|
|
@ -312,7 +298,7 @@ trend-spotter --> content-planner --> differentiation-checker --> content-optimi
|
||||||
|
|
||||||
Parallel support agents: `strategy-advisor`, `analytics-interpreter`, `network-builder`, `content-repurposer`, `video-scripter`.
|
Parallel support agents: `strategy-advisor`, `analytics-interpreter`, `network-builder`, `content-repurposer`, `video-scripter`.
|
||||||
|
|
||||||
Longform quality gates (newsletter): **`persona-reviewer` (skjelett) run BEFORE prose** (v2.1, Step 2.5) → `voice-scrubber` de-AI / chronicle-voice scrub (v2.2, Step 4) → `fact-checker` (Step 5) → **`editorial-reviewer` craft gate run BEFORE the persona sweep** (v2.4, Step 5.5) → `persona-reviewer` (resonance) run BEFORE lock (Step 6) → **headless adversarial review package run COLD BEFORE lock** (v3.1, Step 6.5: `content-reviewer` + `language-reviewer` + `fact-reviewer` + `persona-reviewer`) → `persona-reviewer` (conversion) run AFTER lock on the hook (Step 9).
|
Longform quality gates (newsletter): **`persona-reviewer` (skjelett) run BEFORE prose** (Step 2.5) → `voice-scrubber` de-AI / chronicle-voice scrub (Step 4) → `fact-checker` (Step 5) → **`editorial-reviewer` craft gate run BEFORE the persona sweep** (Step 5.5) → `persona-reviewer` (resonance) run BEFORE lock (Step 6) → **headless adversarial review package run COLD BEFORE lock** (Step 6.5: `content-reviewer` + `language-reviewer` + `fact-reviewer` + `persona-reviewer`) → `persona-reviewer` (conversion) run AFTER lock on the hook (Step 9).
|
||||||
|
|
||||||
> **Note (agent invocation + reload):** Commands invoke agents by their **namespaced**
|
> **Note (agent invocation + reload):** Commands invoke agents by their **namespaced**
|
||||||
> type — `subagent_type: linkedin-studio:<name>`, never the bare name. And a
|
> type — `subagent_type: linkedin-studio:<name>`, never the bare name. And a
|
||||||
|
|
@ -513,7 +499,18 @@ Run `/linkedin:setup` to see your current score and walk through guided workflow
|
||||||
> this changes everything for low-code teams
|
> this changes everything for low-code teams
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Import Analytics and Review Performance
|
### 3. A Long-Form Edition, Done Right
|
||||||
|
|
||||||
|
```
|
||||||
|
/linkedin:newsletter
|
||||||
|
> Write the next edition of my series on AI governance in the public sector
|
||||||
|
|
||||||
|
# Multi-session: skeleton gate → spine prose → voice scrub → fact-check →
|
||||||
|
# editorial craft gate → persona resonance → cold adversarial review →
|
||||||
|
# visual assets → lock → hook conversion. Resumes by phase across sessions.
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Import Analytics and Review Performance
|
||||||
|
|
||||||
```
|
```
|
||||||
/linkedin:import
|
/linkedin:import
|
||||||
|
|
@ -526,7 +523,7 @@ Run `/linkedin:setup` to see your current score and walk through guided workflow
|
||||||
> Full quarterly review
|
> Full quarterly review
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. Grow from 2K to 5K Followers
|
### 5. Grow from 2K to 5K Followers
|
||||||
|
|
||||||
```
|
```
|
||||||
/linkedin:strategy
|
/linkedin:strategy
|
||||||
|
|
@ -536,12 +533,12 @@ Run `/linkedin:setup` to see your current score and walk through guided workflow
|
||||||
> Analyze the top 5 thought leaders in Microsoft AI for government
|
> Analyze the top 5 thought leaders in Microsoft AI for government
|
||||||
```
|
```
|
||||||
|
|
||||||
### 5. Repurpose a Viral Post
|
### 6. Repurpose a Viral Post
|
||||||
|
|
||||||
```
|
```
|
||||||
/linkedin:multiplatform
|
/linkedin:multiplatform
|
||||||
> Take my best-performing post and adapt it for a newsletter intro,
|
> Take my best-performing post and adapt it for a Twitter thread
|
||||||
> a Twitter thread, and 3 presentation slides
|
> and 3 presentation slides
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -609,7 +606,7 @@ Scheduled posts are tracked in `assets/drafts/queue.json`:
|
||||||
|
|
||||||
| Area | Why | Alternative |
|
| Area | Why | Alternative |
|
||||||
|------|-----|-------------|
|
|------|-----|-------------|
|
||||||
| LinkedIn API integration | No official API for content posting | Copy/paste from generated drafts |
|
| LinkedIn API integration | No official API for content posting | Copy/paste from generated drafts (auto-copied to clipboard) |
|
||||||
| Real-time analytics | LinkedIn doesn't provide streaming data | Periodic CSV import via `/linkedin:import` |
|
| Real-time analytics | LinkedIn doesn't provide streaming data | Periodic CSV import via `/linkedin:import` |
|
||||||
| Engagement automation | Automated commenting violates LinkedIn ToS | Manual engagement guided by `/linkedin:outreach` |
|
| Engagement automation | Automated commenting violates LinkedIn ToS | Manual engagement guided by `/linkedin:outreach` |
|
||||||
| Profile editing | Plugin generates recommendations, not API calls | Apply changes manually on LinkedIn |
|
| Profile editing | Plugin generates recommendations, not API calls | Apply changes manually on LinkedIn |
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue