diff --git a/commands/analyze.md b/commands/analyze.md index cdf15ce..8c706df 100644 --- a/commands/analyze.md +++ b/commands/analyze.md @@ -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 diff --git a/docs/hardening/log.md b/docs/hardening/log.md index e05de77..f5e0980 100644 --- a/docs/hardening/log.md +++ b/docs/hardening/log.md @@ -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. + +---