From 86e4d5109baea9b1c8d8786e4e2bfb17a30c7887 Mon Sep 17 00:00:00 2001 From: Kjell Tore Guttormsen Date: Sat, 30 May 2026 00:58:05 +0200 Subject: [PATCH] docs(linkedin-studio): honest dated API/auto-publish/analytics boundaries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wave 3 / Step 10 of the remediation plan (Phase 1 — usable by a non-author), per research/02. State what the plugin can and cannot do for a PERSONAL profile, dated 'as of 2026-05', without replacing one false claim with another: - README.md: new 'Boundaries (as of 2026-05)' section. (a) post-level analytics API EXISTS but is partner-gated (vetted Community Management app + verified org + Page) — not self-serve; CSV is the practical floor; saves visible natively (count-only, ~Sept 2025) with no self-serve API pull. (b) auto-publish is technically POSSIBLE self-serve (w_member_social) but deliberately NOT built — a design + ToS choice, explicitly 'not an impossibility' (avoids the new false 'cannot auto-publish' claim). (c) dwell internal-only for organic, not exportable. - commands/calendar.md: the publish action now states plainly it marks a post YOU posted manually as published — the tool does not post on your behalf. - commands/report.md: dated the saves/no-self-serve-API note ('as of 2026-05'). - commands/import.md: dated 'Why CSV' note — API is partner-gated, CSV is the floor. Verify: grep -niE 'cannot auto-publish|only way to (get|access)' README.md commands/*.md -> no matches; grep -ni 'as of 2026' README.md -> 2. Co-Authored-By: Claude Opus 4.8 --- plugins/linkedin-studio/README.md | 23 ++++++++++++++++++++ plugins/linkedin-studio/commands/calendar.md | 4 +++- plugins/linkedin-studio/commands/import.md | 6 +++++ plugins/linkedin-studio/commands/report.md | 2 +- 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/plugins/linkedin-studio/README.md b/plugins/linkedin-studio/README.md index d220705..2d07cc1 100644 --- a/plugins/linkedin-studio/README.md +++ b/plugins/linkedin-studio/README.md @@ -424,6 +424,29 @@ Agents that consume analytics data: `analytics-interpreter` (interpret/report mo --- +## Boundaries (as of 2026-05) + +LinkedIn Studio is honest about what it can and cannot do for a **personal +profile**. As of 2026-05: + +- **Post-level analytics via API** — exists, but is **partner-gated** (a vetted + Community Management API app + a verified organization + a Page). It is **not + self-serve** for a solo personal profile, so the practical floor is the **CSV + export** you drop into `/linkedin:import`. Per-post **saves** are visible in your + **native** LinkedIn post analytics (count-only, since ~Sept 2025), but there is + no self-serve API to pull them — this tool does not auto-track them; read them in + LinkedIn directly. +- **Auto-publish** — technically **possible** self-serve via the `w_member_social` + scope, so this is **not** an API limitation. LinkedIn Studio **deliberately does + not** post for you: the OAuth/token overhead plus LinkedIn's terms on automated + posting make copy-to-clipboard + you-paste the right default. This is a **design + choice**, not an impossibility. The calendar's "publish" action marks a post + **you** posted as published — it never posts on your behalf. +- **Dwell time** — internal to LinkedIn for organic posts; not exportable. The tool + does not measure it. + +--- + ## Personalization Engine The plugin tracks how well you've populated asset templates with your own data. A higher personalization score means more tailored content output. diff --git a/plugins/linkedin-studio/commands/calendar.md b/plugins/linkedin-studio/commands/calendar.md index 398a782..42885f2 100644 --- a/plugins/linkedin-studio/commands/calendar.md +++ b/plugins/linkedin-studio/commands/calendar.md @@ -87,7 +87,9 @@ Use AskUserQuestion: ### Action: Mark as Published -This is the publish flow (no separate command — runs inline here). +This is the publish flow (no separate command — runs inline here). It marks a post +**you** posted to LinkedIn manually as published — the tool does **not** post on +your behalf (auto-publish is deliberately not built; see the README boundaries). **3a. Show publishable posts.** Present today's scheduled posts and any overdue posts: diff --git a/plugins/linkedin-studio/commands/import.md b/plugins/linkedin-studio/commands/import.md index 73c0034..7ab00c8 100644 --- a/plugins/linkedin-studio/commands/import.md +++ b/plugins/linkedin-studio/commands/import.md @@ -23,6 +23,12 @@ You are a LinkedIn analytics data import assistant. Guide the user through impor For data format details and directory structure, see `assets/analytics/README.md`. +> **Why CSV (as of 2026-05).** Post-level analytics via LinkedIn's API is +> partner-gated (vetted Community Management app + verified org + Page) and **not +> self-serve** for a personal profile, so the CSV export is the practical floor. +> Saves are visible in native post analytics (count-only) but have no self-serve +> API pull; dwell is internal-only for organic posts. See the README boundaries. + ## Step 1: Check for CSV Files in Exports Directory First, check if any CSV files exist in the exports directory: diff --git a/plugins/linkedin-studio/commands/report.md b/plugins/linkedin-studio/commands/report.md index bba28d7..61966cf 100644 --- a/plugins/linkedin-studio/commands/report.md +++ b/plugins/linkedin-studio/commands/report.md @@ -236,7 +236,7 @@ Compare current week's `aggregateMetrics` against baseline means and standard de 🔴 **Critical: Engagement rate declining** Your engagement rate has dropped from 4.2% to 2.8% over the last 3 weeks. → **Action:** Review recent post hooks. Consider more provocative angles or questions. -→ **Reference:** Hook length should be <140 chars. In the engagement order (see `references/algorithm-signals-reference.md`), saves rank above shares, then quality comments, then reactions. Saves are visible in your native LinkedIn post analytics (count-only, ~Sept 2025 onward) but there is no self-serve API to pull them — so this tool does not auto-track saves; read them in LinkedIn directly. Dwell time is internal to LinkedIn for organic posts (not exposed anywhere this tool can read). +→ **Reference:** Hook length should be <140 chars. In the engagement order (see `references/algorithm-signals-reference.md`), saves rank above shares, then quality comments, then reactions. Saves are visible in your native LinkedIn post analytics (count-only, ~Sept 2025 onward) but (as of 2026-05) there is no self-serve API to pull them — so this tool does not auto-track saves; read them in LinkedIn directly. Dwell time is internal to LinkedIn for organic posts (not exposed anywhere this tool can read). 🟢 **Positive: New impression record** Your post on [topic] achieved 12,500 impressions — a personal best!