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
65 lines
3.2 KiB
Markdown
65 lines
3.2 KiB
Markdown
Before ending this LinkedIn content session, do two things:
|
|
|
|
**1. Update State File**
|
|
If a post was created or finalized in this session, use the state-updater script:
|
|
```bash
|
|
node --input-type=module -e "
|
|
import { writeState, updatePostTracking } from '${CLAUDE_PLUGIN_ROOT}/hooks/scripts/state-updater.mjs';
|
|
writeState(content => updatePostTracking(content, {
|
|
postDate: 'YYYY-MM-DD',
|
|
postTopic: 'topic_area',
|
|
hookText: 'First 60 chars of hook...',
|
|
charCount: NNNN,
|
|
format: 'post'
|
|
}));
|
|
"
|
|
```
|
|
Replace the placeholder values with actual post data from this session.
|
|
|
|
If the user mentioned or updated their follower count during this session:
|
|
```bash
|
|
node --input-type=module -e "
|
|
import { writeState, updateFollowerCount } from '${CLAUDE_PLUGIN_ROOT}/hooks/scripts/state-updater.mjs';
|
|
writeState(content => updateFollowerCount(content, {
|
|
count: NNNN,
|
|
month: 'YYYY-MM'
|
|
}));
|
|
"
|
|
```
|
|
|
|
- Clear `next_planned_topic` if it was used, or set it to the next suggested topic
|
|
- If analytics data was imported in this session, set `last_import_date` to today (YYYY-MM-DD) and `last_import_week` to current ISO week (YYYY-WXX)
|
|
|
|
**2. Pre-Publish Reminders** (only if a post was created)
|
|
|
|
- **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. 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**
|
|
|
|
If posts were added to the queue during this session (`${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/drafts/queue.json` was modified):
|
|
- Confirm how many posts were queued and their scheduled dates
|
|
- Remind: "View your full schedule with /linkedin:calendar"
|
|
|
|
If a scheduled post was published during this session:
|
|
- Verify it was marked as published in queue.json (status = "published")
|
|
- If not, remind: "Run /linkedin:calendar to mark the post as published and update queue status"
|
|
|
|
Provide reminders naturally based on what was done in the session. If no LinkedIn content was created, skip the reminders and just ensure state is consistent.
|
|
|
|
**4. Voice Sample Collection** (if a post was created)
|
|
|
|
If a LinkedIn post was created or finalized in this session, save the full post text as a voice sample:
|
|
|
|
- Read the full post text from the draft that was just created
|
|
- Check if `${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/voice-samples/authentic-voice-samples.md` exists
|
|
- Append the full post to the `## Collected Post Samples` section:
|
|
```
|
|
### [YYYY-MM-DD] — [post type] ([char count] chars)
|
|
[Full post text exactly as written]
|
|
```
|
|
- **Ask the user for confirmation** before writing: "I'll save this post as a voice sample for drift detection. OK?"
|
|
- This builds the voice sample library that enables automatic drift scoring (needs 5+ samples for reliable scoring)
|
|
- The more samples collected, the more accurate the voice-trainer's drift detection becomes
|