fix(linkedin-studio): S27 ref-consistency A — "penalty/penalizes" framing → SSOT

Reconcile external-link and topic-relevance reach-loss framing to the algorithm-signals
SSOT across 6 files (10 edits): body links "correlate with lower reach" (LinkedIn denies
an intentional penalty), topic relevance is a positive ranking input with no quantified
off-topic figure. 3 plan-cited lines + 7 same-class siblings surfaced during verify.

Bucket B (link-penalty lines in linkedin-formats.md) folded into S28; Bucket D (other
unsourced reach-coefficients: -68%/-25%/-15-25%/-30-50%/55%) queued as new S30. Engagement-
pod + AI-slop "penalized" framing left intact (officially confirmed). 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:06:39 +02:00
commit 2b9ed1cf0b
8 changed files with 75 additions and 17 deletions

View file

@ -1810,3 +1810,46 @@ skills, plus historical CHANGELOG/docs). Promoted to a dedicated terminology-scr
questions for that pass.
---
### S27 ref-consistency A — "penalty/penalizes" framing → SSOT (external links + topic-relevance)
**CLASS: reference-consistency** (NOT re-hardening of ✅ commands — surgical SSOT-reconciliation of a
documented divergence-class across multiple files; same tool-grounded discipline: read-and-show →
grep-confirm → re-grep final). Predicate: no surface frames external-link reach-loss or off-topic
reach-loss as a hard *named penalty* — SSOT (`references/algorithm-signals-reference.md:69-75`, `:89-90`)
says links **correlate with lower reach** (LinkedIn denies an *intentional* penalty) and topic relevance is
a **positive ranking input** with **no quantified off-topic figure**.
**TEST (tool-grounded).** Plugin-wide `grep -rniE "penaliz|penalty"` over commands/agents/references/skills.
The 3 plan-cited lines confirmed (line-nr drift ±1 since plan written: `analyze.md:101` not `:102`,
`audit.md:60` not `:61`). Catalog split into 4 buckets, operator-approved:
- **Bucket A (fix now):** 10 hard-penalty framings of link/topic-relevance in non-format files.
- **Bucket B (defer → S28):** 6 link-penalty lines in `references/linkedin-formats.md` (`:52,:91,:194,:198,:200,:432`) — S28 already opens that file for format magnitudes; reconcile link + format in one pass.
- **Bucket C (leave — already SSOT):** `first-comment-strategy.md:7`, `glossary.md:171` (def cites SSOT); glossary term `### Link Penalty :170` kept (def is correct).
- **Bucket D (surface → new S30):** other unsourced magnitudes (68% hashtags, 25% short-post, 15-25% topic-gap, 30-50% bait, 55% AI-comment, 25%/post, poll-overuse) — a *different* class. Engagement-pod + AI-slop "penalized" left intact (officially confirmed, high confidence).
**HARDEN (10 edits, 6 files — Bucket A).**
1. `commands/audit.md:60` `(topic-relevance penalty)``(topic relevance is a ranking input — off-topic gets lower reach)`.
2. `agents/trend-spotter.md:338` `ranking will penalize off-topic content``Topic relevance is a ranking input — off-topic content gets lower reach`.
3. `agents/trend-spotter.md:353` `topic-relevance penalty, damages authority``off-topic content gets lower reach, damages authority`.
4. `references/troubleshooting-guide.md:15` `External link penalizing reach``External links correlate with lower reach`.
5. `references/troubleshooting-guide.md:127` `LinkedIn penalizes directing traffic away``body links correlate with lower reach (LinkedIn denies an intentional penalty; lead with value)`.
6. `commands/analyze.md:101` `External link penalizing reach``External links correlate with lower reach`.
7. `references/first-comment-strategy.md:3` `without triggering algorithm penalties``without the lower-reach correlation of body links`.
8. `references/first-comment-strategy.md:10` `Avoids link penalty``Avoids the body-link reach correlation`.
9. `references/first-comment-strategy.md:147` `Avoid link penalty``Avoid body-link reach hit`.
10. `references/url-processing-templates.md:396` `Reach penalty``Correlates with lower reach`.
**VERIFY.**
- Re-grep final: `topic-relevance penalty|will penalize off-topic` in audit/trend-spotter → **NONE**;
`link penalty|penalizing reach|penalizes directing|triggering algorithm penalties|Reach penalty` in the
4 link-files → **NONE**. All 10 new SSOT-framed lines present.
- `git diff --stat` = **6 files, +10/10**.
- `bash scripts/test-runner.sh``Passed: 81 · Failed: 0 · Warnings: 0`, **exit 0**; counts **29/19**
unchanged (.md-only prose edits).
- Disposition: **FIXED** (10 edits, 6 files) · Bucket A complete · Bucket B → S28 · Bucket D → S30.
**SURFACED (out of scope → queued).** Bucket D unsourced-magnitude class promoted to **S30 magnitude-scrub**
(`docs/hardening/plan.md`). Bucket B link-penalty lines folded into **S28**'s pass over `linkedin-formats.md`.
---