docs(linkedin-studio): N4 sannhetspass — GR-modellkorreksjon + maturity/saves/kø/SB-header + refs-badge 28
Del 1 (RE-verifisert mot ground truth): README maturity-note (herding 29/29 + kald-review 29/29; gjenstår = GUI), CLAUDE.md maturity-linje (B-F10), hardening-plan-køen t.o.m. S31a/b/c, second-brain-header (SB-S3a-e landet, kun S4 gjenstår). Del 2: D-1 BLOCKER — algorithm-signals GR-seksjonen omskrevet mot primærkilde (LinkedIn engineering-blogg 2026-03-12, Hristo Danchev: Generative Recommender (GR) offisielt navn + LLM-retrieval + utrulling annonsert); fabrikasjonsflagget avviste en ekte primærkilde og er trukket med korreksjonsnote; 360Brew-skepsis beholdt. D-2 — saves-begrunnelse: Marketing API v202604 har POST_SAVE på /memberCreatorPostAnalytics (partner-gated; manuell inntasting forblir riktig UX). B-F11 — README refs-badge 26->28 + 25-document->28-document (ls references/*.md = 28). CLAUDE.md Architecture faar specifics-bank + contract-gate-linjer. CHANGELOG-catchup kommer i release-committen (0.6.0) for aa holde versjonsdeklarasjonene konsistente per commit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: df0a1ca3-78dd-455e-99a2-e7c133fcb5f6
This commit is contained in:
parent
81510297db
commit
5c6393f2f7
5 changed files with 32 additions and 15 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# LinkedIn Studio Plugin (v0.5.3)
|
||||
|
||||
Full-spectrum LinkedIn content engine — short-form feed posts, carousels, video scripts, and long-form newsletter editions — with the 2026 relevance-ranking model baked in. Maturity v0.5.3: M0 (per-user data dir `${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/`, idempotent session-start migration — see `references/data-path-convention.md`) complete; all 29 command surfaces through the interactive quality-gate (`docs/hardening/log.md`). Remaining for v1.0.0: a GUI + independent cold-review coverage (the `/trekreview` artifact `docs/hardening/review.md` persists for S1 only — see `docs/hardening/plan.md`). Version history → `CHANGELOG.md`.
|
||||
Full-spectrum LinkedIn content engine — short-form feed posts, carousels, video scripts, and long-form newsletter editions — with the 2026 relevance-ranking model baked in. Maturity v0.5.3: M0 (per-user data dir `${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/`, idempotent session-start migration — see `references/data-path-convention.md`) complete; all 29 command surfaces through the interactive quality-gate (`docs/hardening/log.md`) AND through independent cold-review (29/29, R2a–R5 — `docs/hardening/review*.md`). Remaining for v1.0.0: a GUI. Version history → `CHANGELOG.md`.
|
||||
|
||||
## Architecture
|
||||
|
||||
|
|
@ -11,7 +11,9 @@ Full-spectrum LinkedIn content engine — short-form feed posts, carousels, vide
|
|||
- **Figure renderer:** `render/build-figur.mjs` — coded data figures (SVG/HTML → PNG via headless Chrome); three targets (article/carousel/single); brand tokens from the user data dir's `profile/brand-tokens.json`, neutral defaults otherwise (see `references/figure-design-guidelines.md`). Standalone CLI + importable module
|
||||
- **Post queue:** `assets/drafts/queue.json` (managed by `hooks/scripts/queue-manager.mjs`)
|
||||
- **Analytics:** CLI `scripts/analytics/` (TypeScript, needs `tsx` + `npm install`); data `assets/analytics/` (gitignored)
|
||||
- **Analytics metrics (S16):** parsed CSV columns + an optional, manually-entered `saves` count (count-only in native LinkedIn analytics since ~Sept 2025, no CSV export / no API). `parseOptionalCount()`: blank / non-numeric / negative → `undefined` (`unknown`, never 0), a genuine `0` is kept; saves surfaced per-post + as `totalSaves`, but **not** folded into `engagementRate`. `dwell` stays **explicitly unmeasurable** (internal to LinkedIn, no export/API). All analytics I/O routes through the `getAnalyticsRoot()` seam (M0 per-user data-dir).
|
||||
- **Specifics-bank:** `scripts/specifics-bank/` (TypeScript, needs `tsx` + `npm install`) — deterministic, topic-tagged store of the operator's lived specifics (real numbers, named cases, held opinions) in the per-user data dir; elicited/bound by `/linkedin:newsletter` Step 1.5 so drafts draw from real inventory, never invented filler
|
||||
- **Contract-gate:** `scripts/contract-gate/` (TypeScript, needs `tsx` + `npm install`) — deterministic §B/§C1 rule-gate on the full draft (`/linkedin:newsletter` Step 4.5, before the AI sweeps); ratifies `rules.ts` against the edition's §E-manifest, then gates with BLOCK/WARN
|
||||
- **Analytics metrics (S16):** parsed CSV columns + an optional, manually-entered `saves` count (count-only in native LinkedIn analytics since ~Sept 2025, no CSV export; the Marketing API exposes `POST_SAVE` on `/memberCreatorPostAnalytics` from v202604, but access is partner-gated — so manual entry remains the right UX). `parseOptionalCount()`: blank / non-numeric / negative → `undefined` (`unknown`, never 0), a genuine `0` is kept; saves surfaced per-post + as `totalSaves`, but **not** folded into `engagementRate`. `dwell` stays **explicitly unmeasurable** (internal to LinkedIn, no export/API). All analytics I/O routes through the `getAnalyticsRoot()` seam (M0 per-user data-dir).
|
||||
|
||||
## Hooks
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
Most experts know they *should* post on LinkedIn — and quietly don't. The blank editor wins. LinkedIn Studio turns that chore into a system: structured workflows that take you from idea to published, in your own voice, calibrated to how LinkedIn's **topic-relevance** ranking model (2026) actually distributes content. Two engines under one surface — a **feed engine** for short-form posts, carousels, and video scripts, and a **long-form engine** that runs newsletter editions and essays through a serious editorial pipeline before they ever lock.
|
||||
|
|
@ -22,7 +22,7 @@ This is not a shortcut. Hand the wheel to the AI and you land where everyone who
|
|||
> New here? Run `/linkedin:onboarding` — it walks you through profile optimization, personalization, and your first published post in one guided flow (~10 minutes).
|
||||
|
||||
> [!NOTE]
|
||||
> **Pre-1.0 (v0.5.0).** The earlier 1.0.0–4.1.0 numbering reflected ambition, not maturity. Honest about where it stands today: the **architecture workstream (M0) is done** — user data now lives in a per-user data dir *outside* the plugin, with automatic migration — but no command has been through a hardening gate, command testing is incomplete, and there is no GUI yet. See [CHANGELOG.md](CHANGELOG.md).
|
||||
> **Pre-1.0.** The earlier 1.0.0–4.1.0 numbering reflected ambition, not maturity. Honest about where it stands today: the **architecture workstream (M0) is done** — user data lives in a per-user data dir *outside* the plugin, with automatic migration — and all **29 command surfaces have passed both the interactive hardening gate (29/29) and independent cold-review (29/29)**. What remains for 1.0.0 is a GUI. See [CHANGELOG.md](CHANGELOG.md).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -245,7 +245,7 @@ The README is the front door. The detail lives alongside it:
|
|||
| For… | See |
|
||||
|------|-----|
|
||||
| Architecture — agent pipeline & selection, 9 hooks, 6 skills, personalization scoring, configuration, analytics internals | [CLAUDE.md](CLAUDE.md) |
|
||||
| The 25-document knowledge base (algorithm signals, angles, frameworks, strategy guides) | [`references/`](references/) |
|
||||
| The 28-document knowledge base (algorithm signals, angles, frameworks, strategy guides) | [`references/`](references/) |
|
||||
| Full version history and known gaps | [CHANGELOG.md](CHANGELOG.md) |
|
||||
| Maintenance model, fork-and-own, what upstream provides | [GOVERNANCE.md](GOVERNANCE.md) |
|
||||
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ that exercises the command's real path:
|
|||
| S7 batch | S14 import | S21 monetize | S28 ref-consistency B |
|
||||
| S8 pipeline | S15 report | S22 outreach | S29 terminology-scrub |
|
||||
| | | | S30 magnitude-scrub |
|
||||
| | | | S31a/b/c multiplier-scrub |
|
||||
|
||||
*S9 newsletter (16-phase) may split into S9a/S9b. Otherwise one command = one session.
|
||||
|
||||
|
|
@ -135,7 +136,9 @@ carries ~45% *correlational engagement gap* at medium confidence, not a 55% reac
|
|||
intact (officially confirmed, high confidence): engagement-pod + AI-slop "penalized" framing.** Full grep
|
||||
catalog in `log.md` S27 entry, Bucket D. Same discipline; hardening-class.
|
||||
|
||||
Run after S26; order adjustable (S27 ✅ → S28 → S29 → S30). These edit already-hardened files surgically and
|
||||
Run after S26; order adjustable (S27 ✅ → S28 ✅ → S29a–e ✅ → S30 ✅ → S31a/b/c ✅ — queue complete, see `log.md`;
|
||||
S31 was cataloged during S30 as the "Nx"-multiplier + descriptive-% class, amendment followed in practice).
|
||||
These edit already-hardened files surgically and
|
||||
are hardening-class (commit local, no push).
|
||||
|
||||
## End-of-session ritual (every session — STATE.md handoff baked in)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Second Brain — Architecture Design
|
||||
|
||||
> **Status:** architecture **approved by operator 2026-06-23**. **SB-S0 (Foundation) + SB-S1 (Ingest + gold signal) + SB-S2 (Evolution loop) landed 2026-06-23** (`scripts/brain/`, 82 tests, gate-wired; ingest CLI + published-only invariant + operator-gated consolidation loop + session-start nudge); S3–S4 remain design-phase.
|
||||
> **Status:** architecture **approved by operator 2026-06-23**. **SB-S0 (Foundation) + SB-S1 (Ingest + gold signal) + SB-S2 (Evolution loop) landed 2026-06-23** (`scripts/brain/`, 82 tests, gate-wired; ingest CLI + published-only invariant + operator-gated consolidation loop + session-start nudge). **SB-S3a–e landed 2026-06-24** (profile.md reader-wiring, supersede arm, cross-silo id-threading, operations.md ops centre, content-history retirement + read-side reconcile); only S4 (connector) remains design-phase.
|
||||
> **Boundary (confirmed 2026-06-23):** the **engine** (store schema · evolution loop · ingest seam) → **the plugin** (domain-general, shareable); the **user's data** (posts · articles · newsletters · plans · ideas) → the **per-user data dir** (`${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/`, survives reinstall); the **personal cockpit** (the operator's day-to-day operations centre) → **Maskinrommet** (a thin layer that reads/writes *through* the plugin's store, never a fork of the engine).
|
||||
> **Research inputs (three parallel threads, 2026-06-23):** `research/connector-egress.md` · `research/secondbrain-sota.md` · `research/silo-inventory.md`.
|
||||
|
||||
|
|
|
|||
|
|
@ -113,14 +113,25 @@ improves writing); do not justify it as "reduces reach."
|
|||
|
||||
## The deployed ranking model — what we can and cannot say
|
||||
|
||||
> **An LLM-based relevance-ranking system is live on LinkedIn in 2026.**
|
||||
> **No public name. No deployment date.**
|
||||
> **LinkedIn's feed ranking model has an official name: the Generative Recommender (GR).**
|
||||
> Announced 2026-03-12 on LinkedIn's engineering blog (Hristo Danchev,
|
||||
> [Engineering the next generation of LinkedIn's feed](https://www.linkedin.com/blog/engineering/feed/engineering-the-next-generation-of-linkedins-feed)):
|
||||
> a sequential transformer-based ranker that treats member interaction history as a
|
||||
> timeline, paired with a unified LLM-embedding retrieval system. Rollout announced in
|
||||
> the same post.
|
||||
|
||||
| Claim | Statement | Source | Confidence |
|
||||
|-------|-----------|--------|------------|
|
||||
| A live LLM relevance system exists | Confirmed in direction by LinkedIn's 2026 communications. | LinkedIn comms (2026) | high |
|
||||
| Production name | **Not publishable as fact.** The most-cited arXiv paper (2501.16450) is a Jan-**2025** *pre-production research* model (V1.0, 150B params, offline parity only), **withdrawn 2025-08-23**. A circulating "Generative Recommender / Hristo Danchev" engineering-post citation was independently flagged as **likely fabricated** — do not propagate. | arXiv 2501.16450; Gemini provenance flag | high (on the negative claim) |
|
||||
| Deployment date | No primary source. The "early-2026" date is third-party extrapolation from the paper's Jan-**2025** date. **Do not assert a date.** | — | n/a |
|
||||
| Production name | **Generative Recommender (GR)** — official, primary-source. | LinkedIn engineering blog, 2026-03-12 | high |
|
||||
| LLM-based retrieval | Confirmed: "a unified retrieval system leveraging advances in LLMs to generate a high-quality representation of our members and content." | Same post | high |
|
||||
| Deployment | Rollout announced 2026-03-12 ("rolling out a new advanced ranking system"). Full-coverage completion date not stated — do not assert one. | Same post | high (announcement), n/a (completion) |
|
||||
| "360Brew" as the production name | **Still not publishable.** The arXiv paper (2501.16450) is a Jan-**2025** *pre-production research* model (V1.0, 150B params, offline parity only), **withdrawn 2025-08-23**; the "360Brew" label is third-party and has no official confirmation. GR is the official name. | arXiv 2501.16450 | high (on the negative claim) |
|
||||
|
||||
*Correction note (2026-07-17): this section previously said "No public name. No
|
||||
deployment date." and flagged the Generative Recommender / Hristo Danchev
|
||||
engineering-post citation as likely fabricated. That flag was wrong — and was already
|
||||
wrong at "Last updated 2026-05": the official post had been live since 2026-03-12,
|
||||
two months earlier. The fabrication flag rejected a genuine primary source.*
|
||||
|
||||
## Operational heuristics (directional — test per account)
|
||||
|
||||
|
|
@ -177,10 +188,11 @@ source.)
|
|||
|
||||
---
|
||||
|
||||
*Last updated: 2026-05. Maintained as the single canonical algorithm statement; cite, do
|
||||
not restate.*
|
||||
*Last updated: 2026-07-17 (GR-model correction). Maintained as the single canonical
|
||||
algorithm statement; cite, do not restate.*
|
||||
|
||||
*Sources (per-claim quality/confidence noted inline): arXiv 2501.16450 (pre-production
|
||||
*Sources (per-claim quality/confidence noted inline): LinkedIn Engineering — "Engineering
|
||||
the next generation of LinkedIn's feed" (Hristo Danchev, 2026-03-12); arXiv 2501.16450 (pre-production
|
||||
research paper, withdrawn 2025-08-23); LinkedIn Engineering — "Leveraging Dwell Time" (2024); Tim Jurka, Head of Feed
|
||||
AI (2025-08-11); Laura Lorenzetti, VP & Exec Editor (2026-05-19); Gyanda Sachdeva, VP
|
||||
Product (2026-02-16); Matt Navarra relaying LinkedIn Sr. Director Product (Aug 2025);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue