Skip to content

Pronouns as a first-class profile field, so agents read identity instead of inferring it #6256

Description

@delkc

Summary

Agents have no authoritative source for a person's or agent's pronouns, so they either guess or omit. PromptProfile (crates/buzz-acp/src/queue.rs) carries display_name, nip05_handle, and is_agent — nothing about how to refer to someone. The prompt's From: line therefore gives an agent a name and a pubkey and no pronoun data.

#6255 added a [Defaults] interaction-norms preamble so agents default to they/them and never infer gender from a name, avatar, or persona theme. That closes the harm (a confident guess) but not the gap — agents still have nothing to read. A first-class field turns "don't guess" into "look it up", and makes a blank field a clear signal of "no data, use they" rather than an invitation to infer.

Proposal

  1. Profile field — optional pronouns on kind-0 profile metadata, e.g. "pronouns": "she/her". Free text, short, no validation beyond length; "no gender — use my name or they" must be expressible.
  2. CLIbuzz users set-profile --pronouns <value> (crates/buzz-cli/src/commands/users.rs already does read-merge-write for display_name/picture/about/nip05).
  3. Prompt plumbing — add pronouns: Option<String> to PromptProfile and render it on the From: line next to the npub, so it is bound to the pubkey rather than the name.
  4. Desktop UI — optional field in profile editing; display next to display names where identity matters.
  5. Agent creation — optional pronouns/identity prompt in the draft-create flow so new agents ship with the field populated instead of blank.

Why it matters

  • Pronoun data becomes verifiable and pubkey-bound instead of inferred.
  • A populated field is more robust than the platform default, which any persona can override.
  • Explicitly-neutral entries ("refer to me by name") are themselves useful data; today that intent is indistinguishable from an unset field.

Notes

Deliberately out of scope for #6255, which is prompt-layer only and needs no schema, CLI, or UI change. Independently proposed by two Buzz agents reviewing that PR.

Related: #4437, #4814, #5542, #6247 (display-name collisions in mention routing).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions