fix(linkedin-studio): S23 harden profile — re-source profile-as-validated-object overclaim to SSOT, soften SEO claims
Profile is a self-contained, prose-heavy Grow-tier audit command (no agent, no routing, no state). Grant-hygiene was already clean (Read + AskUserQuestion, both used, no orphans/missing). The one real axis was b': the file repeatedly framed the relevance model as reading and VALIDATING your profile and gating distribution on it — contradicting the SSOT (algorithm-signals-reference.md), which confirms only topic/interest relevance as a ranking input (content matched to a viewer's interests, incl. beyond your network) with no off-topic magnitude figure and no weighted profile criteria. The file was internally inconsistent — its own soft, SSOT-true framing already sat at :17/:25/:27. 12 edits, commands/profile.md only: - desc :5: drop "validates your profile BEFORE distributing content". - :31 + table: drop "the model evaluates five criteria (see SSOT)" false attribution + HIGH/MEDIUM "Impact if Missing" postulated weights -> "LinkedIn does not publish a profile-scoring breakdown ... practitioner heuristics", column -> "Priority (heuristic)". - :99/:161/:173/:230: reframe "first signal telling ... qualified" / "relevance validation" / "checks if you're connected" / "if LinkedIn's AI read my profile, would it believe" away from the profile-read-by-model mechanic. - :25/:27/:51/:67: conflation fix — "your demonstrated expertise" / "tell the relevance model what you're expert in" -> "a viewer's interests" / "topic- relevance distribution" (SSOT wording) + no-percentage honesty. - :24 (B2): "Goes to 10% of audience" -> "a slice of your network". - :52/:61 (P3): "highest-weight search field" -> "highest-leverage" (self- justified rest kept). Verify: re-grep final file — all overclaim/conflation patterns NONE, new SSOT text in place; grant-hygiene unchanged; test-runner 81/0/0 exit 0; counts 29/19 unchanged (.md-only). FIXED, 0 deferrals. 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:
parent
ff52ec8577
commit
10e10897ca
2 changed files with 105 additions and 22 deletions
|
|
@ -1613,3 +1613,80 @@ source so the B2 rewrite can't be re-rendered from a stale reference).**
|
|||
non-scope follow-up (the command calls the mutation correctly).
|
||||
|
||||
---
|
||||
|
||||
### /linkedin:profile — profile/topic-relevance + profile-SEO audit walkthrough (7 sections → prioritized action plan); self-contained, no agent/routing/state (S23)
|
||||
|
||||
**INTENT.** Grow-tier **atomic execution command**, prose-heavy + guided (`AskUserQuestion`).
|
||||
**Self-contained** — no agent delegation, no `/linkedin:Y` routing, no state mutation. Audits the
|
||||
profile for the topic-relevance ranking signal + profile search-SEO.
|
||||
|
||||
**SIMULATE (adversarial cold quality-reviewer; grounded prose-trace — pure prose, NO fixture: command
|
||||
reads/mutates no state).** Headline section (`:79-96`) traced against operator input
|
||||
`"AI-rådgiver | KI-transformasjon | Innholdsprodusent"` → checklist `:85-88` yields NO audience / NO
|
||||
outcome / vague titles → concrete non-generic rewrite direction. Every mechanical claim (grant grep, SSOT
|
||||
read, pattern greps) from a tool, never by reasoning.
|
||||
|
||||
**EVALUATE (relevant axes; mechanical predicate each).**
|
||||
- **(a) intention: PASS** — desc + Grow-journey role coherent; 3 refs (`algorithm-signals-reference.md`,
|
||||
`troubleshooting-guide.md`, `SKILL.md`) resolve.
|
||||
- **(b) algorithm-bar (axis-b′): 1 systemic FINDING (B1) + 1 minor (B2).** **B1 — "profile-as-validated-object"
|
||||
overclaim, 9 sites:** the file repeatedly asserts the relevance model **reads & validates your profile**
|
||||
and gates distribution on it — `:5` "validates your profile BEFORE distributing content"; `:31` "the model
|
||||
**evaluates five criteria** (see SSOT)" (**false SSOT attribution** — SSOT has no such breakdown); `:35-39`
|
||||
"Impact if Missing: **HIGH/HIGH/MEDIUM…**" (postulated coefficients SSOT forbids, `:14/:23`); `:99` "first
|
||||
signal telling … what you're **qualified** to discuss"; `:161` "relevance **validation**"; `:173` "**checks
|
||||
if** you're connected"; `:230` "if LinkedIn's AI **read my profile**, would it **believe**"; `:51/:67` SEO
|
||||
conflation ("**tell the relevance model** what you're expert in" / "the **relevance model's expertise
|
||||
signal**"). SSOT (`algorithm-signals-reference.md:25-30/:85-90`) confirms ONLY: topic/interest relevance is a
|
||||
ranking input — content matched to a **viewer's interests** is distributed incl. beyond your network (Jurka,
|
||||
high); **no off-topic magnitude figure; no weighted profile criteria**. File was **internally inconsistent** —
|
||||
its own soft, SSOT-true framing already at `:17/:25/:27`. Same class as follow-up #1 (`audit.md:61`) +
|
||||
v4.0.0 "reconcile to one sourced statement". **B2** `:24` "Goes to **10% of audience**" — postulated
|
||||
old-model number (`:131` "40%" is an illustrative impact-bullet example → PASS).
|
||||
- **(c) quality rules: PASS** — no post emission (audit prose only); buzzword list cited correctly (`:73`
|
||||
steers away from "thought leader/guru/ninja").
|
||||
- **(d) grants + graceful + wiring: PASS.** **Grant-hygiene REN (two-way):** `allowed-tools` = `Read` +
|
||||
`AskUserQuestion` (`:11-13`), both used (`:21/:27/:31/:236` Read; `:77` AskUserQuestion); WebFetch / Write /
|
||||
Bash / Task / subagent_type / .mjs → **NONE** (no orphans, no missing node/Bash grant). No agent/routing.
|
||||
Graceful degradation OK (Q&A runs regardless of ref availability).
|
||||
- **P3 — profile-SEO honesty (`:41-73`): largely defensible** (about LinkedIn *search*, not the ranking
|
||||
model; correctly does NOT cite SSOT). One practitioner-claim-as-fact: "**highest-weight** search field"
|
||||
(`:52` prose + `:61` table) — self-justified mechanically, softened not removed.
|
||||
|
||||
**HARDEN (12 edits, 1 file — `commands/profile.md`; all surgical re-source to SSOT framing).**
|
||||
1. [REWORK · b′] `:5` desc — "validates your profile BEFORE distributing content" → "a coherent, on-topic
|
||||
profile reinforces the topic-relevance signal LinkedIn uses to decide how widely your content is distributed".
|
||||
2. [REWORK · b′] `:24` (B2) — "Goes to 10% of audience" → "a slice of your network sees it".
|
||||
3. [REWORK · b′] `:25/:27` — "content matched to **your demonstrated expertise**" → "**a viewer's interests**"
|
||||
(SSOT wording) + added "LinkedIn confirms no off-topic reach-reduction figure — not a quantified penalty".
|
||||
4. [REWORK · b′] `:31` + table `:33-39` — dropped "the model evaluates five criteria (see SSOT)" + HIGH/MEDIUM
|
||||
"Impact if Missing" weights → "LinkedIn does **not** publish a profile-scoring breakdown … practitioner
|
||||
heuristics", column → "Priority (heuristic)", High/Medium relabeled directional.
|
||||
5. [REWORK · b′] `:99` — "first signal telling … qualified to discuss" → "the clearest place to state … the
|
||||
strongest single contribution to a coherent topic signal".
|
||||
6. [REWORK · b′] `:161` — "Critical for profile/topic-relevance validation" → "Your top skills are a strong,
|
||||
searchable topic signal".
|
||||
7. [REWORK · b′] `:173` — "relevance checks if you're connected" → "a network concentrated in your expertise
|
||||
area reinforces your topic signal and social proof (heuristic — LinkedIn doesn't publish network as a
|
||||
profile-ranking factor)".
|
||||
8. [REWORK · b′] `:230` — "If LinkedIn's AI read my profile, would it believe I'm an expert" → "Does my
|
||||
profile make it obvious — to a human and to LinkedIn's topic-matching".
|
||||
9. [REWORK · b′] `:51/:67` SEO conflation — "tell the relevance model what you're expert in" → "make your
|
||||
topic legible … to topic-relevance distribution"; "the relevance model's expertise signal" → "carry your
|
||||
strongest on-topic signal".
|
||||
10. [NICE · P3] `:52/:61` — "highest-weight search field" → "highest-leverage" (×2; rest self-justified, kept).
|
||||
|
||||
**VERIFY.**
|
||||
- Re-grepped final file. All overclaim/conflation patterns (`validates your profile before | evaluates five
|
||||
criteria | first signal telling | qualified to discuss | checks if you're connected | relevance validation |
|
||||
if linkedin's ai read | 10% of audience | highest-weight | demonstrated expertise | Impact if Missing | tell
|
||||
the relevance model | relevance model's expertise signal`) → **NONE**. New SSOT text present (`:26/:28/:33/
|
||||
:38/:54/:178/:235`).
|
||||
- Grant-hygiene unchanged: `allowed-tools` = Read + AskUserQuestion (`:11-13`); WebFetch/Write/Bash/Task/.mjs → **NONE**.
|
||||
- `git diff --stat` = 1 file, **+28 / −22**.
|
||||
- `bash scripts/test-runner.sh` → `Passed: 81 · Failed: 0 · Warnings: 0`, **exit 0**; counts **29/19**
|
||||
unchanged (.md-only edits — node hook/analytics tests not triggered).
|
||||
- Disposition: **FIXED** (12 edits, 1 file) · 0 deferrals · axis-b′ **FIXED**, axes a/c/d **PASS** · no
|
||||
fixture needed (pure prose, no state).
|
||||
|
||||
---
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue