Declaration/config groundwork that slice 2b's trend-spotter upgrade reads.
Standalone (no agent wiring yet — that's 2b), mirroring slice 1's pattern;
[skip-docs] for the same reason slice 1 was — user-facing docs land when 2b
wires the engine live.
- references/trend-scoring-modes.md: methodology SSOT for two rubrics —
kortform (feed post, timing 20%) + long-form (chronicle, depth 25% / timing 10%,
per tema-research-motor-spec §4.2). Both sum to 100%. trend-spotter renders from
this in 2b instead of inlining a matrix (S12-consistent).
- config/trends-sources.template.md: shipped generic source-list defaults →
user override at ${LINKEDIN_STUDIO_DATA}/trends/sources.md (data-dir, survives
reinstall; same template->data-dir pattern as user-profile).
- user-profile.template.md: new "Research Tooling" section — declared research MCPs
(Tavily/Gemini/Perplexity/Other) + WebSearch/WebFetch floor. 2b routes MCP-first.
- setup.md Step 3f + onboarding.md Phase 2: ask "which research MCPs?" -> profile.
Store only what the user declares; no hard-coded MCP names.
- test-runner.sh: EXPECT_REFS 26->27; generalized the M0 +1 delta-guard into a
named-post-M0-additions guard (POSTM0_REFS) so a legit later ref doc passes while
the anti-masking intent holds. Gate green 84/0/0.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RBMKqPSVbvSZHtQ4heM1UY
4.7 KiB
User Profile Configuration
Copy this file to user-profile.local.md and customize for your needs.
cp config/user-profile.template.md config/user-profile.local.md
PERSONALIZATION SETTINGS
User Profile Context
Name: [Your Name] Current Role: [Your Role] (posting as private individual, not representing employer) Organization: [Not disclosed / Your Company] Industry/Domain: [Your Industry]
Important Disclaimer: All articles and posts are written as a private individual. Views expressed are personal and do not represent any employer.
Core Expertise Areas (5 topics):
- [Topic 1]
- [Topic 2]
- [Topic 3]
- [Topic 4]
- [Topic 5]
Target Audience:
- Primary: [Who are you primarily writing for?]
- Secondary: [Secondary audience]
- Geographic focus: [Region/Country]
LinkedIn Goals (ranked by priority):
- Build authority & influence
- Attract speaking opportunities
- Network with peers/influencers
- Generate qualified leads
- Monetization (consulting/courses)
- Recruit talent
Voice & Style Profile
Tone Preferences (select what applies):
- Professional & authoritative
- Conversational & approachable
- Storytelling-focused
- Data-driven & analytical
- Empathetic & supportive
- Provocative & contrarian
Content Style Mix:
- Story-based posts
- Framework/how-to posts
- Data/research posts
- Opinion/commentary posts
- Case study posts
- Personal reflection posts
Signature Elements:
- Key frameworks you've developed: [Your frameworks, or "None yet"]
- Recurring themes/angles: [Your themes]
- Phrases you commonly use: [Your phrases]
- Topics to AVOID: [Topics you never discuss]
Writing Quirks & Preferences:
- Preferred post length: [Short 150-500 / Medium 1,200-1,800 / Long 2,000+]
- Emoji usage: [None / Minimal 1-2 / Moderate 3-5]
- Question style CTAs: [Always / Sometimes / Never]
- Use of personal anecdotes: [Always / Sometimes / Rarely]
- Technical depth: [Beginner / Intermediate / Advanced / Adaptive]
Voice Profile Summary
[Your Name] writes with:
- [Quality 1]: [Description]
- [Quality 2]: [Description]
- [Quality 3]: [Description]
- [Quality 4]: [Description]
- [Quality 5]: [Description]
DO:
- [What you always do in your writing]
- [Another thing you do]
DON'T:
- [What you never do]
- [Another thing to avoid]
Universal anti-patterns (keep these — they hold for every author):
- Modell-/navne-katalog. Do not reel off product names, model names, or benchmarks for completeness. Pick ONE concrete, verifiable (preferably local) case over a list — a name-dump is a jargon wall to a non-technical reader.
- Fullstendighet over leser-handling. Serve what the primary reader can DO from their chair, not everything the author knows. Completeness is not a virtue.
- Selvrefererende overhead-åpning. No meta-commentary about what the text will or will not do, no warm-ups. Start on the reader's problem.
- «ikke bare X, men Y», reflex rule-of-three, tacked-on summaries, hedging.
Language: [English / Norwegian / Other]
Strategic Context
Current LinkedIn Status:
- Follower count: [Your current count]
- 90-day growth goal: [Your goal]
- Posting frequency: [Daily / 3x week / 2x week]
- Optimal posting times: [Your best times, or "To be determined"]
Research Tooling
Which research MCPs do you have available? The trend / research engine routes to a declared MCP first and falls back to the always-available floor when none is declared. Check what you actually have connected — leave the rest unchecked. (Names are examples; add whatever you have under "Other" — nothing here is hard-coded downstream.)
- Tavily (
tavily_search/tavily_research) - Gemini deep research (
gemini_deep_research) - Perplexity
- Other: [name the MCP + what it's good for]
Always-available floor (no MCP needed): WebSearch + WebFetch. These are used when no research MCP is declared above. (Note: WebSearch is US-biased — a research MCP gives better coverage for non-US / regional sources.)
Preferred order (optional): [e.g. "Tavily for niche/regional, Gemini for deep dives, WebSearch as fallback" — or leave blank to let the engine pick]
Asset Utilization Preferences
When creating content, Claude should:
- Check
/assets/examples/for past post patterns - Reference frameworks from
/assets/frameworks/ - Pull case studies from
/assets/case-studies/ - Incorporate voice samples from
/assets/voice-samples/ - Use research/data from
/assets/research/