ktg-plugin-marketplace/plugins/linkedin-thought-leadership/commands
Kjell Tore Guttormsen 9df3de795c feat(linkedin): v2.4.0 — editorial-reviewer agent + Step 5.5 craft gate in /linkedin:newsletter
Endring 8 from the change spec (Del 4 production, Maskinrommet). The persona
resonance sweep measures reader-response (does it land?); nothing measured prose
craft or narrative architecture (is it well-made?). In Del 4 every persona
reported PASS, yet the editor found 8 fresh editorial points on first reading —
~6/8 craft/architecture blind spots no agent could see. v2.4.0 adds the missing
editor role.

New Step 5.5 (editorial-review) runs between fact-check (Step 5) and the persona
sweep (Step 6): a new editorial-reviewer agent (Opus) judges two axes —
prosa-handverk (em-dash density, verbatim repetition, postulated numbers,
contradictions, versal-tic) + narrativ-arkitektur (concrete instantiation,
theory-anchored hypotheses, series-title symmetry, equal action per addressee,
un-overloaded conclusion). Returns <=10 flags as direction (never copy), each
BLOCK/REWORK/NICE, operator-gated via SendUserFile. Runs before the persona
sweep so the personas measure resonance instead of stumbling on craft noise.
Mirrors the Maskinrommet writing-contract section C2 (bidirectional mirror rule).

- agents/editorial-reviewer.md (NEW, Opus, orange) + fasit fixture
  (editorial-reviewer-cases.md: Del 4 v5 gold standard, 8 points -> 2 axes +
  severities, 3 BLOCK / 5 REWORK, 6/8 blind spots) + structural lint (7 tests).
- Step 5.5 wired into commands/newsletter.md; pipeline 14 -> 15 phases.
- editorial-review phase + additive editorialReview state in
  config/edition-state.template.json; resumption: factcheck-sweep -> Step 5.5,
  editorial-review -> Step 6 (spec said fact-check; canonical key is
  factcheck-sweep).
- persona-reviewer contract unchanged: editorial-reviewer is supplementary
  (one measures craft, one measures response).
- All doc levels synced (plugin + root README/CLAUDE.md, CHANGELOG, plugin.json
  2.3.0 -> 2.4.0; agents 15 -> 16). 94 tests green.

Acceptance-criterion #8 (live run on Del 4 v5) delivered as fasit fixture:
a live run needs a session reload (new agent not invokable until then) + read
access to the Del 4 v5 draft in Maskinrommet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 06:17:50 +02:00
..
ab-test.md feat(linkedin-thought-leadership): v1.0.0 — initial open-source import 2026-04-07 22:09:03 +02:00
analyze.md refactor(linkedin): absorb authority into strategy + profile canon (S18) 2026-05-28 06:01:43 +02:00
audit.md refactor(linkedin): absorb authority into strategy + profile canon (S18) 2026-05-28 06:01:43 +02:00
batch.md refactor(linkedin): merge publish into calendar — reconcile hook refs (S16) 2026-05-28 05:27:36 +02:00
calendar.md refactor(linkedin): merge publish into calendar — reconcile hook refs (S16) 2026-05-28 05:27:36 +02:00
carousel.md feat(linkedin): integrate state-updater.mjs across all commands and hooks 2026-04-11 00:42:17 +02:00
competitive.md feat(linkedin-thought-leadership): v1.0.0 — initial open-source import 2026-04-07 22:09:03 +02:00
first-post.md feat(linkedin): integrate state-updater.mjs across all commands and hooks 2026-04-11 00:42:17 +02:00
import.md chore(linkedin): v2.0.0 — import trim, router gating, full doc pass (S20) 2026-05-28 06:53:55 +02:00
linkedin.md chore(linkedin): v2.0.0 — import trim, router gating, full doc pass (S20) 2026-05-28 06:53:55 +02:00
monetize.md feat(linkedin-thought-leadership): v1.0.0 — initial open-source import 2026-04-07 22:09:03 +02:00
multiplatform.md refactor(linkedin): single newsletter entry + skill trigger + router row (S11) 2026-05-27 22:08:16 +02:00
newsletter.md feat(linkedin): v2.4.0 — editorial-reviewer agent + Step 5.5 craft gate in /linkedin:newsletter 2026-05-29 06:17:50 +02:00
onboarding.md feat(linkedin): progressive onboarding — hide score until 3+ posts, suppress voice guardian noise 2026-04-11 00:50:18 +02:00
outreach.md refactor(linkedin): merge collab + speaking into outreach (S17) 2026-05-28 05:41:09 +02:00
pipeline.md feat(linkedin): integrate state-updater.mjs across all commands and hooks 2026-04-11 00:42:17 +02:00
post.md feat(linkedin): integrate state-updater.mjs across all commands and hooks 2026-04-11 00:42:17 +02:00
profile.md feat(linkedin-thought-leadership): v1.0.0 — initial open-source import 2026-04-07 22:09:03 +02:00
quick.md refactor(linkedin): merge templates into quick (S15) 2026-05-28 00:07:09 +02:00
react.md feat(linkedin): integrate state-updater.mjs across all commands and hooks 2026-04-11 00:42:17 +02:00
report.md feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00
setup.md feat(linkedin-thought-leadership): v1.0.0 — initial open-source import 2026-04-07 22:09:03 +02:00
strategy.md refactor(linkedin): absorb authority into strategy + profile canon (S18) 2026-05-28 06:01:43 +02:00
video.md feat(linkedin): integrate state-updater.mjs across all commands and hooks 2026-04-11 00:42:17 +02:00