ktg-plugin-marketplace/plugins/linkedin-studio/commands
Kjell Tore Guttormsen 55c94ee964 feat(linkedin-studio): S16 — optional manual saves in analytics + close deferred onboarding Write MAJOR
Lifts the original v4.0.0 Non-Goal: an optional, manually-entered `saves`
metric through the analytics layer, built location-agnostic (option c) so
UI-brief §9b/M0 relocates the data dir in one place later.

- types: PostMetrics.saves? + Weekly/Monthly summary.totalSaves? (optional);
  new RankableMetric type for the always-numeric index-access whitelist
- parser: dedicated parseOptionalCount() — blank/non-numeric/negative -> undefined
  ("unknown != 0"), genuine 0 kept; saves NOT folded into engagementRate
- reports: totalSaves set only when >=1 post carries saves (backward-compat)
- cli: saves surfaced in import summary + weekly/monthly totals + per-post
- S16-pre: onboarding.md allowed-tools gains Write (closes S15-deferred MAJOR)
- docs (three-doc rule): plugin README boundary + analytics README + root README
  + plugin CLAUDE.md + CHANGELOG; dwell stays explicitly unmeasurable

Independent /trekreview: brief-conformance 0 findings; code-correctness 2 MAJOR
(own lockstep misses) FIXED in-session (parseOptionalCount + edge tests). Gate:
tsc clean, analytics 116/116, lint 74/0/0, hooks 98/98. Within-v4.1.0 refinement
(no surface/count/version change).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 22:23:12 +02:00
..
ab-test.md refactor(linkedin-studio): wire or delete 11 orphan agents (case-by-case) — 9 here, 2 in Steps 14/16 2026-05-30 01:26:36 +02:00
analyze.md refactor(linkedin-studio): wire or delete 11 orphan agents (case-by-case) — 9 here, 2 in Steps 14/16 2026-05-30 01:26:36 +02:00
audit.md fix(linkedin-studio): propagate reconciled algorithm numbers, cite-not-restate 2026-05-29 20:32:17 +02:00
batch.md refactor(linkedin-studio): wire or delete 11 orphan agents (case-by-case) — 9 here, 2 in Steps 14/16 2026-05-30 01:26:36 +02:00
calendar.md feat(linkedin-studio): S14 — journey layer (create/measure front-doors + 5-journey router), v4.1.0 2026-05-30 21:27:06 +02:00
carousel.md fix(linkedin-studio): S15 — UX finish §6c (B1 onboarding inline-draft + B3 carousel full-deck clipboard) 2026-05-30 21:44:34 +02:00
competitive.md refactor(linkedin)!: rename plugin linkedin-thought-leadership → linkedin-studio (v3.0.0) 2026-05-29 11:32:02 +02:00
create.md feat(linkedin-studio): S14 — journey layer (create/measure front-doors + 5-journey router), v4.1.0 2026-05-30 21:27:06 +02:00
first-post.md refactor(linkedin)!: rename plugin linkedin-thought-leadership → linkedin-studio (v3.0.0) 2026-05-29 11:32:02 +02:00
firsthour.md feat(linkedin-studio): first-hour/reply-loop command with tracked state 2026-05-30 05:35:44 +02:00
headless-review.md feat(linkedin-studio): v3.1.0 — Endring 9 adversarial review-pakke + per-artefakt personas 2026-05-29 13:01:24 +02:00
import.md docs(linkedin-studio): honest dated API/auto-publish/analytics boundaries 2026-05-30 00:58:05 +02:00
linkedin.md feat(linkedin-studio): S14 — journey layer (create/measure front-doors + 5-journey router), v4.1.0 2026-05-30 21:27:06 +02:00
measure.md feat(linkedin-studio): S14 — journey layer (create/measure front-doors + 5-journey router), v4.1.0 2026-05-30 21:27:06 +02:00
monetize.md fix(linkedin-studio): propagate reconciled algorithm numbers, cite-not-restate 2026-05-29 20:32:17 +02:00
multiplatform.md refactor(linkedin)!: rename plugin linkedin-thought-leadership → linkedin-studio (v3.0.0) 2026-05-29 11:32:02 +02:00
newsletter.md fix(linkedin-studio): S9 — full algorithm-magnitude sweep + lint rebuilt to the criterion 2026-05-30 09:56:49 +02:00
onboarding.md feat(linkedin-studio): S16 — optional manual saves in analytics + close deferred onboarding Write MAJOR 2026-05-30 22:23:12 +02:00
outreach.md feat(linkedin-studio): honest newsletter distribution + profile-SEO + outreach pipeline 2026-05-30 07:07:41 +02:00
pipeline.md fix(linkedin-studio): S9 — full algorithm-magnitude sweep + lint rebuilt to the criterion 2026-05-30 09:56:49 +02:00
pivot.md feat(linkedin-studio): v3.1.0 — Endring 9 adversarial review-pakke + per-artefakt personas 2026-05-29 13:01:24 +02:00
post.md feat(linkedin-studio): short-form de-AI gate via differentiation-checker + voice-guardian 2026-05-30 02:31:41 +02:00
profile.md fix(linkedin-studio): S9 — full algorithm-magnitude sweep + lint rebuilt to the criterion 2026-05-30 09:56:49 +02:00
quick.md feat(linkedin-studio): short-form de-AI gate via differentiation-checker + voice-guardian 2026-05-30 02:31:41 +02:00
react.md feat(linkedin-studio): short-form de-AI gate via differentiation-checker + voice-guardian 2026-05-30 02:31:41 +02:00
report.md refactor(linkedin-studio): wire or delete 11 orphan agents (case-by-case) — 9 here, 2 in Steps 14/16 2026-05-30 01:26:36 +02:00
setup.md fix(linkedin-studio): S9 — full algorithm-magnitude sweep + lint rebuilt to the criterion 2026-05-30 09:56:49 +02:00
strategy.md refactor(linkedin-studio): wire or delete 11 orphan agents (case-by-case) — 9 here, 2 in Steps 14/16 2026-05-30 01:26:36 +02:00
video.md feat(linkedin-studio): video quality gate (captions + aspect guidance, drop 9:16 mandate) 2026-05-30 02:37:51 +02:00