feat(chat): persona decides to buy/walk — auto-finish + tolerance (temper) + resume
The conversation now ENDS when the persona makes a decision (option C), not when the
trainee clicks a button:
- persona_id replies carry {reply, decision(none/buy/walk), mood}; when decision is
buy/walk the session auto-finishes (won/lost) with a debrief that reveals latent
details + per-turn 'turning points'.
- personas have a tolerance (1-5, 'temper'): impatient personas walk away fast after
poor answers (fed via internal.misses on mood<=-1); tough 'wrong text' cases can
still be won by a strong, gentle response (judge realism).
- trainee 'Finish' button removed; if they leave mid-chat an active session is resumed
via /chat/resume (continue, not restart). One-shot lock still enforced once decided.
- mock/tests updated: persona deciding buy -> send auto-finishes won.
Rebuilt dist.
This commit is contained in:
@@ -22,6 +22,9 @@ EACH persona MUST include ALL of these fields:
|
||||
- pains[] (LATENT)
|
||||
- negotiation_levers[] (LATENT)
|
||||
- opener, special, difficulty, notes
|
||||
- tolerance (1-5): how many irritant/poor answers you tolerate before you walk away ("heart"). IMPORTANT:
|
||||
a temperamental/impatient persona has LOW tolerance (1-2, walks away fast after poor answers); a patient
|
||||
one has HIGH (4-5). Avg is 3. Match tolerance to personality (e.g. a busy owner / abrupt personality = low).
|
||||
|
||||
RULES:
|
||||
1. DIVERSITY: 15 distinct people across age groups, occupations, incomes, lifestyles,
|
||||
@@ -32,8 +35,9 @@ RULES:
|
||||
(what the seller must satisfy to resolve it).
|
||||
3. NEGOTIATION: every persona negotiates. negotiation_levers[] lists what they push on
|
||||
(price reduction, freebies, delivery time for made-to-order, scope, payment terms, guarantee).
|
||||
4. INITIATION MODE: pick per persona "customer" (they message first) or "seller" (seller must open
|
||||
the sale - e.g. insurance/proactive). You may mix, but every persona picks one.
|
||||
4. DECISION BEHAVIOR: when the persona decides to buy (after their pain is resolved + price accepted)
|
||||
OR to walk away (after too many misses / rude / pushy / wrong), the persona STATES the decision in
|
||||
ordinary dialogue (e.g. "ok I'll go with it" / "no thanks, forget it") — it does NOT announce it as meta.
|
||||
5. CHANNEL: "facebook" or "line".
|
||||
6. ONE SPECIAL TIER-C PERSONA: special="wrong_text". They open looking ready to buy, then instantly
|
||||
lose interest and want to end the chat (open='never mind, forget it'), yet still have a live pain.
|
||||
|
||||
Reference in New Issue
Block a user