humanizer-lint 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -5
- package/SKILL.md +18 -22
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
# humanizer-lint
|
|
4
4
|
|
|
5
|
-
### Deterministic
|
|
5
|
+
### Deterministic multilingual prose, Markdown, and stylometric linting
|
|
6
6
|
|
|
7
|
-
Detect repetitive LLM phrasing, uniform sentence rhythm, structural clichés, and voice-profile drift without sending text to an external service.
|
|
7
|
+
Detect repetitive LLM phrasing, uniform sentence rhythm, structural clichés, and voice-profile drift across **8 built-in language packs plus 100+ Universal Stylometry languages** without sending text to an external service.
|
|
8
8
|
|
|
9
9
|
[](https://github.com/yanstd888/humanizer-lint/releases)
|
|
10
10
|
[](https://www.npmjs.com/package/humanizer-lint)
|
|
@@ -45,6 +45,12 @@ Open a deterministic sample view directly:
|
|
|
45
45
|
| Human sample (ID) | [open](https://humanizer.aiclub.ai.id/?sample=human-id) | `PASS`, score `>= 88` |
|
|
46
46
|
| AI sample (EN) | [open](https://humanizer.aiclub.ai.id/?sample=ai-en) | `FAIL`, score `< 65` |
|
|
47
47
|
| Human sample (EN) | [open](https://humanizer.aiclub.ai.id/?sample=human-en) | `PASS`, score `>= 88` |
|
|
48
|
+
| AI sample (ES) | [open](https://humanizer.aiclub.ai.id/?sample=ai-es) | `FAIL`, score `< 68` |
|
|
49
|
+
| AI sample (MS) | [open](https://humanizer.aiclub.ai.id/?sample=ai-ms) | `FAIL`, score `< 68` |
|
|
50
|
+
| AI sample (FR) | [open](https://humanizer.aiclub.ai.id/?sample=ai-fr) | `FAIL`, score `< 68` |
|
|
51
|
+
| AI sample (DE) | [open](https://humanizer.aiclub.ai.id/?sample=ai-de) | `FAIL`, score `< 68` |
|
|
52
|
+
| AI sample (PT) | [open](https://humanizer.aiclub.ai.id/?sample=ai-pt) | `FAIL`, score `< 68` |
|
|
53
|
+
| AI sample (ZH) | [open](https://humanizer.aiclub.ai.id/?sample=ai-zh) | `FAIL`, score `< 68` |
|
|
48
54
|
|
|
49
55
|
Use `?lang=en` or `?lang=id` to open the playground chrome in a chosen language for that visit; it does not overwrite a saved browser preference.
|
|
50
56
|
|
|
@@ -59,6 +65,12 @@ It can serve as a CLI text humanizer guardrail, automated writing style linter,
|
|
|
59
65
|
| Tier 1 — rule packs | `en`, `id`, `es`, `ms`, `fr`, `de`, `pt`, `zh` | Universal stylometric metrics plus lexical, definitional-opening, and structural-cliché packs; Indonesian keeps its morphology rules. |
|
|
60
66
|
| Tier 2 — universal | `universal` or another ISO 639-1 code such as `tr`, `ja`, or `ar` | Universal stylometry through native `Intl.Segmenter`: burstiness, adjacent rhythm delta, adaptive MATTR, paragraph symmetry, repeated starters, and compression ratio. |
|
|
61
67
|
|
|
68
|
+
## Use cases & agent integration
|
|
69
|
+
|
|
70
|
+
Use this local AI text humanizer and prose linter for copywriting, blog posts, SEO articles, technical documentation, Markdown proofreading, academic prose, and natural translation polishing. Tier 1 packs flag native anti-slop phrases in English, Indonesian, Spanish, Malay, French, German, Portuguese, and Mandarin; Tier 2 applies deterministic stylometry to 100+ languages.
|
|
71
|
+
|
|
72
|
+
For a closed-loop agent workflow, install `npx skills add yanstd888/humanizer-lint`, draft without changing facts, run `humanizer-lint --lang auto`, revise only flagged prose, and re-run before returning the text. It works with Claude Code, Cursor, Windsurf, Cline, Codex, and Gemini CLI without a runtime dependency or network text upload.
|
|
73
|
+
|
|
62
74
|
## What it does
|
|
63
75
|
|
|
64
76
|
`humanizer-lint` analyzes prose after removing or neutralizing common non-prose Markdown structures. It then combines lexical rules, sentence-length statistics, structural checks, Indonesian morphology checks, and an optional voice profile into a score from 0 to 100.
|
|
@@ -291,7 +303,7 @@ humanizer-lint (--file <path> | --stdin) [--lang auto|universal|<ISO-639-1>] [--
|
|
|
291
303
|
|---|---:|---|
|
|
292
304
|
| `--file <path>` | One input required | Read one UTF-8 text or Markdown file. |
|
|
293
305
|
| `--stdin` | One input required | Read the complete document from standard input. |
|
|
294
|
-
| `--lang
|
|
306
|
+
| `--lang auto|universal|<ISO-639-1>` | No | Select auto-detection, a bundled Tier 1 pack, or universal stylometry. Default: `auto`. |
|
|
295
307
|
| `--profile <path>` | No | Load a JSON voice profile. |
|
|
296
308
|
| `--json` | No | Print JSON only. Without it, print the terminal report. |
|
|
297
309
|
| `--help` | No | Print command usage. |
|
|
@@ -428,7 +440,7 @@ The real result may contain additional metric properties and violations.
|
|
|
428
440
|
|
|
429
441
|
After installation, an agent can use the skill as a closed verification loop:
|
|
430
442
|
|
|
431
|
-
1. Draft or edit
|
|
443
|
+
1. Draft or edit prose in a supported Tier 1 language or any Universal Stylometry language without changing supported facts.
|
|
432
444
|
2. Run the analyzer against the exact complete draft.
|
|
433
445
|
3. Read every violation and edit only the affected prose or named whole-document gate.
|
|
434
446
|
4. Re-run the analyzer, stopping after three iterations.
|
|
@@ -513,7 +525,7 @@ Yes. Run `npx humanizer-lint --file draft.md --lang auto` for a one-off command,
|
|
|
513
525
|
<details>
|
|
514
526
|
<summary><strong>Which languages are supported?</strong></summary>
|
|
515
527
|
|
|
516
|
-
The configured lexical
|
|
528
|
+
The configured lexical packs support English, Indonesian, Spanish, Malay, French, German, Portuguese, and Mandarin. Other ISO 639-1 languages use universal stylometry through native `Intl.Segmenter`; these checks measure rhythm and repetition without inventing a lexical pack.
|
|
517
529
|
|
|
518
530
|
</details>
|
|
519
531
|
|
package/SKILL.md
CHANGED
|
@@ -1,45 +1,41 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: humanizer-lint
|
|
3
|
-
description: Deterministic
|
|
4
|
-
version: 1.2.
|
|
3
|
+
description: Deterministic multilingual AI text humanizer, anti-slop prose linter, copywriting/blog/docs editor, and stylometric analyzer (EN, ID, ES, MS, FR, DE, PT, ZH + 100+ languages via Intl.Segmenter). Fixes robotic LLM tone, uniform sentence rhythm, low burstiness (CV), MATTR vocabulary repetition, and translationese clichés using a local zero-dependency Node.js CLI validator.
|
|
4
|
+
version: 1.2.1
|
|
5
5
|
license: MIT
|
|
6
6
|
compatibility: Node.js >= 18.3.0 (zero external dependencies)
|
|
7
7
|
allowed-tools: Bash(node:*) Read Write
|
|
8
8
|
metadata:
|
|
9
|
-
version: "1.2.
|
|
9
|
+
version: "1.2.1"
|
|
10
10
|
author: "yanstd888"
|
|
11
11
|
domain: "writing"
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
# Humanizer Lint
|
|
15
15
|
|
|
16
|
-
Use this skill when writing or
|
|
16
|
+
Use this skill when writing, editing, translating, or humanizing prose, blog posts, SEO articles, copywriting, or technical documentation across **8 deep language rule packs (English, Indonesian, Spanish, Malay, French, German, Portuguese, Mandarin Chinese)** and **100+ languages in Universal Stylometric Mode (`Intl.Segmenter`)**. The local deterministic CLI analyzer is mandatory, uses only Node.js built-ins, and sends zero text over the network.
|
|
17
17
|
|
|
18
18
|
## When to use
|
|
19
19
|
|
|
20
|
-
- Humanize
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
20
|
+
- Humanize agent-generated drafts, articles, essays, copywriting, and documentation in any language (`--lang auto`).
|
|
21
|
+
- Audit and fix uniform sentence rhythm (low Burstiness $CV$ and monotonous 3-sentence windows).
|
|
22
|
+
- Strip LLM stock phrases, filler transitions, and rigid translationese morphology (`EN`, `ID`, `ES`, `MS`, `FR`, `DE`, `PT`, `ZH`).
|
|
23
|
+
- Match a user's personal writing style using a local voice fingerprint profile (`scripts/fingerprint.mjs`).
|
|
24
|
+
- Verify edited prose deterministically (`PASS` / `FAIL`) before returning it to the user.
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
## Supported Languages (Two-Tier Multilingual Architecture)
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
- **Tier 1 — Full Lexical Anti-Slop + Stylometric Math (8 Languages):** `en` (English), `id` (Bahasa Indonesia), `es` (Español), `ms` (Bahasa Melayu), `fr` (Français), `de` (Deutsch), `pt` (Português), `zh` (中文 / Mandarin).
|
|
29
|
+
- **Tier 2 — Universal Stylometric Engine (100+ Languages via `Intl.Segmenter`):** Automatic sentence-length Burstiness ($CV$), Adjacent Rhythm Delta ($\Delta_{adj}$), Adaptive $MATTR$, paragraph symmetry, starter repetition, and compression entropy for Latin, Cyrillic, Arabic, Japanese, Korean, Hindi, Turkish, Vietnamese, and other scripts via `--lang auto` or `--lang universal`.
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
## Agent-SEO Trigger Intents & Search Keywords
|
|
30
32
|
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
- "lint markdown documentation prose"
|
|
36
|
-
- "humanizer bahasa Indonesia"
|
|
37
|
-
- "humanize Spanish, Malay, French, German, Portuguese, or Chinese prose"
|
|
38
|
-
- "check Japanese, Arabic, or another language with universal stylometry"
|
|
39
|
-
- "perbaiki tulisan AI yang kaku"
|
|
40
|
-
- "match author voice profile"
|
|
33
|
+
- **Core Humanizer & Anti-Slop:** `humanizer`, `ai humanizer`, `humanize text`, `anti-slop`, `remove ai slop`, `prose linter`, `stylometric linter`, `bypass robotic ai writing`, `burstiness checker`, `perplexity and burstiness`, `mattr lexical diversity`.
|
|
34
|
+
- **Writing, Copywriting & Docs Workflows:** `writing assistant`, `copywriting linter`, `blog post writer`, `seo article humanizer`, `markdown prose linter`, `technical documentation editor`, `proofreading and editing`, `natural translation polishing`, `voice cloning stylometry`.
|
|
35
|
+
- **Indonesian & Malay Intents:** `humanizer bahasa indonesia`, `cara agar tulisan ai tidak terdeteksi`, `perbaiki tulisan ai yang kaku`, `ubah teks chatgpt jadi natural`, `cek skor tulisan ai`, `parafrase anti-ai`, `semak ayat ai bahasa melayu`.
|
|
36
|
+
- **Global Multilingual Intents:** `humanizador de texto ia` (ES/PT), `humaniseur de texte ia` (FR), `ki-text humanisieren` (DE), `消除AI味 / AI文章人性化` (ZH).
|
|
41
37
|
|
|
42
|
-
|
|
38
|
+
Do not use it to alter code, commands, structured data, quotations, legal language, or factual identifiers. The sanitizer excludes common Markdown structures, but the agent must still preserve meaning and supported facts.
|
|
43
39
|
|
|
44
40
|
## Prerequisites
|
|
45
41
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "humanizer-lint",
|
|
3
|
-
"version": "1.2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.2.1",
|
|
4
|
+
"description": "Multilingual closed-loop AI text humanizer, anti-slop prose linter, and stylometric burstiness (CV) & MATTR validator (EN, ID, ES, MS, FR, DE, PT, ZH + 100+ universal languages via Intl.Segmenter). Zero dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=18.3.0"
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"skills-sh",
|
|
32
32
|
"agent-skill",
|
|
33
33
|
"ai-humanizer",
|
|
34
|
+
"humanizer",
|
|
34
35
|
"anti-slop",
|
|
35
36
|
"prose-linter",
|
|
36
37
|
"stylometry",
|
|
@@ -38,6 +39,8 @@
|
|
|
38
39
|
"mattr",
|
|
39
40
|
"multilingual-nlp",
|
|
40
41
|
"indonesian-nlp",
|
|
42
|
+
"copywriting",
|
|
43
|
+
"markdown-linter",
|
|
41
44
|
"claude-code",
|
|
42
45
|
"cursor-skill",
|
|
43
46
|
"windsurf",
|