October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk6 min

Cryptonym Desk on Sanity: Moving a Word List into a Dataset Found Two Bugs

Moving Cryptonym Desk's word lists into a Sanity dataset exposed a duplicate noun and an alias splitter that disagreed with its README.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Moving Cryptonym Desk’s word lists out of a single HTML file and into a Sanity dataset exposed two defects. The first was a noun that appeared twice in the original list, so it was drawn twice as often as any other noun. The second was an alias splitter whose code did not match the example in its own README. Christian Anderson, who built the project, describes both in a first-person write-up published September 24, 2026, with a September 25 update. The figures and test outcomes below are his reported results; this article has not reproduced them.

What Cryptonym Desk does

Cryptonym Desk is a name generator for people naming AI agents, bots, side projects, or D&D characters. The user enters films, anime, and characters they like. The tool returns three outputs:

As an Amazon Associate I earn from qualifying purchases.

  • A CIA-style cryptonym built from an office digraph and an unrelated word.
  • A working alias made by joining the input names at vowel boundaries.
  • An adjective-noun field codename.

The original version was one 29 KB HTML file with the word lists stored in a script. In the rebuild, the lists became documents in a public Sanity dataset, and an Astro site reads that dataset at build time. According to Anderson, text the user types stays in the browser.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What moved, and what it changed

The migration split the embedded arrays into individual documents. Anderson reports 103 documents after conversion. That change made the corpus editable without touching code, and it also made the contents easier to inspect one entry at a time. Both bugs below were findable only because of that change.

Bug one: a duplicate noun skewed the draws

The noun MERIDIAN appeared twice in the original list. Because the picker chose uniformly from the array, the word was drawn twice as often as every other noun, and nothing in the single-file version made that visible. Modeling each word as its own document put two MERIDIAN entries side by side in the dataset.

The fix is a process change as well as a data cleanup. The later word-proposal workflow, covered below, checks for an existing bank entry before it creates a new one, so the same duplicate cannot be added through that path.

Bug two: the README and the regex disagreed

The README said that Spiegel splits into Spie·gel and Kusanagi into Ku·sa·na·gi, which combine into Spienagi. The splitter in the code did something else. Its regular expression kept one consonant after each vowel group, which produced different fragments:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Input README example Old regex output (per Anderson)
Spiegel Spie·gel Spieg·el
Kusanagi Ku·sa·na·gi Kus·an·ag·i
Combined alias Spienagi Spiegagi, the only result across 200 seeds in Anderson’s comparison

Anderson chose to treat the README as the design rather than the code. He changed the regular expression instead of editing the example to match the output. A test now checks that the README example can occur.

That choice has a cost. For the same inputs, the aliases differ from those the original tool produced. Anyone who relied on the old output will see different aliases after the fix.

Weights only matter when the data uses them

The schema and generator already supported weighted picks, but every entry had weight 1, so the weighting had no effect. Anderson changed the plain SECRET entry to weight 5 and CODE WORD to 0.5. He also ran a weighted-pick distribution test over 10,000 draws in the original build section of the post. The article does not report the test’s results in a way that could be reproduced, so treat the weights as configuration, not as measured output.

Same inputs, same record: corpus revisions

The tool generates records from a seed, so identical inputs and the same salt produced the same record. Once the words lived in an editable dataset, a corpus change could alter the record for the same inputs with no code change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The site handles this by hashing each document’s _rev value into a seven-character corpus revision. That revision appears on the record and in the “Copy record” output, so a record can be traced to the corpus state that produced it. Anderson reports that after a weight change, the corpus page’s displayed revision moved from 211eb8a to 4ca7fee on the next build, with no code changes.

Validation at build time and in the Studio

The build fails if the data is unusable. According to Anderson, an empty bank, an unknown bank name, a zero weight, or no active digraphs stops astro build. The Sanity Studio adds its own rules: weights must be positive, codes must be uppercase and two to three characters long, and each preset needs at least two seeds.

Those checks catch mistakes at the point of entry or at deploy time, which matters more here than in a typical site because a bad dataset edit would otherwise reach visitors without any code review.

Keeping user input off the CMS

The corpus is fetched at build time, not on each interaction. Anderson says this preserves the promise that what a visitor types never leaves the page. He puts it this way: “The one thing I kept strict is that nothing you type ever leaves the page.”

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Dataset edits reach the live site through a GitHub Action that runs on push, can be started manually, and runs nightly. Anderson chose not to set up a Sanity webhook, because that would require storing a GitHub token inside Sanity.

The trade-off is freshness. A dataset edit is not live until the next build, so a change made at 9 a.m. may wait until the nightly run or a manual trigger.

The reviewed word-proposal workflow

The September 25 update adds a way to propose new words. Proposals are wordProposal documents in the same public dataset. Each carries a word, a target bank, a weight, a rationale, a status, and a history.

States and transitions

A proposal moves through four states: proposed, in review, approved, and merged. It can also be rejected, and a rejected proposal can potentially be reopened. Anderson reports that the rules refuse a direct move from proposed to merged, and that rejection requires a reviewer note.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Where the review happens

Anderson describes an App SDK review board, Studio actions, and a command-line tool that all share one rules module, so the same transition logic applies whichever interface a reviewer uses. The proposal board requires membership in the organization.

Merging without stale writes

A merge runs as a deterministic transaction pinned to a document revision. Anderson reports that when two merges raced and one was stale, the stale one returned HTTP 409 and wrote nothing. He also reports that a CLI workflow update reached the live board in 2.6 seconds.

A word that completed the flow

The word CISTERN went through the full path and was merged into the noun bank, which grew from 14 nouns to 15. Its approval and merge history is part of the proposal record, so the question of who approved it and when can be answered from the dataset.

The visibility trade-off

Because proposals share the public dataset, proposal text, rationales, and reviewer notes are world-readable. Anyone who writes a proposal should assume the rationale is public. The board itself is limited to organization members, but the stored data is not.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Engineering choices the project illustrates

The post is a single project, not a comparison of products. Its choices still map to four trade-offs that apply beyond this tool.

Choice What the project did What it gains and gives up
Embedded arrays vs. CMS documents Moved word lists into individual Sanity documents Easier editing and visible duplicates; the data now needs validation rules
Runtime fetch vs. build-time fetch Fetches the corpus only during the build Keeps user input off CMS requests and suits a static site; edits wait for the next build
Code change vs. dataset edit Keeps word data and weights in the dataset, with the regex fixed in code Content changes need no deploy; corpus changes can alter seeded output, so a revision is shown
Automated transitions vs. human review Enforces state rules in code, with reviewers approving each word Rules catch invalid moves and stale merges; a person still decides what enters the bank

What the evidence covers

This account comes from Anderson’s own article. The figures are project details he reports, not external benchmarks. The live demo, corpus page, repository, and public Sanity dataset are the places to check his claims, and this article has not verified them. The post also says that each digraph’s provenance note is generic, reading “real digraph from declassified material,” without an individual citation. Treat the origin of any specific digraph as unverified.

No outside expert, regulator, or Sanity representative is quoted in the article.

The two bugs in the title show the same pattern. The data looked correct in the old format, and the mismatch only became visible once each entry was a separate record and the README example was treated as the spec.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Project source details are in Anderson’s first-person write-up, published September 24, 2026, with the September 25 update.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.