From ed835e9024e4e1c0f107e4a3cb8300b1b3b8d285 Mon Sep 17 00:00:00 2001 From: Kjell Tore Guttormsen Date: Fri, 19 Jun 2026 22:17:54 +0200 Subject: [PATCH] =?UTF-8?q?fix(linkedin-studio):=20S28=20ref-consistency?= =?UTF-8?q?=20B=20=E2=80=94=20format=20magnitudes=20=E2=86=92=20SSOT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reconcile commands/video.md + references/linkedin-formats.md to the algorithm-signals SSOT in one pass (20 edits/2 files). The unsourced "30% completion rate or zero distribution" gate (7x) → "completion/dwell is a ranking input; shorter completes better; no published hard completion gate". The 6 S27-folded link-penalty lines → "correlate with lower reach" (incl. heading "The External Link Penalty" → "External Links and Lower Reach"). Six other unsourced format magnitudes softened to direction-without-number (video 5.60% ER, Live 12-24x, polls 1.64x, 3x shares, Creator-Mode 35%). One internal contradiction fixed (3-sec = 70% retention contradicted the already-reconciled three-second-folklore note). Bucket D (this file's non-format coefficients: 47-50% reach-decline, AI-comment -30%/-55%, hashtag -68%) left intact and deferred to S30, which is re-scoped to cover them + the other files. Gate 81/0/0; counts 29/19 unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_016qgzo6rxthw7KuxHjn5vyE --- commands/video.md | 2 +- docs/hardening/log.md | 39 ++++++++++++++++++++++++++++++++++ docs/hardening/plan.md | 18 ++++++++++------ references/linkedin-formats.md | 38 ++++++++++++++++----------------- 4 files changed, 70 insertions(+), 27 deletions(-) diff --git a/commands/video.md b/commands/video.md index 86a3ca9..3a56d06 100644 --- a/commands/video.md +++ b/commands/video.md @@ -66,7 +66,7 @@ Use AskUserQuestion: 3. **90 seconds** (225 words) — Extended format for complex frameworks (use sparingly) 4. **2 minutes** (300 words) — Detailed story or multi-step process (retention drops significantly) -Default recommendation: **60 seconds** is the 2026 sweet spot — LinkedIn requires 30% minimum completion rate or your video gets zero distribution. Shorter videos achieve higher completion rates and the algorithm rewards that heavily. +Default recommendation: **60 seconds** is the 2026 sweet spot — shorter videos complete at higher rates, and completion/dwell is a ranking input the algorithm rewards (see `references/algorithm-signals-reference.md`). There is no published hard completion-rate gate — favour shorter to lift completion, not to clear a threshold. ## Step 3: Topic and Angle Selection diff --git a/docs/hardening/log.md b/docs/hardening/log.md index 011db60..8970a56 100644 --- a/docs/hardening/log.md +++ b/docs/hardening/log.md @@ -1853,3 +1853,42 @@ The 3 plan-cited lines confirmed (line-nr drift ±1 since plan written: `analyze (`docs/hardening/plan.md`). Bucket B link-penalty lines folded into **S28**'s pass over `linkedin-formats.md`. --- + +### S28 ref-consistency B — format magnitudes + folded-in link lines → SSOT (`video.md` + `linkedin-formats.md`) + +**CLASS: reference-consistency** (NOT re-hardening — surgical SSOT-reconciliation of format-magnitude +divergences across `commands/video.md` + `references/linkedin-formats.md`, incl. the 6 link-penalty lines +folded in from S27 Bucket B; one pass over the file). Predicate: no surface states an unsourced hard +format coefficient as fact — SSOT (`references/algorithm-signals-reference.md:51-63`, the "trust ordering, +test the number — never hard coefficients" rule `:12-23`) carries **no completion-rate gate**, no video ER, +no poll/Live multiplier; native video = "captions are the enforceable spec, no hard gate". + +**TEST (tool-grounded).** Full read of `linkedin-formats.md` (674 l.) + `video.md:69` context. Plugin grep +`[0-9]+%|zero.distribution|penaliz|penalty|punish|multiplier|aspect ratio`. The "30% zero-distribution" +gate recurs **7×** (`video.md:69`; `formats:58,:291,:478,:543,:644,:662`). Catalog bucketed, +operator-approved (run buckets A+B+C+E now; D → S30): +- **A — "30% zero-distribution" hard-gate (7):** the named S28 divergence. +- **B — S27-folded link-penalty lines (6):** `formats:52,:91,:194,:198,:200,:432`. +- **C — other unsourced FORMAT magnitudes (6):** video 5.60% ER (`:56`), Live 12-24x (`:59,:594`), polls 1.64x (`:81`), 3x shares (`:273`), Creator-Mode 35% (`:674`). `:49` 24.42% left (already hedged + reconciled `:50`). +- **E — internal contradiction (1):** `:356` "3 seconds determine 70% of retention" contradicted the already-reconciled `:62/:100` folklore note → reframed. +- **D — S30-class in this file (deferred, operator's call):** `:6` 47-50% reach-decline, `:7` 15%→31%, `:176` AI-comment −30%/−55%, `:231/:279` hashtags −68%. **Left intact**; S30 re-scoped to cover them + the other files. + +**HARDEN (20 edits, 2 files — Buckets A+B+C+E).** +- **A:** `video.md:69` + `formats:58,:291,:478,:543,:644,:662` → "completion/dwell is a ranking input; shorter completes better; no published hard completion gate". +- **B:** `formats:52,:91,:198,:200,:432` → "correlate with lower reach" framing; `formats:194` heading `### The External Link Penalty` → `### External Links and Lower Reach`. +- **C:** `formats:56` `5.60% ER` → "engagement varies (no reliable single rate)"; `:59,:594` `12-24x` → "strong … (multiplier unverified)"; `:81` `1.64x` → "declining; audience research only (no reliable multiplier)"; `:273` `3x more shares` → "tend to earn more shares"; `:674` `35% more reach` → "tend to see more reach (figure unverified)". +- **E:** `formats:356` `3 seconds determine 70% of retention` → "opening seconds carry the most weight … three-second hook is folklore". + +**VERIFY.** +- Re-grep final: assertive 30%-gate forms (`requires 30%|30% minimum completion rate or|video gets zero distribution|…`) → **NONE** (remaining "completion gate" hits are the *negated* SSOT form "no hard completion gate"); link penalty/penalized/punished in `formats` → **NONE**; stray magnitudes (`5.60%|12-24x|1.64x|3x more shares|35% more reach`) → **NONE**; `:356` old → **NONE**. +- Bucket D preserved: `47-50%`, `15% to 31%`, `−68% reach`, AI-comment `30%/55%` still present (S30). +- `git diff --stat` = **2 files, +20/−20**. +- `bash scripts/test-runner.sh` → `Passed: 81 · Failed: 0 · Warnings: 0`, **exit 0**; counts **29/19** unchanged. +- Disposition: **FIXED** (20 edits, 2 files) · Buckets A+B+C+E complete · Bucket D → S30. + +**SURFACED (out of scope → queued).** Bucket D (this file's non-format coefficients) deferred to **S30 +magnitude-scrub**, which is re-scoped to: `linkedin-formats.md` D-lines (`:6,:7,:176,:231,:279`) + the other +files (`linkedin-growth-playbook`, `glossary`, `engagement-coach`, `firsthour`, `post-feedback-monitor`, +`ab-testing-framework`, `poll-strategy-guide`). Pod/AI-slop "penalized" stays intact (officially confirmed). + +--- diff --git a/docs/hardening/plan.md b/docs/hardening/plan.md index f1f79dc..1e22f54 100644 --- a/docs/hardening/plan.md +++ b/docs/hardening/plan.md @@ -107,10 +107,12 @@ SSOT-reconciliation of the documented divergences, same tool-grounded discipline ×3, url-processing-templates :396) reconciled to "correlate with lower reach" / "topic relevance is a ranking input — off-topic gets lower reach". Bucket B (link-penalty lines in `linkedin-formats.md`) folded into S28; Bucket D (other unsourced magnitudes) promoted to S30. -- **S28 (B) — format magnitudes → SSOT:** `commands/video.md:69` + `references/linkedin-formats.md` - (the "30% zero-distribution" claim vs SSOT native-video framing) **+ the 6 link-penalty lines folded in - from S27 Bucket B** (`linkedin-formats.md:52,:91,:194,:198,:200,:432`) — reconcile link + format framing - in one pass over that file. +- **S28 (B) — format magnitudes → SSOT ✅ DONE (2026-06-19, 20 edits/2 files; see `log.md`).** + `commands/video.md:69` + `references/linkedin-formats.md` reconciled in one pass: the "30% zero-distribution" + gate (7×) → "completion/dwell is a ranking input, no hard gate"; the 6 S27-folded link-penalty lines → + "correlate with lower reach"; 6 other unsourced format magnitudes (video 5.60% ER, Live 12-24x, polls + 1.64x, 3x shares, Creator-Mode 35%); 1 internal contradiction (`:356` 3-sec = 70% retention). Bucket D + (this file's non-format coefficients) deferred to S30. **S29 — terminology scrub: "thought leadership" → "LinkedIn Studio" / neutral (added 2026-06-19, operator-approved during S26).** The phrase must not appear anywhere in the plugin (it is named LinkedIn @@ -121,9 +123,11 @@ questions for this pass: (a) user-facing surface only, or include historical CHA `thought-leadership-angles.md` rename is its own sub-step — every pointer to the filename must update with it. Same tool-grounded discipline (read-and-show → grep-confirm → re-grep final); hardening-class. -**S30 — magnitude scrub: unsourced reach-coefficients → SSOT (surfaced during S27, 2026-06-19).** A -*different* class from S27's link/topic-relevance framing: discrete percentage penalties with **no -primary source in the SSOT** — `−68%` (5+ hashtags: `linkedin-growth-playbook:166`, `ab-testing-framework:66`), +**S30 — magnitude scrub: unsourced reach-coefficients → SSOT (surfaced during S27, re-scoped during S28, +2026-06-19).** A *different* class from S27's link/topic-relevance framing: discrete percentage penalties +with **no primary source in the SSOT**. **Incl. `linkedin-formats.md` Bucket-D lines left by S28** +(`:6` 47-50% reach-decline, `:7` 15%→31%, `:176` AI-comment −30%/−55%, `:231`+`:279` hashtags −68%), plus +the other files — `−68%` (5+ hashtags: `linkedin-growth-playbook:166`, `ab-testing-framework:66`), `−25%` (<1000 chars: `linkedin-growth-playbook:224`), `−15-25%` (topic-gap: `glossary:235`), `−30-50%` (engagement-bait: `glossary:91`), `55%`/`45%` (AI-comment: `engagement-coach:195`, `firsthour:112` — SSOT carries ~45% *correlational engagement gap* at medium confidence, not a 55% reach penalty), `−25%/post` diff --git a/references/linkedin-formats.md b/references/linkedin-formats.md index d50f6bf..6cc5a0d 100644 --- a/references/linkedin-formats.md +++ b/references/linkedin-formats.md @@ -49,14 +49,14 @@ Choosing the right format isn't just about engagement rates—it's about underst **2. Native documents (PDFs): High engagement (historically 24.42%, likely inflated)** - Note: documents/carousels are the top organic format (~7%; see `references/algorithm-signals-reference.md`). Cross-study rates (7% / 21.8% / 49.5%) differ by denominator/methodology, not by which format wins — do not treat any single figure as the carousel rate. - Great for frameworks, step-by-step content, detailed insights - - Keeps users on platform (no external link penalty) + - Keeps users on platform (no external link, which would correlate with lower reach) - Downloadable = high perceived value - Best for: Comprehensive guides, templates, detailed analyses -**3. Video posts: 5.60% engagement rate** +**3. Video posts: engagement varies (no reliable single rate)** - Optimal length: 60 seconds (2026 sweet spot, down from 90s) - - **Critical:** 30% minimum completion rate or video gets zero distribution - - LinkedIn Live: 12-24x engagement vs standard posts + - **Completion matters:** shorter videos complete better; completion/dwell is a ranking input (see `references/algorithm-signals-reference.md`) — no hard "completion or zero distribution" gate + - LinkedIn Live: strong engagement vs standard posts (multiplier unverified) - 85% watch without sound (captions essential) - **4:5 (1080×1350) or 1:1 (1080×1080) preferred** for broad feed distribution on a desktop-heavy professional audience. 9:16 is delivered mobile-only and crops to 1:1 on desktop; its "distribution boost" is an uncorroborated heuristic — no official 4:5-vs-9:16 engagement study exists. Reserve 9:16 for the opt-in vertical video tab - Front-load value for muted autoplay — ~85% watch without sound. The "three-second hook" is cross-platform folklore, not a LinkedIn-named signal; LinkedIn's only official "3 seconds" is the minimum video length @@ -78,7 +78,7 @@ Choosing the right format isn't just about engagement rates—it's about underst - Very short (150-300 chars) can perform well with concentrated insights - Best for: Thought leadership, contrarian takes, personal stories -**6. Polls: 1.64x reach multiplier (declining due to overuse)** +**6. Polls: declining effectiveness; audience research only (no reliable reach multiplier — see `references/algorithm-signals-reference.md`)** - Still generates high impressions but effectiveness declining - Strategic use for industry trends, controversial opinions - Use caption (300-400 chars) to provide context and insights @@ -88,7 +88,7 @@ Choosing the right format isn't just about engagement rates—it's about underst **7. Link posts: AVOID or use strategically** - External links in the body correlate with lower reach (see `references/algorithm-signals-reference.md`) - - 4.9% more impressions than no-link posts (OLD DATA - now penalized) + - 4.9% more impressions than no-link posts (OLD DATA — body links now correlate with lower reach; see `references/algorithm-signals-reference.md`) - Platform wants to keep users on LinkedIn - If must link: Use native LinkedIn article or wait until second-tier comment - Best for: Rare occasions when external resource is essential @@ -191,13 +191,13 @@ Algorithm prioritizes content that keeps users on platform longer. - Very short posts (quick reaction, quick scroll) - Polls (interaction but low time investment) -### The External Link Penalty +### External Links and Lower Reach **Critical reality:** - External links in the body correlate with lower reach (see `references/algorithm-signals-reference.md`) -- Links in post body get penalized most heavily +- Links in the post body correlate with the largest reach reduction - First comment links are tracked but acceptable as workaround when necessary -- Old strategy of "drive traffic to website" is now algorithmically punished +- Old strategy of "drive traffic to website" now correlates with lower reach (LinkedIn denies an intentional penalty; lead with value) **What to do instead:** - Use LinkedIn native formats (Articles, Documents, Newsletters) @@ -270,7 +270,7 @@ Immediate engagement in first hour is critical for triggering subsequent waves. - Long gaps between posts (breaks consistency signal) **Thought leadership posts:** -- Get 3x more shares than average content +- Tend to earn more shares than average content - Generate deeper conversations (15+ word comments) - Position you as subject matter expert - Compound authority over time @@ -288,7 +288,7 @@ Immediate engagement in first hour is critical for triggering subsequent waves. **The Data Reality:** - Video posts get high impression counts - BUT: Engagement rates are often lower than text posts -- Videos under 60 seconds optimal for balancing engagement and completion rate (30% minimum completion gate) +- Videos under 60 seconds optimal for balancing engagement and completion rate (higher completion = stronger dwell signal; no hard completion gate) - Algorithm prioritizes dwell time over impressions **What This Means:** @@ -353,7 +353,7 @@ Video isn't the silver bullet many creators think it is. Text-based thought lead #### Hook (3-5 seconds) - CRITICAL -**Your first 3 seconds determine 70% of retention.** +**Your opening seconds carry the most weight — front-load value.** (The "three-second hook" is cross-platform folklore, not a LinkedIn-named signal; see the format notes above.) **Hook types:** - **Pattern interrupt:** "This will sound counterintuitive..." @@ -429,7 +429,7 @@ Video isn't the silver bullet many creators think it is. Text-based thought lead **Avoid:** - "Like and share if you agree" (engagement bait) -- External link CTAs (algorithm penalty) +- External link CTAs (correlate with lower reach) - Asking for too many actions ### Video Editing Guidelines @@ -475,7 +475,7 @@ Video isn't the silver bullet many creators think it is. Text-based thought lead **5. Length Optimization** - Ideal: 60 seconds (2026 sweet spot — maximizes completion rate) - Acceptable: 30-90 seconds -- Avoid: >90 seconds (completion rate drops, 30% minimum required for any distribution) +- Avoid: >90 seconds (completion rate drops — completion/dwell is a ranking input; no hard minimum, but shorter completes better) **Editing tools by skill level:** @@ -540,7 +540,7 @@ Video isn't the silver bullet many creators think it is. Text-based thought lead - If using 16:9: 1920x1080px minimum (letterboxed in the feed) - **File format:** MP4 (H.264) — the safe default. LinkedIn's own sources conflict on MOV/AVI (member troubleshooting lists them supported; the Pages spec says no longer supported), so treat MOV/AVI as warn-only, not blocking — re-encode to MP4 when in doubt - **Maximum file size:** 5GB -- **Maximum length:** 10 minutes (but aim for 30-60 seconds. 30% completion rate minimum or zero distribution) +- **Maximum length:** 10 minutes (but aim for 30-60 seconds — shorter lifts completion/dwell, a ranking input; no hard completion gate) - **Frame rate:** 30fps standard, 60fps for smooth motion **Lighting:** @@ -591,7 +591,7 @@ Video isn't the silver bullet many creators think it is. Text-based thought lead ### LinkedIn Live Considerations **The Live Advantage:** -- 12-24x engagement vs. standard posts +- Strong engagement vs. standard posts (multiplier unverified) - Algorithm massively prioritizes live content - Real-time interaction builds community - Saved as regular video post after @@ -641,7 +641,7 @@ Before posting any video, verify: - [ ] Hook grabs attention in 3 seconds - [ ] Clear value delivered (lesson/insight) - [ ] Tight editing (no unnecessary seconds) -- [ ] Length: 60 seconds optimal (30% completion rate minimum) +- [ ] Length: 60 seconds optimal (shorter lifts completion/dwell — no hard completion gate) - [ ] Ends with engagement-focused CTA **Technical:** @@ -659,7 +659,7 @@ Before posting any video, verify: - [ ] Complements overall content strategy - [ ] Doesn't include external links -**Bottom Line on Video:** Use strategically when it genuinely adds value beyond text. Prioritize authenticity over production quality. Focus on 60-second videos that deliver concentrated insights. LinkedIn now requires 30% minimum completion rate for any distribution — shorter is safer. Always optimize for mobile-first consumption: captions on (the one enforceable spec), 4:5/1:1 aspect for broad distribution, and a front-loaded opening for muted autoplay. +**Bottom Line on Video:** Use strategically when it genuinely adds value beyond text. Prioritize authenticity over production quality. Focus on 60-second videos that deliver concentrated insights. Completion/dwell is a ranking input — shorter videos complete better (no published hard completion gate). Always optimize for mobile-first consumption: captions on (the one enforceable spec), 4:5/1:1 aspect for broad distribution, and a front-loaded opening for muted autoplay. ## Creator Mode Features (Available to All Users) @@ -671,4 +671,4 @@ As of late 2024, Creator Mode features are available to all LinkedIn users witho - LinkedIn Live access - Creator analytics -**Note:** Profiles actively using these features see up to 35% more reach compared to inactive profiles. The key is not "enabling" Creator Mode (no longer exists as a toggle) but actively using the features. +**Note:** Profiles actively using these features tend to see more reach than inactive ones (exact figure unverified). The key is not "enabling" Creator Mode (no longer exists as a toggle) but actively using the features.