Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
312a79e
test(golden): 13 curated texts with expected findings — AD-1…AD-9 cov…
talkstream Jul 27, 2026
b298026
test(tools): gates.sh — CI's sequence as one command, plus the case t…
talkstream Jul 27, 2026
c5ad266
test(golden): six cases for the 2026 rules, and two controls that wer…
talkstream Jul 27, 2026
d27e966
feat(rules): seven tells of machine-written Russian, measured against…
talkstream Jul 27, 2026
51404bf
docs: quote the corpus size as a machine-counted floor, in atoms
talkstream Jul 28, 2026
c70cf04
feat(tools): check-version.sh, and the six Russian phrases the descri…
talkstream Jul 28, 2026
82f114a
refactor(rules): stop claiming «written once» while writing it twice
talkstream Jul 28, 2026
b3ee379
feat(scoring): a floor under the label, because the arithmetic can be…
talkstream Jul 28, 2026
4197740
docs: open the v3.0 formative direction, and cross-reference §H.2 ins…
talkstream Jul 28, 2026
3514253
feat(tools): check-dogfood.sh — the numbers the product states about …
talkstream Jul 28, 2026
cdfd2d4
feat(rules): §I government, §J gerund phrases, §K homophones — the gr…
talkstream Jul 28, 2026
964df73
feat(tools): build-release.sh — two assets, built from tracked files …
talkstream Jul 28, 2026
1d341d4
test(golden): the v2.0 run — four controls out of four at zero
talkstream Jul 28, 2026
43d6725
docs+test: the README stops advertising numbers nobody can reproduce
talkstream Jul 28, 2026
a045752
docs: every install channel, checked against its vendor rather than a…
talkstream Jul 28, 2026
451a6b3
docs+test: hand the install to the agent, and gate the outcome instea…
talkstream Jul 28, 2026
b087b86
fix(tools): the probe was wrong about symlinks, and a clone is not an…
talkstream Jul 28, 2026
87dac16
fix(tools): the probe's clone exclusion could be switched off with mkdir
talkstream Jul 28, 2026
92234a2
docs: Codex and ChatGPT share a plugin system, and we documented half…
talkstream Jul 28, 2026
6072e51
docs: fix three promises the shortened README could not keep
talkstream Jul 28, 2026
1bfd251
test(tools): check-typography — the claim about our own dashes, enforced
talkstream Jul 28, 2026
8ddb97a
fix(tools): check-typography was green over eight real defects
talkstream Jul 28, 2026
7b58049
docs: rewrite both READMEs around the reader, and make one promise real
talkstream Jul 28, 2026
505e4f2
docs: round two — drop the last hand-counted number, and stop over-pr…
talkstream Jul 28, 2026
fe8ade3
docs: the final ru-check, and the fourth rule the gate did not name
talkstream Jul 28, 2026
ab1bcb4
docs: neuroslop gets its own section, and the lead says what the tool…
talkstream Jul 28, 2026
d8f040c
docs: the section on manufactured antithesis opened with one
talkstream Jul 28, 2026
121df94
chore: 2.0.0-rc.1 — the branch stops calling itself 1.10.1
talkstream Jul 29, 2026
03958f5
feat(skills)!: the model may call the check again, and it starts cheap
talkstream Jul 29, 2026
9b89eb1
chore: 2.0.0-rc.2 — the cache does not reload on unchanged bytes of a…
talkstream Jul 29, 2026
b276407
feat(rules): AD-17 — a comma welded to a dash, and 2.0.0-rc.3
talkstream Jul 30, 2026
d2034f3
docs: the README rewritten from a psychological panel, then three rou…
talkstream Jul 30, 2026
4b636f2
chore(release): 2.0.0
talkstream Jul 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"name": "ru-text",
"metadata": {
"description": "Russian text quality — ~1,044 rules for typography, info-style, editorial, UX writing, business correspondence, and AI-text cleanup",
"version": "1.10.1"
"description": "Russian text quality for AI agents — neuroslop cleanup, typography, information style, editorial standards, UX writing, business correspondence. 2,000+ linguistic atoms, loaded on demand.",
"version": "2.0.0"
},
"owner": {
"name": "Arseniy Kamyshev",
Expand All @@ -13,12 +13,14 @@
{
"name": "ru-text",
"source": "./",
"version": "1.10.1",
"description": "Russian text quality — ~1,044 rules for typography, info-style, editorial, UX writing, business correspondence, and AI-text cleanup",
"version": "2.0.0",
"description": "Russian text quality for AI agents — neuroslop cleanup, typography, information style, editorial standards, UX writing, business correspondence. 2,000+ linguistic atoms, loaded on demand.",
"category": "productivity",
"homepage": "https://github.com/talkstream/ru-text",
"tags": [
"russian",
"neuroslop",
"ai-text-detection",
"typography",
"editorial",
"ux-writing",
Expand Down
8 changes: 5 additions & 3 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ru-text",
"version": "1.10.1",
"description": "Russian text quality plugin — typography, information style, editorial standards, UX writing, business correspondence, and AI-text cleanup",
"version": "2.0.0",
"description": "Russian text quality for AI agents — neuroslop cleanup, typography, information style, editorial standards, UX writing, business correspondence. 2,000+ linguistic atoms, loaded on demand.",
"author": {
"name": "Arseniy Kamyshev",
"email": "nafigator@gmail.com",
Expand All @@ -12,11 +12,13 @@
"license": "MIT",
"keywords": [
"russian",
"neuroslop",
"ai-text-detection",
"typography",
"proofreading",
"editorial",
"info-style",
"ux-writing",
"content-design",
"text-quality",
"text-scoring"
]
Expand Down
22 changes: 13 additions & 9 deletions .claude/CLAUDE.md

Large diffs are not rendered by default.

11 changes: 7 additions & 4 deletions .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ru-text",
"version": "1.10.1",
"description": "Russian text quality plugin — typography, information style, editorial standards, UX writing, business correspondence, and AI-text cleanup",
"version": "2.0.0",
"description": "Russian text quality for AI agents — neuroslop cleanup, typography, information style, editorial standards, UX writing, business correspondence. 2,000+ linguistic atoms, loaded on demand.",
"author": {
"name": "Arseniy Kamyshev",
"email": "nafigator@gmail.com",
Expand All @@ -12,19 +12,22 @@
"license": "MIT",
"keywords": [
"russian",
"neuroslop",
"ai-text-detection",
"typography",
"proofreading",
"editorial",
"info-style",
"ux-writing",
"text-quality",
"text-scoring"
],
"logo": "./logo-round.png",
"skills": "./skills/",
"interface": {
"composerIcon": "./assets/icon.png",
"logo": "./logo-round.png",
"displayName": "ru-text",
"shortDescription": "Russian text quality — ~1,044 rules for typography, info-style, editorial, UX writing",
"shortDescription": "Russian text quality for AI agents — neuroslop cleanup, typography, info-style, editorial, UX writing, business correspondence",
"developerName": "Arseniy Kamyshev",
"category": "Productivity",
"websiteURL": "https://ru-text.org",
Expand Down
7 changes: 5 additions & 2 deletions .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"name": "ru-text",
"displayName": "ru-text",
"version": "1.10.1",
"description": "Russian text quality — ~1,044 rules for typography, info-style, editorial, UX writing, business correspondence, and AI-text cleanup. Auto-activates on Russian text.",
"version": "2.0.0",
"description": "Russian text quality for AI agents — neuroslop cleanup, typography, information style, editorial standards, UX writing, business correspondence. 2,000+ linguistic atoms, loaded on demand. Auto-activates on Russian text.",
"author": {
"name": "Arseniy Kamyshev",
"email": "nafigator@gmail.com"
Expand All @@ -11,7 +11,10 @@
"logo": "../logo-round.png",
"keywords": [
"russian",
"neuroslop",
"ai-text-detection",
"typography",
"proofreading",
"editorial",
"info-style",
"ux-writing",
Expand Down
27 changes: 26 additions & 1 deletion .github/workflows/gates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,12 @@ jobs:
- name: Tools are executable and POSIX-parseable
# A syntax error in a checker reads as a passing checker to anything that only
# looks at whether the file exists.
# `find`, not the `tools/*.sh` glob: the glob stops at the top level, and a checker
# one directory down was invisible here and to tools/gates.sh both. Kept identical
# to the loop in tools/gates.sh — tools/selftest.sh fails when the two diverge.
run: |
set -eu
for f in tools/*.sh; do
for f in $(find tools -name '*.sh' -type f | sort); do
[ -x "$f" ] || { echo "not executable: $f"; exit 1; }
sh -n "$f" || { echo "syntax error: $f"; exit 1; }
done
Expand All @@ -45,6 +48,23 @@ jobs:
- name: check-frozen — the paid-MCP corpus contract
run: tools/check-frozen.sh

- name: check-version — one version, one description budget, one set of triggers
# The description is the entire trigger on hosts that have no instruction file.
# Losing a Russian phrase there stops the skill firing for the people it is for,
# silently, with every other gate still green.
run: tools/check-version.sh

- name: check-dogfood — the numbers the product states about itself
# The catalogue size lives in seven files. Four of them went stale unnoticed
# the last time it moved, which is why the completeness guard exists.
run: tools/check-dogfood.sh

- name: check-typography — the product obeys its own typography
# The README claims every dash, quote and space in it follows the plugin's own
# rules. Until this step that claim rested on someone remembering to ask a model,
# and in one afternoon a literal ~ and a missing non-breaking space both shipped.
run: tools/check-typography.sh

- name: No-loss gate — every atom of the pinned baseline still accounted for
# The baseline is the v1.10.1 corpus, frozen as a historical artefact: it is NOT
# regenerated when the corpus changes. That is the whole point — it is the "before"
Expand All @@ -62,3 +82,8 @@ jobs:
PIN
tools/extract-atoms.sh skills/ru-text > /tmp/atoms-now.tsv
tools/diff-atoms.sh tools/baseline/atoms-v1.10.1.tsv /tmp/atoms-now.tsv

- name: The release assets can still be built
# Writes nothing. A renamed reference file leaves the skill installing and
# answering from whatever it still has — a failure with no symptom.
run: tools/build-release.sh --check
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ scratchpad/
.playwright-mcp/
ru-text-landing-*.png
warn-callout.png
dist/
Loading