Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion docs/arch/comparisons.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ flowchart LR
No live registry join is needed to render an article.
If future articles need registry data, read it over HTTP.
Keep prose, evidence, and selection reasons in the article, outside registry rows.
`ComparisonSkillCard` renders the shared `SkillCard` from the article's editorial snapshot.
Keep its exact Skill route and pinned source beside the overview. Omit live counts and freshness.
Article `authorGithub` supplies an optional avatar through the existing same-origin image proxy.

## Authoring contract

Expand All @@ -39,7 +42,7 @@ Keep prose, evidence, and selection reasons in the article, outside registry row
5. If delivery fails, inspect pinned public source independently. Describe the method without claiming a successful run.
6. If checks block delivery, keep that constraint beside the candidate. Do not suggest bypassing checks.
7. Filter candidates before writing. Keep meaningful choices; retain the wider source ledger in the work brief.
8. Write the decision table, meaningful tradeoffs, and conditional recommendations before background material.
8. Introduce the choice, then describe each featured Skill with its card before the decision table and supporting sections.
9. Review material claims against the sources, then review voice against COPY and GLOSSARY.

Frontmatter requires `targetQuery`, `reviewedAt`, `reviewDueAt`, `scope`, `methodology`, `disclosure`, and `sources`.
Expand Down
31 changes: 26 additions & 5 deletions layers/marketing/app/components/MarketingArticle.vue
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
<script setup lang="ts">
import type { PageCollectionItemBase } from '@harlan-zw/comark-content'
import { githubAvatarProxyUrl } from '#shared/image-proxy'

