Skip to content

memory is the only noun without createhadron memory set isn't discoverable #308

Description

@shadowbrush

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:

  1. No --version flag. hadron --versionunknown flag: --version, while hadron version works. A --version flag is close to universal for CLIs and costs nothing to add as an alias.
  2. --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

Metadata

Metadata

Assignees

No one assigned

    Labels

    dogfood-2026-07July 2026 dogfood exercise friction logenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions