linkedin-studio/config/user-profile.template.md
Kjell Tore Guttormsen b89868e3b1 feat(linkedin-studio): research-engine config layer — sources + scoring modes + MCP profile (§5 slice 2a) [skip-docs]
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
2026-06-22 13:36:28 +02:00

147 lines
4.7 KiB
Markdown

# User Profile Configuration
Copy this file to `user-profile.local.md` and customize for your needs.
```bash
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):**
1. [Topic 1]
2. [Topic 2]
3. [Topic 3]
4. [Topic 4]
5. [Topic 5]
**Target Audience:**
- **Primary:** [Who are you primarily writing for?]
- **Secondary:** [Secondary audience]
- **Geographic focus:** [Region/Country]
**LinkedIn Goals (ranked by priority):**
1. [ ] Build authority & influence
2. [ ] Attract speaking opportunities
3. [ ] Network with peers/influencers
4. [ ] Generate qualified leads
5. [ ] Monetization (consulting/courses)
6. [ ] 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:**
1. **[Quality 1]:** [Description]
2. **[Quality 2]:** [Description]
3. **[Quality 3]:** [Description]
4. **[Quality 4]:** [Description]
5. **[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/`