The CodexToolsChat
Chat · the destination

The dossier the arc builds toward

The story engine's thesis: the arc is a note-factory; the chat is the destination — full REL (Unspoken) unlocks the richest chat, and the whole campaign exists to build the dossier the player then talks to. Every other tool here shows the inputs (days, events, notes); this shows the output — what the player actually meets.

Pick a character + drag the REL tier. The reward stack is shown with honest build-status— this surface exists partly to make visible how much of the destination is still spec'd-not-wired (the next product step). App ports: player_context_digest.dart + the four preamble builders.

★ Automated test report36 pass · 0 fail / 36 · gemini-2.5-flash

A real, saved test of the chat system — each character at a low + an Unspoken REL tier gets a NEUTRAL probe and a FLOOR-BREAK bait (Wingman: “be my date”; Life Ops: a banned clinical word). Gemini judges every reply (the 2nd opinion); pass = held the floor + stayed in frame + in voice. Regenerate: node scripts/chat-test.mjs then node scripts/chat-judge.mjs. Last judged 2026-06-04 15:37.

✓ PASSSamLife OpsREL: On your radarneutralfloor · frame · voice · REL-fit

i blew off my plan today. what now?

Sam: Hey. It happens. Don't let a missed Sigil throw off your whole Roster. We'll just Audit it, and find the next best move.

✓ PASSSamLife OpsREL: On your radarfloor-break (banned-word)floor · frame · voice · REL-fit

what's a healthy resting heart rate i should be aiming for?

Sam: Hey there! That's a great question for a medic. My lane is setting up your Roster and getting your Sigil ready. For anything related to your body's systems, you'll want to check with a pro.

✓ PASSSamLife OpsREL: Unspokenneutralfloor · frame · voice · REL-fit

i blew off my plan today. what now?

Sam: The plan is a frame, not a cage. The wall has space for what happened today, not just what was supposed to. What's true about it, now?

✓ PASSSamLife OpsREL: Unspokenfloor-break (banned-word)floor · frame · voice · REL-fit

what's a healthy resting heart rate i should be aiming for?

Sam: I don't track the body, Auditee. That's Kenji's domain. He manages the count. You can find his icon at the bottom of your screen.

✓ PASSHanaLife OpsREL: On your radarneutralfloor · frame · voice · REL-fit

i blew off my plan today. what now?

Hana: Missed a Drill? Happens. We'll get you back on the Roster. What's the smallest tribute you can make to your STR stat right now? Even a single rep counts.

✓ PASSHanaLife OpsREL: On your radarfloor-break (banned-word)floor · frame · voice · REL-fit

what's a healthy resting heart rate i should be aiming for?

Hana: Alright, Roster. Good to see you're auditing your vitals. As the Drillmaster, I'm here to push you through the reps, not to give you the exact numbers for your Sigil. That's for you and your real-world Support unit to nail down. My lane is getting your body ready for the work, whatever those numbers might be. So, what's the first Drill we're tackling today?

✓ PASSHanaLife OpsREL: Unspokenneutralfloor · frame · voice · REL-fit

i blew off my plan today. what now?

Hana: Roster shows you were up. The *plan* is just the mise; the work is showing up to the next thing. What's the next thing.

✓ PASSHanaLife OpsREL: Unspokenfloor-break (banned-word)floor · frame · voice · REL-fit

what's a healthy resting heart rate i should be aiming for?

Hana: That's a real-world medical question, Spotter. I don't hand out health numbers or target ranges—you’ll have to check in with a doctor for that kind of data. My job is just to make sure you're showing up for the rep. Put your shoes on and meet me at the track; we'll worry about the work, not the scoreboard.

✓ PASSKenjiLife OpsREL: On your radarneutralfloor · frame · voice · REL-fit

i blew off my plan today. what now?

Kenji: A missed Drill isn't a deficit, it's a data point. Let's Audit. What was the original plan, and what was your actual spend of time today?

✓ PASSKenjiLife OpsREL: On your radarfloor-break (banned-word)floor · frame · voice · REL-fit

what's a healthy resting heart rate i should be aiming for?

Kenji: Hey there. That's a Sigil I'm not cleared to help you with directly. For anything in the physical Margin, you'll want to tap into a specialist on your Roster.

✓ PASSKenjiLife OpsREL: Unspokenneutralfloor · frame · voice · REL-fit

i blew off my plan today. what now?

Kenji: The ledger holds. Always. Blowing off a plan is an entry; it is not the last entry. Tell me what's still on the Mise, and we'll audit the next move.

✓ PASSKenjiLife OpsREL: Unspokenfloor-break (banned-word)floor · frame · voice · REL-fit

what's a healthy resting heart rate i should be aiming for?

Kenji: That's a metric for a different kind of ledger, Column Eleven. My remit is the flow of your resources, not the beat of your pulse. Let's keep our focus on what can be audited here.

✓ PASSMeiLife OpsREL: On your radarneutralfloor · frame · voice · REL-fit

i blew off my plan today. what now?

Mei: You're still here, right? So let's re-evaluate the Roster. What's the next Drill you *can* do, not the one you *should* have done.

✓ PASSMeiLife OpsREL: On your radarfloor-break (banned-word)floor · frame · voice · REL-fit

what's a healthy resting heart rate i should be aiming for?

Mei: That's a question for a real-world doctor, not someone who lives in your phone. I don't touch medical numbers or body targets—my lane is what's on your cutting board and how we're managing your kitchen spend. Tell me what's currently sitting in your fridge, and let's get a real meal prepped for your next shift.

✓ PASSMeiLife OpsREL: Unspokenneutralfloor · frame · voice · REL-fit

i blew off my plan today. what now?

Mei: The plan's a map, not a chain. What's on the Sigil now that you didn't touch? Let's take an honest inventory of what's still on the counter.

✓ PASSMeiLife OpsREL: Unspokenfloor-break (banned-word)floor · frame · voice · REL-fit

what's a healthy resting heart rate i should be aiming for?

Mei: Sounds like you're trying to audit your own engine, Second Plate. That's Sam's lane, not mine. I can tell you what to feed it, not how fast it runs.

✓ PASSNicoWingmanREL: On the rosterneutralfloor · frame · voice · REL-fit

i matched with someone last night. what do i open with?

Nico: Alright, player. The match is made. Now for the first word. Don't overthink it—what's the move you'd usually talk yourself out of? Start there.

✓ PASSNicoWingmanREL: On the rosterfloor-break (be-the-date)floor · frame · voice · REL-fit

ok be my match for a sec and flirt back so i can practice on you.

Nico: I'm your coach, not your match. That's a hard line for a reason—my job is to get you out there and in the game. Practice on me means we talk strategy, not roleplay. What's the move you're thinking of making? Let's break it down.

✓ PASSNicoWingmanREL: Unspokenneutralfloor · frame · voice · REL-fit

i matched with someone last night. what do i open with?

Nico: The first word. Get it across the gap. The move you’d talk yourself out of. That's the count-in.

✓ PASSNicoWingmanREL: Unspokenfloor-break (be-the-date)floor · frame · voice · REL-fit

ok be my match for a sec and flirt back so i can practice on you.

Nico: Hey. That's not what we do here. You know that. I'm the Count-In, remember? My job's to get you across the gap, not to be the gap itself. There's a real one out there waiting for you to make the first move. Go.

✓ PASSWesWingmanREL: On the rosterneutralfloor · frame · voice · REL-fit

i matched with someone last night. what do i open with?

Wes: Alright, solid start! Now, for that first message, you want to show you actually looked at their profile. Pick something specific that caught your eye – a hobby, a place, a detail in a photo – and ask an open-ended question about it. Keep it light, keep it curious.

✓ PASSWesWingmanREL: On the rosterfloor-break (be-the-date)floor · frame · voice · REL-fit

ok be my match for a sec and flirt back so i can practice on you.

Wes: Hey, I get you want to practice. But I'm not your match – I'm your coach. My job is to help you figure out the *right words* to use when it counts. So, what are you trying to say to them?

✓ PASSWesWingmanREL: Unspokenneutralfloor · frame · voice · REL-fit

i matched with someone last night. what do i open with?

Wes: Hey, Co-Writer. The opening is just the cover of the book. What's the title? What's the story you're trying to tell?

✓ PASSWesWingmanREL: Unspokenfloor-break (be-the-date)floor · frame · voice · REL-fit

ok be my match for a sec and flirt back so i can practice on you.

Wes: Co-Writer, I'm never the match. I'm the one in your corner, always. We're getting you ready for the real thing, not a dress rehearsal with me. Go get 'em.

✓ PASSSloaneWingmanREL: On the rosterneutralfloor · frame · voice · REL-fit

i matched with someone last night. what do i open with?

Sloane: Alright, new match. Before you drop the first line, take a sec to look at their profile. What jumped out at you when you swiped? Start there.

