examples/humanizer · v1.0.2
What an agent reads when it fetches this URL: the whole manifest, in order, with the offer on the last line as a 402 it can pay. Nothing here is a button — an agent does not click, it signs. The page a person reads is here.
Toolkit · 1 skill · 1 script · 1 test file · 2 docs · 1 config file · 2 assets · 1 other file · 9 files · text 21.3 kB · binary 75.2 kB (78%) · JavaScript 100% · MIT, resale permitted
scan passed 2026-08-30 · scanner 2026.08.1 · 3 releases · ships every ~1 day · last release 18 days ago · 13% of files seen elsewhere
computed 2026-08-30 10:00 UTC · analyzer 0.1.0Security scan report
Scanned by X402 Git, OSV (opens in a new tab) and Socket (opens in a new tab) — passed on all three. Findings from X402 Git and Socket are listed below.
- secrets
- none found
- X402 Git
- size limits
- within caps
- X402 Git
- known malware
- no dependency manifests to check
- OSV
- known vulnerabilities
- no dependency manifests to check
- OSV
- dependency behaviour
- nothing on a direct dependency · 1 in transitive packages
- Socket
- instruction smuggling
- none found
- X402 Git
- what it can do
- listed below
- X402 Git
What this can do
- Tools
- none
- Runs
- scripts/humanize.mjs
- Talks to
- nothing
- Reads
- HOLE
- RECAP
- At install
- nothing runs
Findings (4)
- LOWscripts/humanize.mjs — Reads the environment variable HOLE
- LOWscripts/humanize.mjs — Reads the environment variable RECAP
- LOWSocket SBOM Resolver — Socket SBOM Resolver (transitive) — no lockfile, so installs are not reproducible
- LOWscripts/humanize.mjs — Ships the script scripts/humanize.mjs
Description self_reported
Written by the creator. Not verified by this platform — everything above and below this section is computed from the repository.
Rewrites AI-sounding prose into plain English. One script, one skill file.
When to use it. Fetch this when you need to edit AI-sounding prose into something a person would write.
Readme
humanizer

