Scribblehood
Words to stocks

Words to stocks

How a typed phrase becomes a basket: the one question the resolver asks, the universe it may answer from, the dictionary it falls back on, and three worked examples.

prompttrimmed, spaces squashedcachesummon:{id}id = sha1(lowercased prompt)[0:10]missthe model12 s budget, no retriesmodel failedthe dictionaryconcepts, modifiers, namessummonvalidated, cachedsprite fallbackhit: straight through
The path a prompt takes. The cache is checked first; on a miss the model answers, and if the model fails the dictionary answers instead. Either way the summon is validated and written back, so the next person who types it gets the same thing.

The question

The resolver asks a language model exactly one thing: which publicly traded or Robinhood-tokenized companies economically make this thing possible. The answer is two to six basket lines with a ticker, a weight and a reason under five words ("GPU", "packaging", "the drip"), plus a display name, an emoji, an object kind, physics, one dry sentence of blurb and a sprite recipe. The system prompt tells it to be concrete and a little funny: a burger is McDonald's, Coca-Cola and Deere, not "the food sector".

The model is whatever SCRIBBLEHOOD_MODEL names, through the Vercel AI Gateway, defaulting to openai/gpt-5-mini. It gets a 12 second budget, no retries, and minimal reasoning effort, because the task is a lookup, not a proof.

The universe

The model may only use tickers from a fixed list of 149 names, which is pasted into the prompt as "TICKER (Name)" pairs. Anything else it says is dropped, and if fewer than two known tickers survive, the answer is treated as a failure. The list is the set of names with Stock Tokens on Robinhood Chain plus a few index funds and private companies (SPACEX, OPENAI, ANTHROPIC) that trade on a reference price rather than a live tape.

SectorCountTickers
Semiconductors17NVDA, TSM, AMD, INTC, AVGO, MU, ASML, ARM, QCOM, SMCI, SKHYNIX, SMH, MRVL, TXN, AMAT, SNDK, IONQ
Software and internet23AAPL, MSFT, GOOGL, META, AMZN, NFLX, ORCL, PLTR, CRM, ADBE, UBER, SNOW, CRWD, SHOP, ABNB, DASH, NOW, INTU, ANET, CRWV, BABA, OPENAI, ANTHROPIC
Consumer19NKE, SBUX, MCD, KO, PEP, COST, WMT, DIS, LULU, RBLX, EA, TTWO, CMG, HD, PG, MAR, RCL, DAL, GME
Auto and mobility6TSLA, RIVN, F, GM, TM, LCID
Space6SPACEX, RKLB, LUNR, ASTS, BA, RDW
Energy14XOM, CVX, USO, OXY, NEE, FSLR, ENPH, CEG, VST, OKLO, SMR, UNG, BE, FLNC
Metals9GLD, SLV, NEM, FCX, MP, ALB, NUE, COPX, USAR
Defense8LMT, RTX, LHX, NOC, GD, KTOS, RCAT, AVAV
Biotech and health10LLY, NVO, PFE, MRNA, CRSP, RXRX, ISRG, UNH, JNJ, TMO
Finance12HOOD, COIN, JPM, V, MA, SOFI, GS, BRK.B, PYPL, AXP, CRCL, FUTU
Media7SPOT, RDDT, SNAP, DUOL, PINS, WBD, LYV
Industrial9CAT, DE, VRT, ETN, GE, HON, UPS, UNP, GEV
Crypto4MSTR, IBIT, ETHA, MARA
Index funds5SPY, QQQ, IWM, SGOV, EWY

The dictionary fallback

When the model is offline, over budget, or answers nonsense, a dictionary resolves the prompt the boring way. It has 150 concepts ("gaming pc", "rocket", "ai girlfriend", "oil rig"...), each with a hand-written basket, physics and a sprite recipe. Matching is by longest phrase, so "ai girlfriend" wins over "ai". A prompt that matches nothing gets the mystery basket: SPY 40, QQQ 30, NVDA 15, GLD 15, and a blurb admitting nobody knows what it is.

The dictionary also runs when the model succeeds, as the sprite fallback: whatever the model got wrong in its recipe is filled from the dictionary's idea of the thing. Summons record which path answered in resolvedBy, either llm or dictionary.

Modifiers

Adjectives change the basket, the physics and the sprite. The model is told the same rules in words; the dictionary applies them as a table. A modifier that adds lines takes a fixed share of the whole basket and scales everything else down to make room.

