feat(linkedin-studio): de-niche content framework + planner calendar — recast/rename to content-framework.md (B-S2a) [skip-docs]

B-S2a, the constraining-first slice of the de-niche sweep: kill the niche at
its source. B-S1 made trend-spotter pillar-driven, but the agent still READ
references/ai-content-framework.md (and so did differentiation-checker,
voice-trainer, and the content-creation skill) — an AI/Microsoft-specific file
whose very name baked in the niche. So the niche leaked back regardless of how
clean the agents were. This recasts that file domain-general and de-niches the
content-planner seasonal calendar (the other hardcoded beat: MS Build/Ignite as
THE anchors). The principle: vary concreteness, don't sterilize
(plugin-is-domain-general).

- Recast + rename references/ai-content-framework.md -> references/content-framework.md:
  title "AI Content Framework" -> "Content Framework"; the 4 pillars kept as a
  domain-general pattern (News/Implementation/Strategy/Tools) with examples now
  spanning multiple fields instead of AI-only; AI-specific placeholders
  ([AI announcement], [AI system], GPT-X/Claude X) generalized to neutral
  brackets; anti-patterns "AI will change everything" -> "[Field] will change
  everything". The "News Monitoring / Sources by Priority" section (AI sources:
  The Batch, ArXiv, r/MachineLearning, OpenAI/Anthropic blogs) — now duplicated
  by the trend engine's config source-list — is thinned to point at
  config/trends-sources.template.md + the data-dir override, keeping the
  daily/weekly RHYTHM (general) and dropping the baked source list.
