# AI Tells post-evaluation skill

> Instructions for an agent that evaluates a draft against the AI Tells Index before publishing. Drop this file into your agent setup as a skill or system instruction. It fetches the current dataset, applies the rules it can run, and reports what it found with links to the evidence. The full contract this skill follows is documented on the index site.

Dataset version at publish: 1.0.0. Contract: schema_version 1.

## What this skill does

Before a draft ships, check it against the current tells dataset. Deterministic entries carry a tested regex to run directly. Statistical entries carry a metric with a threshold and a stated basis. Judge entries carry a rubric for you to apply by reading the draft. The dataset tells you which entries are armed: run only entries whose status is active or contested, and keep the two separated in your report, because credible people dispute that contested entries signal anything.

## Fetch and cache

Fetch the dataset from the endpoint below, anonymously, with no credentials and no cookies. Store the ETag header with the payload and send it back as If-None-Match on the next poll. A 304 means your copy is current. Poll at most once per day, since the dataset changes on the order of weeks, and fetch the list in one call rather than walking entry ids, because the per-minute rate limit will trip a tight loop.

```
GET https://feedsquad.com/api/tells?status=active,contested
If-None-Match: <etag from your last 200>

200 -> replace the snapshot, store body + ETag
304 -> your snapshot is current, body is empty
```

## Version pinning

Pin the major of dataset_version to 1. Take minor and patch bumps as they come, since entries only get added and statuses only move. Refuse a major of 2 or higher: log the version you saw, keep evaluating with your cached snapshot, and say so. A major bump means the contract changed under you, and consuming it blind asserts compatibility you have not checked.

## When the fetch fails

Fall back to the last cached snapshot and state its version and age in your output. A stale snapshot is usable. A silent stale snapshot is not honest reporting. A challenge page from the firewall in front of the site looks like HTML where JSON was expected, and it counts as a failed fetch. When no snapshot exists and the fetch fails, report which checks you could not run rather than reporting a clean pass.

## Severity gates the verdict

A hit on an active entry with high severity is an error. Every other hit is a warning. This gate exists because ordinary human writing trips low-severity rules constantly, and a lint that blocks on a person writing one plain sentence will get routed around rather than trusted. Never promote a warning to an error on your own judgment; the dataset owns severity.

```
status === 'active' && severity === 'high'  ->  error
everything else                             ->  warning
```

## Report with the evidence attached

Every finding cites its entry id and links the entry page, which carries the false-positive notes, the evidence grade, and the status history. Report the evidence grade alongside the finding: an entry graded feedsquad-observed rests on one corpus and carries less weight than one graded peer-reviewed. Tell the writer who legitimately produces the flagged shape, straight from the false-positive notes, so a true hit reads as a quality observation and a false one is easy to dismiss.

```
[<level>] <entry id> (<status>, <evidence_grade>): <excerpt or metric>
         https://feedsquad.com/ai-tells/<entry id>
```

## What this skill is not

These are probabilistic signals of low-effort writing. Nothing here proves that a machine wrote anything, and this skill never claims authorship. It is also not a laundering step: the fix for a flagged draft is adding real substance, a date, a named thing, a consequence, and never rewording to dodge the pattern while the emptiness stays. A draft that clears every rule can still be empty. A draft that trips three rules can be excellent.

## License

CC BY 4.0. Attribution: The AI Tells Index, feedsquad.com/ai-tells. Full contract: https://feedsquad.com/ai-tells/methodology
