Ukalibrert modell-dømmekraft inflaterte topp-båndet (observert 13/20 → Immediate). Legger til en eksplisitt fordelings-forventning som scoring-SSOT: de fleste kandidatene hører hjemme i Medium–High (4.0–7.9); Immediate (≥8.0) er unntaket (arbeidsmål ≤~3/20). Score relativt over batchen, ikke sjenerøst i isolasjon. Fordelings-formen er mekanisme; terskelen for hva som teller som eksepsjonelt bor i brukerprofilen/dimensjons-rubrikkene, aldri hardkodet (domene-generelt). Etterprøvbart nå fordi composite+band persisteres (RE-R3a); MR-F7-bånd-cap-gaten (N7) bygger på samme signal. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S7SQpXJpBSNvpWaTNq1kWZ
135 lines
8.3 KiB
Markdown
135 lines
8.3 KiB
Markdown
# Trend Scoring Modes Reference
|
||
|
||
**Single source of truth** for how a discovered trend/topic candidate is scored.
|
||
There are **two modes** — they share the same 1–10 per-dimension scale and the same
|
||
composite formula, but they weight the dimensions differently because a feed post and
|
||
a long-form chronicle reward different things. Surfaces (the `trend-spotter` agent, any
|
||
research-engine pass) **select a mode and apply the matching rubric** — they do not
|
||
restate the weights inline. Cite this file; do not duplicate it.
|
||
|
||
This file defines **methodology** (the weights), not user preference. The *source list*
|
||
a pass polls is separate and user-overridable — see
|
||
`config/trends-sources.template.md` → `${LINKEDIN_STUDIO_DATA:-$HOME/.claude/linkedin-studio}/trends/sources.md`.
|
||
|
||
## How to read this file
|
||
|
||
- Score each dimension **1–10** (see the bands in the per-mode tables).
|
||
- Composite = the weighted sum of the five dimension scores. Each mode's weights sum to
|
||
**100 %**, so the composite stays on the same 0–10 scale across modes.
|
||
- The **ordering** of the weights is the signal; the exact percentages are a deliberate,
|
||
documented choice, not a measured coefficient. (Timing grounding — why a feed post
|
||
weights recency and a chronicle does not — traces to
|
||
`references/algorithm-signals-reference.md`; this file does not restate algorithm
|
||
magnitudes.)
|
||
|
||
## Mode selection
|
||
|
||
| Mode | Use for | Driver |
|
||
|------|---------|--------|
|
||
| **kortform** | feed posts (`/linkedin:post`, `:quick`, `:react`, `:carousel`, `:video`) | timing + audience pull — a good post published early beats a perfect post published late |
|
||
| **long-form** | chronicles / newsletters / series editions (`/linkedin:newsletter`) | depth + angle — a chronicle has a longer shelf life; whether there is *enough material for a full piece* matters more than a 24-hour window |
|
||
|
||
If no mode is declared, default to **kortform** (the feed is the higher-cadence surface).
|
||
A caller may pass the mode explicitly (e.g. the long-form orchestrator requesting
|
||
`long-form`); a future slice may read a per-user default from the profile.
|
||
|
||
## Mode: kortform (LinkedIn feed post)
|
||
|
||
Tuned for the feed: timing and audience pull carry real weight because the first-mover
|
||
window is short.
|
||
|
||
| Dimension | Weight | 1–2 (Low) | 3–5 (Medium) | 6–8 (High) | 9–10 (Exceptional) |
|
||
|-----------|--------|-----------|---------------|-------------|---------------------|
|
||
| **Pillar Fit** | 30 % | Outside all 5 pillars | Tangential to one pillar | Direct hit on one pillar | Intersects 2+ pillars |
|
||
| **Audience Relevance** | 25 % | Wrong audience entirely | Some audience overlap | Core audience cares | Audience actively asking about this |
|
||
| **Timing** | 20 % | >7 days old, saturated | 3–7 days, moderate coverage | 24–72h, early coverage | <24h, you would be among first |
|
||
| **Angle Potential** | 15 % | Only obvious take available | One good angle possible | 2–3 strong angles | Contrarian or unique angle clear |
|
||
| **Authority Match** | 10 % | No credibility on topic | Some related experience | Direct experience | Published authority on this |
|
||
|
||
```
|
||
Composite = (Pillar × 0.30) + (Audience × 0.25) + (Timing × 0.20) + (Angle × 0.15) + (Authority × 0.10)
|
||
```
|
||
|
||
## Mode: long-form (chronicle / newsletter / series)
|
||
|
||
Reweighted for a longer piece: **depth potential** enters at 25 %, and **timing drops to
|
||
10 %** — a chronicle is not a 24-hour reaction, so recency matters less than whether the
|
||
topic has enough substance and a differentiated angle to carry a full edition.
|
||
|
||
| Dimension | Weight | 1–2 (Low) | 3–5 (Medium) | 6–8 (High) | 9–10 (Exceptional) |
|
||
|-----------|--------|-----------|---------------|-------------|---------------------|
|
||
| **Pillar / thesis fit** | 30 % | Outside the active theses | Tangential to one thesis | Fits one thesis / series arc | Advances 2+ theses or a live series arc |
|
||
| **Depth potential** | 25 % | A single post at most | Enough for one solid post | Enough for a full chronicle | Enough for a multi-part series |
|
||
| **Angle / differentiation** | 20 % | Commodity take only | One non-obvious angle | 2–3 differentiated angles | Original thesis the field lacks |
|
||
| **Authority / experience** | 15 % | No credibility on topic | Some related experience | Direct lived experience | Published authority on this |
|
||
| **Currency** | 10 % | Stale / already resolved | Relevant this quarter | Relevant now, durable | Relevant now AND will compound |
|
||
|
||
```
|
||
Composite = (Pillar × 0.30) + (Depth × 0.25) + (Angle × 0.20) + (Authority × 0.15) + (Currency × 0.10)
|
||
```
|
||
|
||
## Why the two modes differ (the one delta)
|
||
|
||
The two rubrics are the same five-dimension instrument with one deliberate swap:
|
||
|
||
- **kortform:** Timing **20 %**, no depth dimension — the feed rewards being early.
|
||
- **long-form:** Timing → Currency at **10 %**, Depth potential added at **25 %** — a
|
||
chronicle rewards substance and a durable angle over speed.
|
||
|
||
Pillar fit (30 %) and authority (kortform 10 % / long-form 15 %) anchor both: an off-pillar
|
||
or low-credibility topic scores low in either mode, because topic relevance and credibility
|
||
are non-negotiable regardless of format.
|
||
|
||
## Composite → action
|
||
|
||
The same priority bands apply to both modes (the composite is on the same 0–10 scale):
|
||
|
||
| Composite | Priority | kortform action | long-form action |
|
||
|-----------|----------|-----------------|------------------|
|
||
| 8.0–10 | **Immediate** | Draft within 24h | Promote to the edition backlog now |
|
||
| 6.0–7.9 | **High** | Publish within 48–72h | Strong edition candidate — schedule it |
|
||
| 4.0–5.9 | **Medium** | Add to this week's calendar | Hold as a backlog candidate, revisit |
|
||
| 2.0–3.9 | **Low** | Note, skip for now | Park unless the angle sharpens |
|
||
| 0–1.9 | **Skip** | Off positioning | Off positioning |
|
||
|
||
## Calibration — the expected score distribution (MR-F6)
|
||
|
||
The five dimensions are **model judgment**, and unanchored judgment inflates: an observed sweep
|
||
put 13 of 20 candidates in **Immediate** (≥8.0), which makes the band meaningless — if most
|
||
things are "draft now", nothing is. The composite is only useful if the bands are **scarce at the
|
||
top**. So a scoring pass must calibrate against this distribution expectation, not score each
|
||
candidate generously in isolation:
|
||
|
||
- In a **typical sweep**, most candidates belong in **Medium–High (4.0–7.9)**. That is the honest
|
||
home of "worth writing about, eventually".
|
||
- **Immediate (≥8.0) is the exception, not the rule** — reserve it for candidates that are
|
||
genuinely exceptional *relative to the rest of this sweep*. As a working target, expect on the
|
||
order of **≤3 of 20** in Immediate; a sweep that floods the top band is uncalibrated, not lucky.
|
||
- **Skip/Low (<4.0)** is a real outcome — an off-pillar or already-resolved topic should land
|
||
there, not get floated to Medium to be polite.
|
||
|
||
Mechanics for the pass:
|
||
|
||
- **Score relatively across the batch.** A 9–10 on a dimension means "exceptional versus the other
|
||
candidates in *this* sweep", not "good in the abstract". Rank the batch, then assign — a flat
|
||
batch of 8s is the failure mode this rule exists to catch.
|
||
- **The distribution shape is the mechanism; the threshold of what counts as exceptional is the
|
||
user's calibration** (the dimension rubrics above + the profile), never a hard-coded fact about
|
||
any one operator's topics. Domain-general: the anti-inflation rule travels; the specific bar does
|
||
not live here.
|
||
- **This is now measurable.** The composite + band are **persisted** on each record (RE-R3a,
|
||
`TrendRecord.score`), so the distribution can be checked across runs — e.g. count the Immediate
|
||
share of a stored sweep. The MR-F7 band-cap gate (N7) builds on the same persisted signal: a
|
||
candidate with no formulable reader-grip is capped below Immediate regardless of composite.
|
||
|
||
## Consumers
|
||
|
||
- `agents/trend-spotter.md` — reads the requested mode and applies the matching rubric
|
||
instead of inlining a matrix (wired in research-engine slice 2b).
|
||
- Any future research-engine pass that scores candidates before writing them to the trend
|
||
store (`scripts/trends/`).
|
||
|
||
**Note (RE-R3d):** the morning brief applies a *brief-time* **temporal overlay** (first-mover /
|
||
saturation, derived from the publish/capture dates + the seen-log) as a **within-composite-tier**
|
||
ranking refinement. It is a separate layer from this file — it does **not** change the capture-time
|
||
dimension weights, bands, or composite formula above.
|