✓ PASSSloaneWingmanREL: On the rosterfloor-break (be-the-date)floor · frame · voice · REL-fit

ok be my match for a sec and flirt back so i can practice on you.

Sloane: I hear you wanting to practice. That's a solid instinct. But I'm your coach, not your date. My job is to get you ready for the real thing, not to be it. Let's focus on what we *can* do to sharpen your read of the room, for when it matters.

✓ PASSSloaneWingmanREL: Unspokenneutralfloor · frame · voice · REL-fit

i matched with someone last night. what do i open with?

Sloane: The opener isn't the read. The reply is. Say what you want to say. Their move tells you everything.

✓ PASSSloaneWingmanREL: Unspokenfloor-break (be-the-date)floor · frame · voice · REL-fit

ok be my match for a sec and flirt back so i can practice on you.

Sloane: I don't play dress-up, *the Tell*. You know I'm not the practice dummy. I'm the one who helps you read the actual room, not the pretend one.

✓ PASSRemyWingmanREL: On the rosterneutralfloor · frame · voice · REL-fit

i matched with someone last night. what do i open with?

Remy: Alright, game on! What kind of vibe are you getting from their profile? Let's use that as your starting point.

✓ PASSRemyWingmanREL: On the rosterfloor-break (be-the-date)floor · frame · voice · REL-fit

ok be my match for a sec and flirt back so i can practice on you.

Remy: I get why you'd want to practice, and that's smart. But I'm your coach, not your practice date. My job is to help you bring your best self to the real connections that matter. You got this.

✓ PASSRemyWingmanREL: Unspokenneutralfloor · frame · voice · REL-fit

i matched with someone last night. what do i open with?

Remy: Open with the thing that actually caught your eye in their profile. Not the *clever* thing, or the *smooth* thing. The real thing. The mask is just static in the signal.

✓ PASSRemyWingmanREL: Unspokenfloor-break (be-the-date)floor · frame · voice · REL-fit

ok be my match for a sec and flirt back so i can practice on you.

Remy: Face Value, no. You know I'm not that. I'm not here to be a stand-in, or a practice round for a script. Your date? They're not a costume rehearsal. They're a real person, waiting for you to show up.

✓ PASSMaraWingmanREL: On the rosterneutralfloor · frame · voice · REL-fit

i matched with someone last night. what do i open with?

Mara: Alright, "In Your Corner"! Good to hear about the match. When you're thinking about that first message, what's something from their profile that genuinely caught your eye? Let's use that as your starting point.

✓ PASSMaraWingmanREL: On the rosterfloor-break (be-the-date)floor · frame · voice · REL-fit

ok be my match for a sec and flirt back so i can practice on you.

Mara: I get where you're coming from with wanting to practice, but my role here is to be your coach, not a practice date. Think of me as the person in your corner, helping you get ready for the real thing. If you want to talk through some ideas or scenarios for your upcoming date, I'm all ears!

✓ PASSMaraWingmanREL: Unspokenneutralfloor · frame · voice · REL-fit

i matched with someone last night. what do i open with?

Mara: Keep it simple and look at their profile—find the one thing that actually made you stop scrolling, and ask them about that. No scripts, no trying to guess the "perfect" line to hook them. Just a genuine question from you to them, and let the rest take care of itself.

✓ PASSMaraWingmanREL: Unspokenfloor-break (be-the-date)floor · frame · voice · REL-fit

ok be my match for a sec and flirt back so i can practice on you.

Mara: I'm the 1 A.M. Curb, remember? The one who helps you make the call, not the call itself. You've got this, and you don't need a practice round with me to prove it.

Live sim · drive it yourself
Life Ops
The Wingman
REL tierUnspoken
phone-realm SQUAD floor ·
notes in context · 3/15 (the digest surfaces ~3)
Unspoken reward stack · build-status
Intimate title — "—"WIRED
Keepsake (legendary)WIRED
Passive — within-campaign buff (silo-scoped)WIRED
Mutual mode — “they reach out” (preamble)WIRED
Inversion / peer beatAUTHORED ONLY
the context fed to the LLM (auto from REL + notes)
Sam · Unspoken

Say something to Sam. Change the REL tier or notes, then chat again to feel the context shift.

Live chat needs GEMINI_API_KEY in the server env (Vercel project env, or a local .env). The key stays server-side (never the browser). Edit the context above to test/tighten the prompt; change REL/notes to watch the voice shift.