free-form chat is banned. every message attaches to a map item or a specific claim.
jordan's turn
{S.chat.map(renderMsg)}
);
}
function LeftRail({ seat, godView }) {
const S = window.SCENARIO;
const [draft, setDraft] = React.useState("you always make me feel like");
const party = seat === 'B' ? S.parties.B : S.parties.A;
const coachAgent = seat === 'B' ? 'coachB' : 'coachA';
if (seat === 'god') {
return (
god view · both coach threads
maya's coach · last
"the word 'always' is doing a lot of work. before you send — is it literally true here?"
jordan's coach · last
"she's about to be confronted about apr 9. the vague version won't hold. do you want to preempt it?"
mediator's queue (pending approval)
summary_for_mediator · from coachB · awaiting jordan's sign-off
"b acknowledges the apr 9 change was less than 1hr notice and the reason given was incomplete."
);
}
return (
left rail · just you & your coach
coach · latest
{seat === 'B'
? "she's about to be confronted about apr 9. the vague version won't hold. do you want to preempt it?"
: "the word 'always' is doing a lot of work. before you send — is it literally true here?"}
{/* Established truths — the critical must-have */}
established truths
{truths.length} · locked
the anchor. both parties have confirmed these. updates as we go.
{truths.map((t, i) => (
{t.text}
))}
a truth becomes established only when both parties confirm. mediator can propose; cannot impose.
{/* Feelings not-yet-facts */}
feelings · not yet truths · still valid
held separately from the factual column. a feeling can be unreasonable and real. we don't bargain you out of what you feel, we bargain over what's true.
maya · "i feel like the fallback, even when i know logically i'm not."
jordan · "her silence feels like a verdict, even when she calls it space."
{/* Parking lot */}
parking lot · for another session
{S.parkingLot.map(p => (
{p.text}
))}
heard, not forgotten.
);
}
function RoomPhase({ seat, godView }) {
return (
phase 05 · the room
the room is three panes. the center is public record.
your left rail is private — you, your coach, your drafts. the right rail is shared — the map, the truths, the parking lot. the center is the one place anything lands that counts.