agentleFS
ThakayThakay/agent-skills/skills/cold-read/SKILL.md

cold-read

Skill0 starsChanged 42 days agoMITView on GitHub

Run isolated cold reads of a document (a resume, pitch, README, essay, landing page or design doc) by reviewer personas on Claude Code and Codex. Each reader works in an empty folder with no tools, no user settings and no project context. Then check that the isolation held and synthesize what landed and what to fix. Use when the user asks for a cold read, cold readers, a stranger read or persona reviews, or wants to know how a document reads to its real audience.

6 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use pr-review.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • MicrosoftSkill

    pr-review

    Verify the technical accuracy of a vscode-docs pull request against the VS Code source code in microsoft/vscode. Use when reviewing a docs PR for factual correctness: setting names, command IDs, default values, API shapes, keybindings, versioned availability, and described behavior.

    Also in 3 projects that use this

  • Other versions6 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 6

    1. kevmoo/kevmoo_skills★ 22same name
    2. Ovich/charrette★ 14same name
    3. Ovich/swarmstorm★ 14same name
    4. FiredMosquito831/my-writing-companion★ 2same name
    5. scottlivingston/claude-skills★ 1same name
    6. me2resh/cold-read★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository3 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Put nothing in the target or personas that the user would not show a stranger, and nothing from the user's notes.

    line 60
  2. Distinctive:

    Recurring interview or follow-up questions,: when the target involves a conversation.

    line 86

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Cold read

Find out how a document reads to people who know nothing about its author. Several reviewer personas each read it on one or more model families. Every reader gets the document, the target and its persona inside one prompt, with no tools and no access to the user's files, settings, notes or the web. A reader who has seen the author's context is not cold, so the isolation is the point of the exercise. Never shortcut it.

Before you start

Load the optional private profile using the profile contract, before building any prompt. It usually supplies canary phrases, private terms that must never reach a reader, model defaults, where to run the scripts and where to save reports. A missing default profile means use the defaults below. Report an invalid profile before going on.

The scripts need Node 22 or newer. Reading a PDF needs pdftotext from poppler; without it, ask for a text or Markdown copy of the document. Each model family needs its CLI installed and signed in: claude for Claude Code, codex for Codex. Check with claude --version and codex --version. Using both families is the default, because a model tends to favor text written in its own style. With only one family, say so in the synthesis.

1. Intake

Collect, asking only for what is missing:

  • The document: a path to a PDF, Markdown or text file.
  • The target: what the document is for, such as a job posting, a fellowship, an investor, a project's users or a review board. Prefer the target's own text, such as the posting itself.
  • The decision: what a reader decides after reading, such as "advance to the technical assessment", "take the meeting", "star and try the repo" or "approve the design".
  • Optional: personas the user wants, fit axes to score, models, and runs per reader (default 1).

2. Personas

Derive 3 to 5 personas from the target with the persona guide. Each persona has a short key, who they are, what they weigh and what a yes means to them. Choose the fit axes the target cares about, such as "RL side" and "ML Systems side".

Show the user the persona list, the axes, the number of runs (personas × models × runs) and that each run is a paid model call. Proceed when the user agrees. If the request already said to go ahead, proceed and show the list in your first update.

3. Build the prompts

Work in a scratch folder outside the user's project. From the installed skill folder:

node scripts/extract.mjs <document> <scratch>/input
node scripts/build-prompts.mjs <scratch>/spec.json <scratch>/prompts

extract.mjs writes document.txt and, when it finds any, links.txt. Write spec.json by hand:

{
  "document": "<scratch>/input/document.txt",
  "links": "<scratch>/input/links.txt",
  "target": "The target's own text, or a faithful summary of it.",
  "decision": "advance to the technical assessment",
  "axes": ["RL side", "ML Systems side"],
  "personas": [
    {"key": "screener", "who": "the first-pass reviewer, who reads several hundred applications and decides in about a minute. They weigh clear signals that match the target, credible claims and red flags."}
  ]
}

Put nothing in the target or personas that the user would not show a stranger, and nothing from the user's notes. Read one built prompt before running.

4. Run the readers

node scripts/run.mjs --prompts <scratch>/prompts --reports <scratch>/reports --models claude,codex

Options: --runs N, --concurrency N, --claude-model, --codex-model and --effort, taking defaults from the profile when it names them. Run it in the background when the host allows it; it can take several minutes. The isolation recipe explains every flag. Do not change the flags for one run; change the recipe deliberately.

5. Check the isolation

node scripts/check-isolation.mjs --reports <scratch>/reports --canary "<phrase>" --term "<private term>"

Pass every canary phrase and private term from the profile. A canary is a habit the user's own rules give agents, such as a fixed sign-off. If it appears in a report, the user's rules reached that reader. The script also fails a run that used a tool, took more than one turn, left files in its folder or exited with an error. Report the checks to the user before any feedback. Discard a failed report, fix the cause and rerun only that reader.

6. Synthesize

Lead with the verdicts, then:

  • A table of persona by model, with each verdict and fit score.
  • What landed: lines several readers praised, with counts such as 6/8.
  • Fixes: each fix with how many readers raised it, and whether it can be made from facts already on record or needs a fact or a decision from the user.
  • Gaps no rewording can fix.
  • Recurring interview or follow-up questions, when the target involves a conversation.

Save the reports next to the document in a cold-reads-<date> folder, unless the project's own rules name another place. Do not edit the document until the user approves. Never invent a fact to satisfy a reader; list what needs the user's input.

Limits

Say these when they matter:

  • The readers are models. They do not replace a human stranger's read.
  • One run per reader is one sample, and repeated runs of the same reader can differ. Trust counts across readers more than any single score; use --runs 2 or more when a decision rests on a close call.
  • A document polished with one model family may read better to that family's readers. Weigh disagreement from the other family.
  • The personas carry the author's own view of the target.
  • Readers see only the text layer, so visual layout goes unjudged.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.