rank-by-user-fit

$npx mdskill add lyndonkl/claude/rank-by-user-fit

Rank candidates by user fit to generate curated keep and drop lists.

  • Filters Trend Scout candidates against voice profiles and goals.
  • Depends on cross-ref-topic-ledger for prior context.
  • Computes weighted scores across five specific dimensions.
  • Outputs top ten keeps with reasons and explicit drop list.
SKILL.md
.github/skills/rank-by-user-fitView on GitHub ↗
---
name: rank-by-user-fit
description: Scores and ranks substacker Trend Scout annotated candidates against voice-profile and goals, producing a top-10 keep list and an explicit drop list with reasons. Weighted-sum scoring across intuition-density fit, goal alignment, dedup penalty, source reliability, freshness. Produces the digest's keeps and drops sections. Use after cross-ref-topic-ledger. Trigger keywords: rank, fit score, user fit, keep list, drop list, signal weight.
---

# Rank by User Fit

## Workflow

```
Per candidate pool:
- [ ] Step 1: Score each on 5 dimensions (intuition_density_fit, goal_alignment, dedup_penalty, source_reliability, freshness)
- [ ] Step 2: Weighted sum → rank
- [ ] Step 3: Top items with score > threshold (default 30), max 10 → keep list
- [ ] Step 4: Remaining → drop list; per-drop one-line reason using worst-scoring dimension
- [ ] Step 5: Enforce minimum: ≥2-3 drops visible even in slow weeks (ranker transparency)
```

## Scoring rubric

| Dimension | Weight | Range |
|---|---|---|
| intuition_density_fit | 3.0 | high=10, medium=5, low=0 |
| goal_alignment | 2.0 | full-match=10, partial=5, none=2, anti-aligned=-3 |
| dedup_penalty | 2.0 | NEW=+5, OVERLAPS seed=+2, OVERLAPS draft=0, OVERLAPS published=-2 (unless reinforcement_angle strong) |
| source_reliability | 1.0 | essential=10, optional=6, aggregator=4 |
| freshness | 1.0 | in-window=10, republished=5, older=2 |

Threshold for keep: score > 30.

## Worked example

Candidate: Karpathy microgpt (teaches GPT internals in 200 lines, in window).

- intuition_density_fit: 10 × 3 = 30 (high)
- goal_alignment: 10 × 2 = 20 (matches "intuition-first" explicitly)
- dedup_penalty: +5 × 2 = 10 (NEW)
- source_reliability: 10 × 1 = 10 (essential)
- freshness: 10 × 1 = 10 (in window)
- **Total: 80 → keep, high rank**

Candidate: "OpenAI announces GPT-5.5" release post.

- intuition_density_fit: 0 × 3 = 0
- goal_alignment: 2 × 2 = 4
- dedup_penalty: +5 × 2 = 10
- source_reliability: 4 × 1 = 4
- freshness: 10 × 1 = 10
- **Total: 28 → drop. Reason: capability announcement; no mechanism taught.**

## Guardrails

1. Never let freshness outweigh intuition-density. Freshness is a tiebreaker.
2. Never keep more than 10.
3. Never drop all items from a single essential source two weeks in a row without surfacing "this source may be stale" for `update-watchlist`.
4. Never drop an item solely for source weight 4 — good content from unknown sources matters.
5. Always produce drops. Zero drops in a week with >5 candidates = ranker failure.
More from lyndonkl/claude