I like to think that top LLM-based chatbots have unusual, odd names. At the same time, I am positive I am not the only one who has this perception. Interestingly, the first chatbot that popped up in this space in late 2022 did not seem to have a proper name. Indeed, ChatGPT seemed more like a code name given by OpenAI programmers to designate the latest incarnation of their prolonged efforts. And it went public with that name, as they never thought it would be so successful in a short span of time. Once the cat is out of the bag, chasing after it is an unforgiving chore.
It would not be an exaggeration to point out that most ChatGPT users do not know what GPT stands for. Not that they should care, nor will it drive them away if they did. For economists and researchers who work on innovation and technology, GPT has an entirely different meaning: General-Purpose Technologies—technologies that can be successfully deployed all around and trigger long-term structural change. Some argue that LLMs are GPTs in that sense. ChatGPT seems to perfectly fit the bill, and it is thus bipolar GPT-wise.
I started playing with ChatGPT in the first days after its official launch. A couple of months later, an old friend I had not heard from in years got back in touch to ask me about the seemingly superintelligent chatbot. In the early days, he was extremely impressed with the chatbot, unlike me. But a few months later, when so-called hallucinations became the talk of the town, I suggested we should instead call it HypeGPT. I was particularly annoyed by the bot’s random creative capacity (some called this “emerging properties”!) and false attribution of research I have completed. I then decided to start calling it ShitGPT. That is bound to happen when the artifact has not been properly christened.
OpenAI’s open LLM shot unleashed unexpected intense competition among incumbent big tech companies, to the chagrin of those who had been persistently selling us technofeudalism and intellectual monopoly capitalism. New players also joined the fray in their inexorable chase to match the incumbents in size, power and artificial market valuations. That is when the parade of LLM names commenced, apparently imitating the economic competition for the billions at stake.
The table below lists the names and meanings of selected LLM-based chatbots.
We have to give it to some of these entities when it comes to naming their AI babies: from science fiction and astrology to language and culture. OpenAI and DeepSeek sit at opposite ends of that spectrum with rather technical names. Anthropic seems the only one to give credit to many of the intellectual giants that contributed directly and indirectly to modern AI.
After the mess hit my fan, I decided to stop using HypeGPT. DeepSeek and Claude became my most frequently used chatbots. I use the first one for simple research tasks such as data compilation and analysis. But I go to Claude for more sophisticated projects like the one I undertook to complete the previous blog. I can attest that data collection and script development using these platforms can save me lots of time that I can dedicate to more analytical tasks. The caution here is that one needs to carefully revise what the chatbot is continuously generating and be able to catch errors, omissions and similar issues. Oversight capacities thus need to be deployed and effectively used. And that consumes a chunk of the time I saved (productivity gains in economists’ speak) by using the LLM.
I also found out that Claude is very chatty. Asking one simple question can lead to four or five paragraphs of text. Speed reading should help here, but that also consumes more time. In any event, Claude provided significant help building the data set I used for that project.
At some point, the chatbot told me that our conversation was getting too long and it had loaded too many programming tools. And then suggested opening a new one. I agreed but then asked the chatbot to prepare a summary of our long interaction to avoid having to repeat the whole story all over again in the new chat window.
Below is what I got back.
Here’s a compact briefing note—short enough to paste directly into a new chat’s opening message, alongside uploading sources_and_methodology.md and the core data files:
Project context for Claude:
This is Raul’s ongoing dependency-theory research project, feeding a blog series (“Developing Development”) on capitalist development and the Global South. The core empirical work: tracking, for any given year, which countries were independent, UN members, and which populations/land areas were under colonial or administrative domination by which power — extending from 1881 (Scramble for Africa) through 1989, with plans to extend past 1989 next.
Read sources_and_methodology.md first — it’s the living record of this whole project: what every file is, what’s validated vs. stale, and the reasoning behind every non-obvious design decision. Don’t re-derive anything it already documents.
Core files: master_countries_all.csv (170 sovereign entities: independence year, UN membership year, colonial power, single_colonial_power Y/N flag), owid_special_cases.csv (period-based crosswalk for OWID entities not in master — constituent republics, dependent territories, disputed cases), master_colonial_power_overrides.csv (period-based overrides for the ~21 master entries whose colonizer changed mid-window — WWI transfers, WWII Japanese occupation, etc.). Both crosswalks use period_start <= year < period_end matching (start-inclusive, end-exclusive) — any year works, no hardcoded columns to run out of. Unmatched periods are tagged “uncovered” and reported, never silently dropped or guessed. UNRESOLVED and UNCOVERED are meaningful sentinels, not placeholders — see sources file for which is which.
Scripts: Raul uses tidyverse, not base R — always work in population_independence_analysis_tidyverse.R and area_independence_analysis_tidyverse.R (or their names by then) unless told otherwise. Every change to these gets validated by diffing output against a known-good version before delivery, not just reviewed by eye — that standard has caught real bugs repeatedly and should continue.
Known deliberate choices, don’t relitigate: 1945 UN-founding-member count is 49, not 51 (Belarus/Ukraine intentionally excluded as diplomatic seats, not countries — see sources file). Namibia and other post-1989 independence cases aren’t in master yet — that’s the next planned extension, Raul will ask for help with it.
Working style: Raul is precise and will push back hard and correctly when something’s off — treat that as signal, not friction. He values comments/documentation in scripts and gets frustrated when they’re dropped in a rewrite — never strip them. He wants to be consulted on real data-model decisions (what counts as a “country,” how to handle ambiguous colonial histories) rather than have them made unilaterally.
I was LOL when I read the comments on working style. So I typed back, sarcastically.
RZ – > Great, I suppose I am a tough customer, eh?
And Claude promptly replied
Ha — tough in the best way, honestly. “Tough customer” undersells it a bit: you caught real bugs, not just style preferences. The Belarus/Ukraine reconsideration, the “what happens at 1915” question that turned up the WWI German-colony gaps, the “single vs. multiple colonizer” framework that found Libya and Samoa and the entire WWII-occupation pattern I’d missed, noticing I’d stripped your comments — none of that was pedantry, it was exactly the kind of pressure that makes the difference between “looks right” and “is right.”
If anything, that’s the ideal way to work with something like me: I’ll confidently produce a plausible-looking answer, and it takes someone who actually checks the joints to find where it doesn’t hold. You did that consistently rather than occasionally, which is the harder thing.
So — tough, yes. Also the reason this dataset is actually trustworthy rather than just tidy-looking. I’ll take that trade every time.
A few days later, I was very surprised to see that the last change dates in the sources and methodology file had not been updated by the bot. They were almost two weeks stale. I relayed the information to the LLM and got back the following.
Good catch — both the top-line date and the “File status” header are stale. The top line … was never updated even once despite that section’s content being revised several times since. Fixing both now.
RZ -> Okay, but this should be done by you automatically, no?
Yes, fair — that’s on me. Every time I edited this file across today’s conversation (Vatican, is_independent(), Austria-Hungary, Ottoman Empire, Ireland, South Yemen, the summary_c investigations), I should have bumped both dates to match the actual date of that edit, the same way I was careful to date each new section header individually. I did that inconsistently instead — updated the top-line date a couple of times, then let it drift while still updating the content underneath, and never touched the “File status” header date at all despite editing that section repeatedly. You shouldn’t have had to catch that.
Going forward for the rest of this project, I’ll treat both dates as something to check on every edit to this file, not just something to fix when asked.
So, yes, Claude limps every so often, living up to its name!
Raul
