Source profileQuality 93/100

laurigates/claude-plugins/agent-patterns-plugin/skills/cold-read-gate/SKILL.md

cold-read-gate

Gate outward-bound text (upstream issues, docs, PR bodies) through isolated haiku fresh-reader critique before publishing. Use when an artifact must survive a reader with zero project context.

Source repository stars
53
Declared platforms
1
Static risk flags
1
Last source update
2026-08-24
Source checked
2026-08-25

Decision brief

What it does: where it fits

Text written inside a long session inherits the session's context — codenames, version baselines, internal PR numbers, "the obvious fix" — and the author can no longer see which parts won't survive contact with a reader who has none of it. Before publishing an outward-bound arti…

Best for

  • "Outward-bound" means any audience that lacks your session context — external maintainers and future teammates reading internal docs cold both qualify.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeDeclaredSource recordInstall path and trigger
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/laurigates/claude-plugins --skill "agent-patterns-plugin/skills/cold-read-gate"
Safe inspection promptEditorial

Inspect the Agent Skill "cold-read-gate" from https://github.com/laurigates/claude-plugins/blob/5de06622d8def8c36f7f39d980300aaa15af4357/agent-patterns-plugin/skills/cold-read-gate/SKILL.md at commit 5de06622d8def8c36f7f39d980300aaa15af4357. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Step 1: Artifact on disk

    The artifact must be a file. The reader gets a path, not pasted text — paste invites the orchestrator to "helpfully" add context, which defeats the test.

    The artifact must be a file. The reader gets a path, not pasted text — paste invites the orchestrator to "helpfully" add context, which defeats the test.
  2. 02

    Step 2: Dispatch the cold reader — synchronously

    One Agent per artifact, all in a single message when batching. Run each reader synchronously (runinbackground: false, the default) — the reader's entire job is a one-shot critique, and a synchronous run returns that critique directly as the Agent tool result. There is nothing to…

    One Agent per artifact, all in a single message when batching. Run each reader synchronously (runinbackground: false, the default) — the reader's entire job is a one-shot critique, and a synchronous run returns that cri…If a reader was spawned with runinbackground: true, read its critique from the task-completion result the harness returns when the task ends — never by SendMessage. A completed background agent only emits idlenotificati…Item 1 is load-bearing: QUESTIONS and HESITATIONS surface local defects, but an artifact can be locally clear and still ask for something incoherent. A reader that cannot state the ask has found a structural flaw the au…
  3. 03

    Step 3: Triage the critique — gaps, measurements, test artifacts

    The cold reader cannot know the publishing context, so some complaints are artifacts of the test, not defects. A third class is neither: an objection the text cannot settle but a command can. Triage into three buckets before revising:

    The cold reader cannot know the publishing context, so some complaints are artifacts of the test, not defects. A third class is neither: an objection the text cannot settle but a command can. Triage into three buckets b…Test the objection before softening the sentence. A hedge ("results may vary") answers nothing; the measurement often inverts the objection. Capping RAYONNUMTHREADS at 1/2/4/8/24 to answer "the 8.7x is on 24 cores, whic…
  4. 04

    Step 4: Revise once, re-read only on failure

    Apply the genuine gaps with a revise pass (the orchestrator or a revise agent). Re-dispatch a fresh cold reader only if the first verdict was needs-revision; a clear verdict with minor notes means apply the genuine ones and publish without a second opinion. Do not loop more than…

    Apply the genuine gaps with a revise pass (the orchestrator or a revise agent). Re-dispatch a fresh cold reader only if the first verdict was needs-revision; a clear verdict with minor notes means apply the genuine ones…Fallback when the reader can't deliver. If the critique cannot be retrieved (reader died, harness hiccup, background-spawn confusion), do not block publication on the gate: perform the deterministic portion inline — sca…
  5. 05

    Workflow-Script Integration

    Inside a Workflow script the gate is one schema-enforced stage per item:

    Inside a Workflow script the gate is one schema-enforced stage per item:

Permission review

Static risk signals and limitations

Reads files

low · line 61

The documentation asks the agent to read local files, directories, or repositories.

Read ONLY this file (no other files, no repository exploration, no web):

Reads files

low · line 180

The documentation asks the agent to read local files, directories, or repositories.

| Letting the reader explore the repo | "Read ONLY this file" — exploration restores the context the test removes |

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score93/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars53SourceRepository attention, not individual Skill quality
Compatibility1 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
laurigates/claude-plugins
Skill path
agent-patterns-plugin/skills/cold-read-gate/SKILL.md
Commit
5de06622d8def8c36f7f39d980300aaa15af4357
License
MIT
Collected
2026-08-25
Default branch
main
View the original SKILL.md

Cold-Read Gate

Text written inside a long session inherits the session's context — codenames, version baselines, internal PR numbers, "the obvious fix" — and the author can no longer see which parts won't survive contact with a reader who has none of it. Before publishing an outward-bound artifact, dispatch an isolated, cheap, context-free agent to read it cold and interrogate it. What confuses the cold reader is what will cost you a round-trip question (or a silent deprioritization) from the real audience.

The reader is deliberately haiku, isolated, and shown only the artifact. This is a measured exception to the "always Opus for subagents" rule: the subagent here is not doing delegated work — it is the measurement instrument. The test is "can a low-context reader act on this text alone?", and a stronger model (or one with session context) would answer a different, easier question. If haiku can act on it, a busy maintainer can.

When to Use This Skill

"Outward-bound" means any audience that lacks your session context — external maintainers and future teammates reading internal docs cold both qualify.

Use this skill when...Skip when...
Filing issues/MRs on an upstream tracker (external maintainers)Internal scratch notes, commit messages, chat replies
Publishing docs a new team member will land on coldThe artifact is throwaway or has a captive expert audience
PR descriptions for reviewers outside the work's contextThe text is one paragraph — just reread it yourself
Emails / announcements leaving the teamThe same artifact already passed a gate and only typos changed
Batch-producing N artifacts (one reader per artifact, parallel)

The Gate Protocol

Step 1: Artifact on disk

The artifact must be a file. The reader gets a path, not pasted text — paste invites the orchestrator to "helpfully" add context, which defeats the test.

Step 2: Dispatch the cold reader — synchronously

One Agent per artifact, all in a single message when batching. Run each reader synchronously (run_in_background: false, the default) — the reader's entire job is a one-shot critique, and a synchronous run returns that critique directly as the Agent tool result. There is nothing to gain from backgrounding it.

If a reader was spawned with run_in_background: true, read its critique from the task-completion result the harness returns when the task ends — never by SendMessage. A completed background agent only emits idle_notifications on the message channel, so asking it there for its output loops forever without ever returning the analysis (issue #2063).

Template:

subagent_type: general-purpose
model: haiku
run_in_background: false
prompt: |
  You are <persona — see table>. You have NO context beyond the text itself.
  Read ONLY this file (no other files, no repository exploration, no web):
  <absolute path>

  Produce:
  1. THE ASK — state in ONE sentence what this text wants you to DO. If you
     cannot state it, say so plainly: that is the most important finding.
  2. QUESTIONS — anything unclear, ambiguous, undefined (jargon, acronyms,
     unexplained references), or missing that you'd have to ask the author
     before acting. Quote the exact phrase that confused you.
  3. HESITATIONS — claims you can't verify from the text alone, confusing
     structure, anything that would make you deprioritize it.
  4. Verdict: exactly one of `clear` | `needs-revision`.

  Ignore: <known artifacts of the test — see Step 3. Example:
  "Ignore the HTML comments at the top (they are stripped by the filing
  script before publishing) and do not ask which repository this is —
  the issue is filed on the target project's own tracker.">
  Concise bullets. Your final message is the deliverable.

Item 1 is load-bearing: QUESTIONS and HESITATIONS surface local defects, but an artifact can be locally clear and still ask for something incoherent. A reader that cannot state the ask has found a structural flaw the author cannot see, because each half of the argument is individually true.

AudiencePersona
Upstream bug report"an open-source maintainer triaging a newly filed issue"
Team documentation"a new team member reading this doc with no project context"
PR description"a reviewer seeing this change for the first time"

When one artifact serves two channels, give each reader its real audience. An issue-triage persona and a busy-chat-skimmer persona on the same argument returned non-overlapping findings — coherence and exception-shopping from the first, skimmability and cross-section consistency from the second. Two personas cover two axes; the same persona twice covers one.

Step 3: Triage the critique — gaps, measurements, test artifacts

The cold reader cannot know the publishing context, so some complaints are artifacts of the test, not defects. A third class is neither: an objection the text cannot settle but a command can. Triage into three buckets before revising:

Genuine gap — fix itAnswerable with evidence — measure itTest artifact — ignore it
Bare file paths instead of clickable links pinned to a ref"Impact is environment-specific" — a result quoted on one machine/config only"Which repo is this?" when the artifact is filed on that repo's tracker
Unexplained acronym/jargon on first use"I can't verify this claim" about something a single run would settleComplaints about metadata the publish step strips (HTML comments, frontmatter)
Symptom asserted without the actual error outputA benchmark with no baseline, or a ratio with no absolute numbersDemands for repro environments beyond what quoted source code shows
Three suggested fixes with no preferenceCritique of pre-existing scope the current change didn't touch
Internal references (PR #s, ticket IDs) leaking into external textRequests to restructure a document section you didn't write
Internal arithmetic that doesn't add up ("12 across two waves" — which 12?)

Test the objection before softening the sentence. A hedge ("results may vary") answers nothing; the measurement often inverts the objection. Capping RAYON_NUM_THREADS at 1/2/4/8/24 to answer "the 8.7x is on 24 cores, which is uncommon" cost one command and showed the win saturates near 4 threads — an ordinary laptop gets nearly all of it (tracel-ai/burn#5332). Route here, not to a rewrite, whenever a bounded run can produce the number.

Step 4: Revise once, re-read only on failure

Apply the genuine gaps with a revise pass (the orchestrator or a revise agent). Re-dispatch a fresh cold reader only if the first verdict was needs-revision; a clear verdict with minor notes means apply the genuine ones and publish without a second opinion. Do not loop more than twice — a third round means the artifact has a structural problem the gate can't fix.

Fallback when the reader can't deliver. If the critique cannot be retrieved (reader died, harness hiccup, background-spawn confusion), do not block publication on the gate: perform the deterministic portion inline — scan the artifact yourself for internal references (PR/ticket numbers, codenames), unexplained jargon, and self-containment — and publish on that basis. The cold read is the better instrument, but a hand scan beats an abandoned gate.

Workflow-Script Integration

Inside a Workflow script the gate is one schema-enforced stage per item:

const cold = await agent(
  `You are an upstream maintainer triaging a newly filed issue. NO context
   beyond the text. Read ONLY ${draft.path}. QUESTIONS / HESITATIONS /
   verdict. Ignore the top HTML comments (stripped before filing).`,
  { label: `coldread:${item.id}`, phase: 'ColdRead', model: 'haiku',
    schema: { type: 'object', properties: {
      verdict: { type: 'string', enum: ['clear', 'needs-revision'] },
      critique: { type: 'string' } },
      required: ['verdict', 'critique'] } },
)
if (cold?.verdict === 'needs-revision') { /* revise agent, then one re-read */ }

Evidence

First production run (FVH infrastructure, 2026-06-11, 7 upstream issue drafts + 5 docs): the gate surfaced a timeline whose headline number didn't reconcile with its own breakdown, an undefined role name (NOTARY) at the moment of its dramatic payoff, a Spring Boot issue that never named Spring Boot, a fix section offering three options with no recommendation, and two drafts judged "not actionable as written" that were revised before filing. All 12 issues filed after the gate drew zero clarification round-trips.

Later run (registry-maintainer appeal, 2026-08): two independent readers each failed to state the ask — the text argued a finding was unfixable by publishers, then asked publishers to approve individual versions. Four rounds of author revision had not surfaced it, because each half was individually true. The same run caught an arithmetic contradiction and an exception-shopping ask that would have jeopardised the other twelve packages.

Common Mistakes

MistakeCorrect approach
Using opus/sonnet as the reader "for better critique"The weak reader is the point — it measures, not advises
Spawning the reader with run_in_background: trueRun synchronously — the critique is the tool result of a synchronous run
Polling a completed background reader via SendMessageIt only emits idle_notifications there; read the task-completion result instead (#2063)
Pasting the artifact into the promptGive a path; pasted text tempts context smuggling
Letting the reader explore the repo"Read ONLY this file" — exploration restores the context the test removes
Acting on every complaintTriage first (Step 3); artifacts of the test produce busywork
Softening a claim the reader couldn't verifyRun the measurement when one exists — it often inverts the objection
Running the same persona twice on a two-channel artifactOne reader per channel; each gets its real audience
Looping until the reader is silentOne revise round; persistent confusion = structural problem
Gating drafts but not the docs that reference themAnything a cold audience lands on qualifies

Related

  • verify-before-plan — verifies premises before work; this skill verifies legibility after
  • workflow-orchestration-plugin:workflow-verify-before-filing — the filing pipeline this gate slots into as the pre-publish stage
  • parallel-agent-dispatch — batching N readers follows its single-message dispatch contract

Frequently asked questions

What to verify before installation and use

What does the cold-read-gate source document cover?

Text written inside a long session inherits the session's context — codenames, version baselines, internal PR numbers, "the obvious fix" — and the author can no longer see which parts won't survive contact with a reader who has none of it. Before publishing an outward-bound arti…

How do I install cold-read-gate?

The source record exposes this install command: npx skills add https://github.com/laurigates/claude-plugins --skill "agent-patterns-plugin/skills/cold-read-gate". Inspect the command and pinned source before running it.

Which Agent platforms does the source record declare?

The pinned source record declares support for: claude code.

Which permission-related actions were detected?

Static rules flagged read-files in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 973,066

samber/cc-skills-golang

golang-testing

Production-ready Golang tests — table-driven tests, testify suites and mocks, parallel tests, fuzzing, fixtures, goroutine leak detection with goleak, snapshot testing, code coverage, integration tests, idiomatic test naming. Use when writing or reviewing Go tests, choosing a testing approach, setting up Go test CI, or debugging flaky/slow tests. For testify-specific APIs see `samber/cc-skills-golang@golang-stretchr-testify`; for measurement methodology see `samber/cc-skills-golang@golang-benchm

Computed 967

aomi-labs/skills

aomi-build

Scaffold new Aomi apps and plugins from API docs, OpenAPI/Swagger specs, or SDK references. aomi-build generates production-ready Rust SDK crates (lib.rs, client.rs, tool.rs) with tool schemas, preambles, host-interop flows, and validation — turning a vendor's API surface into AI-agent-callable tools. It covers the current `aomi-build` OpenAPI pipeline (`gen-specs` → `gen-client` → `gen-tool` → curate → compile/test) as well as greenfield apps. Use when the user wants to scaffold a new Aomi app

Computed 95203

PramodDutta/qaskills

API Test Suite Generator

Automatically generate comprehensive API test suites from OpenAPI specifications covering CRUD operations, error handling, authentication, pagination, and edge cases

Computed 9565

brucesongs/kali-claw

eu-ai-act-compliance-redteam

EU AI Act (Regulation (EU) 2024/1689) compliance-focused red team testing for high-risk AI systems — Article 9 adversarial testing, Annex III classification, Annex IV technical documentation, conformity assessment, and Notified Body audit preparation. Enforceable since 2 August 2026 with fines up to €35M or 7% global turnover.