fix(linkedin-studio): S28 ref-consistency B — format magnitudes → SSOT

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) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016qgzo6rxthw7KuxHjn5vyE
This commit is contained in:
Kjell Tore Guttormsen 2026-06-19 22:17:54 +02:00
commit ed835e9024
4 changed files with 70 additions and 27 deletions

View file

@ -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).
---

View file

@ -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`