← Humanizer & anti-slop skills

seyedehsanhadi/sloptrim: 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 38dbb7cb4e97. All results · Prompt

English post

Layer reached: phrasing · Reads human: 4/5 · Meaning kept: yes · facts kept 3/3 · AI tells 1→1 · em-dashes 6→2
AI-leaning structure (red: still there, struck: removed): States its lessonTidy endingNever addresses the readerOne single track
Judge: The heading changes capitalization from “Review AI Agent Skills Before You Install Them” to “Review AI agent skills before you install them.” The rewrite changes “including credential harvesting...” to “(including credential harvesting...)” and “support—not replace—human review” to “support human review, not replace it,” then separates the final sentence into its own paragraph.

Original

# Review AI Agent Skills Before You Install Them

AI agents are becoming more useful—and more connected. Teams can now extend an agent with third-party skills, `SKILL.md` folders, MCP servers, plugins, and other integrations that let it browse systems, call APIs, modify files, and automate operational work.

That flexibility also creates a new software supply-chain risk. An agent extension may look like a small configuration file or a convenient GitHub repository, but it can influence what the agent executes, what data it accesses, and where that data goes. Engineering managers should make review mandatory before any third-party skill is installed in a development or production environment.

The risk is not limited to obviously malicious code. A skill can contain unsafe instructions, request excessive permissions, encourage an agent to upload sensitive files, or install dependencies from an untrusted source. MCP servers and plugins may also have access to credentials, internal APIs, source code, customer records, or local development environments. A compromised repository, maintainer account, or dependency can turn a seemingly harmless productivity tool into an entry point for a broader incident.

Review should begin with provenance and scope. Identify who maintains the project, how long it has existed, whether its releases are signed or reviewed, and whether its dependencies are pinned. Read the entire `SKILL.md`, setup instructions, installation scripts, and configuration examples—not just the marketing description. Look for requested permissions, network destinations, shell commands, credential handling, filesystem access, and instructions that tell the agent to bypass safeguards or conceal actions from users.

Automated screening can provide a useful first pass. Agent Skills Hub indexes more than 186,000 GitHub repositories, grades skills against 11 red-flag categories—including credential harvesting, data exfiltration, and `curl | sh` installers—and refreshes every 8 hours. Such a service can help teams discover suspicious patterns at scale, but a score should support—not replace—human review. Context matters, and a clean result is not a guarantee that a skill is safe.

Create a lightweight approval process with clear ownership. For low-risk skills, require repository review, a permission check, and testing in a sandbox. For anything that can access production systems, secrets, customer data, or financial operations, involve security and require explicit approval. Use least-privilege tokens, isolated runtimes, restricted network access, and separate credentials for testing. Log agent actions and monitor unusual outbound requests, file access, and command execution.

Teams should also define an exit plan. Know how to uninstall a skill, revoke its credentials, remove cached data, and identify systems it may have touched. Reassess extensions when they change owners, dependencies, permissions, or installation methods.

The goal is not to block experimentation. It is to make agent extensibility operate like any other software dependency: discoverable, reviewable, limited in scope, and observable in production. A few minutes of scrutiny before installation can prevent an agent from turning trusted access into an avoidable security incident.

Rewrite

# Review AI agent skills before you install them

AI agents are becoming more useful—and more connected. Teams can now extend an agent with third-party skills, `SKILL.md` folders, MCP servers, plugins, and other integrations that let it browse systems, call APIs, modify files, and automate operational work.

That flexibility also creates a new software supply-chain risk. An agent extension may look like a small configuration file or a convenient GitHub repository, but it can influence what the agent executes, what data it accesses, and where that data goes. Engineering managers should make review mandatory before any third-party skill is installed in a development or production environment.

The risk is not limited to obviously malicious code. A skill can contain unsafe instructions, request excessive permissions, encourage an agent to upload sensitive files, or install dependencies from an untrusted source. MCP servers and plugins may also have access to credentials, internal APIs, source code, customer records, or local development environments. A compromised repository, maintainer account, or dependency can turn a seemingly harmless productivity tool into an entry point for a broader incident.

