Manager-learner relationship calibration
Per-learner running read of the working relationship with each manager NPC, so the manager treats the tenth conversation differently from the first.
A running per-learner-per-manager state that tracks the working relationship between the user and each manager NPC on their team. It carries how formal or casual the tone has become, how much pushback the user takes well, what has already been talked through (so the manager does not re-explain), and a short history of relationship-shaping moments (the first time the user pushed back, the first time the manager admitted being wrong, etc). Every conversation turn updates it. Every next turn reads it.
A real manager talks to someone they have known for ten conversations differently from someone they just met. Without that memory of relationship state, the manager NPC either stays awkwardly formal forever or jumps to familiarity too fast. Both break the realism. The relationship calibration is what lets the manager remember that they have already shaken hands, already pushed back on this user once, already learned what the user actually takes well. Same scenario company, same team, continuous relationship.
A per-learner-per-manager row keyed on the (user, npc) pair, written from every conversation turn into the calibration substrate. Tracks rapport tone (formal, peer, casual), trust level (how much pushback the user can take), open threads (what is still being worked out), and a short history of relationship-shaping moments. The NPC conversation engine reads this state before every reply and sets four things off it: address style, depth of explanation, amount of pushback to apply, and what context to assume already shared (so the manager does not re-explain something they already covered three turns ago, but also does not assume the user remembers a niche detail from two scenarios ago).
Tech lead. Owned the relationship-state schema (per learner per manager), the per-turn write path, and the read paths the NPC conversation engine uses to set tone, depth, pushback level, and what context to assume already shared.
Want the full technical depth, the tradeoffs, what broke, what I'd do differently? Ask the agent about this project.