Summary
Hit while creating hrn:mem:hadronmemory.com:hadron-android during the Android app build-out. My first attempt was the obvious guess, and it dead-ended:
$ hadron memory create --help
hadron: unknown command "create" for "hadron memory"
No "Did you mean…?" — create is too far from set for Cobra's edit-distance suggester to fire. I had to fall back to hadron memory --help and read the subcommand list to discover that the verb is set.
The command itself is fine. Once found, hadron memory set --help is genuinely good, and the create succeeded first try with the right class and visibility. The problem is purely that you can't guess the name.
The actual issue: memory is the exception
This isn't just "create is guessable." Every other noun in the CLI already uses create/update; memory is the only one that doesn't:
| noun |
create |
update |
delete |
node |
create |
update |
delete |
org |
create |
update |
rm |
agent |
create |
update |
rm |
memory |
set |
set |
rm |
So a user who has already created a node, an org, or an agent has been taught create three times before they reach memory.
Where set probably came from
Best guess: it's a deliberate upsert. hadron memory set with a positional <memoryRef> updates; without one, creates — one command, kubectl apply-ish, and set is the honest name for that shape. Worth preserving whatever the fix is; the collapse is a real convenience, and existing scripts call set.
Suggested fix
Stopgap (no behaviour change): register create — and probably new and add — as aliases and/or SuggestFor on the set command. One-line change, makes the guess land.
Proper fix: add real hadron memory create and hadron memory update subcommands so memory matches node/org/agent, and keep set as a documented alias for the upsert. Existing invocations keep working.
Either way, hadron memory --help should stop being the only path to discovery.
Prior art
#108 was a dogfood pass over this same command family. Everything it asked for has since landed — --slug exists, the accepted URN spellings are documented, and create now echoes the effective class and visibility (✓ created hrn:mem:… class: knowledge visibility: ORGANIZATION). The verb name is the one thing that pass didn't question, and it's the part that blocks you before you get to any of that improved help text.
Two smaller things noticed in the same session
Splitting these out if you'd rather — they're unrelated to the naming:
- No
--version flag. hadron --version → unknown flag: --version, while hadron version works. A --version flag is close to universal for CLIs and costs nothing to add as an alias.
--org help understates what it accepts. It reads "organization ID or URN", but a bare domain works — I passed --org hadronmemory.com and it resolved fine. That's consistent with the <root> grammar documented further down in the same help text, so it's just the flag description lagging.
Environment
hadron CLI, memory command family
- Observed while creating
hrn:mem:hadronmemory.com:hadron-android (2026-07-28)
- Working command in the end:
hadron memory set --org hadronmemory.com --name "hadron-android" --slug hadron-android \
--class knowledge --visibility ORGANIZATION --description "…"
🤖 Generated with Claude Code
Summary
Hit while creating
hrn:mem:hadronmemory.com:hadron-androidduring the Android app build-out. My first attempt was the obvious guess, and it dead-ended:No "Did you mean…?" —
createis too far fromsetfor Cobra's edit-distance suggester to fire. I had to fall back tohadron memory --helpand read the subcommand list to discover that the verb isset.The command itself is fine. Once found,
hadron memory set --helpis genuinely good, and the create succeeded first try with the right class and visibility. The problem is purely that you can't guess the name.The actual issue:
memoryis the exceptionThis isn't just "
createis guessable." Every other noun in the CLI already usescreate/update;memoryis the only one that doesn't:nodecreateupdatedeleteorgcreateupdatermagentcreateupdatermmemorysetsetrmSo a user who has already created a node, an org, or an agent has been taught
createthree times before they reachmemory.Where
setprobably came fromBest guess: it's a deliberate upsert.
hadron memory setwith a positional<memoryRef>updates; without one, creates — one command,kubectl apply-ish, andsetis the honest name for that shape. Worth preserving whatever the fix is; the collapse is a real convenience, and existing scripts callset.Suggested fix
Stopgap (no behaviour change): register
create— and probablynewandadd— as aliases and/orSuggestForon thesetcommand. One-line change, makes the guess land.Proper fix: add real
hadron memory createandhadron memory updatesubcommands somemorymatchesnode/org/agent, and keepsetas a documented alias for the upsert. Existing invocations keep working.Either way,
hadron memory --helpshould stop being the only path to discovery.Prior art
#108 was a dogfood pass over this same command family. Everything it asked for has since landed —
--slugexists, the accepted URN spellings are documented, and create now echoes the effective class and visibility (✓ created hrn:mem:… class: knowledge visibility: ORGANIZATION). The verb name is the one thing that pass didn't question, and it's the part that blocks you before you get to any of that improved help text.Two smaller things noticed in the same session
Splitting these out if you'd rather — they're unrelated to the naming:
--versionflag.hadron --version→unknown flag: --version, whilehadron versionworks. A--versionflag is close to universal for CLIs and costs nothing to add as an alias.--orghelp understates what it accepts. It reads "organization ID or URN", but a bare domain works — I passed--org hadronmemory.comand it resolved fine. That's consistent with the<root>grammar documented further down in the same help text, so it's just the flag description lagging.Environment
hadronCLI,memorycommand familyhrn:mem:hadronmemory.com:hadron-android(2026-07-28)🤖 Generated with Claude Code