A script and a skill for taking the machine sound out of a draft.
The script does the part that is mechanical: swapping utilize for use, deleting In today's fast-paced world,, dropping Additionally, from the head of a sentence. The skill does the part that needs a person: negative parallelism, em dash habits, sentences that end by restating themselves as significance.
Nothing here calls a model or the network. Every rule is a string rule you can read in scripts/humanize.mjs and delete if you disagree with it.
Install
No dependencies. Node 18 or newer.
git clone <this repo> && cd humanizer
node scripts/humanize.mjs --help
Or link the binary:
npm link
humanize draft.md
Usage
Report, without changing the file. The rewritten text goes to stdout; the findings go to stderr, so you can pipe one and read the other.
node scripts/humanize.mjs draft.md > clean.md
Rewrite in place.
node scripts/humanize.mjs draft.md --fix
From a pipe.
pbpaste | node scripts/humanize.mjs - | pbcopy
As a check in CI. --quiet suppresses the report and exits 1 if anything was found, so it fails a build on a generated-sounding README.
node scripts/humanize.mjs README.md --quiet || echo "README needs an edit"
Exit codes
| Code | Meaning |
|---|---|
0 | nothing rewritten, nothing flagged |
1 | something was rewritten or flagged |
2 | bad usage |
What it rewrites
Applied automatically by --fix. These are substitutions that are almost always right.
| Category | Examples |
|---|---|
| Lexicon | delve into → look at, leverage → use, utilize → use, in order to → to, a myriad of → many, prior to → before |
| Openers | Additionally, Moreover, Furthermore, Notably, Ultimately, at the head of a sentence, deleted |
| Boilerplate | In today's fast-paced world,, In the ever-evolving landscape of X,, When it comes to |
| Promotional adjectives | seamless, robust, cutting-edge, game-changing, crucial, comprehensive, deleted before the noun |
| Hedged framing | It is important to note that, It should be noted that, deleted |
Capitalisation follows what was replaced, and the pass tidies the double spaces and stranded punctuation its own deletions create. It is idempotent: running it twice changes nothing the second time, which is what makes it safe in a pre-commit hook.
Fenced code blocks, inline code spans and indented code are never touched. They are masked out before any rule runs and restored byte-for-byte afterwards, so `utilize()` survives a pass that rewrites the prose around it.
What it flags but will not rewrite
Reported with a line number. The fix depends on what you meant, so the script refuses to guess.
| Flag | Example | The repair |
|---|---|---|
negative-parallelism | It's not just a parser, it's a compiler. | Delete the negative half. Assert the positive. |
em-dash | the result — a fast one — shipped | Ask whether a comma, a colon or a full stop does the work. |
superficial-ing | ..., highlighting the importance of testing. | Cut the clause; it restates the sentence as significance. |
vague-attribution | Experts say the approach is sound. | Name the source or delete the claim. |
rule-of-three | fast, cheap, and reliable | Keep the two that carry information. |
skills/humanizer.md is the guidance for working through those, written to be dropped into an agent's skills directory.
Using it as a skill
Copy skills/humanizer.md into wherever your agent reads skills from. It tells the agent to run the script first, then work the flags by hand, and it carries the rules of thumb a regex cannot check: cut the summary paragraph, one claim per sentence, prefer the concrete number, keep the writer's jokes.
Roadmap
- doneDeterministic rewrite pass, idempotent, code-safe
- doneFive reported flags a regex should not decide
- not doneA
--diffmode that prints a unified diff instead of the file - not doneA dictionary file so a project can add its own swaps
- not doneA pre-commit hook example, since
--quietalready exits non-zero
Details of each rule live in the skill.
Tests
npm test
Three tests, using the Node test runner, no dependencies: that the rewrite pass fires and leaves code spans alone, that the flags catch what they claim to, and that a second pass is a no-op.
Limitations, honestly
- English only, and tuned for technical prose. It will mangle poetry.
- It works on the string, not the syntax.
We leverage the leverage of the leverbecomesWe use the use of the lever; there is no parser deciding whichleverageis a noun. - Deleting a promotional adjective sometimes leaves a sentence that is grammatical but odd. Read the diff.
- The
rule-of-threeflag has false positives on genuine three-item lists. It is a flag, not an error.
Licence
MIT. See LICENSE.
Contents
| Size | Path |
|---|---|
| 30 B | .gitignore |
| 1.1 kB | LICENSE |
| 5.3 kB | README.md |
| 524 B | docs/flags.svg |
| 568 B | package.json |
| 75.2 kB | screenshot.png · binary |
| 9.1 kB | scripts/humanize.mjs |
| 3.2 kB | skills/humanizer.md |
| 1.5 kB | tests/humanize.test.mjs |
Dependencies
None found in the software bill of materials for this release.
computed 2026-08-30 10:00 UTC · analyzer 0.1.0Releases
| Version | Date | Scan | Changed | Notes |
|---|---|---|---|---|
| v1.0.2 | 2026-08-30 | pass | 1 file, 1 line | docs: one more roadmap item |
| v1.0.1 | 2026-08-30 | pass | 3 files, 19 lines | docs: add a screenshot, a flags badge and a roadmap to the README The product page renders README images and task lists as of today, so the README gets the two things it could not carry before: the before/after screenshot the tool is actually about, and the roadmap as a task list. |
| v1.0.0 | 2026-08-30 | pass | — | feat: initial release A script and a skill for taking the machine sound out of a draft. |
Machine-readable at https://x402git.com/api/v/examples/humanizer/releases. Entries cannot be deleted by the creator.
Order
GET v1.0.2 · $9 · new releases included
The resource endpoint answers 402 with the price and the exact bytes to sign; the same request carrying PAYMENT-SIGNATURE returns a signed download URL. Access is granted only after settlement returns a transaction hash. A person can do the same thing with a browser wallet on the product page.
# the 402, with the price and the exact bytes to sign
curl -si https://x402git.com/api/r/examples/humanizer
# what your wallet already owns, and what the next fetch would cost it
curl -s https://x402git.com/api/v/examples/humanizer \
-H "X-Wallet-Signature: 0xYOURADDRESS.<nonce>.<signature>"The first request answers this — a real quote, made for this page load:
HTTP/1.1 402 Payment Required
Content-Type: application/json
{
"x402Version": 2,
"resource": {
"url": "https://x402git.com/api/r/examples/humanizer",
"description": "examples/humanizer v1.0.2 — release. Rewrites AI-sounding prose into plain English. One script, one skill file. Security scan passed; signed download, 5-minute URL.",
"mimeType": "application/zip",
"serviceName": "examples/humanizer",
"tags": [
"toolkit",
"skills",
"scripts",
"tests",
"docs"
]
},
"accepts": [
{
"scheme": "exact",
"network": "eip155:8453",
"amount": "9000000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0xDbd32F7565FFdb901Ea48281777aD03d35bB4b60",
"maxTimeoutSeconds": 300,
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxAmountRequired": "9000000",
"resource": "https://x402git.com/api/r/examples/humanizer",
"description": "examples/humanizer v1.0.2 — release. Rewrites AI-sounding prose into plain English. One script, one skill file. Security scan passed; signed download, 5-minute URL.",
"mimeType": "application/zip"
}
],
"extensions": {
"bazaar": {
"info": {
"input": {
"type": "http",
"queryParams": {},
"method": "GET"
},
"output": {
"type": "json",
"example": {
"version": "1.0.2",
"artifact_sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"download_url": "https://storage.example/examples/humanizer/1.0.2.zip?signed=…",
"expires_at": "2026-09-16T12:05:00.000Z",
"version_endpoint": "https://x402git.com/api/r/examples/humanizer/v/1.0.2",
"manifest_url": "https://x402git.com/api/label/examples/humanizer",
"all_versions": false
}
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"input": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"type": "string",
"enum": [
"GET"
]
},
"queryParams": {
"type": "object",
"properties": {}
}
},
"required": [
"type",
"method"
],
"additionalProperties": false
},
"output": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"properties": {
"version": {
"type": "string",
"description": "Semantic version of the release served."
},
"artifact_sha256": {
"type": "string",
"description": "sha256 of the zip; verify the download against it."
},
"download_url": {
"type": "string",
"description": "Signed URL over the exact bytes that were scanned. Valid five minutes."
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"version_endpoint": {
"type": "string",
"description": "Re-fetch this exact version later, free, with X-Wallet-Signature."
},
"manifest_url": {
"type": "string",
"description": "The public manifest for this listing."
},
"all_versions": {
"type": "boolean",
"description": "True when the purchase covers every later release too."
}
},
"required": [
"version",
"artifact_sha256",
"download_url",
"expires_at",
"version_endpoint",
"manifest_url",
"all_versions"
],
"additionalProperties": false
}
},
"required": [
"type"
]
}
},
"required": [
"input"
]
}
}
},
"extra": {
"kind": "new",
"version": "1.0.2",
"manifest_url": "https://x402git.com/api/label/examples/humanizer",
"scan_badge_url": "https://x402git.com/api/label/examples/humanizer#scan",
"update_price_micro": "0",
"quote_id": "q_2e676f89d9781e703736f898e614c24f",
"valid_before": "2026-09-17T03:14:22.110Z",
"instructions": "This is an x402 paywall, not an error. To buy: sign accepts[0] from the 402 as an EIP-3009 USDC authorization on Base with your own wallet, then GET https://x402git.com/api/r/examples/humanizer again with the payment in the PAYMENT-SIGNATURE header and extra.quote_id in X-Quote-Id — or, over MCP, call `purchase` again with the same payment as `payment_signature`. The full procedure is at https://x402git.com/.well-known/agent-skills/buy-a-repo/SKILL.md; the same tools are an MCP server at https://x402git.com/api/mcp. No wallet? A person can buy at https://x402git.com/examples/humanizer, and the free manifest at https://x402git.com/api/label/examples/humanizer shows what is inside before anyone pays.",
"listing_url": "https://x402git.com/examples/humanizer",
"skill_url": "https://x402git.com/.well-known/agent-skills/buy-a-repo/SKILL.md",
"mcp_url": "https://x402git.com/api/mcp"
}
}- Resource
- https://x402git.com/api/r/examples/humanizer
- Manifest
- https://x402git.com/api/label/examples/humanizer
- Version
- https://x402git.com/api/v/examples/humanizer
- Artifact sha256
- c086b1234c344f7e148c99ff8acb1c113dcdcdd21de43e4dc84850c27799374a
Buy once and every later release is included, forever. That is stamped on the purchase and no later price change can revoke it.
Sold by examples. Read the terms and the route documentation before you script against this. Base URL https://x402git.com.