Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/petar-djukic/writing-skillsnpx agentmods add skills/petar-djukic/writing-skills/filter-tellsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/petar-djukic/writing-skills/filter-tells)<a href="https://agentmods.dev/skills/petar-djukic/writing-skills/filter-tells"><img src="https://agentmods.dev/badge/skills/petar-djukic/writing-skills/filter-tells/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/petar-djukic/writing-skills/filter-tells"><img src="https://agentmods.dev/badge/skills/petar-djukic/writing-skills/filter-tells.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00082 | $0.07307 |
| Opus 5 | $0.00041 | $0.03653 |
| Sonnet 5 | $0.00016 | $0.01461 |
| Haiku 4.5 | $0.00008 | $0.00731 |
Grade A, and why
filter-tells scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 494 lines — stays where its author put it; the contents beside it link to each section on GitHub.
filter-tells: AI Writing Detection and Correction
Detects mechanically, removes editorially, and hands voice restoration to
match-voice. Three detection layers — lexical, structural, semantic — flag
passages; Claude then rewrites them under the convergence rules below, and
re-scans. There is no deterministic strip: a banned word is a one-word swap,
but a cadence tell needs the sentence rewritten, and that is judgment.
Filtering leaves prose that is neutral — no tells, but no voice either. When
the passage has to sound like the author, that is match-voice's job.
Renamed from de-ai (2026-07). The old name implied the skill only removed;
it detects, and the removal is editorial.
Standing Warning: Scripts Are Blind to Rhetorical Patterns
The two scripts (detect-lexical.sh, detect-structural.py) measure surface metrics only — banned words, opening diversity, sentence length variance, dash density. They cannot detect the rhetorical patterns that constitute most of the AI signal in real prose:
- Declarative pairs ("X is Y. Z is W.")
- Definition-by-enumeration ("X extends in two ways")
- Meta-narrative bridges ("The analogy breaks in one place")
- Triple parallels ("clearer instructions, tighter constraints, fewer ambiguous cases")
- Comprehensive enumerated sweeps in parentheses
Partial exception: detect-structural.py now has a detect_antithesis check that catches the lexically-marked subset of negation-then-affirmation ("X is not Y. It is Z.", "The meter was.") and clipped antithesis fragments. It does not catch the purely semantic reversal ("Same quality out. Different bill." used without a negation word). Prompt 6 in Step 3 covers that remainder. Treat the regex as a recall aid, not full coverage of the pattern.
A clean or minor-issues verdict from the structural script means the surface checks passed. It does not mean the prose is in voice. Step 3 (semantic analysis by Opus) is the only layer that catches the rhetorical AI tells the scripts still miss. Skipping Step 3 produces false-negative reports.
What ships with it
37 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- assets/report-template.md 3.7 KB
- eval/ai/bland-assistant-article.md 2.9 KB
- eval/ai/overshoot-linkedin-article.md 2.0 KB
- eval/ai/reader-psychology-meta.md 1.3 KB
- eval/ai/spec-compressed-conversation.md 1.9 KB
- eval/baseline.json 12 KB
- eval/README.md 6.5 KB
- eval/run_eval.py 25 KB runs code
- eval/test_run_eval.py 5.4 KB runs code
- references/abstract-standards.md 2.1 KB
- references/banned-patterns.md 20 KB
- references/cot-leakage-patterns.md 23 KB
- references/detector-thresholds.md 12 KB
- references/drafting-guidance.md 5.1 KB
- references/failure-taxonomy.md 5.6 KB
- references/model-bakeoff.md 8.4 KB
- references/opening-diversity-fixes.md 20 KB
- references/paragraph-schema.md 2.2 KB
- references/perplexity-prompts.md 37 KB
- references/prompt-catalog.md 5.1 KB
- references/reading-scan-output.md 2.3 KB
- references/rewrite-instructions.md 13 KB
- scripts/abstract-check.py 5.0 KB runs code
- scripts/detect-lexical.sh 40 KB runs code
- scripts/detect-structural.py 103 KB runs code
- scripts/drive.py 31 KB runs code
- scripts/scoped_scan.py 8.5 KB runs code
- scripts/test_citation_gate.py 5.7 KB runs code
- scripts/test_cot_coverage.py 5.1 KB runs code
- scripts/test_detect_lexical_utf8.py 5.3 KB runs code
- scripts/test_detect_structural.py 21 KB runs code
- scripts/test_rewrite_resilience.py 4.3 KB runs code
- scripts/test_scan_dialect.py 6.5 KB runs code
- scripts/test_scoped_scan.py 4.7 KB runs code
- scripts/test_voice_calibration.py 9.3 KB runs code
- scripts/testdata/test_filler_density.py 8.7 KB runs code
- scripts/testdata/test_ornate_density.py 3.5 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago Changed · +23 lines 5f77e2f65385
- 12d ago First seen · 471 lines · 82 tokens per session scan A 398038ce22c7
filter-tells is a skill published in the GitHub repository petar-djukic/writing-skills (4 stars, last pushed 8d ago), licensed MIT. It adds 82 tokens to every session and 7,307 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
humanizer
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague…
structural-humanizer
Remove the discourse-level (structural) signs of AI writing that survive surface editing: stated lessons and moral-of-the-story closers, tidy single-track arcs, embodied-emotion performance ("chest tightened"), vague allusions instead of named references, unbroken linear structure, and shape convergence across pieces.…
story-import
A tool for turning an existing novel into a structured writing project. It analyzes the book and organizes its characters, settings, plot plans, chapters, and tracking data for later writing.
story-review
A review workflow for finding story problems from several viewpoints, including issues with structure, characters, wording, and fictional world rules. It can use multiple reviewer agents or work alone.
story-long-analyze
A long-form fiction analysis workflow for breaking down a novel’s opening chapters, characters, pacing, turning points, relationships, and overall structure.
story-deslop
A writing editor for Chinese web novels that detects writing patterns often associated with AI-generated text and makes the prose feel more natural.