feat(linkedin-thought-leadership): v1.0.0 — initial open-source import
Build LinkedIn thought leadership with algorithmic understanding, strategic consistency, and AI-assisted content creation. Updated for the January 2026 360Brew algorithm change. 16 agents, 25 commands, 6 skills, 9 hooks, 24 reference docs. Personal data sanitized: voice samples generalized to template, high-engagement posts cleared, region-specific references replaced with placeholders. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
7194a37129
commit
39f8b275a6
143 changed files with 32662 additions and 0 deletions
|
|
@ -0,0 +1,73 @@
|
|||
Before ending this LinkedIn content session, do two things:
|
||||
|
||||
**1. Update State File**
|
||||
If a post was created or finalized in this session, update `~/.claude/linkedin-thought-leadership.local.md`:
|
||||
- Set `last_post_date` to today (YYYY-MM-DD format)
|
||||
- Set `last_post_topic` to the main topic (use the matching `expertise_areas` value when possible for consistent pillar tracking)
|
||||
- If `first_post_date` is null and a post was created, set `first_post_date` to today (YYYY-MM-DD). This is set ONCE and never changed after that.
|
||||
- Check if ISO week has changed — if so, reset `posts_this_week` to 0 and update `current_week`
|
||||
- Increment `posts_this_week`
|
||||
- Update streak: increment `current_streak` if posting on consecutive days (gap <= 1 day), reset to 1 if gap > 2 days
|
||||
- Update `longest_streak` if current exceeds it
|
||||
- Add entry to '## Recent Posts' section: [YYYY-MM-DD] "Hook text..." (char count) - topic_area (use expertise_area name for consistent pillar tracking)
|
||||
- Clear `next_planned_topic` if it was used, or set it to the next suggested topic
|
||||
- If analytics data was imported in this session, set `last_import_date` to today (YYYY-MM-DD) and `last_import_week` to current ISO week (YYYY-WXX)
|
||||
- If the user mentioned or updated their follower count during this session:
|
||||
- Update `follower_count` to the new value
|
||||
- If the month changed since last monthly_growth entry, append: {month: "YYYY-MM", count: X, delta: X}
|
||||
- Recalculate `growth_rate_needed`: (follower_target - follower_count) / months_remaining
|
||||
- Recalculate `projected_10k_date` from average of last 3 monthly deltas
|
||||
- Add entry to '## Milestone Log': [YYYY-MM] count (+delta)
|
||||
|
||||
**2. Pre-Publish Reminders** (only if a post was created)
|
||||
|
||||
- **Quality Check**: Has content been reviewed against quality scorecard? Hook 110-140 chars, 1,200-1,800 chars total, authentic tone, no external links.
|
||||
- **5x5x5 Engagement**: Before posting, complete 15-20 min pre-posting engagement — 5 people with overlapping audiences, find their recent posts, write 5 thoughtful comments (15+ words each).
|
||||
- **First-Hour Plan**: Respond within 5 minutes to first comments. Add value in responses. Target 15+ engagements in first hour.
|
||||
- **Posting Time**: Post when target audience is most active.
|
||||
|
||||
**3. Queue Status Check**
|
||||
|
||||
If posts were added to the queue during this session (`assets/drafts/queue.json` was modified):
|
||||
- Confirm how many posts were queued and their scheduled dates
|
||||
- Remind: "View your full schedule with /linkedin:calendar"
|
||||
|
||||
If a scheduled post was published during this session:
|
||||
- Verify it was marked as published in queue.json (status = "published")
|
||||
- If not, remind: "Run /linkedin:publish to update the queue status"
|
||||
|
||||
Provide reminders naturally based on what was done in the session. If no LinkedIn content was created, skip the reminders and just ensure state is consistent.
|
||||
|
||||
**4. Voice Sample Extraction** (if a post was created)
|
||||
|
||||
If a LinkedIn post was created or finalized in this session, consider extracting the hook line as a voice sample:
|
||||
|
||||
- Read the hook line from the post that was just created
|
||||
- Check if `assets/voice-samples/authentic-voice-samples.md` exists
|
||||
- If it does, suggest appending a new entry to the "## Update Log" section at the bottom:
|
||||
```
|
||||
- [YYYY-MM-DD]: "[Hook text]" — [post type] (extracted from session post)
|
||||
```
|
||||
- **Ask the user for approval before writing.** Say: "Would you like me to save this hook as a voice sample for future reference?"
|
||||
- Only write if the user approves
|
||||
- This passively grows the voice profile over time, improving personalization score
|
||||
|
||||
**5. Content History Log** (if a post was created)
|
||||
|
||||
If a LinkedIn post was created or finalized, append an entry to the content history log:
|
||||
|
||||
- If `assets/analytics/content-history.md` does not exist, initialize it from `config/content-history.template.md`
|
||||
- Append a new row to the "## Content Log" table:
|
||||
```
|
||||
| YYYY-MM-DD | "Hook text..." | topic_area | format | word_count | char_count | source |
|
||||
```
|
||||
Where:
|
||||
- `date`: Today's date
|
||||
- `hook`: First 60 characters of the hook line
|
||||
- `topic`: Matching expertise_area value (for pillar tracking)
|
||||
- `format`: post/quick/react/video/pipeline
|
||||
- `word_count`: Word count of the full post
|
||||
- `char_count`: Character count of the full post
|
||||
- `source`: original/url/curated (where the idea came from)
|
||||
- This is append-only — never edit or delete existing entries
|
||||
- This log enables `/linkedin:report` and `analytics-interpreter` to track content production over time without requiring LinkedIn CSV imports
|
||||
Loading…
Add table
Add a link
Reference in a new issue