- Added an OKF
knowledge bundle in.okf/— 14 concept files across 6 areas covering the
Ruby API, the syllable file format, the language catalog, the CLI, the
development playbooks, and three recorded decisions. - Expanded
CLAUDE.mdwith the project's architecture, conventions, and the
rules for consulting and maintaining the knowledge bundle. - Documented the bundle in
README.md. - Added the Welsh language (
WELSH), seeded from real Welsh name roots.
Note: no CLI flag was wired up for it — reachable from the library only. - Added the Belter language (
BELTER), the creole from The Expanse, with a
-b/--belterCLI flag. - Both files were generated with the
lang-genskill. - Added a
-d/--demonicCLI flag for the experimentalDEMONIClanguage,
which had shipped without a way to select it from the command line. - Added a
-k/--klingonCLI flag forKLINGON, likewise unreachable before. - Added the
lang-genskill, which generates a fully integrated language from
a plain-English theme. - Added the experimental German Curse language (
GERMAN_CURSE) vialang-gen,
with a-ß/--german-curseCLI flag. - Added a portable, LLM-agnostic version of the
lang-genprompt indocs/. - Raised minimum required Ruby version to 3.4.0 (dropping 3.0–3.3 support).
- Set
.tool-versionsto Ruby 3.4.10. - Bumped dependencies:
rake(~> 13.4),rexml,concurrent-ruby. - Updated CI workflow and Rubocop settings.
Fixes from the first full-codebase audit (see docs/AUDIT_Fable_5.md).
slopis now a runtime dependency in the gemspec rather than a Gemfile
entry, so the installed CLI actually starts.- Fixed
compose(1)crashing:compose_arrayreturns[@pre]for counts
below 2 instead of aString, making the return type honest. - Fixed blank lines in language files:
refreshnow strips before the
empty check. - Fixed a potential infinite loop:
determine_next_syllablepre-filters
compatible candidates instead of rejection-sampling, and raises
ArgumentErrornaming the file and syllable when no candidate exists. - Cyrillic and German letters are now classified: added Cyrillic vowels and
consonants plusö,ü,ß, so the+v/+c/-v/-cflags in the four
*-ru.txtfiles and ingerman-curse.txtare actually enforced. They were
silent no-ops before. - Fixed the broken
Syllableclone constructor and a malformed
raise ArgumentError. - Documented the intentional dual classification of
yas both vowel and
consonant. - Added
spec/languages/test-blank.txtandtest-incompatible.txtfixtures,
plus an adjacency spec that walks composed names pairwise. - Corrected the README syllable range to "between 2 and 5" and fixed four
"eyllable" typos.