# Changelog

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).

## [1.2.0] - 2026-04-11

### Summary
Friction reduction release. Fewer interactive steps, auto-clipboard, deterministic state management, and progressive onboarding.

### Added
- **`clipboard-helper.mjs`** — cross-platform clipboard utility (macOS `pbcopy`, Linux `xclip`/`xsel`, WSL `clip.exe`). All 8 content commands auto-copy output to clipboard
- **`state-updater.mjs`** — deterministic state mutations: `updatePostTracking`, `pruneContentHistory`, `updateFollowerCount`. Pure functions with 19 tests. No AI involvement in state updates
- **`ical-generator.mjs`** — RFC 5545 calendar file generation for batch scheduling. VALARM reminders, VTIMEZONE support, line folding, special character escaping. 16 tests
- **MCP image carousel pipeline** — `/linkedin:carousel` generates professional slide images via mcp-image (1080x1350, 3:4 ratio) with text overlays. Mermaid Chart and text-based fallbacks
- **Progressive onboarding** — personalization score hidden until 3+ posts; voice guardian suppressed until 5+ voice samples; reasonable defaults in state template
- **iCal integration in batch** — `/linkedin:batch` generates `.ics` file importable into macOS Calendar, Google Calendar, and Outlook
- **Auto-prune content history** — session-start dynamically imports `pruneContentHistory` to remove entries older than 90 days

### Changed
- **Reduced interactive steps** — angle, format, and post type inferred from context. Max 2 questions per post (down from 4-6) in `post`, `quick`, `react`, `pipeline`
- **State management** — Stop hook and 8 commands now reference `state-updater.mjs` for deterministic writes instead of AI-driven YAML editing
- **State file template** — default expertise area changed from domain-specific to `"general"` for better new-user experience

## [1.1.0] - 2026-04-08

### Summary
Q2 2026 feature release. 9 improvements across onboarding, content quality, and analytics pipeline.

### Added
- **`/linkedin:onboarding`** — multi-step onboarding wizard: profile → setup → first-post as one guided flow
- **`/linkedin:carousel`** — structured multi-slide carousel generator with 5 templates and design specs
- **Voice drift scoring** — 6-dimension rubric (sentence structure, word choice, openings, storytelling, tone, formatting) with AUTHENTIC/CAUTION/ALERT/REWRITE verdicts in voice-guardian hook
- **Industry angle variants** — 48 concrete variants (6 industries × 8 angles) in thought-leadership-angles reference
- **Multi-URL comparison** — `/linkedin:react` now supports 2-3 URL synthesis with contrarian and pattern analysis angles
- **Day-of-week heatmap** — `heatmap` CLI command and `HeatmapReport` type in analytics pipeline
- **Month-over-month reports** — `report --month YYYY-MM` CLI command with MoM deltas, weekly breakdown, top performers
- **Automated week-rollover** — session-start hook now writes `posts_this_week: 0` and updates `current_week` on ISO week change
- **Collected Post Samples** — Stop hook passively accumulates published posts in voice-samples file for drift scoring

### Changed
- **README Quick Start** — replaced 4-step manual flow with single `/linkedin:onboarding` entry point
- **`/linkedin:report`** — Step 2 now offers report type choice (weekly/monthly/heatmap)
- **`/linkedin:post`** — Step 2 shows industry-specific angles when user-profile has industry set; Step 3 redirects to carousel when appropriate
- **`/linkedin` router** — added onboarding and carousel to menus and direct routing
- **Command count** — 25 → 27 (onboarding, carousel)

## [1.0.0] - 2026-04-07

### Summary
Public release for open-source marketplace. All runtime bugs fixed, documentation aligned, agent model tiering implemented.

### Fixed
- **Agent model assignments** — all 16 agents corrected from opus to proper tiering (12 Sonnet, 4 Haiku)
- **Queue manager references** — 10 stale `queue-manager.sh` references replaced with `queue-manager.mjs` Node.js invocations
- **Quick-import references** — 2 stale `quick-import.sh` references updated to `.mjs`
- **Personalization score import bug** — standalone execution block now guarded to prevent stdout contamination on import
- **Regex anchor** — invalid `\Z` JavaScript regex replaced with `$` in user-prompt-context.mjs
- **Agent color mismatches** — 8 agent frontmatter colors unified with CLAUDE.md documentation
- **Version inconsistency** — unified from 3 conflicting versions (0.6.0/1.7.0/2.0.1) to 1.0.0

### Added
- **plugin.json** — added `license`, `repository`, `keywords` fields for marketplace compliance
- **README** — attribution note, "What This Plugin Does Not Cover" section, Node.js 18+ prerequisite, hooks badge
- **CONTRIBUTING.md** — replaced GitHub PR template with solo-project boilerplate
- **Quality scorecard** — added "Voice Authenticity" criterion (total now /81)
- **Commands** — `/linkedin:react` and `/linkedin:first-post` added to README command tables
- **agents/README.md** — updated from 14 to 16 agents, added personalization-scorer and post-feedback-monitor
- **SKILL.md** — added 5 missing commands to router command table

### Changed
- **CLAUDE.md** — compacted from 237 to 90 lines, removed duplicated content
- **All hooks** — 100% Node.js (.mjs), no bash dependencies (cross-platform: macOS/Linux/Windows)
- **Error handling** — added JSON.parse guards in queue-manager.mjs and analytics storage.ts

### Removed
- **Skill version fields** — removed non-standard `version:` from all 6 SKILL.md frontmatter
- **Development artifacts** — removed internal evaluation note from collab.md
- **Orphaned files** — deleted outdated docs/commands-reference.md
- **BACKLOG.md and DEVELOPMENT-LOG.md** — gitignored (internal development files)

## [0.6.0] - 2026-02-07

### Note
First formal version. Previously unversioned.

### What exists today
- 20 commands covering full content lifecycle
- 15 specialized agents
- 8 hooks for workflow automation
- Analytics system with CSV import
- 360Brew profile optimization (January 2026 algorithm update)
- Content matrix system (40+ post ideas from single topic)
- Personalization engine
- 20 reference documents for LinkedIn best practices
- Full content pipeline from ideation to post-publish monitoring