WordsAdds to the basketGlowOther effects
golden, gold, gilded, 24kGLD 20%golda coin part, or a crown on anything with a head; gold palette
silver, chrome, platinumSLV 20%silver palette
nuclear, atomic, radioactive, fissionCEG 10%, OKLO 8%, SMR 7%nucleara bolt, green palette
solar, sun-powered, sunnyFSLR 12%, ENPH 8%golda panel
electric, battery-powered, ev, lightningTSLA 15%, ALB 5%electrica bolt
oil-powered, oil, diesel, gasoline, burning, flamingUSO 10%, XOM 10%firesmoke
ai, smart, intelligent, sentient, thinkingNVDA 15%, MSFT 5%an antenna
giant, huge, massive, mega, big, colossalsize x1.8, mass x2
tiny, small, mini, little, micro, pocketsize x0.6, mass x0.5
flying, winged, hovering, floating, airborneflies, speed 0.6, wings
fast, speedy, turbo, racing, supersonic, rocket-poweredspeed 1, a flame
slow, lazy, sleepy, heavyspeed 0.1, mass x1.5
military, armored, armed, combat, tactical, warLMT 10%, RTX 10%a shield
space, orbital, interstellar, cosmic, martian, lunarSPACEX 12%, RKLB 8%an antenna and a star
frozen, icy, ice, arctic, coldicebounce 0.1, a star, ice palette
bouncy, rubber, inflatablebounce 0.95
haunted, cursed, evil, darkSNAP 5%nuclearsmoke
crypto, bitcoin, onchain, tokenizedIBIT 12%, COIN 8%a coin
luxury, expensive, premium, fancy, designerLULU 8%, AXP 7%golda gem
cheap, budget, discount, knockoffWMT 10%, COST 5%
american, usa, patrioticSPY 15%a star
paper, cardboard, origamimass 0.3, bounce 0.2
steel, iron, metal, titaniumNUE 12%mass x1.8, steel palette
quantumIONQ 15%icea star
robotic, robo, automated, autonomousTSLA 8%, ISRG 7%an antenna
cute, kawaii, adorable, baby, chibieyes and a smile
spiky, spiked, thornyspikes
cyber, cyberpunk, neonNVDA 8%, CRWD 7%electrica bolt and a screen, neon palette

Company names and tickers are detected too. Naming a company makes it the primary line at 35 percent or more (15 percent for any further names), and the model is told the same rule. Short tickers that are also words (CAT, NOW, SNAP, F, V...) only count when typed in upper case. A company on its own, with no concept around it, gets 60 percent plus three sector peers.

Caching by prompt

A prompt is trimmed, its whitespace collapsed, and lowercased for hashing. The first ten hex characters of the SHA-1 become the summon id, which is also the key in the store (summon:{id}) and the id in share links. "Golden robot" and "golden robot" are the same golden robot for everyone, forever, or until someone clears the store. Crafts hash the joined prompt ("rocket + robot") with a craft: prefix instead.

Worked examples

These are the dictionary's answers, computed from the dictionary at build time, so the numbers below are exactly what the fallback returns today. The model path gives its own opinion, which is usually close and occasionally better.

gaming pc
kind machine, glow none, drivers NVDA, AMD, MU
  • NVDAGPU40%
  • AMDCPU20%
  • MUmemory15%
  • MSFTWindows15%
  • TSMfoundry10%
golden gpu
kind machine, glow gold, drivers NVDA, GLD, TSM
  • NVDAGPU design36%
  • GLDgold20%
  • TSMfoundry16%
  • AMDrival GPU12%
  • MUmemory8%
  • SKHYNIXHBM8%
nuclear powered ai girlfriend
kind person, glow nuclear, drivers OPENAI, NVDA, META
  • OPENAIthe voice27%
  • NVDAinference22%
  • METAcompanions13%
  • ANTHROPICthe manners13%
  • MSFTAzure13%
  • CEGnuclear power12%
Three prompts through the dictionary. Bars are weights; the small text on each bar is the reason.
  1. gaming pc matches the concept directly. No modifiers, so the concept basket is normalized as is, the drivers are the top three lines, and the sprite is a box with a screen, a panel and a bolt. This one also has a detailed image on disk, so the sandbox draws that instead of composing.
  2. golden gpu matches the "gpu" concept, then the golden modifier takes 20 percent for GLD, scales the rest to 80, sets a gold glow, a gold palette and adds a coin. Six lines survive because six is the cap.
  3. nuclear powered ai girlfriend matches "ai girlfriend" (longer than "ai", which is then no longer in the text to trigger the ai modifier). Nuclear adds three lines totalling 25 percent; after the six-line cap only the largest of them, CEG, survives, and the weights renormalize over what is left. The glow is nuclear and the sprite is a pink blob with eyes, a smile, hearts and a bolt.