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.
Files changed (3) hide show
  1. package/README.md +17 -5
  2. package/SKILL.md +18 -22
  3. package/package.json +5 -2
package/README.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  # humanizer-lint
4
4
 
5
- ### Deterministic multi-language prose and Markdown style linting
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
  [![GitHub Release](https://img.shields.io/github/v/release/yanstd888/humanizer-lint?style=flat-square&logo=github)](https://github.com/yanstd888/humanizer-lint/releases)
10
10
  [![npm](https://img.shields.io/npm/v/humanizer-lint)](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 id|en|auto` | No | Select Indonesian, English, or function-word auto-detection. Default: `auto`. |
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 Indonesian or English prose without changing supported facts.
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 and language-detection paths support Indonesian and English. Do not treat the current statistical thresholds as validated defaults for other languages.
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 universal multi-language stylometric analyzer and anti-slop prose linter. Uses native Intl.Segmenter plus eight built-in EN, ID, ES, MS, FR, DE, PT, and ZH lexical rule packs with a zero-dependency local Node.js CLI validator.
4
- version: 1.2.0
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.0"
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 revising prose that must avoid uniform agent rhythm, repeated stock phrases, and excessive translation-style structure. The local analyzer is mandatory. Native `Intl.Segmenter` handles sentence and word boundaries; EN, ID, ES, MS, FR, DE, PT, and ZH use bundled lexical packs, while other ISO 639-1 languages use universal stylometry. It uses only Node.js built-ins and sends no text over the network.
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 an agent-generated draft in Indonesian or English.
21
- - Check prose for uniform sentence rhythm and repeated lexical templates.
22
- - Match a user voice profile generated from writing samples.
23
- - Verify edited prose before returning it.
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
- 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.
26
+ ## Supported Languages (Two-Tier Multilingual Architecture)
26
27
 
27
- ## Trigger Intents & Search Keywords
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
- Use this skill for requests such as:
31
+ ## Agent-SEO Trigger Intents & Search Keywords
30
32
 
31
- - "humanize AI text"
32
- - "remove AI slop and clichés"
33
- - "bypass robotic writing patterns"
34
- - "increase sentence burstiness and perplexity"
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
- These intents apply across Claude Code, Cursor, Windsurf, Cline, Codex, and Gemini CLI when the request needs deterministic EN/ID prose validation rather than an unmeasured rewrite.
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.0",
4
- "description": "Universal multi-language stylometric linter and anti-AI-slop diagnostic engine with native Intl.Segmenter",
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",