- Rename ripple, 6 referrers repointed: trend-spotter, differentiation-checker,
  voice-trainer (reference lines, + dropped "AI" from descriptions), glossary
  (Used-in + de-niched the "Example for AI content" pillar illustration),
  linkedin-content-creation SKILL ("AI-specific angles" -> "Domain content
  pillars + angles"), and test-runner §17 (NEGATIVE17 probe path + comment).
  docs/hardening/log.md left intact — historical record, not a live pointer.
- content-planner.md seasonal calendar de-niched: header "Nordic/Tech Focus" ->
  "rhythm, adapt to your field & region" + intro prompt; Microsoft Build,
  Ignite (x2), Apple/Microsoft launches, NDC, EU AI Act, "Azure AI" example
  pillar, "AI predictions", Nordic/17.mai locale anchors -> domain/region-
  neutral prompts. Global anchors kept (New Year, IWD, Halloween, Black Friday,
  year-end).

Deferred to after the full sweep (per STATE): extending the §17 de-niche guard
to content-planner (and content-framework) — the guard's token set + agent
scope is best designed once the sweep (B-S2b) reflects the final clean surface.

ref count unchanged (27; rename is 1->1). Gate 87/0/0 (§17 self-test green).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RBMKqPSVbvSZHtQ4heM1UY
This commit is contained in:
Kjell Tore Guttormsen 2026-06-23 10:02:26 +02:00
commit 94d4e707db
9 changed files with 379 additions and 414 deletions

View file

@ -149,21 +149,21 @@ For a 2-3 post/week cadence (optimal for sustainable growth):
These rotation rules are enforced at write-time by the `topic-rotation-gate` hook:
1. **No back-to-back pillars** — Never schedule the same pillar for consecutive posts. If Post 1 is "Azure AI", Post 2 must be a different pillar.
1. **No back-to-back pillars** — Never schedule the same pillar for consecutive posts. If Post 1 is "Implementation", Post 2 must be a different pillar.
2. **14-day 50% balance cap** — No single pillar may exceed 50% of posts in any rolling 14-day window.
3. **Rotation priority** — When selecting the next pillar, prioritize the pillar with the highest gap score (most days since last post + fewest posts in 14-day window).
4. **Underrepresented pillars** — Any pillar with 0 posts in the last 14 days should receive a priority slot in the next plan.
## Step 3: Seasonal & Event Awareness
### Annual Calendar — Nordic/Tech Focus
### Annual Calendar — rhythm, adapt to your field & region
Check the current date and flag relevant themes:
The cadence below is general. Anchor it with **your** field's events (conferences, release cycles, regulatory milestones) and your region's cultural moments — loaded from the user's profile/pillars, not baked in. Where a specific event is named, it is an *example* — swap in the equivalent from your domain. Check the current date and flag relevant themes:
```
JANUARY
- New Year goals/reflections → "My [year] priorities" posts
- AI predictions for the year
- Predictions for the year (in your field)
- Q4 retrospective content
FEBRUARY
@ -172,18 +172,18 @@ FEBRUARY
- Valentine's: "Love letters to [profession/tool]" (entertaining)
MARCH
- International Women's Day (Mar 8) → Diversity in tech
- End of Q1 → Quarterly reflections
- Spring conferences starting (Nordic tech scene)
- International Women's Day (Mar 8) → diversity in your field
- End of Q1 → quarterly reflections
- Spring conference season starting (your field's events)
APRIL
- NDC conferences season begins
- AI regulation updates (EU AI Act milestones)
- Easter break → Personal reflection posts
- Conference season builds (your field's events)
- Regulatory/policy updates in your domain
- Easter break (region-dependent) → personal reflection posts
MAY
- Microsoft Build (typically May) → AI announcements
- 17. mai (Norwegian National Day) → Cultural content
- Major release cycles (e.g. a key vendor's annual developer conference) → announcement commentary
- Regional national days / cultural moments → cultural content (if it fits your brand)
- End of spring conference season wrap-ups
JUNE
@ -202,19 +202,19 @@ AUGUST
- Conference CFP deadlines (fall events)
SEPTEMBER
- Tech conference peak (Ignite, various Nordic events)
- New product launches (Apple, Microsoft)
- Conference peak in many fields → takeaways and commentary
- Autumn product/release launches → commentary
- "What I learned this summer" reflection
OCTOBER
- Cybersecurity awareness month
- Awareness months relevant to your field (e.g. cybersecurity)
- Q3 wrap-ups
- Halloween → Creative/entertaining tech content
- Halloween → creative/entertaining content
NOVEMBER
- Microsoft Ignite (typically November)
- AI recap season begins
- Black Friday → "Best [professional tools]" lists
- Year-end vendor conferences / recaps → commentary
- Recap season begins
- Black Friday → "best [professional tools]" lists
DECEMBER
- Year-in-review content

View file

@ -325,5 +325,5 @@ content-planner --> [draft] --> differentiation-checker --> content-optimizer --
Read these files for detailed methodology:
- `${CLAUDE_PLUGIN_ROOT}/references/content-angles.md` -- 8 Universal Angles, combinations, red flags, authority value test
- `${CLAUDE_PLUGIN_ROOT}/references/ai-content-framework.md` -- AI content anti-patterns, differentiation checklist, relevance filter
- `${CLAUDE_PLUGIN_ROOT}/references/content-framework.md` -- content anti-patterns, differentiation checklist, relevance filter
- `${CLAUDE_PLUGIN_ROOT}/references/engagement-frameworks.md` -- hook types, contrarian opening patterns, story structures

View file

@ -402,7 +402,7 @@ compiles, just without persistence.
Read these files for detailed methodology:
- `${CLAUDE_PLUGIN_ROOT}/references/content-angles.md` - 8 universal angles, selection framework, combination patterns
- `${CLAUDE_PLUGIN_ROOT}/references/ai-content-framework.md` - Content pillars, trigger framework, source tiers, seasonal calendar
- `${CLAUDE_PLUGIN_ROOT}/references/content-framework.md` - Content pillars, trigger framework, source tiers, seasonal calendar (domain-general)
- `${CLAUDE_PLUGIN_ROOT}/references/linkedin-growth-playbook-2025-2026.md` - Trend Translator tactic, first-mover advantage
- `${CLAUDE_PLUGIN_ROOT}/references/algorithm-signals-reference.md` - Engagement signals and profile/topic-relevance validation
- `${CLAUDE_PLUGIN_ROOT}/references/trend-scoring-modes.md` - **scoring SSOT** — kortform / long-form rubrics + composite→action bands (do not inline a matrix)

View file

@ -326,5 +326,5 @@ Read these files for context and methodology:
- `${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/voice-samples/` — Source samples for analysis
- `${CLAUDE_PLUGIN_ROOT}/config/user-profile.template.md` — Profile structure template
- `${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/profile/user-profile.md` — Current voice profile (if exists)
- `${CLAUDE_PLUGIN_ROOT}/references/ai-content-framework.md` — AI content anti-patterns and quality checklist
- `${CLAUDE_PLUGIN_ROOT}/references/content-framework.md` — content anti-patterns and quality checklist
- `${CLAUDE_PLUGIN_ROOT}/references/engagement-frameworks.md` — Hook psychology and tone guidelines