I'd like to share a naming utility I recently created for my draft projects and patches. Perhaps someone else might find it useful too.
For a long time I named projects in the format "9. Januar 2026 - 1": date plus sequential number. The problem is navigating becomes difficult when there are several drafts created on the same date. Especially if it's, say, the 9th of January across different years.
The second issue: I experiment often, and I didn't have the habit of saving these experiments unless I thought I'd continue working on them. I realised this was mainly because I simply didn't want to bother figuring out what to call them, whilst naming a project "asd" or something similar my conscience and sense of aesthetics wouldn't allow. Therefore in my projects folder lay only finished projects, or those I was actively working on at the time.
Though I must admit, for lack of another option back then, I still had projects named somewhat decently: a short description in a couple of words. I tried to rid myself of these as quickly as possible once they either grew into proper projects or became unnecessary. Once upon a time I had an even simpler system: Project_1, Project_2, and so on.
With patches the situation is more delicate still: I wasn't accustomed to naming them randomly, nor by dates, and certainly not by numbers. So I saved only the very best, finished ones, whilst draft versions sadly were almost never preserved.
That's why I thought about creating a naming system that would do its job well: generate a project or patch name based on the current date + index. But without any sort of LLM. And reversible: so that if I ran a project or patch name through the program, I'd get back the creation date and index.
Thus Holotype was born. The name comes from biological taxonomy, where a holotype is the single physical specimen upon which a species description is based. Without delving too deeply into how it works technically (there's a questionable moment involving brute-forcing during decoding), it performs its function well: it generates names in the form of pseudo-biological taxonomy. For example:
Code: Select all
$ ht 1
Hypocelluloma periphericus
$ ht -x "Hypocelluloma periphericus"
Hypocelluloma periphericus
Op. 1, dated 9.1.2026 (today)Code: Select all
$ ht -t patch 1
Squamihemis dubius
$ ht -t patch -x "Squamihemis dubius"
Squamihemis dubius
[patch] No. 1, dated 9.1.2026 (today)Such names are much easier to remember and stand out more distinctly. Finding unique combinations through a global filesystem search is far simpler as well. Overall, I'm pleased with the result, and I now name all my drafts this way. For finished versions I use the old scheme: "date - name", whilst finished presets I simply name myself.
And here's the source code:
https://github.com/coignard/holotype
Have fun!
René Coignard