Skip to main content

Content Gate Kit — free sample

The check no prose linter does: did I already publish this, in different words?

Vale, textlint, proselint and alex all lint one document in isolation. None of them can see that today's draft has the same skeleton as last Tuesday's post. That is the gate people actually need once they publish on a schedule.

This repo ships the substance gate, working and unrestricted, so you can judge the code before paying for the rest. The similarity gate — the one nothing else does — is in the full kit.

git clone https://github.com/zxcv0952290292-lang/content-gate-kit-free
cd content-gate-kit-free
python3 cli.py --demo
=== 01_blocked_no_substance.json  ->  BLOCKED
    - no takeaway: one concrete thing the reader can do or check
    - opening is a conclusion, not a hook: 'Everyone should start saving money.'
    - nothing checkable in the whole piece (needs >=2 numbers/rules/named things)

=== 04_pass.json  ->  PASS

No dependencies. No API key. No model call. No network. Python 3.8+. Under a millisecond.


How this relates to Vale

Use both. They do not overlap.

Vale / textlint / proselint Content Gate Kit
Scope one document at a time this draft vs everything you already published
Catches "I wrote this last week in other words" no yes — the whole point
House style, banned words, passive voice yes, and better than this no
Language English-centric English and CJK (character 2-grams, not word tokens)
Price free free sample here, $29 for all four gates

If you want a style guide enforced, install Vale — it is free, excellent, and this is not trying to replace it. If your problem is that everything you publish is starting to feel the same, no linter solves that.


The four gates

Gate Blocks In this repo
Substance Nothing to take away. A number with no source. An opening that is a slogan instead of a hook. yes, fully working
Similarity The post you already published — in different words. Compares wording overlap, skeleton (opening shape, ending shape, line rhythm, filler phrases) and scene. full kit
Tone Snark, and the "X is more impressive than Y" pattern. A banned-word list never catches that — the next draft writes "more impressive than wagyu". full kit
Style Punctuation normalised to your house habits. full kit

Full kit — four gates, the n8n workflow, and the config presets: $29 on Gumroad


Why these rules and not other rules

Every rule was written after something real went out wrong, and the comment above it says which. That is the part you cannot get from a linter: not "here are some quality heuristics" but "this exact sentence shape shipped nine smug replies, six of which were identical in structure."

A rule without its incident is the first thing someone deletes. So they all kept their incidents.

Usage

from gatekit import check

r = check(
    text=draft,
    takeaway="one concrete thing the reader can do",
    source="where the numbers came from",
)
r["pass"]      # bool
r["reasons"]   # list of strings, empty when it passes

Shell / CI — exit code 0 passes, 1 blocks:

python3 cli.py --file draft.json && ./publish.sh

Config

{ "takeaway_min": 12, "hard_min": 2, "require_layers": false }

require_layers is strict mode. It additionally demands an operating layer (a verb plus a place the reader can open — "read the Total column") and a numbers layer (the difference converted into a figure — 0.22% vs 0.57%, that is 2.6x).

If a gate blocks the same good draft three times, loosen it. A rule that makes you rewrite good work into compliance is worse than the problem it prevents.

What this is not

  • Not a grammar or plagiarism checker
  • Not an AI-detector
  • It does not call a model, so it cannot judge whether a claim is true. It checks that a claim has a source attached, not that the source is right.

Licence

See LICENSE.txt. Use it in your own and your clients' projects. Do not resell the source as a competing product.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

content_gate_lite-0.1.0.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

content_gate_lite-0.1.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file content_gate_lite-0.1.0.tar.gz.

File metadata

  • Download URL: content_gate_lite-0.1.0.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for content_gate_lite-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d3de1417ec7a9460da515393a0210a68864fd07ef20c211537ee676997dae020
MD5 d3b5888e45e668fdfd91ee7aec2679ef
BLAKE2b-256 22eeb442b3be104641fe85e8b428fda148f742c811a63e7b663450905b712bf5

See more details on using hashes here.

Provenance

The following attestation bundles were made for content_gate_lite-0.1.0.tar.gz:

Publisher: publish.yml on zxcv0952290292-lang/content-gate-kit-free

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file content_gate_lite-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for content_gate_lite-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e3cb1561c05a9c6ffd3ca4ce2f94f7ce22ce21e77b1c9edb054836cf5bebe697
MD5 aa52952c49feb7db2c7043b53da1b286
BLAKE2b-256 dad0963662f69a12074e64df8ace0f340c46c956d4168c9af5d359b095ee8eff

See more details on using hashes here.

Provenance

The following attestation bundles were made for content_gate_lite-0.1.0-py3-none-any.whl:

Publisher: publish.yml on zxcv0952290292-lang/content-gate-kit-free

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page