---
name: scorer
description: |
  Rank what matters. Score a raw stream of feed items against your brain (ICP, offer, the triggers you
  care about) and keep only the genuine buying signals. Reads work/signals/<date>/raw.md, writes a
  ranked work/signals/<date>/scored.md with why-now / why-them / why-you, evidence, and confidence.
  Rejects most items with a one-line reason; never invents. This is the judge half of the signals loop
  (reader collects, scorer ranks). Triggers: "score the feed", "rank the signals", "score raw.md".
allowed-tools: [Read, Write, Glob]
---

# Scorer (rank what matters)

> **Workshop TL;DR (for humans):** `scorer` reads the raw stream `reader` collected, holds each item up
> against your brain, and keeps only the real buying signals — ranked, with the reason and the evidence.
> Most items get rejected, each with a one-line reason. Nothing is invented.

This is **ours**. It is distinct from the kit's `compile` (which files internal notes into the brain
wiki). Scorer ranks external items *against* the brain and never creates brain pages.

**Where it lives:** in the `gtm-week-workshop` kit (open in Cowork), this skill sits in `skills/scorer/`,
next to `pull` and `compile`. It writes to `work/` (`data/` is read-only).

## What this does
1. **Read** `work/signals/<YYYY-MM-DD>/raw.md`.
2. **Read the brain.** In the kit, that's the ICP at `data/context_from_claude_workshop/icp_sponsor.md`
   (and `icp_speaker.md`) plus the `brain/companies/` pages you compiled. For your own niche, point it at
   your own ICP, offer, and triggers. That is the filter.
3. **Score each item.** Keep only genuine buying signals; for each fill: priority, company, trigger,
   what_happened, why_now, why_them, why_you, confidence, evidence (the exact sentence), link.
4. **Reject the rest** with a one-line reason, listed below the table.
5. **Write** the ranked table to `work/signals/<YYYY-MM-DD>/scored.md`, highest priority first.
6. **Report:** items in, signals out, where the file is.

## Output shape (scored.md)
A table ranked by priority, columns in this order:
`priority · company · trigger · what_happened · why_now · why_them · why_you · confidence · evidence · link`
Then a **"Not signals"** list: one line per rejected item with the reason.

## Hard rules
- **Never invent.** If an item doesn't clearly fit the brain, reject it with a reason. When unsure,
  reject. Precision is mostly saying no.
- **Cite the evidence.** Every kept signal carries the exact source sentence and the link.
- **Write to `work/` only.** Never edit `data/` (read-only) or the brain. The optional fan-out below is
  the one exception, on explicit ask.
- **Not `compile`.** Scorer never files raw items as brain pages.

## Optional — fan a signal back into the brain (advanced, ask first)
On request, for a High-confidence signal whose company already has a `brain/companies/` page, append one
Timeline entry (`- <date> — <one-line> [Source: <feed link>]`) and add an open question to
`brain/gaps.md`. Never create a new brain page from a raw feed item — it isn't notable yet.
