feat(linkedin-studio): S14 — journey layer (create/measure front-doors + 5-journey router), v4.1.0

14a's cold command-rationalization found ZERO redundancy across the 27 commands
(no defensible merge/cut), so the operator reframed S14 from "merge/cut" to
"add a journey layer over the kept atomics".

- Add /linkedin:create + /linkedin:measure — delegate-only guided front-doors
  (Read/Glob/AskUserQuestion only; route to the command that owns the work)
- Re-tier commands/linkedin.md into 5 journeys (Start/Create/Engage/Measure/Grow);
  onboarding/strategy elevated as Start/Grow front-doors; Engage = calendar+firsthour tier
- 14a honesty nits: router now lists firsthour; calendar cross-links to firsthour;
  competitive confirmed UNGATED (the claimed 1K-gating inconsistency was unfounded)
- Lockstep: EXPECT_COMMANDS 27->29, v4.0.0->4.1.0 across plugin.json / README badges /
  plugin+root CLAUDE.md / README / CHANGELOG; new README commands-badge lint guard
- 14a deliverable corrected: multiplatform entry added (26/27 -> 27/27), header counts,
  competitive nit withdrawn
- Independent /trekreview (2 Opus reviewers) raised 3 MAJORs (stale commands badge,
  router competitive self-contradiction, STATE.md count) — ALL remediated in-session;
  verdict ALLOW

Gate: test-runner.sh 74/0/0; node --test 98/98; commands=29; v4.1.0 consistent.
Additive/minor — no command removed/renamed/behavior-changed; reload registers create+measure.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-05-30 21:27:06 +02:00
commit baca30feb1
16 changed files with 885 additions and 208 deletions

View file

@ -5,6 +5,26 @@ 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).
## [4.1.0] - 2026-05-30
### Summary
**Journey layer over the command surface (Voyage S14).** Step 14a's cold, independent command-rationalization (`docs/remediation/command-rationalization.md`) audited all 27 commands under the same subsumption discipline as the agent-overlap study and found **zero redundancy** — the surface was over-grown in *count*, not in *duplication* (the two prior consolidations already removed the genuine overlaps). So instead of cutting, this release **organizes**: the 27 atomic commands are kept as the execution tier, and a **journey layer** is added on top. Additive and minor — no command removed, renamed, or behavior-changed; the two new commands register on reload. Design contract: `docs/remediation/journey-layer-design.md`.
### Added
- **`/linkedin:create`** — Create front-door. One guided "what do you want to make?" entry that routes to the command owning the format (`post`/`quick`/`react`/`carousel`/`video`/`multiplatform`/`batch`/`newsletter`). Delegates only — no drafting logic of its own.
- **`/linkedin:measure`** — Measure front-door. One guided "how am I doing?" entry that routes to the right analytics command (`import`/`report`/`analyze`/`audit`/`ab-test`). Delegates only. Commands 27 → 29.
### Changed
- **Router re-tiered into five journeys** (`commands/linkedin.md`) — Start · Create · Engage · Measure · Grow, each headed by a front-door (`onboarding`/`strategy` elevated as the Start/Grow front-doors; `create`/`measure` new; Engage is a `calendar` + `firsthour` relay), with the atomic commands nested as the execution tier. Absorbs the planned router-tiering UX step.
- **Honesty nits from 14a fixed** — the router now lists `/linkedin:firsthour` (was agent-only under Post-Publish); `calendar`'s publish-action first-hour block cross-links to `/linkedin:firsthour` for the full worked sprint plan.
- **`EXPECT_COMMANDS`** in `scripts/test-runner.sh` 27 → 29; CLAUDE.md / README rosters + counts updated in lockstep.
### Fixed
- **14a deliverable correction** — the cold review's first pass omitted `multiplatform` (covered 26/27) and raised a `competitive` 1K-gating inconsistency that did **not** survive verification (CLAUDE.md `:64`, README `:222`, the router, and the command body all leave `competitive` ungated). Both corrected in `command-rationalization.md`; net finding unchanged (keep 27, 0 merge, 0 cut).
### Compatibility
- **Minor / additive.** No command removed, renamed, or behavior-changed; the 27 existing commands, all 19 agents, and all state shapes are unchanged. The two new commands (`create`, `measure`) register when the plugin command set is rebuilt at session start — **reload required** to see them.
## [4.0.0] - 2026-05-30
### Summary