slopless

Из публичных источников

Детерминированные правила textlint и CLI для выявления «словесного мусора» в англоязычном Markdown.

Машинный перевод · Показать оригинал

Deterministic textlint rules and CLI for catching prose slop in English Markdown.

AI-инструментКатегория: AI-инструментыOpen sourceданные проверены 15 окт. 2026 г.

Обзор

  • ai
  • cli
  • lint
  • linter
  • llm
  • markdown
  • nodejs
  • prose
  • quality
  • slop

Установка

Команды только показываются, маркетплейс их не выполняет. Сверяйтесь с официальной документацией.
  • Официальный сайтИз публичных источниковиз метаданных каталога
    www.npmjs.com/package/slopless ↗
  • Реестр пакетов языкаnodejsИз публичных источниковиз манифеста пакета — публикация в реестре не проверена
    npm install -g slopless

    Не проверено: перед установкой убедитесь, что пакет в реестре принадлежит этому проекту.

    www.npmjs.com/package/slopless ↗
  • Сборка из исходниковИз публичных источниковиз метаданных каталога

    Сборка из исходников: проверенного рецепта сборки нет — следуйте инструкциям репозитория.

    github.com/berelevant-ai/slopless ↗

Совместимость

«Неизвестно» значит, что доказательств не найдено, а не что продукт несовместим.
ПлатформаСтатусАрхитектураДоказательствоУверенность
WindowsНеизвестно———
macOSНеизвестно———
LinuxНеизвестно———
Web browserНеизвестно———
Server / self-hostedНеизвестно———
Container (OCI)Неизвестно———
Node.jsСовместимо—манифест пакета: package.json name0.60

Релизы

проверено 29 окт. 2026 г.
v0.2.42Последний23 окт. 2026 г.Официальный источник ↗

Файлы версии 0.2.42

К релизу не приложены файлы.

История релизов

Профиль качества

алгоритм quality-v1.0 · оценено 15 окт. 2026 г.
Оценка качества93
Оценка риска0
Уверенность 1.00
Оценка качества и оценка риска — разные показатели. Высокое качество не гарантирует безопасность.

Составляющие оценки

Поддержка · 2020
last activity 0 days ago
Документация · 1515
README 7461 chars, description present
Готовность к использованию · 1515
install instructions: yes; releases: yes
Метаданные · 1010
4/4 of description, homepage, license, topics
Релизы · 1010
10 release(s), latest 21 days ago
Точность категории · 107
classifier confidence 0.65
Популярность · 106
333 stars (log-dampened, 10k = max)
Ясность лицензии · 55
SPDX MIT
Сообщество · 55
issues enabled, 20 forks

Лицензия

MIT
Лицензия известнапо данным хостинга репозитория

Это статус политики каталога, а не юридическое заключение.

Источники

github.com/berelevant-ai/sloplessОсновной★ 333 звёздактивность 15 окт. 2026 г.Основной репозиторий · Уверенность 1.00

Отзывы

Войдите, чтобы написать отзыв

Отзывов пока нет.

Альтернативы

opensrcПохожий
Получение исходного кода npm-пакетов для предоставления AI-агентам для программирования более глубокого контекстаApache-2.0 · AI-инструменты
ccg-workflowПохожий
Движок рабочих процессов для совместной работы нескольких моделей — одна команда /ccg:go, в которой ИИ анализирует намерение, выбирает стратегию и координирует Codex + Gemini + Claude для совместного выполненияMIT · AI-инструменты
code2promptПохожий
CLI-инструмент для преобразования кодовой базы в один промпт для LLM с деревом исходных файлов, шаблонизацией промптов и подсчётом токенов.MIT · AI-инструменты
openscienceПохожий
Открытая рабочая среда на основе ИИ для научных исследованийApache-2.0 · AI-инструменты
zeroПохожий
Агент для программирования, который подчиняется вам: ваша модель, ваша машина, ваши правила.MIT · AI-инструменты
openserpПохожий
Самостоятельно размещаемый SERP API для ИИ, SEO и автоматизации. Поиск Google, Bing, Yandex, Baidu, DuckDuckGo и Ecosia с отрисовкой в браузере и извлечением содержимого страниц 🎉MIT · AI-инструменты

README

Из berelevant-ai/slopless · лицензия MIT · загружено 29 окт. 2026 г.

slopless

[npm] [downloads] [install size] [license] [node]

[ci] [socket]

Slopless checks English Markdown for AI and human writing slop. Its default CLI runs local textlint rules. Optional Jev checks add semantic judgments and paragraph highlights through the TypeSafe API.

What it catches

Given this paragraph of confident-sounding slop:

Let me be honest: in a world where everyone is racing to ship, most teams
forget the basics. We do not sell software. We sell outcomes. Everyone knows
the best products feel effortless. At the end of the day, the future belongs
to the teams that slow down to think.

npx slopless flags six findings across five rules - structure and rhetoric, not just a word list:

[slopless/boilerplate-framing]    let me be honest
[slopless/prohibited-phrases]     in a world where
[slopless/negation-reframe]       We do not sell software. We sell outcomes.
[slopless/universalizing-claims]  everyone knows
[slopless/cliches]                at the end of the day
[slopless/prohibited-phrases]     the future belongs to

Full JSON output is the default. See the Rules page for the complete inventory.

Intended Usage Loop

npm install -D slopless
npx slopless --help
npx slopless install-skill codex
npx slopless install-skill claude

Then start a fresh writing-agent session and tell it to use the Slopless skill:

Use the Slopless skill. Check this Markdown, rewrite the prose, and keep iterating until Slopless passes.