Review should begin with provenance and scope. Identify who maintains the project, how long it has existed, whether its releases are signed or reviewed, and whether its dependencies are pinned. Read the entire `SKILL.md`, setup instructions, installation scripts, and configuration examples—not just the marketing description. Look for requested permissions, network destinations, shell commands, credential handling, filesystem access, and instructions that tell the agent to bypass safeguards or conceal actions from users.

Automated screening can provide a useful first pass. Agent Skills Hub indexes more than 186,000 GitHub repositories, grades skills against 11 red-flag categories (including credential harvesting, data exfiltration, and `curl | sh` installers), and refreshes every 8 hours. Such a service can help teams discover suspicious patterns at scale, but a score should support human review, not replace it. Context matters, and a clean result is not a guarantee that a skill is safe.

Create a lightweight approval process with clear ownership. For low-risk skills, require repository review, a permission check, and testing in a sandbox. For anything that can access production systems, secrets, customer data, or financial operations, involve security and require explicit approval. Use least-privilege tokens, isolated runtimes, restricted network access, and separate credentials for testing. Log agent actions and monitor unusual outbound requests, file access, and command execution.

Teams should also define an exit plan. Know how to uninstall a skill, revoke its credentials, remove cached data, and identify systems it may have touched. Reassess extensions when they change owners, dependencies, permissions, or installation methods.

The goal is not to block experimentation. It is to make agent extensibility operate like any other software dependency: discoverable, reviewable, limited in scope, and observable in production.

A few minutes of scrutiny before installation can prevent an agent from turning trusted access into an avoidable security incident.

English short story

Layer reached: surface · Reads human: 5/5 · Meaning kept: yes · AI tells 0→0 · em-dashes 2→2
AI-leaning structure (red: still there, struck: removed): Emotion through the bodyNever addresses the readerOne single track
Judge: The text is substantively unchanged: “The Voice Beneath the Static” becomes “The voice beneath the static,” and curly quotation marks are replaced with straight ones. Lines such as “The reef remembers everything” and “Just in case someone was still trying to come home” remain intact, preserving the specific setting, bodily emotion, and unresolved ending.

Original

# The Voice Beneath the Static

Every morning, Mara climbed the lighthouse stairs before the gulls began their arguments.

She carried a tin mug of tea for her father and a rag for the brass railing, though the railing never seemed to grow dirty. At the top, the lantern room shone pale over the gray sea, and her father stood beside the great lens, watching the horizon as if expecting someone.

“Storm coming,” he said one morning.

“The sky is clear.”

“Storms don’t always begin in the sky.”

Mara looked at him. Her father had been the keeper of Bellwether Light for twenty-seven years, ever since her mother disappeared beyond the reef. He rarely spoke of that day. He spoke instead to the foghorn, the weather vane, and the gull named Admiral who stole biscuits from the kitchen windowsill.

That afternoon, while searching the storage room for a spare oil can, Mara found a wooden crate beneath a torn sailcloth. Inside lay an old radio.

It was square and brown, with a cracked dial and a cloth speaker gone the color of dust. A wire curled from its back like a dead vine.

“What’s this?” she asked.

Her father froze in the doorway.

“Nothing.”

“It looks like a radio.”

“It is.”

“Does it work?”

“No.”

He lifted it from the crate, but Mara noticed how carefully he held it.

“Then why keep it?”

For a moment, the only sound was the sea striking the rocks below.

“Your mother found it,” he said. “The night she went out.”

Mara had heard many versions of the story, but never from him. A fishing boat had sent a distress call. Her mother, Elise, had taken the rescue skiff into the fog. The boat was found the next morning, overturned near the reef. No one found Elise.

“She was listening to it when she left,” her father continued. “There was a transmission. A voice calling from the water.”

“Whose voice?”

He shook his head. “The radio died before I could hear.”

That night, wind pressed against the lighthouse windows. Mara waited until her father slept, then carried the radio to the lantern room. She connected its wire to an old battery and turned the dial.

At first, there was only static.

Then a crackle.

A breath.

Mara leaned closer.

“Bellwether Light,” said a woman’s voice. “Do you copy?”

Mara gripped the radio.

“Hello?”

Static washed over the room.

“Bellwether Light, the tide is turning. Keep the lamp burning.”

The voice was faint, but Mara knew it. She had known it all her life from a single faded photograph and the lullabies her father sometimes hummed without realizing.

“Mother?”

The radio hissed.

“Tell Thomas I’m sorry,” the voice said. “I thought I could reach them.”

Mara ran downstairs and woke her father.

By the time they reached the lantern room, the transmission had returned.

“Thomas,” said Elise’s voice. “You were right about storms.”

Her father stood beneath the turning lens, white-faced.

“Where are you?” Mara cried.

A long pause followed.

“Not where you think. The reef remembers everything.”

Outside, the fog rolled in, thick and sudden, swallowing the sea.

The lighthouse beam swept across the darkness.

On the radio, Elise began to sing—a lullaby about a silver moon and a boat coming home. Mara’s father sank to his knees. He did not weep loudly. He simply bowed his head and listened.

At dawn, the fog lifted.

On the rocks below the lighthouse lay a small, water-darkened bundle. Mara climbed down and found a brass compass inside, its needle trembling toward the sea.

The radio never spoke again.

Her father placed the compass beside the lantern window. After that, he talked more—to Mara, mostly, and sometimes even to the gulls.

Years later, when Mara became keeper of Bellwether Light, she kept the old radio on the shelf beneath the lens.

It remained silent.

But whenever storms gathered beyond the horizon, she turned it on and let the static fill the room.

Just in case someone was still trying to come home.

Rewrite

# The voice beneath the static

Every morning, Mara climbed the lighthouse stairs before the gulls began their arguments.

She carried a tin mug of tea for her father and a rag for the brass railing, though the railing never seemed to grow dirty. At the top, the lantern room shone pale over the gray sea, and her father stood beside the great lens, watching the horizon as if expecting someone.

"Storm coming," he said one morning.

"The sky is clear."

"Storms don't always begin in the sky."

Mara looked at him. Her father had been the keeper of Bellwether Light for twenty-seven years, ever since her mother disappeared beyond the reef. He rarely spoke of that day. He spoke instead to the foghorn, the weather vane, and the gull named Admiral who stole biscuits from the kitchen windowsill.

That afternoon, while searching the storage room for a spare oil can, Mara found a wooden crate beneath a torn sailcloth. Inside lay an old radio.

It was square and brown, with a cracked dial and a cloth speaker gone the color of dust. A wire curled from its back like a dead vine.

"What's this?" she asked.

Her father froze in the doorway.

"Nothing."

"It looks like a radio."

"It is."

"Does it work?"

"No."

He lifted it from the crate, but Mara noticed how carefully he held it.

"Then why keep it?"

For a moment, the only sound was the sea striking the rocks below.

"Your mother found it," he said. "The night she went out."

Mara had heard many versions of the story, but never from him. A fishing boat had sent a distress call. Her mother, Elise, had taken the rescue skiff into the fog. The boat was found the next morning, overturned near the reef. No one found Elise.

"She was listening to it when she left," her father continued. "There was a transmission. A voice calling from the water."

"Whose voice?"

He shook his head. "The radio died before I could hear."

That night, wind pressed against the lighthouse windows. Mara waited until her father slept, then carried the radio to the lantern room. She connected its wire to an old battery and turned the dial.

At first, there was only static.

Then a crackle.

A breath.

Mara leaned closer.

"Bellwether Light," said a woman's voice. "Do you copy?"

Mara gripped the radio.

"Hello?"

Static washed over the room.

"Bellwether Light, the tide is turning. Keep the lamp burning."

The voice was faint, but Mara knew it. She had known it all her life from a single faded photograph and the lullabies her father sometimes hummed without realizing.

"Mother?"

The radio hissed.

"Tell Thomas I'm sorry," the voice said. "I thought I could reach them."

Mara ran downstairs and woke her father.

By the time they reached the lantern room, the transmission had returned.

"Thomas," said Elise's voice. "You were right about storms."

Her father stood beneath the turning lens, white-faced.

"Where are you?" Mara cried.

A long pause followed.

"Not where you think. The reef remembers everything."

Outside, the fog rolled in, thick and sudden, swallowing the sea.

The lighthouse beam swept across the darkness.

On the radio, Elise began to sing—a lullaby about a silver moon and a boat coming home. Mara's father sank to his knees. He did not weep loudly. He simply bowed his head and listened.

At dawn, the fog lifted.

On the rocks below the lighthouse lay a small, water-darkened bundle. Mara climbed down and found a brass compass inside, its needle trembling toward the sea.

The radio never spoke again.

Her father placed the compass beside the lantern window. After that, he talked more—to Mara, mostly, and sometimes even to the gulls.

Years later, when Mara became keeper of Bellwether Light, she kept the old radio on the shelf beneath the lens.

It remained silent.

But whenever storms gathered beyond the horizon, she turned it on and let the static fill the room.

Just in case someone was still trying to come home.

Report on the english post

Flags: 3 · surface 2 · phrasing 1 · structure 0
# sloptrim report: post_en.md

Tool: sloptrim 0.9.4 (`scripts/detect.py`), default settings.

## Score (original input)

- ai_tell_score: **18 / 100**
- Band: **clean**
- Confidence: high
- Patterns flagged: 3

## Findings

| Pattern | Where | Detail |
|---|---|---|
| 59 Title case in headings | Line 1, H1 heading | "Review AI Agent Skills Before You Install Them" |
| 58 Em-dash overuse (>=2 per paragraph) | Paragraph 6 ("Automated screening can provide…") | 4 em-dashes in the paragraph: "categories—including", "installers—and", "support—not replace—human" |
| 44 Uniform paragraph length | Whole document | Paragraph-length CV = 0.394, under the 0.4 threshold, across 9 paragraphs |

Selected metrics: 28 sentences, sentence-length CV 0.418, passive-voice ratio 0.071, first-person ratio 0.0, readability stdev 1.59 (not uniform), 0 invisible characters, 0 homoglyphs, 0 non-standard spaces, no semicolons or parentheticals.

## Rewrite

For the "clean" band (score <= 20), the tool's workflow allows only a character scrub and fixes to the flagged spans, with no full rewrite. The result is saved as `post_en.md`:
- The heading is now in sentence case.
- In paragraph 6, the em-dash aside became parentheses and "support—not replace—human review" became "support human review, not replace it".
- The last sentence of the closing paragraph is now its own paragraph, which breaks up the uniform paragraph lengths.

All facts are unchanged: more than 186,000 repositories, 11 red-flag categories, a refresh every 8 hours, and every name.

Re-score of the rewrite: **1 / 100, clean**, with no patterns flagged (paragraph CV 0.484). Word count went from 472 to 477.

Report on the english short story

Flags: 3 · surface 3 · phrasing 0 · structure 0
# sloptrim report: story_en.md

Tool: sloptrim 0.9.4 (`scripts/detect.py`), default settings.

## Score (original input)

- ai_tell_score: **7 / 100**
- Band: **clean**
- Confidence: high
- Patterns flagged: 3

## Findings

| Pattern | Where | Detail |
|---|---|---|
| 60 Curly quotes | Throughout the dialogue and apostrophes | 60 instances, for example "“Storm coming,” he said one morning." and "“The sky is clear.”" |
| 59 Title case in headings | Line 1, H1 heading | "The Voice Beneath the Static" |
| 46 Semicolon and parenthesis underuse | Whole document | 0 semicolons and 0 parentheticals across 682 words. The tool lists this as advice only and gives it no score weight. |

Selected metrics: 83 sentences, sentence-length CV 0.727 (not monotonous), paragraph CV 1.02, passive-voice ratio 0.0, first-person ratio 0.006, readability stdev 3.23 (not uniform), 0 invisible characters, 0 homoglyphs, 0 non-standard spaces.

## Rewrite

For the "clean" band (score <= 20), the tool's workflow allows only a character scrub and fixes to the flagged spans, with no full rewrite. The result is saved as `story_en.md`:
- Curly double and single quotes are now straight quotes.
- The heading is now in sentence case: "The voice beneath the static".
- Pattern 46 was not changed. The tool says not to insert semicolons mechanically.

None of the story's wording was changed. The names (Mara, Elise, Thomas, Admiral, Bellwether Light) and "twenty-seven years" are untouched.

Re-score of the rewrite: **0 / 100, clean**. The only pattern still flagged is 46, which carries no score weight. Word count is 675, the same as the input.