fix(linkedin-studio): S16 harden analyze — drop unsourced 5+ hashtags penalty
S16 analyze through the v2 interactive quality gate (analytics/diagnostic class — prose-diagnosis + conditional agent-delegation, NOT CLI-backed: allowed-tools Read/AskUserQuestion/Task, no Bash). 1 finding, 1 surgical edit in commands/analyze.md, grep-confirmed + grounded persona sim (scenario 1, reach -50%): - FUNN (axis-b'): Step 4 penalty checklist asked 'Did you use 5+ hashtags in posts?' — a concrete-number penalty absent from BOTH the SSOT (algorithm-signals-reference.md: no hashtag claim, deliberately omitted) AND the cited troubleshooting-guide.md (its own checklist is 6 items, no hashtag). Command-only unsourced folklore. Dropped analyze.md:149; kept :150 'tag unrelated people for reach' (defensible — aligns with SSOT bait/pod-suppression direction, no numeric claim). Verified clean: interpret-mode wiring (analytics-interpreter resolves, real default mode agent:6,39,141), shared data-dir seam (analyze:41 <-> agent:49), /linkedin:profile cross-ref, graceful-degradation IF, saves/dwell honesty (no Bash, no over-promise). External-link hard-penalty framing in troubleshooting-guide.md:127 vs SSOT logged as reference-pass follow-up (out of S16 scope — not touched). Gate: test-runner 81/0/0 exit 0; counts 29/19 unchanged (.md-only). 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
060ce8a371
commit
7362d8e4b1
2 changed files with 51 additions and 1 deletions
|
|
@ -146,7 +146,6 @@ Run through this checklist:
|
|||
- [ ] Are topics all over the place recently?
|
||||
- [ ] Did you receive generic AI-like comments?
|
||||
- [ ] Did you post way more/less frequently than usual?
|
||||
- [ ] Did you use 5+ hashtags in posts?
|
||||
- [ ] Did you tag unrelated people for reach?
|
||||
|
||||
## Step 5: Reach Drop Severity Assessment
|
||||
|
|
|
|||
|
|
@ -1237,3 +1237,54 @@ functionally safe but mis-labelled "(Step 3b)". Root cause: conflating "the phas
|
|||
post-fix (b N/A — not feed-emitting).
|
||||
|
||||
---
|
||||
|
||||
### /linkedin:analyze — diagnose why content underperforms (reach drop / low traction / low engagement) → recovery plan, analytics grounded via analytics-interpreter
|
||||
|
||||
**INTENT.** Prose-diagnosis + conditional agent-delegation — **NOT CLI-backed** (`allowed-tools: Read,
|
||||
AskUserQuestion, Task`, no Bash, `analyze.md:9–12`). Measure-journey diagnostic. Steps 1–8 are a
|
||||
faithful restatement of `references/troubleshooting-guide.md` (drop-% tiers, 14-day recovery protocol,
|
||||
timeline table, prevention checklist).
|
||||
|
||||
**SIMULATE.** ICP author, scenario 1 (reach −50 %, 1 wk ago, 2 off-pillar posts, 1 body-link). Step 1
|
||||
picks "Reach suddenly dropped" (`:32`); Step 2 analytics present → `Task
|
||||
subagent_type: linkedin-studio:analytics-interpreter` interpret-mode (`:41`); Step 3 → pattern "Good
|
||||
Content, Low Reach" (`:95–102`); Step 4 checklist flags external link + topic drift — **and, before fix,
|
||||
asked "5+ hashtags?" (`:149`)**; Step 5 → "Algorithmic suppression likely" → 14-day recovery
|
||||
(`:167–173`); Step 6 → `/linkedin:profile` (`:189`); Step 7 → "Moderate 50–70 %: 2–3 wks initial"
|
||||
(`:231`). Friction: exactly one unsourced checklist item.
|
||||
|
||||
**EVALUATE (4 axes; analytics-class predicate = graceful degradation + saves/dwell honesty).**
|
||||
- **axis-a (intent): PASS** — faithful render of the cited guide; AskUserQuestion → framework → recovery
|
||||
flow intact.
|
||||
- **axis-b′ (algorithm-claim vs SSOT — feed-bar reframed since not feed-emitting): 1 FUNN.** `:149`
|
||||
"Did you use 5+ hashtags in posts?" is a penalty check absent from **both** the SSOT
|
||||
(`grep hashtag references/algorithm-signals-reference.md` = NONE — hashtags deliberately omitted) **and**
|
||||
the cited `references/troubleshooting-guide.md` (NONE; its own penalty checklist is 6 items `:101–106`).
|
||||
Command-only unsourced folklore carrying a concrete number ("5+").
|
||||
- **axis-c (saves/dwell honesty): PASS** — no Bash; never claims to read analytics itself; delegates
|
||||
honestly; no saves/dwell mention anywhere → no over-promise.
|
||||
- **axis-d (wiring + degradation): PASS** — `linkedin-studio:analytics-interpreter` resolves;
|
||||
interpret-mode is real/default (`agent:6,39,141`); shared seam `${LINKEDIN_STUDIO_DATA:-…}/analytics/`
|
||||
(`analyze:41` ↔ `agent:49`); `/linkedin:profile` resolves (`commands/profile.md`); "if analytics exists
|
||||
→ delegate, else self-report" IF-branch (`:41`); all 4 referenced files exist.
|
||||
|
||||
**HARDEN (1 surgical edit, `commands/analyze.md`).**
|
||||
1. [REWORK · axis-b′] Dropped `:149` "Did you use 5+ hashtags in posts?" — unsourced in both the SSOT and
|
||||
the cited guide. Step 4 checklist 8 → 7 items; **kept** `:150` "tag unrelated people for reach"
|
||||
(defensible — aligns with the SSOT bait/pod-suppression direction, no numeric claim).
|
||||
|
||||
**Out-of-scope (logged follow-up, NOT touched in S16).** `troubleshooting-guide.md:127` "External link
|
||||
overuse — LinkedIn penalizes directing traffic away" contradicts the SSOT (`:69–75`: LinkedIn *denies* an
|
||||
intentional penalty; soften to "body links correlate with lower reach"). `analyze.md:102` only echoes the
|
||||
milder guide wording verbatim (`guide:15`) — softening the command alone would drift it from its own cited
|
||||
source, so the real fix belongs to the reference-consistency pass.
|
||||
|
||||
**VERIFY.**
|
||||
- Re-grepped final file: `grep hashtag commands/analyze.md` → **NONE**; Step 4 checklist now 7 items
|
||||
(`:143–149`), `:149` = "tag unrelated people for reach" (survived).
|
||||
- `git diff --stat` = 1 file, **1 deletion**.
|
||||
- `bash scripts/test-runner.sh` → `Passed: 81 · Failed: 0 · Warnings: 0`, **exit 0**; counts **29/19**
|
||||
unchanged (.md-only edit).
|
||||
- Disposition: **FIXED** (1 edit, `commands/analyze.md`) · 0 deferrals · axes a/c/d PASS, b′ PASS post-fix.
|
||||
|
||||
---
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue