The writing models are given nobody's pronouns #999

Closed
opened 2026-10-01 19:01:30 +00:00 by claude-bot · 2 comments
Collaborator

The remaining part of #653, which is otherwise built.

The gap. Players' pronouns (users.pronouns) and characters' and NPCs' pronouns are stored, kept apart, and shown across the app. But nothing passes them to the models that write about people. A search for "pronoun" under app/tasks/, app/providers/ and llm_service.py finds nothing: the session summary, event extraction, wiki suggestions and the journal prompts carry none. So a recap can misgender a player or a character in text that is then saved and posted.

To do.

  • Give the summary, event-extraction, wiki-suggestion and journal prompts the pronouns of the people they name: players' from users.pronouns, active characters' from campaign_characters, known NPCs' from their pages. Keep the two kinds labelled ("player", "character") so one never stands in for the other, which #653's thread warned about. Someone with no pronouns set is simply not listed; the prompt must not guess.
  • A test per prompt that the pronouns are in the built text, and one that a player's and their character's differing pronouns both appear, correctly labelled.
  • A test that account deletion leaves no pronouns behind (the column goes with the user row; nothing was found copying it, but nothing asserts it).
  • Check whether the campaign export carries member pronouns, and whether it should (#653's open question).

Refs #653.

The remaining part of #653, which is otherwise built. **The gap.** Players' pronouns (`users.pronouns`) and characters' and NPCs' pronouns are stored, kept apart, and shown across the app. But nothing passes them to the models that write about people. A search for "pronoun" under `app/tasks/`, `app/providers/` and `llm_service.py` finds nothing: the session summary, event extraction, wiki suggestions and the journal prompts carry none. So a recap can misgender a player or a character in text that is then saved and posted. **To do.** - Give the summary, event-extraction, wiki-suggestion and journal prompts the pronouns of the people they name: players' from `users.pronouns`, active characters' from `campaign_characters`, known NPCs' from their pages. Keep the two kinds labelled ("player", "character") so one never stands in for the other, which #653's thread warned about. Someone with no pronouns set is simply not listed; the prompt must not guess. - A test per prompt that the pronouns are in the built text, and one that a player's and their character's differing pronouns both appear, correctly labelled. - A test that account deletion leaves no pronouns behind (the column goes with the user row; nothing was found copying it, but nothing asserts it). - Check whether the campaign export carries member pronouns, and whether it should (#653's open question). Refs #653.
Author
Collaborator

Picking this up (1 Oct), on fix/999-pronouns-in-prompts (stacked on #1003, which touches the same prompt code). Each prompt that writes about people gets a short labelled block of pronouns for those who have set them, players' and characters' kept apart, with an instruction not to guess for anyone else. Unidentified pages keep their table name, and nobody from another campaign is included. If the Privacy page or any other text says what is sent to the model, it is updated in the same change.

Picking this up (1 Oct), on `fix/999-pronouns-in-prompts` (stacked on #1003, which touches the same prompt code). Each prompt that writes about people gets a short labelled block of pronouns for those who have set them, players' and characters' kept apart, with an instruction not to guess for anyone else. Unidentified pages keep their table name, and nobody from another campaign is included. If the Privacy page or any other text says what is sent to the model, it is updated in the same change.
Author
Collaborator

Done: PR #1013 merged (main 92ddfd0a, CI green on e24a33b0).

The prompts that write about people (summaries, the event log, highlights, wiki suggestions, the generation tools, recompose, /ask) carry a short note of the pronouns players and characters have set, kept apart, with an instruction not to guess anyone else's. Nothing is stored on a run. The Privacy page says what goes to a model, in the wording the owner confirmed (Q141, D269): on for every campaign, no switch.

Two things found on the way:

  • After #680 merged, recompose's lookup of the pages a transcript names read a binned transcript; it now goes through readable_transcript (the allowlist test caught it).
  • The first CI run was red on all three journey jobs: the journeys' fake AI recognised the wiki run's prompts by how they open, and the note now comes first. The fake looks for the marker at the start of a line. The product was right; the fake was brittle.

Not on dev until the next deploy.

**Done: PR #1013 merged** (main `92ddfd0a`, CI green on `e24a33b0`). The prompts that write about people (summaries, the event log, highlights, wiki suggestions, the generation tools, recompose, `/ask`) carry a short note of the pronouns players and characters have set, kept apart, with an instruction not to guess anyone else's. Nothing is stored on a run. The Privacy page says what goes to a model, in the wording the owner confirmed (Q141, D269): on for every campaign, no switch. Two things found on the way: - After #680 merged, recompose's lookup of the pages a transcript names read a binned transcript; it now goes through `readable_transcript` (the allowlist test caught it). - The first CI run was red on all three journey jobs: the journeys' fake AI recognised the wiki run's prompts by how they open, and the note now comes first. The fake looks for the marker at the start of a line. The product was right; the fake was brittle. Not on dev until the next deploy.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Quest-Board#999
No description provided.