Skip to content
Kotoshu Kotoshu 言修
News

2026-09-06 release. 6 September 2026

kotoshu 0.8.0 ships the integrations wave

The wave-1 program reaches RubyGems in one cut, bringing Unicode word detection for Greek and Cyrillic, directory-mode checking, baselines, inline ignores, and framework integrations for Rails, RSpec, Rake, and Jekyll.

  1. kotoshu 0.8.0 puts the whole wave-1 program on RubyGems in one cut: the thirteen language modules and nineteen keyboard layouts, directory-mode checking, CI baselines, inline ignore directives, a pre-commit hook, and four framework integrations, with no new runtime dependencies anywhere. The release also repairs remote kotoshu setup for staged languages through a sublayout-first, flat-fallback strategy, lets kotoshu/tasks and kotoshu/jekyll load standalone, and compares baseline paths canonically.
  2. Unicode word detection is the headline fix: word extraction had accepted only ASCII letters, so Greek and Ukrainian users could not check any text through the CLI. Extraction now follows the configured language’s tokenizer, using Greek for el and Cyrillic for uk with the in-word apostrophe kept (Мар’яна), and Latin capitals such as Å and Ä for Latin languages, while languages without a script tokenizer keep the historical behavior and the frozen conformance vectors are unchanged. Swedish dictionary loading is fixed alongside: COMPOUNDRULE )k uses ) itself as a flag character, and every flag is now escaped at compile time so the affix reader no longer raises.
  3. Directory mode — kotoshu check DIR [DIR ...] — checks every file with a known text extension under --include / --exclude control, honoring .gitignore and .ignore through a standard glob subset (last-match wins, anchoring, nested scoping; files inside ignored directories cannot be re-included) and skipping hidden files plus .git, node_modules, vendor, and target by default. JSON and SARIF emit one combined document with per-file entries, --baseline applies per file, and single-file and stdin behavior is byte-identical to before.
  4. Ignores and baselines arrive as a pair: kotoshu:disable-line, disable-next-line [WORDS], and the nestable disable-file / enable-file block are recognized in each format’s comment syntax, with suppressed words moving to suppressed_errors — listed by --show-suppressed and marked in result JSON and SARIF. kotoshu baseline init records existing debt count-based, so baselines survive reformatting; check --baseline lets covered errors pass, fails new ones, and reports stale entries as the debt shrinks.
  5. The integrations are opt-in and dependency-free: an ActiveModel SpellingValidator that raises one validation error per misspelling with the top suggestion in the message (real ActiveModel standalone — Rails not required), RSpec matchers whose failures list each misspelling and its suggestions, a Rake task over repository text files, and a safe Jekyll generator that fails the build on new spelling errors while a .kotoshu-baseline.json in the site source keeps baselined debt from blocking builds. The pre-commit hook (id kotoshu, language: system) ships too — honestly documented as requiring Ruby and the gem on PATH.
  6. Norwegian is not in this cut. The registry added nb at v1.3.0 today, but the gem-side no → nb alias and the Norwegian language module are next-cut work; 0.8.0’s thirteen new modules are the wave-1 thirteen and no more.

see also kotoshu 0.8.0 on RubyGems CHANGELOG Integrations — docs Ignores & baselines — docs