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:
Kjell Tore Guttormsen 2026-07-31 18:29:27 +02:00
commit 8c91c409cd
12 changed files with 189 additions and 118 deletions

View file

@ -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
```

View file

@ -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 1530 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 1530 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 lowhigh** — 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 YZ%, 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 6090 min, and the first 1530 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 AB, 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 AB%, 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

View file

@ -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:

View file

@ -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/6090-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):

View file

@ -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
```

View file

@ -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:

View file

@ -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).

View file

@ -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

View file

@ -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**

View file

@ -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

View file

@ -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`

View file

@ -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