From 95b1521ae541060f22acc2393018884b8c22e7f1 Mon Sep 17 00:00:00 2001 From: Kjell Tore Guttormsen Date: Fri, 17 Jul 2026 03:39:12 +0200 Subject: [PATCH] =?UTF-8?q?chore(linkedin-studio):=20release=20v0.6.0=20?= =?UTF-8?q?=E2=80=94=20figur-pipeline=20(MR-F4/MR-F8)=20+=20RE-R3=20+=20OK?= =?UTF-8?q?F=20Stage=201=20+=20kald-review=2029/29=20+=20sannhetspass?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Versjonssync plugin.json + CLAUDE.md-header + README-badge -> 0.6.0. CHANGELOG [0.6.0]-catchup: 28 commits siden v0.5.3-taggen (git log som fasit) + catch-up-note for aldri-changelogget arbeid inne i eldre tags (Fix #1 contract-gate + Fix #2 specifics-bank i v0.5.1; SB-S3a-e + RE-R1-R2b i v0.5.3). Suiter groenne paa fasit-gulv: test-runner 138/0, trends 245/0, brain 134/0, hooks 140/0, tests 35/0, render 60/0. Co-Authored-By: Claude Fable 5 Claude-Session: df0a1ca3-78dd-455e-99a2-e7c133fcb5f6 --- .claude-plugin/plugin.json | 2 +- CHANGELOG.md | 37 +++++++++++++++++++++++++++++++++++++ CLAUDE.md | 4 ++-- README.md | 2 +- 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 273851e..9dea233 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "linkedin-studio", - "version": "0.5.3", + "version": "0.6.0", "description": "LinkedIn Studio — full-spectrum LinkedIn content engine: feed posts, carousels, video scripts, and long-form newsletter editions, with the 2026 relevance-ranking model baked in. v4.0.0 is an audit-remediation release (Voyage Phase 0–3): every user-facing claim is made honest or removed, all 11 previously-orphaned agents are wired (→ 19 agents), a `/linkedin:firsthour` post-publish command is added (→ 27 commands), the algorithm-signal claims are reconciled to one sourced statement (no unpublishable model name or date), short-form de-AI and video quality gates are added, and the structure lint is rebuilt to guard the real layout plus version/count/stat consistency. Breaking: the newly-wired agents register only on reinstall/reload, and this consolidates the v3.0.0 identity break (slug, agent namespace `linkedin-studio:`, state-file path `~/.claude/linkedin-studio.local.md`). v3.1.0 added the cold adversarial review package (`/linkedin:headless-review` + Step 6.5 + `/linkedin:pivot` + per-artifact personas); the `/linkedin:*` commands are unchanged. v4.1.0 adds a journey layer: two guided front-doors (`/linkedin:create`, `/linkedin:measure`) plus a router re-tiered into five journeys (Start · Create · Engage · Measure · Grow), with the 27 existing commands kept as the execution tier (→ 29 commands; additive, reload registers the two new commands).", "author": { "name": "Kjell Tore Guttormsen" diff --git a/CHANGELOG.md b/CHANGELOG.md index cb13551..4a30b43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,43 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.6.0] - 2026-07-17 + +**Catch-up release.** Everything since the v0.5.3 tag ships here (28 commits, `git log --oneline v0.5.3..HEAD` is the source of truth), and the sections below also document work that shipped **inside** earlier tags but was never changelogged (see the catch-up note at the end). + +### Added — figure pipeline (MR-F4/MR-F8) + +- **`render/build-figur.mjs`** — coded data figures: SVG/HTML → PNG via headless Chrome; three targets (article 1200px wide with content-driven height / carousel 1080×1350 / single 1200×1200); brand tokens from the user data dir's `profile/brand-tokens.json` with neutral defaults (token-seam); Chrome-hang watchdog. Standalone CLI + importable module; 33 tests. (`c4434ed`) +- **`/linkedin:newsletter` Step 7.5 — three figure routes** with the coded route PRIMARY for data figures, plus new **`references/figure-design-guidelines.md`** (reference docs 27 → 28). (`1a67bd2`) +- **`render/build-html.mjs` parser reconciliation** — multi-line blockquotes (blank `>` line = new `

` in the same quote), `[text](url)` links with an http/https/mailto scheme-whitelist, and the `**[FIGUR N — «…»]**` marker → inline SVG from `figurer/figN*.svg` with figcaption (fallback: plain blockquote) + CSS for all three. Byte-identical parser parity with the upstream engine proven by fixture; the import-safe `main()` CLI-guard is kept. 7 new tests. (`8151029`) + +### Added — research engine RE-R3a–e + +- **R3a** — persist the relevance score on the store record + rank the morning brief on it. (`e169c78`) +- **R3b** — trend lifecycle: re-score on re-capture, status, seen-log. (`b185db9`) +- **R3c** — autonomous trigger: scheduler + headless entry. (`3276e44`) +- **R3d** — temporal overlay: first-mover + saturation. (`2a8459c`) +- **R3e** — brief history + day-over-day diff (frontmatter + "Nytt siden sist"). (`5b51b4b`) + +### Added — OKF Stage 1 + +- The brain store emits an **OKF-compatible bundle** (`brain/` as bundle, `ingest/` excluded; title/description + typed pending-diff). (`9e95222`, `e9e183e`) + +### Fixed + +- **Oppgave 1 fix-pass** (from independent cold-review): clipboard heredoc, report refs, calendar queue fields. (`882f6ee`) +- **Prune-regex no-op** in state-updater + date-independent calendar fixtures (flake). (`776d728`) + +### Docs + +- **Independent cold-review complete — 29/29 surfaces** (R2a Create emitters, R2b Create orchestrators, R3 Engage, R4 Measure, R5 Grow + Router; `docs/hardening/review*.md`). (`5474df5`…`4fd038a`) +- **Truth-pass (this release):** README maturity note + badges (hardening 29/29 + cold-review 29/29; what remains for 1.0.0 is a GUI); CLAUDE.md maturity line + Architecture entries for specifics-bank and contract-gate; **GR-model correction** in `references/algorithm-signals-reference.md` — LinkedIn's ranking model has an official primary-source name, the **Generative Recommender (GR)**, announced 2026-03-12 on LinkedIn's engineering blog (the earlier "likely fabricated" flag rejected a genuine primary source and is retracted in a correction note); **saves-API rationale** updated (Marketing API v202604 exposes `POST_SAVE` on `/memberCreatorPostAnalytics`, partner-gated — manual entry remains the right UX); hardening queue table caught up through S31a/b/c; second-brain architecture header caught up through SB-S3a–e. Plus maturity-status correction (`001d76c`), CLAUDE.md trim (−2,266 always-loaded tokens, `9567689`), ingestion-guard adoption plan (`d67552e`). + +### Catch-up note — work that shipped inside earlier tags, never changelogged + +- **Inside v0.5.1:** **Fix #1 — contract-gate** (`scripts/contract-gate/`, deterministic §B/§C1 rule-gate, `/linkedin:newsletter` Step 4.5) and **Fix #2 — specifics-bank / lived-specifics** (`scripts/specifics-bank/` store + per-edition binding + Step 1.5 elicitation, slices 1–3). Together these took the newsletter pipeline 16 → 18 phases. +- **Inside v0.5.3:** **SB-S3a–e** (profile.md reader-wiring, supersede arm, cross-silo id-threading, operations.md ops centre, content-history retirement + read-side reconcile) and **RE-R1–R2b** (item-schema + triage-scorer as tested code; item→store capture bridge with lossless schema v1→v2 migration; dated morning-brief artifact + session-start surfacing). + ## [0.5.3] - 2026-06-24 ### Changed — registration hygiene: agent fasit fixtures moved out of `agents/` diff --git a/CLAUDE.md b/CLAUDE.md index 19bb454..27dfc82 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,6 +1,6 @@ -# LinkedIn Studio Plugin (v0.5.3) +# LinkedIn Studio Plugin (v0.6.0) -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`. +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.6.0: 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 diff --git a/README.md b/README.md index 7ebacc8..ddb7d4a 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ *AI-generated: all code produced by Claude Code through dialog-driven development. [Full disclosure →](../../README.md#ai-generated-code-disclosure)* -![Version](https://img.shields.io/badge/version-0.5.3-blue) +![Version](https://img.shields.io/badge/version-0.6.0-blue) ![Platform](https://img.shields.io/badge/platform-Claude_Code_Plugin-purple) ![Commands](https://img.shields.io/badge/commands-29-green) ![Agents](https://img.shields.io/badge/agents-19-orange)