Loop:

  1. Install Slopless.
  2. Read the core help (npx slopless --help).
  3. Install the agent skill for Codex or Claude Code.
  4. Tell the writing agent to use the skill.
  5. Let the agent run Slopless, rewrite, and rerun until the JSON output has no findings.
  6. Profit.

Set up the CLI

The CLI bundles textlint, so it needs no separate textlint install and no .textlintrc. This is the recommended path for writing agents and one-off checks.

npm install -D slopless
npx slopless "docs/**/*.md"

Slopless is English-only. It requires a file path, glob, or stdin input. A bare npx slopless exits with code 2.

Exit 0 means clean. Exit 1 means findings. Exit 2 means failure.

Narrative-slop rules (named feelings, empty beats, action cadence, perception density, narrative cliches) judge fiction craft and are off by default. Turn them on for fiction and memoir:

npx slopless --narrative "chapters/**/*.md"

Output is always JSON:

mkdir -p .slopless/findings
npx slopless "docs/**/*.md" > ".slopless/findings/$(date +%Y-%m-%d-%H%M%S)--review.json"

Select Checks

List available checks, their backends and their finding IDs:

npx slopless --list-checks
npx slopless --check phrases:cliches draft.md

Jev checks require your TypeSafe key in JEV_API_KEY. They send the selected writing to TypeSafe; whole-text checks send the complete article. Select one or more checks explicitly:

npx slopless --check semantic-thinness:empty-takeaway --check wordiness-and-redundancy:repeated-explanation draft.md

There are 54 Jev checks across eleven families. They use selected experimental definitions and cutoffs; their recorded quality varies by check. Deterministic defaults stay unchanged.

Paragraph checks share one request per paragraph, with a separate question and probability for each selected check. Each question carries its own rule instructions and examples. Requests split into smaller check groups when they exceed the provider's size limits.

Jev findings identify paragraphs and describe the named defect. Whole-text detection and paragraph answers can disagree; reporting requires a positive whole-text decision. Missing provider answers or an unlocated positive decision exit 2.

Use reportId from --list-checks for suppression comments. Existing deterministic IDs remain unchanged; model IDs include the family:

<!-- textlint-disable slopless/semantic-thinness/empty-takeaway -->

That is the real promise.

<!-- textlint-enable slopless/semantic-thinness/empty-takeaway -->

Library

The same runtime accepts deterministic and Jev checks and returns native textlint results:

import { createSlopless, createJevClient } from "slopless";

const linter = createSlopless({
  checks: ["phrases:cliches", "semantic-thinness:empty-takeaway"],
  jev: createJevClient({ apiKey: process.env.JEV_API_KEY ?? "" })
});

const result = await linter.lintText("That is the real promise.", "draft.md");
const files = await linter.lintFiles(["articles/**/*.md"]);

Library calls accept an optional AbortSignal. Provider failures reject the operation. createJevClient supports bounded concurrency, timeout and retry settings; selected prompts and the SDK are included in the package.

Set up the textlint preset

If you already run textlint, add slopless as a preset instead. It runs through your existing textlint, alongside your other rules and .textlintrc, and supports textlint's output formatters (the CLI is always JSON).

npm install -D slopless textlint

Add preset-slopless to your .textlintrc.json:

{
  "rules": {
    "preset-slopless": true
  }
}
npx textlint "docs/**/*.md"

Findings use the same slopless/<rule> ids as the CLI. Turn off individual rules with "preset-slopless": { "cliches": false }. Narrative-slop rules are off by default; turn them on per rule with an options object, for example "preset-slopless": { "emotion-telling": {}, "flat-action-cadence": {} } (textlint keeps a default-off preset rule off when the value is true). To honor the <!-- textlint-disable --> blocks below, also npm install -D textlint-filter-rule-comments and add "filters": { "comments": true } to the config.

Agent Use

Agents should run help first:

npx slopless --help

Agents should save raw JSON findings under .slopless/findings/ in the current working directory. Slopless does not choose redirected output filenames, slugs, or timestamps.

Install the Codex skill into the current repo:

npx slopless install-skill codex

Install the Claude Code skill into the current repo:

npx slopless install-skill claude

Both commands install the same slopless skill body. Start a new agent session after installing if the skill is not visible.

Ignore rules

Use textlint comments around intentional exceptions:

<!-- textlint-disable slopless/semantic-thinness -->

Something shifted in the room.

<!-- textlint-enable slopless/semantic-thinness -->

More

  • Philosophy - what slopless is for, design principles, why deterministic.
  • Comparison - slopless vs proselint, write-good, alex, vale, default textlint presets.
  • Rules - full 50+ rule inventory across seven families.
  • Behavior - CLI flags, exit codes, JSON output shape, direct textlint integration.
  • Ignore rules - inline textlint-disable block syntax.
  • Thanks - direct rule sources, dependencies, and acknowledgments.
  • Roadmap - near-term direction and links to active plans.
  • Contributing - open a detailed issue first; PRs must pass the G3TS pre-commit gate.

Verify the package

Every release since 0.2.13 is published from GitHub Actions via OIDC and carries a SLSA v1 provenance attestation recorded in the Sigstore transparency log.

npm audit signatures slopless

This confirms the tarball you installed was built in the published source repository's Actions environment, from the commit the GitHub Release points at.

Credits

The flat-action-cadence rule uses Compromise for English word classification and verb inflections.

Its physical-action and actor vocabulary is extracted from Open English WordNet 2025, by the Open English WordNet Community, under CC BY 4.0 and the underlying Princeton WordNet license. The packaged data is a reduced category index, not the complete dictionary.

Graham Rowe, thanks for giving me new ideas for classes of slop to detect. Your lib is now fully incorporated with your permission.


Developed by berelevant.ai to keep content specific, useful, and recognizably human.

Открыть репозиторий ↗