fix(linkedin-studio): S22 harden outreach — add missing Bash grant, drop orphan WebFetch+Write, re-source fabricated pod/DM stats to SSOT
Outreach is the first command in the hardening queue that both delegates to an
agent (network-builder) and mutates real state (recordOutreachContact), so the
weight fell on axis-d. Five fixes across two files (operator-approved scope
extension to the SSOT-diverging guide source):
- allowed-tools: ADD Bash (Step 8c runs `node state-updater.mjs --record-outreach`
and needs it — firsthour precedent grants Bash for the same pattern; the command
promised a mutation it couldn't execute), DROP orphan WebFetch + Write grants
(zero body use; :410/:1040 "Write a post" is prose). Now
Read·Glob·WebSearch·AskUserQuestion·Task·Bash.
- Step 7 pod-warning (axis-b'): replaced fabricated magnitudes ("30-55% reach
reduction", "shadow suppression", "credibility score", "penalizes",
"Post-March 2025", "low dwell") with the SSOT statement
(algorithm-signals-reference.md:98 — demote out of "Most Relevant" / scope to
own network / restrict repeat offenders) + cite.
- :652 DM-amplification "2-3x first-hour" (axis-b'): re-attributed 2-3x to collab
reach (where SSOT places it), kept the first-hour effect qualitative.
- collaborations-guide.md:349-370 (axis-b', scope extension): same SSOT rewrite of
the "March 2025 Crackdown" section so the Step 7 fix can't be re-rendered from a
stale reference (dropped "shadow banning ALL future content / 90+ days / 6+
months / permanent penalty" + speculative detection methods).
Verify: re-grep both files clean (orphans/fabricated stats NONE, Bash :21, SSOT
text in place); recordOutreachContact throwaway-fixture 10/10 PASS (additive,
$-safe, newest-first, untouched undeclared fields); 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
52f6e3bd71
commit
ff52ec8577
3 changed files with 88 additions and 28 deletions
|
|
@ -16,10 +16,9 @@ allowed-tools:
|
|||
- Read
|
||||
- Glob
|
||||
- WebSearch
|
||||
- WebFetch
|
||||
- AskUserQuestion
|
||||
- Write
|
||||
- Task
|
||||
- Bash
|
||||
---
|
||||
|
||||
# LinkedIn Outreach Orchestrator (Collaborations + Speaking)
|
||||
|
|
@ -649,7 +648,8 @@ DM Amplification Protocol:
|
|||
Both partners share/comment on each other's version.
|
||||
Creates compound visibility effect.
|
||||
|
||||
Impact: DM amplification can boost first-hour engagement 2-3x.
|
||||
Impact: this feeds the first-hour engagement that carries collaborative
|
||||
content to its 2-3x reach (ref: collaborations-guide.md).
|
||||
```
|
||||
|
||||
### Step 5b: Speaking — Outreach by Channel
|
||||
|
|
@ -918,24 +918,22 @@ LinkedIn: [profile URL]
|
|||
|
||||
## Step 7: Engagement-Pod Warning (Both Tracks)
|
||||
|
||||
**Post-March 2025 LinkedIn Algorithm Update:**
|
||||
LinkedIn runs an active engagement-pod crackdown (see
|
||||
`references/algorithm-signals-reference.md`):
|
||||
|
||||
```
|
||||
⚠️ ENGAGEMENT PODS: DO NOT USE
|
||||
|
||||
LinkedIn now actively detects and penalizes engagement pods:
|
||||
What LinkedIn does to pods (its stated crackdown):
|
||||
- Pod-style auto-comments are demoted out of "Most Relevant"
|
||||
- Their reach is scoped to your own network — it stops spreading beyond it
|
||||
- Repeat offenders get restricted
|
||||
|
||||
Detection methods:
|
||||
How pods get detected:
|
||||
- Consistent same-person engagement patterns
|
||||
- Engagement timing clusters (everyone engages within minutes)
|
||||
- Low dwell time on engaged posts (engage without reading)
|
||||
- Reciprocal engagement loops (A→B→A→B pattern)
|
||||
|
||||
Penalties:
|
||||
- 30-55% reach reduction on detected posts
|
||||
- Shadow suppression of pod participants
|
||||
- Account credibility score reduction
|
||||
|
||||
INSTEAD, build genuine engagement through:
|
||||
- CEA method comments (Compliment, Expand, Ask)
|
||||
- 5x5x5 daily routine (organic engagement)
|
||||
|
|
|
|||
|
|
@ -1545,3 +1545,71 @@ invokes WebFetch, Write, Glob, or Grep.**
|
|||
- Disposition: **FIXED** (2 edits, `commands/monetize.md`) · 0 deferrals · axes a/c PASS, axes b′/d PASS post-fix.
|
||||
|
||||
---
|
||||
|
||||
### /linkedin:outreach — collab + speaking outreach orchestrator (track select → readiness → targets → format/pitch → production → pipeline persist) (S22)
|
||||
|
||||
**INTENT.** Grow-tier **orchestrator** (unlocks ~1K), prose-heavy **+ agent-delegating + state-persisting**.
|
||||
Two tracks (collab + speaking) under one paradigm, 11 steps (Step 0–10 `:65-1252`). Absorbed
|
||||
`collab`/`speaking`/`authority` (capability checklist `:36-63` maps each predecessor function). **First in
|
||||
the queue to BOTH delegate to an agent AND mutate real state** — shifts the weight onto axis-d.
|
||||
|
||||
**SIMULATE (adversarial cold quality-reviewer; grounded prose-trace + throwaway state fixture — operator
|
||||
chose the thorough path; touches no real state/data-dir).** Traced Step 0–10 against the file; verified every
|
||||
mechanical claim (refs resolve, agent resolves, mutation exists, grants match body use, axis-b′ claims trace
|
||||
to SSOT) with a tool, never by reasoning.
|
||||
|
||||
**EVALUATE (relevant axes; mechanical predicate each).**
|
||||
- **(a) intention: PASS** — checklist maps both predecessors; all 5 refs + SKILL.md resolve (Step 0 +
|
||||
Reference Files); state path `~/.claude/linkedin-studio.local.md` correct post-M0 (per CLAUDE.md).
|
||||
- **(b) algorithm/conversion-bar (axis-b′): 2 FINDINGS.** **B1** `:652` "DM amplification can boost
|
||||
first-hour engagement **2-3x**" — over-quantified: 2-3x is SSOT for *collab reach*
|
||||
(`collaborations-guide.md:32/165/187`), while the DM-loop's first-hour effect is held *qualitative* there
|
||||
(`:335`). **B2** `:921-946` Step 7 pod-warning fabricated magnitudes — "**30-55%** reach reduction",
|
||||
"shadow suppression", "account credibility score reduction", "penalizes", "**Post-March 2025** Update" +
|
||||
"low dwell" detection (dwell unmeasurable per CLAUDE.md). SSOT (`algorithm-signals-reference.md:98`) states
|
||||
ONLY: "auto-comments demoted out of 'Most Relevant', scoped to own network; repeat offenders restricted"
|
||||
(Sachdeva 2026-02-16, high) + design rule "do not quote a percentage / soften penalty". Same S18/S21 +
|
||||
follow-up-#1 pattern.
|
||||
- **(c) quality rules: PASS** — prose templates only (no post emission); "thought leader"/"ecosystem"
|
||||
appear only in search-queries / internal *goals* (`:230/:813/:820`), not in published post-copy (Rule 4).
|
||||
- **(d) agent-wiring + grants + state + graceful: 3 FINDINGS.** **D1 PASS** — `Task subagent_type:
|
||||
linkedin-studio:network-builder` (`:172`) resolves (`agents/network-builder.md`). **D2 PASS** —
|
||||
`recordOutreachContact` is **NOT fabricated** (`state-updater.mjs:294`, CLI `--record-outreach :394`,
|
||||
additive, `$`-safe). **D3 Bash MISSING** — Step 8c (`:1064`) runs `node …state-updater.mjs --record-outreach`
|
||||
(needs Bash) but frontmatter didn't grant it; `firsthour.md` grants Bash for the same `node`-mutation
|
||||
pattern → functional defect (command promised a mutation it couldn't execute). **D4 WebFetch orphan**
|
||||
(`:19`, zero body use). **D5 Write orphan** (`:21`; `:410/:1040` are prose "Write a post", not tool use).
|
||||
|
||||
**HARDEN (5 edits across 2 files — operator-approved scope extension to also fix the SSOT-diverging guide
|
||||
source so the B2 rewrite can't be re-rendered from a stale reference).**
|
||||
1. [REWORK · axis-d] `commands/outreach.md` frontmatter: dropped `- WebFetch` + `- Write` (orphans),
|
||||
added `- Bash` (Step 8c needs it). allowed-tools now Read·Glob·WebSearch·AskUserQuestion·Task·Bash
|
||||
(borderline Glob kept — S20 precedent).
|
||||
2. [REWORK · axis-b′] `:652` (B1): re-attributed 2-3x to collab reach (where SSOT places it), kept the
|
||||
first-hour effect qualitative + cite to `collaborations-guide.md`.
|
||||
3. [REWORK · axis-b′] Step 7 (B2): replaced "Post-March 2025 Update" header + the fabricated
|
||||
detection/penalties block with the SSOT crackdown statement (demote out of "Most Relevant" / scope to own
|
||||
network / restrict repeat offenders) + cite; softened "penalizes", dropped "low dwell".
|
||||
4. [REWORK · axis-b′, scope-extension] `references/collaborations-guide.md:349-370` (B2 propagation): same
|
||||
SSOT rewrite of the "March 2025 Crackdown" section — dropped "shadow banning ALL future content / 90+ days
|
||||
/ 6+ months / permanent reach penalty", the date, and the speculative detection methods (browser-extension
|
||||
tracking, linguistic fingerprinting).
|
||||
|
||||
**VERIFY.**
|
||||
- Re-grepped final files. `commands/outreach.md`: `grep WebFetch` → **NONE**, `^ - Write$` → **NONE**,
|
||||
`^ - Bash$` → `:21`; B1 old form → **NONE** (new `:651`); B2 `30-55%|Post-March 2025|penalizes engagement
|
||||
pods|credibility score|Low dwell|Shadow suppression` → **NONE** (SSOT text `:928-929`).
|
||||
`references/collaborations-guide.md`: `90+ days|6+ months|never fully recover|permanent reach
|
||||
penalty|Shadow banning affects ALL|March 2025 Crackdown` → **NONE** (SSOT text `:349/:364`).
|
||||
- **D2/D3 throwaway fixture** (`/private/tmp/claude-*`, fictional, deleted after): `recordOutreachContact`
|
||||
direct-call (no `writeState`), **10/10 assertions PASS** — additive insert after `last_post_date`,
|
||||
`outreach_active` untouched when undeclared, pre-existing fields + custom section intact, newest-first
|
||||
append, **`$`-safe** (`@kari$boss` preserved literally — S13 behavioral), section auto-created.
|
||||
- `git diff --stat` = 2 files, **+20 / −28**.
|
||||
- `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** (5 edits, 2 files) · 0 deferrals · axes a/c PASS, axes b′/d PASS post-fix.
|
||||
Note: state-updater HTML-comment lands between newest+older rows on repeat append = cosmetic, logged as
|
||||
non-scope follow-up (the command calls the mutation correctly).
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -346,28 +346,22 @@ Include collaborator content in Featured:
|
|||
|
||||
---
|
||||
|
||||
## Engagement Pods: March 2025 Crackdown
|
||||
## Engagement Pods: An Active Crackdown
|
||||
|
||||
LinkedIn's March 2025 update dramatically increased pod detection capabilities.
|
||||
LinkedIn runs an active engagement-pod crackdown and keeps expanding how it
|
||||
detects them (see `algorithm-signals-reference.md` — the algorithm SSOT).
|
||||
|
||||
### Detection Methods Now in Use
|
||||
### How Pods Get Detected
|
||||
|
||||
- Browser extension tracking (LinkedIn detects pod-organizing extensions)
|
||||
- Pattern analysis on comment timing (simultaneous engagement = red flag)
|
||||
- Comment-timing analysis (simultaneous engagement = red flag)
|
||||
- Cross-account engagement correlation (same people always first to engage)
|
||||
- Linguistic fingerprinting (similar comment patterns across accounts)
|
||||
- Reciprocal engagement loops (the same accounts engaging each other)
|
||||
|
||||
### Consequences
|
||||
### What LinkedIn Does
|
||||
|
||||
- Shadow banning affects ALL future content (not just the flagged post)
|
||||
- Reach penalties persist for 90+ days
|
||||
- Can take 6+ months to recover algorithmic trust
|
||||
- Some accounts never fully recover
|
||||
|
||||
### The Math Has Changed
|
||||
|
||||
- **Old:** Pod engagement boosted first-hour metrics → more reach
|
||||
- **New:** Pod engagement triggers detection → permanent reach penalty
|
||||
- Pod-style auto-comments are demoted out of "Most Relevant"
|
||||
- Their reach is scoped to your own network — it stops spreading beyond it
|
||||
- Repeat offenders get restricted
|
||||
|
||||
**Pods now hurt more than help.** Build authentic communities instead:
|
||||
- Genuine relationships with 3-5 aligned creators
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue