block / block/buzz

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

Open
#6,256 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

## 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. **CLI** — `buzz users set-profile --pronouns ` (`crates/buzz-cli/src/commands/users.rs` already does read-merge-write for `display_name`/`picture`/`about`/`nip05`).
3. **Prompt plumbing** — add `pronouns: Option` 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).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.