Findings on Spanish text are now written in Spanish. They were not, and the reason is worth stating plainly: the wording came from a string compiled into the engine, so analysing Spanish produced an English sentence wrapped around a Spanish word, and no translator could fix it with a pull request.
Pattern rules never had this problem — they have carried their own message since the beginning. This release applies the same idea to the three analyzers that compute their findings instead of matching a rule, and to the catalog page, which labelled every Spanish word "Overused AI vocabulary."
What changed
messagesin the rule packs. Eight templates covering the overused-word finding, the sentence-rhythm one, the em-dash one, and the catalog's label for lexical rules. A translator can now send them in a pull request, one key at a time.RulePack.MessagesandRulePack.Text(), plusPackMessageswith the defaults and each template's arity. New public API onSignsOfAI.Core.- The CLI and the MCP server inherit it. Both report through the engine, so a Spanish document now reads Spanish end to end.
Nothing existing changes. A pack with no messages block — every custom catalog already sitting in someone's browser — falls back to English defaults that are byte-identical to the previous output, and English analysis is unchanged. Six tests guard the packs by name: every key present, no key nobody reads, placeholders matching their arity, and Spanish findings free of English.
Also in this release, outside NuGet
- A desktop app for Windows, sharing one interface with the web build. It reads PDF, ODT, EPUB and RTF, reaches a local Ollama with no CORS workaround, scans a whole folder of documents, and measures predictability with a model running inside the app — offline, with nothing uploaded. Download it from the desktop-v0.1.0 release.
- Two new libraries in the repository, not on NuGet yet:
SignsOfAI.Onnx(the perplexity engine as an in-process library) andSignsOfAI.Documents(document text extraction).
Versions
SignsOfAI.Core, SignsOfAI.Cli and SignsOfAI.Mcp all move to 0.2.0. A minor rather than a patch: there is new public API and the output a reader sees changed. It also settles a skew — Mcp sat at 0.1.1 from the release that claimed the MCP registry name, while the other two stayed at 0.1.0.