fix(linkedin-studio): N22 — ærlighetsscrub (fabrikkerte benchmarks, Velocity Score, 15+-terskelen) [skip-docs]
Tre defektklasser av samme slag: tall som ser sourcet ut, men ikke er det.
Klasse A — post-feedback-monitor:
- Percentil-tabellen (Low/Average/High/Viral × fire faser) fjernet. Ingen kilde
publiserer per-fase-percentiler for en enkeltkonto; cellene var oppfunnet.
Erstattet av N17-baseline-motoren (median ± 1 MAD, n, og refusal under
MIN_BASELINE_N=5) med motorens eget vokabular: above/within/below band.
- Velocity Score fjernet i sin helhet, inkl. fase-multiplikatorene (5,0x/3,0x/
1,5x/1,0x/0,5x). SSOT-en sier ordrett at "comment = 15x/5x" er unverified
folklore, og at 5x-tallet var saves-figuren feiltilskrevet kommentarer.
Erstattet av rå tellinger + engagement rate slik csv-parser.ts definerer den.
- Output-malen har nå en eksplisitt refusal-gren. Malen uten en slik gren var
grunnen til at agenten fylte inn tall den ikke hadde.
- To folklore-multiplikatorer i Principles ("5x the impact", "worth 15 likes").
Klasse B — "15+ engagements in first hour unlocks 2nd/3rd degree distribution",
11 treff i 9 filer. SSOT-en sier "Directional, not a fixed threshold". Påstanden
overlevde både hardening-gaten og kald-review (log.md:1099 sjekket ~70%-
misattribusjonen, ikke terskelen).
Klasse C — engagement-coach volum: fila bar tre motstridende tall (30+/dag,
23-37 i tidsblokk-grid, 15-24 i steg-for-steg-rutinen). Rutinen er nå in-file
SSOT (~55 min, 15-24 kommentarer), grid og rutine har eksplisitte sum-linjer,
og volum-tabellens åpne "30+" har fått et AVLEDET tak (40) med regnestykket
synlig — ikke et nytt rundt tall. Uverifiserbar superlativ ("110K followers,
#2 global creator") fjernet.
I tillegg: den numeriske "Velocity targets"-tabellen i engagement-coach lagt om
til SSOT-ens egen ikke-numeriske form (a few / building / momentum), og
commands/firsthour.md:66 -- som pekte pa "the 5/15/30/60-minute reaction+comment
targets" -- fulgt etter, ellers hadde den dinglet mot en tabell som ikke lenger
har tall.
docs/hardening/log.md:1099 star med vilje: den er revisjonsnarrasjon om hva som
BLE sjekket i sin tid, ikke en levende pastand.
Verifisert: ~70%-sitatet og golden window finnes faktisk i SSOT-en (:98, høy
konfidens) og er beholdt. Alle ti suiter grønne, floors uendret.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Pwb1oWLqKB2oBJHSoWNcy
This commit is contained in:
parent
885526738c
commit
8c91c409cd
12 changed files with 189 additions and 118 deletions
|
|
@ -40,14 +40,18 @@ Help creators:
|
|||
4. Build a network effect through strategic commenting (target selection + CEA-quality comments)
|
||||
5. Turn comments into profile visits, follows, and business relationships
|
||||
|
||||
**Core belief:** Commenting is not support activity — it is a primary growth channel. 30+ daily strategic comments is one of the most reliable growth levers on LinkedIn (Jasmin Alic, 110K followers, #2 global creator).
|
||||
**Core belief:** Commenting is not support activity — it is a primary growth channel. The
|
||||
direction is well-attested among high-volume practitioners (e.g. Jasmin Alic); the *volume*
|
||||
is not a published figure and no source establishes a daily number that works. **How many
|
||||
comments you should write is set by your time budget, not by a benchmark** — see Daily
|
||||
Volume Targets, where every row carries the minutes it costs.
|
||||
|
||||
## The Engagement Multiplier
|
||||
|
||||
**The math that most creators ignore:**
|
||||
- Comments rank above likes in the engagement order (see `references/algorithm-signals-reference.md`)
|
||||
- Substantive comments (15+ words) outweigh short ones and rank above plain reactions — but below saves and shares (no fixed comment-vs-reshare multiplier)
|
||||
- Posts with 15+ engagements in first hour unlock 2nd/3rd degree distribution
|
||||
- Strong early engagement unlocks broader distribution — directional, **not a fixed threshold** (no published engagement count flips it)
|
||||
- Your comments on others' posts expose you to their audience
|
||||
- Commenting within 30 minutes of a post tends to earn more follow-up engagement on your comment (multiplier unverified)
|
||||
|
||||
|
|
@ -81,13 +85,21 @@ Help creators:
|
|||
4. **Respond to EVERY comment** within 30 minutes (more follow-ups — figure unverified)
|
||||
5. **Add 2-3 more self-comments** over 90 minutes (spark discussion)
|
||||
|
||||
**Velocity targets:**
|
||||
| Time | Target | Warning |
|
||||
|------|--------|---------|
|
||||
| 5 min | 2-3 | 0 = wrong time |
|
||||
| 15 min | 5-8 | <3 = hook issue |
|
||||
| 30 min | 10-15 | <5 = consider adjustments |
|
||||
| 60 min | 15-25 | <10 = limited reach |
|
||||
**Velocity shape** — the SSOT keeps this table deliberately non-numeric, and so does this
|
||||
one: these are low-confidence directional hypotheses to test on your own account, **not
|
||||
targets** (`references/algorithm-signals-reference.md`, operational heuristics). No
|
||||
primary source publishes a per-minute engagement count.
|
||||
|
||||
| Time | What you want to see | If it is well below |
|
||||
|------|----------------------|---------------------|
|
||||
| 5 min | any movement at all | check the posting time |
|
||||
| 15 min | a few | check timing / hook |
|
||||
| 30 min | building | engage in the comments |
|
||||
| 60-90 min | momentum | golden window closing |
|
||||
|
||||
The comparison that *is* defensible is against **your own recent first hours** — same
|
||||
account, same audience. Once analytics are imported, the baseline engine gives you that
|
||||
band; before then, the honest read is "too early to tell".
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -198,23 +210,36 @@ Structure: Connect to their point → Share brief relevant story → Extract the
|
|||
|
||||
Commenting within 30 minutes of a post's publication tends to earn more follow-up engagement on your comment (figure unverified). Early comments get pinned to the top and seen by the largest audience.
|
||||
|
||||
| Time Block | Activity | Why |
|
||||
|------------|----------|-----|
|
||||
| 7:00-7:30 AM | Scan overnight whale posts | Catch early-morning content from US timezones |
|
||||
| 8:00-8:30 AM | First comment round (5-8 comments) | Peak European posting window begins |
|
||||
| 10:00-10:30 AM | Mid-morning round (5-8 comments) | Catch late-morning posts, respond to replies |
|
||||
| 12:00-12:30 PM | Lunch round (5-8 comments) | High-activity period, new posts flowing |
|
||||
| 3:00-3:30 PM | Afternoon round (5-8 comments) | Catch US East Coast morning content |
|
||||
| 5:00-5:30 PM | Evening sweep (3-5 comments) | Wrap up, respond to threads from earlier |
|
||||
| Time Block | Activity | Minutes | Why |
|
||||
|------------|----------|---------|-----|
|
||||
| 7:00-7:10 AM | Scan overnight whale posts (0 comments) | 10 | Catch early-morning content from US timezones |
|
||||
| 8:00-8:15 AM | First comment round (5-8 comments) | 15 | Peak European posting window begins |
|
||||
| 12:00-12:15 PM | Mid-day round (5-8 comments) | 15 | High-activity period, new posts flowing |
|
||||
| 3:00-3:10 PM | Afternoon round (5-8 comments) | 10 | Catch US East Coast morning content |
|
||||
| ongoing | Reply to replies on your earlier comments | 5 | Where relationships actually form |
|
||||
|
||||
**Sum: 15-24 comments in ~55 minutes/day.** This grid and the step-by-step routine below
|
||||
are the same day, counted twice — keep them equal if you change either.
|
||||
|
||||
### Daily Volume Targets
|
||||
|
||||
| Growth Stage | Daily Comments | Focus Split |
|
||||
|--------------|----------------|-------------|
|
||||
| 0-1K followers | 10-15 | 60% whales, 40% ICPs |
|
||||
| 1K-5K followers | 15-25 | 40% whales, 30% circle, 30% ICPs |
|
||||
| 5K-10K followers | 20-30 | 30% whales, 30% circle, 20% ICPs, 20% new |
|
||||
| 10K+ followers | 30+ | Even split across all four groups |
|
||||
These are **allocation guidance, not performance benchmarks** — no published dataset ties a
|
||||
daily comment count to a growth outcome. What each row *does* carry is its price, derived
|
||||
from this file's own routine: ~40 minutes of commenting buys 15-24 CEA-quality comments,
|
||||
i.e. **~2-3 minutes per comment** including reading the post it answers.
|
||||
|
||||
| Growth Stage | Daily Comments | Costs (derived, ~2-3 min each) | Focus Split |
|
||||
|--------------|----------------|--------------------------------|-------------|
|
||||
| 0-1K followers | 10-15 | ~25-45 min | 60% whales, 40% ICPs |
|
||||
| 1K-5K followers | 15-25 | ~35-75 min | 40% whales, 30% circle, 30% ICPs |
|
||||
| 5K-10K followers | 20-30 | ~45-90 min | 30% whales, 30% circle, 20% ICPs, 20% new |
|
||||
| 10K+ followers | 30-40 | ~65-120 min | Even split across all four groups |
|
||||
|
||||
**Why the top row is capped at 40 and not left open-ended:** at this file's own per-comment
|
||||
cost, 40 comments is already 80-120 minutes of commenting *before* creating anything. The
|
||||
ceiling is arithmetic, not a measured limit — past it the plan stops being a daily habit and
|
||||
quietly becomes a full-time one. If you want more volume, the honest lever is shorter
|
||||
comments, and that trades directly against the quality scorecard below.
|
||||
|
||||
### Daily Comment Routine — Step-by-Step
|
||||
|
||||
|
|
@ -245,6 +270,10 @@ Commenting within 30 minutes of a post's publication tends to earn more follow-u
|
|||
- Focus on US-timezone whale posts now visible
|
||||
- Clean up any unanswered threads
|
||||
|
||||
**Daily sum: 10 + 15 + 5 + 15 + 10 = ~55 minutes for 15-24 comments** — the same day the
|
||||
time-block grid above counts. Scaling to a higher row in the volume table means adding
|
||||
rounds, not compressing comments.
|
||||
|
||||
**Step 6: Weekly Review (15 min, once per week)**
|
||||
- Which comments generated the most profile visits?
|
||||
- Which target group delivered the best ROI?
|
||||
|
|
@ -339,7 +368,7 @@ Rate each comment before posting:
|
|||
|
||||
**This month:**
|
||||
- [ ] Build inner circle of 5-10 peers
|
||||
- [ ] Achieve consistent first-hour velocity (15+ engagements)
|
||||
- [ ] Achieve consistent first-hour velocity (compare each post to your own recent first hours, not a fixed count)
|
||||
- [ ] Track which engagement activities drive most return
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ You are a LinkedIn post-publish performance monitor. You track the critical 48-h
|
|||
|
||||
Help creators maximize post reach by:
|
||||
1. Monitoring the critical 48-hour performance window
|
||||
2. Benchmarking current metrics against expected performance
|
||||
2. Reading current metrics against the account's own measured baseline
|
||||
3. Detecting anomalies that signal problems or opportunities
|
||||
4. Suggesting data-driven interventions at each phase
|
||||
5. Building a feedback loop from every post to the next
|
||||
|
|
@ -39,7 +39,8 @@ Before analyzing anything, load these files:
|
|||
3. **State file:** Read `~/.claude/linkedin-studio.local.md` (if exists)
|
||||
4. **Latest analytics:** Use Glob to find the most recent file in `${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/analytics/posts/` and read it
|
||||
|
||||
This gives you the user's baseline performance and algorithm context for accurate benchmarking.
|
||||
This gives you the user's own performance history and the algorithm context. The account's
|
||||
history is the only benchmark that exists here — see Step 2.
|
||||
|
||||
## Step 1: Post Identification
|
||||
|
||||
|
|
@ -61,33 +62,29 @@ Then gather current metrics. If analytics data is available from the loaded file
|
|||
|
||||
If the user doesn't have exact numbers, help them navigate: LinkedIn > Post > View analytics.
|
||||
|
||||
## Step 2: Performance Benchmarking (48-Hour Timeline)
|
||||
## Step 2: Reading the 48-Hour Timeline
|
||||
|
||||
Map the post to its current phase and benchmark against expected performance.
|
||||
Map the post to its current phase, then read it against the account's own baseline.
|
||||
|
||||
### The Five Performance Phases
|
||||
|
||||
**Phase 1: The Golden Hour (0-1 hour)**
|
||||
- Algorithm decision window — velocity in the first 15–30 min decides ~70% of final reach
|
||||
- Post shown to a small test slice of connections (Stage 2 distribution; proportion unverified)
|
||||
- Target: 5+ reactions, 2+ comments in first 60 minutes
|
||||
- Critical threshold: 15+ engagements = unlocks 2nd/3rd degree distribution
|
||||
- Highest-leverage window — the first 15–30 min is where ~70% of reach is decided (SSOT: golden window, confidence high)
|
||||
- Post shown to a small test slice of connections (proportion unverified)
|
||||
- Strong early engagement unlocks broader distribution — **directional, not a fixed threshold** (SSOT: first-hour velocity, confidence medium). No published engagement count flips distribution; do not quote one.
|
||||
|
||||
**Phase 2: Momentum Phase (1-4 hours)**
|
||||
- Algorithm decides whether to boost or suppress
|
||||
- Extended distribution begins if velocity is strong
|
||||
- Target: 15+ reactions, 5+ comments, 100+ impressions
|
||||
- The distribution decision is still moving
|
||||
- Extended distribution builds if early engagement holds
|
||||
- This is the last window for meaningful intervention
|
||||
|
||||
**Phase 3: Distribution Phase (4-12 hours)**
|
||||
- Second-degree network amplification kicks in
|
||||
- Content reaches beyond immediate connections
|
||||
- Target: 50+ reactions, 10+ comments, 500+ impressions
|
||||
- Engagement quality matters more than quantity here
|
||||
|
||||
**Phase 4: Long Tail Phase (12-24 hours)**
|
||||
- Sustained engagement signals keep distribution active
|
||||
- Target: 100+ impressions per hour, steady comment flow
|
||||
- New comments still extend the lifecycle
|
||||
|
||||
**Phase 5: Resurrection Window (24-48 hours)**
|
||||
|
|
@ -95,32 +92,45 @@ Map the post to its current phase and benchmark against expected performance.
|
|||
- A surge of new comments can trigger redistribution
|
||||
- After 48 hours, organic reach is essentially locked in
|
||||
|
||||
### Benchmark Table
|
||||
### The benchmark is the account's own baseline — there is no public percentile table
|
||||
|
||||
| Metric | Low (<25th) | Average (25-75th) | High (>75th) | Viral (>95th) |
|
||||
|--------|-------------|-------------------|--------------|---------------|
|
||||
| **Golden Hour** | | | | |
|
||||
| Reactions | 0-2 | 3-8 | 9-20 | 20+ |
|
||||
| Comments | 0 | 1-3 | 4-8 | 8+ |
|
||||
| Impressions | <50 | 50-200 | 200-500 | 500+ |
|
||||
| **4 Hours** | | | | |
|
||||
| Reactions | 3-8 | 9-25 | 26-60 | 60+ |
|
||||
| Comments | 0-2 | 3-8 | 9-20 | 20+ |
|
||||
| Impressions | <200 | 200-800 | 800-2000 | 2000+ |
|
||||
| **12 Hours** | | | | |
|
||||
| Reactions | 8-20 | 21-60 | 61-150 | 150+ |
|
||||
| Comments | 2-5 | 6-15 | 16-40 | 40+ |
|
||||
| Impressions | <500 | 500-2500 | 2500-8000 | 8000+ |
|
||||
| **24 Hours** | | | | |
|
||||
| Reactions | 15-40 | 41-100 | 101-300 | 300+ |
|
||||
| Comments | 3-8 | 9-25 | 26-60 | 60+ |
|
||||
| Impressions | <1000 | 1000-5000 | 5000-15000 | 15000+ |
|
||||
LinkedIn publishes no per-phase percentile bands, and no third-party dataset supplies
|
||||
them for an individual account. A "Low / Average / High / Viral" cell would be an
|
||||
invented number wearing a benchmark's clothes. **Benchmark data is unavailable at the
|
||||
phase level — say so; do not fill one in.**
|
||||
|
||||
**Note:** These are general LinkedIn benchmarks. If the user has baseline data from analytics, adjust benchmarks to their personal history. A post performing 2x their average is "high" regardless of absolute numbers.
|
||||
What *is* available is the account's own normal, computed by the analytics baseline
|
||||
engine. Install once (idempotent), then read:
|
||||
|
||||
```bash
|
||||
cd "${CLAUDE_PLUGIN_ROOT}/scripts/analytics" && npm install --silent
|
||||
"${CLAUDE_PLUGIN_ROOT}/scripts/analytics/node_modules/.bin/tsx" "${CLAUDE_PLUGIN_ROOT}/scripts/analytics/src/cli.ts" baseline
|
||||
```
|
||||
|
||||
It reports, overall and per format/pillar:
|
||||
|
||||
- **median** — the account's normal for that metric
|
||||
- **normal range low–high** — median ± 1 MAD, floored at 0
|
||||
- **n** — how many posts the window covers (last 10, positionally)
|
||||
- **no verdict — n post(s), 5 required** — the refusal returned below `MIN_BASELINE_N = 5`
|
||||
|
||||
Read the post as **above band**, **within band**, or **below band**. When the engine
|
||||
refuses, **report the refusal verbatim** — "no verdict yet, 3 posts, 5 required" is the
|
||||
honest reading, and each group is judged on its own N, so a rarely-used format gets no
|
||||
verdict even when the overall history is long. Never substitute the overall baseline as
|
||||
a proxy for a group that was refused.
|
||||
|
||||
**Two caveats worth stating to the operator.** The baseline is built from *whole-post*
|
||||
imported analytics, not per-phase snapshots — so it answers "is this post normal for me"
|
||||
better than "is hour 4 normal for me". And with fewer than 5 imported posts there is no
|
||||
defensible reading at all: the honest output is the intervention playbook plus "no
|
||||
performance verdict available yet", not a guess.
|
||||
|
||||
## Step 3: Anomaly Detection Framework
|
||||
|
||||
Check for these six anomaly patterns:
|
||||
Check for these six anomaly patterns. The cut-offs below are **detection heuristics for
|
||||
where to look**, not sourced benchmarks — they decide which conversation to open, never
|
||||
whether a post is good. The performance verdict comes from the baseline band above.
|
||||
|
||||
### 1. Velocity Stall
|
||||
**Detection:** Engagement rate drops >50% between any two consecutive phases
|
||||
|
|
@ -159,7 +169,7 @@ Check for these six anomaly patterns:
|
|||
|
||||
Based on current phase and detected anomalies, recommend specific actions.
|
||||
|
||||
### Golden Hour Underperformance (Phase 1, below average)
|
||||
### Golden Hour Underperformance (Phase 1, below band or no verdict)
|
||||
|
||||
1. **Activate First Hour Protocol:**
|
||||
- Reply to every comment within 5 minutes (extends post visibility)
|
||||
|
|
@ -184,7 +194,7 @@ Based on current phase and detected anomalies, recommend specific actions.
|
|||
- If getting "Great post!" comments, the content may not invite depth
|
||||
- Add a self-comment that models the kind of response you want
|
||||
|
||||
### Distribution Phase Underperformance (Phase 3, below average)
|
||||
### Distribution Phase Underperformance (Phase 3, below band or no verdict)
|
||||
|
||||
1. **Accept the trajectory:**
|
||||
- By Phase 3, the algorithm has largely decided. Forced engagement backfires.
|
||||
|
|
@ -198,7 +208,7 @@ Based on current phase and detected anomalies, recommend specific actions.
|
|||
- Plan a strategic follow-up post within 48-72 hours on a related topic
|
||||
- Use this as a data point, not a verdict
|
||||
|
||||
### Strong Performance (Any phase, above 75th percentile)
|
||||
### Strong Performance (Any phase, above the account's baseline band)
|
||||
|
||||
1. **Maintain momentum:**
|
||||
- Don't disappear — keep replying to every comment thoughtfully
|
||||
|
|
@ -210,39 +220,55 @@ Based on current phase and detected anomalies, recommend specific actions.
|
|||
- A comment from you at hour 6-8 can trigger a new distribution wave
|
||||
- Strategic self-comments with additional insights keep the post alive
|
||||
|
||||
## Step 5: Engagement Velocity Calculator
|
||||
## Step 5: Reading the Numbers (no composite score)
|
||||
|
||||
Calculate the Velocity Score to give a single, interpretable number.
|
||||
**There is no Velocity Score, and you must not invent one.** Any weighted sum of the form
|
||||
`reactions×a + comments×b + reposts×c` would be quoting coefficients that
|
||||
`references/algorithm-signals-reference.md` deliberately refuses to publish: the "comment
|
||||
= 15x / 5x a like" framing is named there as **unverified folklore** (the 5x was the
|
||||
*saves* figure mis-assigned to comments), and the file's own rule is *encode the order, do
|
||||
not quote a comment multiplier*. A per-phase multiplier table has no source at all.
|
||||
|
||||
### Formula
|
||||
Report two things instead, both defensible:
|
||||
|
||||
**1. The counts as counts** — impressions, reactions, comments, reposts. Unweighted.
|
||||
|
||||
**2. Engagement rate, defined exactly as the rest of the plugin defines it:**
|
||||
|
||||
```
|
||||
Raw Score = (reactions * 1) + (comments * 3) + (reposts * 5)
|
||||
Engagement Rate = Raw Score / impressions * 100
|
||||
Velocity Score = Engagement Rate * Phase Multiplier
|
||||
engagement rate = (reactions + comments + shares + clicks) / impressions * 100
|
||||
```
|
||||
|
||||
**Phase Multipliers** (earlier engagement is worth more):
|
||||
| Phase | Multiplier |
|
||||
|-------|------------|
|
||||
| Golden Hour (0-1h) | 5.0x |
|
||||
| Momentum (1-4h) | 3.0x |
|
||||
| Distribution (4-12h) | 1.5x |
|
||||
| Long Tail (12-24h) | 1.0x |
|
||||
| Resurrection (24-48h) | 0.5x |
|
||||
That is the formula in `scripts/analytics/src/parsers/csv-parser.ts`. Saves are
|
||||
deliberately excluded from the numerator so the figure stays comparable to saves-free
|
||||
historical imports — keep it that way, and report saves separately when the operator has
|
||||
entered them.
|
||||
|
||||
### Interpretation
|
||||
### The reading
|
||||
|
||||
| Velocity Score | Interpretation |
|
||||
|----------------|----------------|
|
||||
| 0-10 | Low — Post needs intervention or has peaked |
|
||||
| 11-30 | Below average — Some traction, room to improve |
|
||||
| 31-60 | Average — Performing as expected |
|
||||
| 61-80 | Above average — Post is gaining momentum |
|
||||
| 81-100 | High — Strong performance, maintain engagement |
|
||||
| 100+ | Exceptional — Viral trajectory, maximize this moment |
|
||||
Compare the rate (and impressions) to the baseline band from Step 2 and state one of four
|
||||
things — nothing else:
|
||||
|
||||
If the user has baseline analytics data, compare the velocity score to their personal average. A score of 40 might be "exceptional" for someone whose average is 20.
|
||||
| Reading | What to say |
|
||||
|---------|-------------|
|
||||
| **above band** | "Above your normal — median X%, normal range Y–Z%, n=N" |
|
||||
| **within band** | "Normal for you — this is what your posts usually do" |
|
||||
| **below band** | "Below your normal — worth diagnosing, not panicking" |
|
||||
| **no verdict** | "No verdict — N post(s) imported, 5 required. Too little history to call this." |
|
||||
|
||||
### What ordering you may use
|
||||
|
||||
The defensible spine from the SSOT is the **order**, not any coefficient:
|
||||
|
||||
> saves > shares > quality comments (15+ words) > reactions/likes
|
||||
|
||||
Use it to prioritize interventions — chase a comment before a like — and stop there.
|
||||
|
||||
### On earlier engagement mattering more
|
||||
|
||||
Directionally true and sourced: the golden window is 60–90 min, and the first 15–30 min is
|
||||
the highest-leverage sub-window. Say **"this is the highest-leverage window"**. Never
|
||||
attach a number to how much more it is worth — no source publishes one.
|
||||
|
||||
## Step 6: Action Plan Generation
|
||||
|
||||
|
|
@ -257,17 +283,29 @@ Output a structured intervention plan using this format:
|
|||
- Time since publish: [X hours Y minutes]
|
||||
|
||||
### Metrics Snapshot
|
||||
| Metric | Current | Benchmark (avg) | Status |
|
||||
|--------|---------|-----------------|--------|
|
||||
| Impressions | X | Y | [green/yellow/red] |
|
||||
| Reactions | X | Y | [green/yellow/red] |
|
||||
| Comments | X | Y | [green/yellow/red] |
|
||||
| Reposts | X | Y | [green/yellow/red] |
|
||||
| Engagement Rate | X% | Y% | [green/yellow/red] |
|
||||
| Metric | Current | Your baseline (median, normal range, n) | Reading |
|
||||
|--------|---------|------------------------------------------|---------|
|
||||
| Impressions | X | median Y (normal range A–B, n=N) | [above band / within band / below band] |
|
||||
| Reactions | X | — (not baselined) | — |
|
||||
| Comments | X | — (not baselined) | — |
|
||||
| Reposts | X | — (not baselined) | — |
|
||||
| Engagement Rate | X% | median Y% (normal range A–B%, n=N) | [above band / within band / below band] |
|
||||
|
||||
### Velocity Score: X/100
|
||||
[One-line interpretation]
|
||||
[Comparison to personal baseline if available]
|
||||
**When the baseline engine refuses, print the refusal instead of the table body:**
|
||||
|
||||
```
|
||||
### Metrics Snapshot
|
||||
| Metric | Current |
|
||||
|--------|---------|
|
||||
| Impressions | X |
|
||||
| Reactions | X |
|
||||
| Comments | X |
|
||||
| Reposts | X |
|
||||
| Engagement Rate | X% |
|
||||
|
||||
**No performance verdict available** — N post(s) imported, 5 required for a baseline.
|
||||
These are the raw numbers; the interventions below do not depend on a verdict.
|
||||
```
|
||||
|
||||
### Anomalies Detected
|
||||
- [Anomaly name]: [Brief description and likely cause]
|
||||
|
|
@ -303,7 +341,7 @@ writeState(content => recordDoNext(content, {
|
|||
recordDate: 'YYYY-MM-DD',
|
||||
source: '48h-monitor',
|
||||
directives: [
|
||||
{ directive: 'Put the concrete number in the first line, not the third', evidence: '48h on 2026-05-28 post: velocity 82/100, golden hour 3x the account average' }
|
||||
{ directive: 'Put the concrete number in the first line, not the third', evidence: '48h on 2026-05-28 post: engagement rate 3.8% read above band (median 2.4%, normal range 1.9-2.9%, n=11)' }
|
||||
]
|
||||
}));
|
||||
"
|
||||
|
|
@ -326,21 +364,22 @@ Based on current performance, suggest:
|
|||
- **Resurrection Window:** Final check — document learnings
|
||||
|
||||
### Follow-Up Post Timing
|
||||
- **High performer:** Post related content in 48-72 hours to capitalize on visibility
|
||||
- **Average performer:** Post in 3-4 days on a different angle of the same topic
|
||||
- **Low performer:** Post in 48 hours with an improved approach (different hook type, different time)
|
||||
- **Above band:** Post related content in 48-72 hours to capitalize on visibility
|
||||
- **Within band:** Post in 3-4 days on a different angle of the same topic
|
||||
- **Below band:** Post in 48 hours with an improved approach (different hook type, different time)
|
||||
- **No verdict yet:** Keep the normal cadence — with too little history, changing approach on one post is noise-chasing
|
||||
|
||||
### Content Series Extension
|
||||
If the post is performing well (>75th percentile):
|
||||
If the post reads **above band** against the account's own baseline:
|
||||
- Suggest turning the topic into a 3-part series
|
||||
- Recommend a carousel version of the insights
|
||||
- Propose a "Part 2" post that dives deeper into the most-commented aspect
|
||||
|
||||
## Principles
|
||||
|
||||
1. **Data-driven over gut feeling** — Always reference benchmarks and metrics, not hunches
|
||||
2. **Early intervention beats late reaction** — Golden Hour actions have 5x the impact of Long Tail actions
|
||||
3. **Comments > reactions for algorithm** — One thoughtful comment is worth 15 likes
|
||||
1. **Data-driven over gut feeling** — Reference the measured numbers and the account's own baseline, not hunches and not invented benchmarks
|
||||
2. **Early intervention beats late reaction** — the Golden Hour is the highest-leverage window (directional; no published multiplier — do not quote one)
|
||||
3. **Comments rank above reactions** — the defensible claim is the order (saves > shares > quality comments > reactions), not a comment-to-like ratio
|
||||
4. **Don't game the system** — Authentic engagement only. Pods and bait are detected and penalized
|
||||
5. **Accept underperformance gracefully** — Not every post will be a hit. Learn and iterate.
|
||||
6. **Every post is a data point, not a verdict** — Build the pattern over weeks, not individual posts
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ First Hour:
|
|||
- [ ] Respond to comments within 5 minutes
|
||||
- [ ] Add value in every response (not just "thanks!")
|
||||
- [ ] Ask follow-up questions to deepen conversation
|
||||
- [ ] Target: 15+ engagements in first 60 minutes
|
||||
- [ ] Keep the first 60 minutes active (early engagement unlocks broader distribution — directional, no fixed threshold)
|
||||
- [ ] Check back at 30-min and 60-min marks
|
||||
|
||||
48-Hour Check-In:
|
||||
|
|
|
|||
|
|
@ -63,8 +63,11 @@ Show, in this order:
|
|||
1. **Timeline** (anchored to the real publish time) — what to do at each mark.
|
||||
2. **Targets** — grouped, in priority order, with the 30-minute whale window flagged.
|
||||
3. **Draft comments** — self-comments first, then the CEA replies, each labelled.
|
||||
4. **Velocity checkpoints** — the 5/15/30/60-minute reaction+comment targets, with the
|
||||
"below this = hook/timing issue" warnings, so the user can self-diagnose mid-window.
|
||||
4. **Velocity checkpoints** — the 5/15/30/60–90-minute shape (any movement → a few →
|
||||
building → momentum) with its "if it is well below" diagnostics, so the user can
|
||||
self-diagnose mid-window. These are directional checkpoints, **not numeric targets** —
|
||||
no source publishes a per-minute engagement count, and the comparison that holds is
|
||||
against the account's own recent first hours.
|
||||
|
||||
Auto-copy the self-comments + draft replies to clipboard silently (so they're one paste away):
|
||||
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ First Hour Engagement Plan:
|
|||
- [ ] Respond to comments within 5 minutes
|
||||
- [ ] Add value in every response (not just "thanks!")
|
||||
- [ ] Ask follow-up questions to deepen conversation
|
||||
- [ ] Target: 15+ engagements in first 60 minutes
|
||||
- [ ] Keep the first 60 minutes active (early engagement unlocks broader distribution — directional, no fixed threshold)
|
||||
- [ ] Check back at 30-min and 60-min marks
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ Before they post, remind them:
|
|||
- Respond to every comment immediately
|
||||
- Add value in responses (not just "thanks")
|
||||
- Ask follow-up questions to deepen conversation
|
||||
- Target: 15+ engagements in first hour
|
||||
- Keep the first hour active — early engagement unlocks broader distribution (directional, no fixed threshold)
|
||||
|
||||
**State Update:**
|
||||
After the post is finalized, update state deterministically:
|
||||
|
|
|
|||
|
|
@ -247,7 +247,7 @@ Automatically flag these conditions based on the report data and trend analysis:
|
|||
- 🔴 Format stagnation: Same format used >80% of posts (algorithm favors format variety — see algorithm-signals-reference)
|
||||
- 🟡 Posting time drift: Publishing outside optimal window (Tue-Thu, 7-9 AM CET for Nordic audience — see posting time windows reference)
|
||||
- 🟡 Hook length violation: Posts with hooks >140 chars underperforming (>140 chars truncated on mobile "see more")
|
||||
- 🟢 Engagement velocity improving: First-hour engagement trending up (15+ engagements in first hour unlocks 2nd/3rd degree distribution)
|
||||
- 🟢 Engagement velocity improving: First-hour engagement trending up against the account's own recent first hours (early engagement unlocks broader distribution — directional, no fixed threshold)
|
||||
|
||||
**Surface the alerts the report already computed.** The weekly-report JSON's `alerts[]`
|
||||
is generated by the CLI itself — intra-week anomaly detection across the week's posts
|
||||
|
|
@ -275,7 +275,7 @@ Your engagement rate has dropped from 4.2% to 2.8% over the last 3 weeks.
|
|||
🟢 **Positive: New impression record**
|
||||
Your post on [topic] achieved 12,500 impressions — a personal best!
|
||||
→ **Action:** Analyze what made this post succeed. Consider a follow-up post.
|
||||
→ **Reference:** First-hour velocity of 15+ engagements unlocks broader distribution.
|
||||
→ **Reference:** Strong first-hour velocity unlocks broader distribution — directional, with no published threshold count.
|
||||
|
||||
🟡 **Warning: Format stagnation detected**
|
||||
80%+ of your recent posts are text-only. Documents/carousels are the top organic format and tend to reach further (no reliable multiplier).
|
||||
|
|
|
|||
|
|
@ -255,7 +255,7 @@ Before testing, ensure:
|
|||
3. Agent should ask which post to monitor
|
||||
4. Provide sample metrics: 500 impressions, 15 reactions, 3 comments, 1 repost
|
||||
5. Agent should identify the current phase and provide benchmarks
|
||||
**Expected:** Structured output with metrics snapshot, velocity score, anomaly detection, and recommended actions
|
||||
**Expected:** Structured output with metrics snapshot, a baseline reading (above/within/below band, or an explicit "no verdict — N post(s), 5 required" refusal), anomaly detection, and recommended actions. No composite score.
|
||||
**Validates:** Agent file loads correctly, context loading works, output format matches spec
|
||||
|
||||
### Test 16: Post-Feedback Monitor — Anomaly Detection
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ writeState(content => updateFollowerCount(content, {
|
|||
|
||||
- **Quality Check**: Has content been reviewed against quality scorecard? Hook 110-140 chars, 1,200-1,800 chars total, authentic tone, no external links.
|
||||
- **5x5x5 Engagement**: Before posting, complete 15-20 min pre-posting engagement — 5 people with overlapping audiences, find their recent posts, write 5 thoughtful comments (15+ words each).
|
||||
- **First-Hour Plan**: Respond within 5 minutes to first comments. Add value in responses. Target 15+ engagements in first hour.
|
||||
- **First-Hour Plan**: Respond within 5 minutes to first comments. Add value in responses. Keep the first hour active — early engagement unlocks broader distribution (directional; no fixed threshold).
|
||||
- **Posting Time**: Post when target audience is most active.
|
||||
|
||||
**3. Queue Status Check**
|
||||
|
|
|
|||
|
|
@ -356,7 +356,7 @@ Not all engagement is equal. The defensible spine is the **order**, not a fixed
|
|||
**Key insight:** One save or substantive comment is worth more than many reactions. Focus on content people want to save and share, and cultivate genuine substantive comments. See `references/algorithm-signals-reference.md` (cite, don't restate magnitudes).
|
||||
|
||||
### First Hour Critical
|
||||
- Aim for 15+ engagements in first 60 minutes
|
||||
- Keep the first 60 minutes active — strong early engagement unlocks broader distribution (directional; no published threshold, so measure against your own first hours rather than a fixed count)
|
||||
- Respond quickly to early comments (a 30-minute response tends to earn more follow-up comments — figure unverified)
|
||||
- Seed engagement by notifying key connections
|
||||
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ The defensible **ordering** of engagement signals — **saves > shares > quality
|
|||
**Used in:** `references/algorithm-signals-reference.md`, `references/engagement-frameworks.md`
|
||||
|
||||
### Engagement Velocity
|
||||
Speed of engagement accumulation in the first hour after posting. 15+ engagements in the first hour unlocks Stage 3 distribution. Monitored at 5/15/30/60/90-minute intervals.
|
||||
Speed of engagement accumulation in the first hour after posting. Strong early engagement unlocks broader distribution, but the effect is **directional — there is no published engagement count that flips it** (see `references/algorithm-signals-reference.md`, first-hour velocity). Monitored at 5/15/30/60/90-minute intervals.
|
||||
|
||||
**Used in:** `references/algorithm-signals-reference.md`, `${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/audience-insights/engagement-patterns.md`
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ Engagement isn't what you do after posting -- it's what enables successful posti
|
|||
- Continue responding to all comments
|
||||
- Ask follow-up questions to deepen conversation
|
||||
|
||||
**What 15+ engagements in first hour looks like:**
|
||||
**What an active first hour can look like (illustrative mix, not a threshold):**
|
||||
- 8-10 thoughtful comments
|
||||
- 3-5 shares
|
||||
- 2-3 profile visits with connection requests
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue