DUNIN7 · LOOMWORKS · RECORD
record.dunin7.com
Status Current
Path standing-notes/loomworks-standing-note-creation-conversation-second-voice-v0_1.md

Standing note — The Companion has a second conversational voice (creation-conversation) not under companion_persona.md

Version. v0.1 Date. 2026-06-25 Author. Claude Code (CC), surfaced during CR-2026-122 Step 0 (S0-4), under Operator direction. Status. Standing note — a verified architectural fact and an open follow-on. No build authorized by this note. Relates to. Scoping note loomworks-conversational-fidelity-scoping-note-v0_1 (c60f565); CR-2026-122 (change-requests/cr-2026-122-conversational-fidelity-v0_1.md, 933d74b).


The position

The Companion composes operator-facing conversational replies through two separate prompt paths, and only one of them loads companion_persona.md:

  1. Main conversational voice — operator_converse. general_conversation (and every intent that falls through to the responder) → route_intent returns Noneconverse.py responder branch → assemble_prompt(...)generate_response(...). assemble_prompt opens unconditionally with companion_persona.md (prompt.py:897, the sole load_persona() call site). generate_response has exactly one source caller (converse.py:1082).
  1. Engagement-creation voice — seed_conversation.py. The seed/creation converse route (POST /engagements/{eid}/seed/converse) composes its turn from CREATION_CONVERSATION_PROMPT (src/loomworks/api/routers/seed_conversation.py:83 import, :639 use), defined at src/loomworks/prompts/creation_conversation.py:26. This path does not load companion_persona.md and does not go through assemble_prompt.

CREATION_CONVERSATION_PROMPT carries no state-fidelity instruction and none of the persona's vocabulary discipline (no occurrence of saved / held / committed / waiting / persona reference in creation_conversation.py).

Why it matters

CR-2026-122 fixes the conversational fidelity defect ("a held draft described as 'saved' / 'in the record'") by adding a state-to-word mapping to companion_persona.md (D1). That fix reaches voice #1 only. The creation-conversation voice (#2) is not governed by the persona, so:

This is outside CR-2026-122's scope — the observed defect (2026-06-25, E0060) was on the operator_converse general-conversation voice, and the CR is correctly scoped to it. This note records the second voice so it is not mistaken for already-covered, and flags the follow-on.

Open follow-on (not authorized here)

Check whether the creation-conversation voice (CREATION_CONVERSATION_PROMPT) needs the same state-fidelity discipline — i.e. whether, mid engagement-creation, it can claim work is "saved" before the Operator has committed it. If so, that is a separate fix on creation_conversation.py, parallel to CR-2026-122's persona change, with its own grounding and authorization.

Exact references (as of 2026-06-25)


Standing note. A verified second conversational surface; recorded so the CR-2026-122 fix is not mistaken for covering it. Follow-on check only — no build authorized.