From 1a889723627090d43c6fe02ac71a4f38885f23d8 Mon Sep 17 00:00:00 2001 From: Kjell Tore Guttormsen Date: Fri, 19 Jun 2026 22:40:34 +0200 Subject: [PATCH] =?UTF-8?q?docs(linkedin-studio):=20S29a=20hardening=20log?= =?UTF-8?q?=20entry=20=E2=80=94=20terminology-scrub=20commands/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Append the S29a verification record to docs/hardening/log.md (anchored "### S29a terminology-scrub" entry, matching S27/S28 format): scope decisions locked for all S29 sub-passes a–e (FORM A only; surface + forward-docs; history untouched; per-directory sub-passes), the 15-edit replacement map, and the verify block (assertive non-filename FORM-A in commands/ = NONE; FORM B unchanged; gate 81/0/0; counts 29/19/26/6 unchanged). Documents fix commit 9d83dbc. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_016qgzo6rxthw7KuxHjn5vyE --- docs/hardening/log.md | 57 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/docs/hardening/log.md b/docs/hardening/log.md index 8970a56..4190839 100644 --- a/docs/hardening/log.md +++ b/docs/hardening/log.md @@ -1892,3 +1892,60 @@ files (`linkedin-growth-playbook`, `glossary`, `engagement-coach`, `firsthour`, `ab-testing-framework`, `poll-strategy-guide`). Pod/AI-slop "penalized" stays intact (officially confirmed). --- + +### S29a terminology-scrub — "thought leadership" → neutral (`commands/`) + +**CLASS: terminology-scrub** (NOT re-hardening — surgical removal of the operator-banned brand phrase +"thought leadership", FORM A, from the user-facing command surface; memory `no-thought-leadership-phrase`). +First sub-pass of the plugin-wide S29 scrub. Predicate: no command surface uses the phrase "thought +leadership"; the plugin is named **LinkedIn Studio**. + +**SCOPE (operator-locked for ALL S29 sub-passes a–e).** +- **FORM A only** ("thought leadership"). **FORM B** ("thought leader(s)" as role — 38 plugin-wide, + incl. the buzzword denylist `post.md:134`) = **untouched**. +- **Layers = user-facing surface + forward-looking docs.** Pure history (CHANGELOG, `hardening/log.md`+ + `plan.md`, `voyage-build/*`, `remediation/*`) = untouched ("history → git"). Forward docs = + `docs/integration-test-guide.md` + `docs/expert-review/plan.md`. +- **Per-directory sub-passes, one per session.** Replacement map approved BEFORE edit. +- FORM A baseline = **140 in `.md`** (99 surface + 41 history) + 1 test-`.mjs`. + +**TEST (tool-grounded).** Plugin grep `thought.leadership` (case-insensitive). `commands/` = 26 hits; +split: **11 filename pointers** to `references/thought-leadership-angles.md` (`post×3, video×2, batch×2, +react×1, pipeline×2, competitive×1`) → deferred to **S29e** (atomic rename + pointer update); +`competitive.md`/`pipeline.md` carry only pointers → untouched here. **15 in-file phrase occurrences** in +9 files = S29a scope. Read-and-show of all 15 in context before proposing the map. + +**HARDEN (15 edits, 9 files — 1:1).** +- `post.md` (4): `:21` "LinkedIn thought leadership content creator" → "LinkedIn content creator"; + `:64` "Select Thought Leadership Angle" → "Select Content Angle"; `:98` "Standard Thought Leadership + Structure" → "Standard Post Structure"; `:136` "thought leadership test" → "the insight test". +- `video.md` (1): `:146` "8 thought leadership angles" → "8 content angles". +- `strategy.md` (3): `:67` "thought leadership & authority" → "authority & influence"; `:234` table row + "Thought leadership pieces" → "Signature pieces"; `:395` "[Thought leadership milestone]" → "[Authority + milestone]". +- `batch.md` (1): `:113` "[thought leadership angle]" → "[content angle]". +- `setup.md` (2): `:256` "Which thought leadership angle" → "Which content angle"; `:323` "thought + leadership & authority" → "authority & influence". +- `react.md` (1): `:22` "into thought leadership posts" → "into insightful posts". +- `outreach.md` (1): `:813` "Demonstrate thought leadership depth" → "Demonstrate subject-matter depth". +- `onboarding.md` (1): `:18` "a LinkedIn thought leadership onboarding guide" → "the LinkedIn Studio + onboarding guide". +- `monetize.md` (1): `:18` "turn their thought leadership into revenue" → "turn their LinkedIn authority + into revenue". + +**VERIFY.** +- Re-grep final, assertive non-filename FORM-A in `commands/` (`grep -v thought-leadership-angles`) → + **NONE**. Remaining `commands/` hits = 11, all filename pointers (S29e). +- FORM B in `commands/` count = **15**, unchanged (incl. `post.md:134` denylist). +- `git diff --stat` = **9 files, +15/−15** (1:1, no collateral). +- `bash scripts/test-runner.sh` → `Passed: 81 · Failed: 0 · Warnings: 0`, **exit 0**; counts + **29/19/26/6** + v0.5.0 unchanged. +- Disposition: **FIXED** (15 edits, 9 files). Commit `e6db0dd`; pushed 2026-06-19 22:38 (operator OK, in + window). + +**SURFACED (queued, not swept).** S29 remaining sub-passes: **S29b** `agents/` ← next · **S29c** +`references/` (in-file phrase; `thought-leadership-angles.md` body scrubbed but FILE renamed in S29e) · +**S29d** `skills/`+`config/`+`assets/`+`README.md`+`CLAUDE.md`+`hooks/prompts/`+forward-docs+test-`.mjs` · +**S29e** rename `references/thought-leadership-angles.md` + all 20 pointers atomically (new filename TBD). + +---