← Humanizer & anti-slop skills

tbhb/vale-ai-tells: test run, 2026-10-07

Claude Code (Claude Opus 5.5) used this skill on three texts written by gpt-6-astra, asked to make them read as human-written and keep every fact. Judge: gpt-6-astra, comparing original and rewrite on StoryScope's structure features (COLM 2026). Repo commit 4c7abc9fffff. All results · Prompt

Report on the english post

Flags: 10 · surface 6 · phrasing 3 · structure 1
# vale-ai-tells report: post_en.md

Tool: vale-ai-tells (from ~/src), run with Vale 3.24.0 using the README's default configuration: `BasedOnStyles = ai-tells` for `*.md`, `MinAlertLevel = suggestion`, and the package's `ai-tells-agent.tmpl` output template.

Score: the tool gives no score. It reports individual findings and a total count.

TOTAL: 10 finding(s) (10 error, 0 warning, 0 suggestion) in 1 file(s)

## Findings by rule

| Rule | Count |
|------|-------|
| `ai-tells.EmDashUsage` | 6 |
| `ai-tells.VerbTricolon` | 3 |
| `ai-tells.MicDrop` | 1 |

## Findings (line:column range, severity, rule, matched text, message)

```text
FILE: /home/runner/work/input/post_en.md
3:35-35 [error] ai-tells.EmDashUsage match="—" msg="AI punctuation: em-dash detected. Use a comma, period, or parentheses instead."
5:84-226 [error] ai-tells.VerbTricolon match="may look like a small configuration file or a convenient GitHub repository, but it can influence what the agent executes, what data it accesses" msg="AI tricolon: 'may look like a small configuration file or a convenient GitHub repository, but it can influence what the agent executes, what data it accesses'. Exactly three parallel verbs in series. Restructure or vary the count."
7:62-169 [error] ai-tells.VerbTricolon match="can contain unsafe instructions, request excessive permissions, encourage an agent to upload sensitive files" msg="AI tricolon: 'can contain unsafe instructions, request excessive permissions, encourage an agent to upload sensitive files'. Exactly three parallel verbs in series. Restructure or vary the count."
7:246-308 [error] ai-tells.VerbTricolon match="may also have access to credentials, internal APIs, source code" msg="AI tricolon: 'may also have access to credentials, internal APIs, source code'. Exactly three parallel verbs in series. Restructure or vary the count."
9:291-291 [error] ai-tells.EmDashUsage match="—" msg="AI punctuation: em-dash detected. Use a comma, period, or parentheses instead."
11:54-269 [error] ai-tells.MicDrop match="Agent Skills Hub indexes more than 186,000 GitHub repositories, grades skills against 11 red-flag categories—including credential harvesting, data exfiltration, and ********* installers—and refreshes every 8 hours." msg="AI mic-drop: 'Agent Skills Hub indexes more than 186,000 GitHub repositories, grades skills against 11 red-flag categories—including credential harvesting, data exfiltration, and ********* installers—and refreshes every 8 hours.'. Integrate the point into the surrounding text or cut it."
11:162-162 [error] ai-tells.EmDashUsage match="—" msg="AI punctuation: em-dash detected. Use a comma, period, or parentheses instead."
11:241-241 [error] ai-tells.EmDashUsage match="—" msg="AI punctuation: em-dash detected. Use a comma, period, or parentheses instead."
11:366-366 [error] ai-tells.EmDashUsage match="—" msg="AI punctuation: em-dash detected. Use a comma, period, or parentheses instead."
11:378-378 [error] ai-tells.EmDashUsage match="—" msg="AI punctuation: em-dash detected. Use a comma, period, or parentheses instead."
TOTAL: 10 finding(s) (10 error, 0 warning, 0 suggestion) in 1 file(s)
```

Note: Vale masks inline code spans before matching, so the `*********` in the post_en MicDrop match stands for the code span `curl | sh` in the source.

Report on the english short story

Flags: 12 · surface 6 · phrasing 5 · structure 1
# vale-ai-tells report: story_en.md

Tool: vale-ai-tells (from ~/src), run with Vale 3.24.0 using the README's default configuration: `BasedOnStyles = ai-tells` for `*.md`, `MinAlertLevel = suggestion`, and the package's `ai-tells-agent.tmpl` output template.

Score: the tool gives no score. It reports individual findings and a total count.

TOTAL: 12 finding(s) (12 error, 0 warning, 0 suggestion) in 1 file(s)

## Findings by rule

| Rule | Count |
|------|-------|
| `ai-tells.FigurativeNouns` | 3 |
| `ai-tells.EmDashUsage` | 2 |
| `ai-tells.VerbTricolon` | 1 |
| `ai-tells.MortalityMetaphors` | 1 |
| `ai-tells.MicDrop` | 1 |
| `ai-tells.FillerIntensifier` | 1 |
| `ai-tells.FigurativeSweeps` | 1 |
| `ai-tells.FigurativeQuiet` | 1 |
| `ai-tells.BareReaches` | 1 |

## Findings (line:column range, severity, rule, matched text, message)

```text
FILE: /home/runner/work/input/story_en.md
5:212-225 [error] ai-tells.FigurativeNouns match="the great lens" msg="AI figurative noun: 'the great lens'. Say what concrete thing it stands for."
9:2-18 [error] ai-tells.MicDrop match="The sky is clear." msg="AI mic-drop: 'The sky is clear.'. Integrate the point into the surrounding text or cut it."
13:193-299 [error] ai-tells.VerbTricolon match="to the foghorn, the weather vane, and the gull named Admiral who stole biscuits from the kitchen windowsill" msg="AI tricolon: 'to the foghorn, the weather vane, and the gull named Admiral who stole biscuits from the kitchen windowsill'. Exactly three parallel verbs in series. Restructure or vary the count."
47:21-34 [error] ai-tells.MortalityMetaphors match="The radio died" msg="AI mortality metaphor: 'The radio died'. Say what stopped, or what was kept. Disable this rule for biology or process-lifecycle prose."
69:75-82 [error] ai-tells.FillerIntensifier match="a single" msg="AI intensifier: 'a single'. Delete the intensifier. The determiner already states the count."
79:4-28 [error] ai-tells.BareReaches match="the time they reached the" msg="AI arrival metaphor: 'the time they reached the'. Say which step handles it, or where it is sent. Disable this rule for transit or physics prose."
83:26-41 [error] ai-tells.FigurativeNouns match="the turning lens" msg="AI figurative noun: 'the turning lens'. Say what concrete thing it stands for."
93:21-32 [error] ai-tells.FigurativeSweeps match="swept across" msg="AI overused verb: 'swept across'. Use the literal action: is removed or is replaced. Disable this rule for housekeeping or weather prose."
95:34-34 [error] ai-tells.EmDashUsage match="—" msg="AI punctuation: em-dash detected. Use a comma, period, or parentheses instead."
103:84-84 [error] ai-tells.EmDashUsage match="—" msg="AI punctuation: em-dash detected. Use a comma, period, or parentheses instead."
105:103-110 [error] ai-tells.FigurativeNouns match="the lens" msg="AI figurative noun: 'the lens'. Say what concrete thing it stands for."
107:4-18 [error] ai-tells.FigurativeQuiet match="remained silent" msg="AI overused word: 'remained silent'. Describe the actual behavior instead of calling inaction silence. Disable this rule for prose about sound."
TOTAL: 12 finding(s) (12 error, 0 warning, 0 suggestion) in 1 file(s)
```