chore(linkedin): v2.0.0 — import trim, router gating, full doc pass (S20)
This commit is contained in:
parent
930836597e
commit
8de481399e
12 changed files with 146 additions and 108 deletions
|
|
@ -5,6 +5,57 @@ 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).
|
||||
|
||||
## [2.0.0] - 2026-05-28
|
||||
|
||||
### Summary
|
||||
Full-spectrum LinkedIn content engine — short-form feed posts AND long-form newsletter editions in one cohesive surface, with net-fewer commands and net-stronger pipeline. Built across 21 Voyage sessions (S1..S20+S1a) with 1 step = 1 session discipline. Locked decisions A–H in `docs/voyage-build-brief.md` §3.
|
||||
|
||||
### Added
|
||||
- **`/linkedin:newsletter`** — long-form orchestrator command. Multi-session pipeline: load → calibrate → research fan-out → draft → consistency/quality → fact-check sweep → persona sweep → annotate → lock → delivery → hook-gate → schedule. Maintained `edition-state.json` across sessions. Supports newsletter editions, essays, and series articles
|
||||
- **`/linkedin:outreach`** — outreach orchestrator (absorbed `/linkedin:collab` and `/linkedin:speaking`). Covers collaborations, partner pitches, and CFPs/speaking opportunities in one surface
|
||||
- **`agents/fact-checker.md`** (Opus, brown) — verifies every factual claim in long-form drafts against primary sources. Outputs 🟢/🔴/🟡 verdicts per claim. Runs BEFORE lock
|
||||
- **`agents/persona-reviewer.md`** (Opus, olive) — evaluates reader-persona resonance + hook-conversion gate. Two modes: per-persona deep review, multi-persona scoreboard. Runs BEFORE lock
|
||||
- **`render/` pipeline migrated in-plugin** — `build-html.mjs`, `build-pdf.mjs`, `build-linkedin.mjs`, `build-carousel.mjs`. Self-hosted fonts (Newsreader, Inter, JetBrains Mono) under OFL-1.1 with `render/OFL.txt`. WeasyPrint degradation: missing binary → skip-signal, not throw
|
||||
- **`config/personas.template.md`** — reader persona library. Knowledge level, time-pressure, resonance criteria per persona. Consumed by `persona-reviewer`
|
||||
- **`config/edition-state.template.json`** — schema for long-form edition state across sessions
|
||||
- **`references/longform-quality-rules.md`** — quality bar specific to long-form (different from short-form rules)
|
||||
- **Router gating** — `/linkedin:monetize` and `/linkedin:outreach` surface "unlocks at ~1K followers" guidance and point sub-1K users at `/linkedin:strategy` first
|
||||
- **`docs/agents-capability-matrix.md`** — single source of truth for which agent owns which capability. Pipeline diagram + intent table + model tier table
|
||||
|
||||
### Changed
|
||||
- **Agent merges (16 → 14):**
|
||||
- `performance-reporter` → `analytics-interpreter` (interpret + report modes, same data sources, mode-selector by trigger phrase)
|
||||
- `comment-strategist` → `engagement-coach` (5x5x5 + first-hour + CEA method + target scoring + daily routine + comment quality scorecard; upgraded haiku → sonnet since the agent now handles deeper work)
|
||||
- `content-tracker` → absorbed by `state-updater.mjs` + `analytics-interpreter`
|
||||
- `personalization-scorer` → absorbed by `personalization-score.mjs` (deterministic, no AI)
|
||||
- **Command merges (27 → 24):**
|
||||
- `/linkedin:templates` → mode in `/linkedin:quick` (8 post-type templates)
|
||||
- `/linkedin:publish` → action in `/linkedin:calendar` (mark scheduled posts as published)
|
||||
- `/linkedin:authority` → absorbed into `/linkedin:strategy` (canon for authority building, trajectory dedup)
|
||||
- `/linkedin:collab` + `/linkedin:speaking` → `/linkedin:outreach`
|
||||
- **`/linkedin:import` Step 6 analysis** — delegated to `/linkedin:report` (both consume the same `trends` CLI; no more duplicated analysis pipeline)
|
||||
- **`commands/linkedin.md` router** — newsletter row added, removed-command rows pruned, gating-rule paragraph for monetize/outreach
|
||||
- **All 6 skill catalogs** reconciled — `linkedin-content-creation`, `linkedin-analytics`, `linkedin-strategy`, `linkedin-networking`, `linkedin-thought-leadership`, `linkedin-voice` all reflect the v2.0.0 command/agent set
|
||||
|
||||
### Removed
|
||||
- `commands/templates.md` (absorbed into `commands/quick.md`)
|
||||
- `commands/publish.md` (absorbed into `commands/calendar.md`)
|
||||
- `commands/authority.md` (absorbed into `commands/strategy.md`)
|
||||
- `commands/collab.md` (absorbed into `commands/outreach.md`)
|
||||
- `commands/speaking.md` (absorbed into `commands/outreach.md`)
|
||||
- `agents/content-tracker.md`
|
||||
- `agents/personalization-scorer.md`
|
||||
- `agents/performance-reporter.md`
|
||||
- `agents/comment-strategist.md`
|
||||
|
||||
### Fixed
|
||||
- `references/glossary.md` "Authority Score" entry — corrected stale ref to `commands/authority.md` (removed) → `commands/strategy.md` (canon)
|
||||
- `scripts/test-runner.sh` `EXPECTED_AGENTS` list — reconciled to 14 agents
|
||||
|
||||
### Migration notes
|
||||
- Plugin remains fully backward-compatible from a user-perspective: removed commands now route to their absorbing command via `commands/linkedin.md`
|
||||
- v1.x users who had `commands/templates.md` etc. in muscle memory will be auto-redirected by the router
|
||||
|
||||
## [1.2.0] - 2026-04-11
|
||||
|
||||
### Summary
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue