refactor(linkedin)!: rename plugin linkedin-thought-leadership → linkedin-studio (v3.0.0)

BREAKING CHANGE: the marketplace slug, the agent namespace
(linkedin-studio:<agent>), and the runtime state-file path
(~/.claude/linkedin-studio.local.md) all change. Reinstall required;
existing state migrated in place (post metrics, streak, history preserved).
The /linkedin:* commands are unchanged — the command namespace is set
per-command in frontmatter and was always independent of the plugin slug.
Functionality is byte-identical to v2.4.0; this release is pure identity.

- dir + manifests: plugins/linkedin-studio + plugin.json + root marketplace.json
- agent namespace updated in commands/newsletter.md (only functional invoker)
- state path updated in 4 hook scripts + topic-rotation prompt + state template
- catch-all skill dir renamed skills/linkedin-studio (5 functional skills unchanged)
- docs + version bump to 3.0.0 across README badge, CHANGELOG, root README/CLAUDE.md
- historical records (CHANGELOG past entries, docs/ build artifacts,
  config-audit v5.0.0 snapshots) intentionally retain the old slug

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-05-29 11:32:02 +02:00
commit 52fa87a255
59 changed files with 148 additions and 122 deletions

View file

@ -1,11 +1,11 @@
# Integration Test Guide: LinkedIn Thought Leadership Plugin
# Integration Test Guide: LinkedIn Studio Plugin
Manual integration testing scenarios for commands, agents, and hooks in the plugin.
## Prerequisites
Before testing, ensure:
- [ ] `~/.claude/linkedin-thought-leadership.local.md` exists (create from `config/state-file.template.md`)
- [ ] `~/.claude/linkedin-studio.local.md` exists (create from `config/state-file.template.md`)
- [ ] Voice samples exist in `assets/voice-samples/authentic-voice-samples.md`
- [ ] Quality scorecard exists at `assets/checklists/quality-scorecard.md`
- [ ] Plugin is installed: appears in Claude Code's skill/command list
@ -62,7 +62,7 @@ Before testing, ensure:
**Goal:** Graceful handling when state file doesn't exist.
**Steps:**
1. Temporarily rename `~/.claude/linkedin-thought-leadership.local.md`
1. Temporarily rename `~/.claude/linkedin-studio.local.md`
2. Run `/linkedin:pipeline`
3. Verify: no crash, reasonable fallback (e.g., "No posting data found. Starting fresh.")
4. Complete the pipeline
@ -220,7 +220,7 @@ Before testing, ensure:
1. Run `/linkedin:pipeline` and create a post
2. Note the topic and hook
3. End the session (or let Stop hook fire)
4. Read `~/.claude/linkedin-thought-leadership.local.md`
4. Read `~/.claude/linkedin-studio.local.md`
5. Verify:
- `last_post_date` = today
- `last_post_topic` = the topic used