---
name: os-account-scorer
description: Scores a list of accounts on FIT × MOMENT × CONFIDENCE with PAIN as a readiness gate, and assigns every account exactly one bucket (Action, Research, Monitor, Deprioritize) using the shared readiness policy. Use when the user says "score these accounts", "prioritize my list", "which accounts first", "rank the pipeline", or as the DECIDE step of the GTM AI OS.
---

# os-account-scorer

Produce `artifacts/os-scored-accounts.md`. Read `references/readiness.md` first; it is the single source of truth for the formula, the buckets, and the thresholds. Do not restate them here or anywhere else.

## Preflight (every run)
1. Confirm `GTM-AI-OS/` is accessible. If not: "I need access to your GTM-AI-OS folder. Select it in Cowork's folder picker, or run `os-install` from the core plugin." Stop until it is.
2. Read `CLAUDE.md`, `INDEX.md`, `context/fence.md`, and the last 20 lines of `signals/log.md`.
3. Check the prerequisites below. For anything missing, ask the cold-start questions and offer: (a) run the earlier skill now, or (b) fast path: answer the questions and this skill writes a minimal version of the missing artifact marked `status: draft (fast path)`.
4. Before any connector write or external send, check `context/fence.md` for the account's bucket and the action. Auto = proceed. Approve = ask. Never = decline and name the row.
5. On finish, update the artifact row in `INDEX.md` (with `[[wikilinks]]` to the files this run read) and append one line to `signals/log.md`: `<date> | <skill> | <files read> | <produced> | <human changed> | <open question>`.

## Prerequisites
- `context/icp.md` and `context/signal-library.md` at draft or better.
- At least one full Account Context record from `os-account-context` (the rubric is calibrated on it).
Cold-start: "Give me your ICP in two sentences, your top three buying signals, and where your account list lives (CRM, spreadsheet, or paste it)." Mark fast path and continue.

## Step 1: Get the list
Ask: "Where does your account list live?" Whatever they name (any CRM, a spreadsheet, a paste), request access to that source or the file. Ten to fifty accounts. Do not assume a system.

## Step 2: Score each account
For each account, score FIT, MOMENT, CONFIDENCE, and PAIN exactly as `readiness.md` defines them. Pull evidence from whatever call, email, or enrichment source the user has connected; otherwise use the record and mark gaps Unknown. Signals past expiry do not count toward MOMENT. Synthetic data caps CONFIDENCE at 1.

## Step 3: Bucket by precedence
Apply the precedence list in `readiness.md` top to bottom. First match wins. Every account gets one bucket. Explain any account the user expected higher, citing which threshold it missed.

## Step 4: Records for the top
For every Action Priority account without a full Account Context record, create a draft from the os-know template and offer to run `os-account-context` on it.

## Step 5: Write back
Write the scored table: account, FIT, MOMENT, CONFIDENCE, PAIN, priority score, bucket, the threshold that decided it, message path allowed. If the user's CRM is connected and they approve, write bucket and priority to a field they name. Never write stage. Update `INDEX.md` with links to `[[icp]]`, `[[signal-library]]`, and each account record.

## Quality gate
Refuse to place an account in Action Priority if PAIN < 4 or if any fact supporting PAIN is Inferred, synthetic, or expired.

## Hand off
Say: "Action Priority accounts go to `os-act-loop`. Research Priority accounts go back to `os-account-context`."