/** Front matter fields the marketing article schema adds to the base page. */
type MarketingArticlePage = PageCollectionItemBase & {
heading?: string
label?: string
author?: string
authorGithub?: string
command?: string
cta?: { label: string, to: string }
}
Expand Down Expand Up @@ -38,9 +40,19 @@ function copyCommand(): void {
<p class="mt-5 max-w-2xl text-base leading-relaxed text-muted text-pretty">
{{ page.description }}
</p>
<p v-if="dataLine" class="data-label mt-4">
{{ dataLine }}
</p>
<div v-if="dataLine" class="mt-4 flex items-center gap-3">
<img
v-if="page.author && page.authorGithub"
:src="githubAvatarProxyUrl(page.authorGithub, 80)"
alt=""
width="40"
height="40"
class="size-10 shrink-0 rounded-full"
>
<p class="data-label">
{{ dataLine }}
</p>
</div>

<div
v-if="page.command"
Expand Down Expand Up @@ -81,13 +93,22 @@ function copyCommand(): void {
background: var(--ui-bg);
}

.learn-article :deep(a) {
.learn-article :deep(a:not(:where(.not-prose, .not-prose *))) {
color: var(--ui-text);
text-decoration-line: underline;
text-decoration-color: var(--ui-color-primary-500);
text-decoration-thickness: 1px;
text-underline-offset: 0.2em;
}

.learn-article :deep(a:hover) {
.learn-article :deep(a:not(:where(.not-prose, .not-prose *)):hover) {
color: var(--ui-text-muted);
text-decoration-thickness: 2px;
}

.learn-article :deep(a:not(:where(.not-prose, .not-prose *)):focus-visible) {
outline: 2px solid var(--ui-primary);
outline-offset: 3px;
}

/* Native article diagrams retain readable, server-rendered text in both themes. */
Expand Down
41 changes: 41 additions & 0 deletions layers/marketing/app/components/content/ComparisonSkillCard.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<script setup lang="ts">
const { owner, repo, name, to, source, description } = defineProps<{
owner: string
repo: string
name: string
to: string
source: string
description: string
}>()

// Editorial snapshots stay with the article's pinned evidence, without a live registry join.
const skill = computed(() => ({
owner,
repo,
name,
registryPath: to,
slug: `${owner}/${repo}/${name}`,
description,
skillFileUrl: source,
}))
</script>

<template>
<div class="comparison-skill-card not-prose my-5">
<SkillCard
:skill="skill"
signal="none"
show-owner-path
:show-copy="false"
:show-like="false"
/>
</div>
</template>

<style scoped>
/* Source links remain easy to reach on touch screens inside the article. */
.comparison-skill-card :deep(a[target='_blank']) {
min-width: 44px;
min-height: 44px;
}
</style>
1 change: 1 addition & 0 deletions layers/marketing/content.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const articleSchema = z.object({
heading: z.string().optional(),
label: z.string().optional(),
author: z.string().optional(),
authorGithub: z.string().optional(),
command: z.string().optional(),
cta: z.object({ label: z.string(), to: z.string() }).optional(),
publishedAt: z.string().optional(),
Expand Down
127 changes: 83 additions & 44 deletions layers/marketing/content/comparisons/humanize-writing-skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: "Humanizer vs Stop Slop vs No AI Slop: writing Skills compared"
description: "Compare Humanizer, Stop Slop, and No AI Slop by editing workflow, voice preservation, fact checks, and required files."
label: "Source review Β· 5 October 2026"
author: "Harlan Wilton"
command: "npx skilld run petergyang/no-ai-slop/no-ai-slop"
authorGithub: "harlan-zw"
targetQuery: "best humanizer skill for claude"
reviewedAt: "2026-10-05"
reviewDueAt: "2027-01-05"
Expand All @@ -28,31 +28,27 @@ sources:
url: https://github.com/kmaida/deslop-skills/blob/70237e1ae0dfbf7bc9ab5e6e3de52c092586ca9b/deslop-writing/SKILL.md
---

Choose **[Humanizer](/gh/blader/humanizer)** for a full rewrite with a final check for added or lost claims.
Choose **[Stop Slop](/gh/hardikpandya/stop-slop)** for strict style rules you want applied across drafts.
Choose **[No AI Slop](/gh/petergyang/no-ai-slop)** for a light edit, or a findings report without a rewrite.
Humanizer, Stop Slop, and No AI Slop target repetitive, generated-sounding prose.
Their instructions take different approaches: a complete rewrite, strict style rules, or a light edit and audit.
Choose based on how much you want changed and how closely you need to preserve facts and voice.

These three lead the 18 public prose editing Skills we reviewed by GitHub Repository stars.
That gives us a focused shortlist. It does not establish which one writes better.
These three lead our 18-Skill discovery sample by GitHub Repository stars.
Stars describe Repository popularity, without measuring editing quality.
We compared their instructions, without benchmarking generated rewrites.

## How the three Skills differ

On small screens, scroll the table sideways to read every column.
## Humanizer for a complete rewrite

::div{.comparison-table tabindex="0" role="region" aria-label="Humanizer, Stop Slop, and No AI Slop comparison"}
| Decision | [Humanizer, blader/humanizer](https://github.com/blader/humanizer/blob/225a6f39ac85f76ee48dbad772ea4abe4ed6c9d8/SKILL.md) | [Stop Slop, hardikpandya/stop-slop](https://github.com/hardikpandya/stop-slop/blob/8da1f030185bdfe8471220585162991eaeb970e9/SKILL.md) | [No AI Slop, petergyang/no-ai-slop](https://github.com/petergyang/no-ai-slop/blob/000650b156983f5159695b441477f4e63b25dc85/skills/no-ai-slop/SKILL.md) |
| --- | --- | --- | --- |
| Editing workflow | Mark patterns, draft, check facts and surviving patterns, then write the final version. | Apply eight core rules, run quick checks, and revise against its style rubric. | Make the minimum effective edit, then check the draft against its evaluation file. |
| Voice and structure | A supplied voice sample overrides pattern rules. Structural changes are allowed. | Enforces active voice and strict adverb rules. Its main instructions provide no voice-sample override. | Keeps vocabulary, cadence, bluntness, and useful detours. Keeps structure unless it hurts the piece. |
| Factual meaning | Explicitly checks added or lost facts, numbers, quotes, citations, and conditions. | Emphasizes specificity. Its main instructions provide no equivalent fact-preservation checklist. | Prohibits invented claims, examples, stats, and opinions. Asks when meaning is unclear. |
| Output | Pasted-text mode returns a draft, remaining patterns, and final rewrite. File mode writes only final prose. | Its main instructions define checks and a score, without a dedicated findings-only mode. | Edit mode returns the draft and changes. Detect mode quotes findings without rewriting or scoring. |
| Supporting files | The main instructions contain its pattern guide and examples. | Links phrase, structure, and example reference files. | Edit mode requires the bundled evaluation file. |
| Main tradeoff | Intermediate output can be lengthy. Structure changes need a careful meaning check. | Blanket adverb and passive-voice rules can conflict with deliberate style or technical precision. | Some vocabulary is banned outright, while its blunt register still needs to fit the audience. |
::comparison-skill-card
---
owner: "blader"
repo: "humanizer"
name: "humanizer"
to: "/gh/blader/humanizer"
source: "https://github.com/blader/humanizer/blob/225a6f39ac85f76ee48dbad772ea4abe4ed6c9d8/SKILL.md"
description: "A full rewrite with a final check for added or lost claims."
---
::

### Humanizer for a complete rewrite

Humanizer makes preservation checks part of the editing workflow.
It allows paragraph changes, but treats unsupported additions and lost claims as errors.
For factual or technical prose, it asks for neutral, plain language.
Expand All @@ -62,7 +58,18 @@ Its pasted-text mode shows intermediate work before the final rewrite.
If you only want small phrasing changes, No AI Slop's minimum-edit instruction is a closer fit.
Read [the reviewed Humanizer source](https://github.com/blader/humanizer/blob/225a6f39ac85f76ee48dbad772ea4abe4ed6c9d8/SKILL.md) before choosing it for a file edit.

### Stop Slop for a strict house style
## Stop Slop for a strict house style

::comparison-skill-card
---
owner: "hardikpandya"
repo: "stop-slop"
name: "stop-slop"
to: "/gh/hardikpandya/stop-slop"
source: "https://github.com/hardikpandya/stop-slop/blob/8da1f030185bdfe8471220585162991eaeb970e9/SKILL.md"
description: "Strict style rules for drafting, editing, and reviewing prose."
---
::

Stop Slop is a compact directive for drafting, editing, and reviewing prose.
It targets filler, formulaic structure, vague claims, and repetitive rhythm.
Expand All @@ -73,7 +80,18 @@ Its rules require removing all adverbs and passive constructions.
Check those constraints against your house style before applying them to a whole document.
Read [the reviewed Stop Slop source](https://github.com/hardikpandya/stop-slop/blob/8da1f030185bdfe8471220585162991eaeb970e9/SKILL.md) and its linked references.

### No AI Slop for a light edit or audit
## No AI Slop for a light edit or audit

::comparison-skill-card
---
owner: "petergyang"
repo: "no-ai-slop"
name: "no-ai-slop"
to: "/gh/petergyang/no-ai-slop"
source: "https://github.com/petergyang/no-ai-slop/blob/000650b156983f5159695b441477f4e63b25dc85/skills/no-ai-slop/SKILL.md"
description: "A light edit, or a findings report without a rewrite."
---
::

No AI Slop separates editing from detection.
Edit mode keeps distinctive sentences and returns a short explanation of changes.
Expand All @@ -94,13 +112,51 @@ If your Agent needs the evaluation file on disk, inspect the source and install
With skilld 3.3.0, hosted repository-root Skills are rejected.
Humanizer and Stop Slop use root paths, so this page links their pinned sources without printing run commands.

## How the three Skills differ

On small screens, scroll the table sideways to read every column.

::div{.comparison-table tabindex="0" role="region" aria-label="Humanizer, Stop Slop, and No AI Slop comparison"}
| Decision | [Humanizer, blader/humanizer](https://github.com/blader/humanizer/blob/225a6f39ac85f76ee48dbad772ea4abe4ed6c9d8/SKILL.md) | [Stop Slop, hardikpandya/stop-slop](https://github.com/hardikpandya/stop-slop/blob/8da1f030185bdfe8471220585162991eaeb970e9/SKILL.md) | [No AI Slop, petergyang/no-ai-slop](https://github.com/petergyang/no-ai-slop/blob/000650b156983f5159695b441477f4e63b25dc85/skills/no-ai-slop/SKILL.md) |
| --- | --- | --- | --- |
| Editing workflow | Mark patterns, draft, check facts and surviving patterns, then write the final version. | Apply eight core rules, run quick checks, and revise against its style rubric. | Make the minimum effective edit, then check the draft against its evaluation file. |
| Voice and structure | A supplied voice sample overrides pattern rules. Structural changes are allowed. | Enforces active voice and strict adverb rules. Its main instructions provide no voice-sample override. | Keeps vocabulary, cadence, bluntness, and useful detours. Keeps structure unless it hurts the piece. |
| Factual meaning | Explicitly checks added or lost facts, numbers, quotes, citations, and conditions. | Emphasizes specificity. Its main instructions provide no equivalent fact-preservation checklist. | Prohibits invented claims, examples, stats, and opinions. Asks when meaning is unclear. |
| Output | Pasted-text mode returns a draft, remaining patterns, and final rewrite. File mode writes only final prose. | Its main instructions define checks and a score, without a dedicated findings-only mode. | Edit mode returns the draft and changes. Detect mode quotes findings without rewriting or scoring. |
| Supporting files | The main instructions contain its pattern guide and examples. | Links phrase, structure, and example reference files. | Edit mode requires the bundled evaluation file. |
| Main tradeoff | Intermediate output can be lengthy. Structure changes need a careful meaning check. | Blanket adverb and passive-voice rules can conflict with deliberate style or technical precision. | Some vocabulary is banned outright, while its blunt register still needs to fit the audience. |
::

## Two alternatives with a distinct purpose

The wider review found useful options beyond the three starred Repositories.
These two address a narrower editing requirement:

- [anti-slop, elithrar/dotfiles](https://github.com/elithrar/dotfiles/blob/4b38887ec969bbc1c97c1434732fac97ea7ff0dd/.agents/skills/anti-slop/SKILL.md) explicitly preserves paragraph structure unless you request a broader rewrite.
- [deslop-writing, kmaida/deslop-skills](https://github.com/kmaida/deslop-skills/blob/70237e1ae0dfbf7bc9ab5e6e3de52c092586ca9b/deslop-writing/SKILL.md) includes technical documentation guidance and a required banned-word reference.
### anti-slop for preserving paragraph structure

::comparison-skill-card
---
owner: "elithrar"
repo: "dotfiles"
name: "anti-slop"
to: "/gh/elithrar/dotfiles/anti-slop"
source: "https://github.com/elithrar/dotfiles/blob/4b38887ec969bbc1c97c1434732fac97ea7ff0dd/.agents/skills/anti-slop/SKILL.md"
description: "Preserves paragraph structure unless you request a broader rewrite."
---
::

### deslop-writing for technical documentation

::comparison-skill-card
---
owner: "kmaida"
repo: "deslop-skills"
name: "deslop-writing"
to: "/gh/kmaida/deslop-skills/deslop-writing"
source: "https://github.com/kmaida/deslop-skills/blob/70237e1ae0dfbf7bc9ab5e6e3de52c092586ca9b/deslop-writing/SKILL.md"
description: "Technical documentation guidance with a required banned-word reference."
---
::

For other workflows and language-specific choices, browse [writing Skills](/skills/anti-slop).

Expand All @@ -117,23 +173,6 @@ This is a suggested evaluation method, without a reported test result.

## Selection, sources, and disclosure

On 5 October 2026, Humanizer had 53,989 GitHub Repository stars, Stop Slop had 17,752, and No AI Slop had 11,879.
Those were the three highest counts in our 18-Skill discovery sample.
The counts describe Repositories, without measuring Skill usage or editing quality.
See the live Repositories for current counts: [Humanizer](https://github.com/blader/humanizer), [Stop Slop](https://github.com/hardikpandya/stop-slop), and [No AI Slop](https://github.com/petergyang/no-ai-slop).

Discovery used skilld searches for humanize writing, deslop, stop-slop, and related names.
We read public Skill sources at the exact commits linked above.
Hosted run supplied instructions where Artifact delivery completed; other source reviews used [GitHub](https://github.com).
We installed no remote Skill files.

Candidates needed a prose cleanup focus and a meaningful editing decision.
We left out redundant checklist variants, identity mismatches, and examples that add unsupported facts.
Code cleanup, translation, and broad writing Skills fall outside this comparison.
The discovery sample is not an exhaustive census.

Harlan Wilton is the author. An agent assisted with research and drafting.
Brundlefly shares a maintainer with skilld and informed the review method, without receiving placement.
Repository ownership does not establish Skill authorship.
The review covers instructions and required files, without establishing detector evasion, authorship, safety, or measured editing quality.
The next source review is due on 5 January 2027.
Reviewed on 5 October 2026 from the pinned sources linked above.

An agent assisted Harlan Wilton with research and drafting. Brundlefly shares a maintainer with skilld and informed the review method, without receiving placement.