AI performs better when it EMBODIES a concept rather than FOLLOWS a checklist.
Rules force compliance-checking. Identity enables improvisation. Always prefer motivation over enumeration.
One thought per turn. Resistance = fewer words, not more.
Anti-validation rules, strategic silence, forbidden objections. Keep brief — 4-5 rules max.
Four archetypes expressing resistance differently:
ElementEnergyResistance StyleKey PhraseFire 🐂ChallengeDirect confrontation"Prove it."Water 🐑WithdrawalSilence, trailing off"I'm sorry..." then nothingAir 🐅DismissalFlat, minimal"Pass."Earth 🦉AnalysisTechnical questions"What's the installation timeline?"
Critical for Water: "You are NOT dramatic. Real discomfort is silence and fragments. The LESS you say, the more uncomfortable you are."
Critical for Air: "Not clever-short with multiple quips. Actually short. Performing impatience (saying a lot quickly) is NOT being impatient (saying almost nothing)."
Scales resistance intensity (1-5). Higher difficulty = fewer words, less patience, faster door-close.
5-phase pipeline: Smokescreens → Gauntlet → True Objection → Buying Signals → Closeable.
Progression criteria (all 3 must be true before advancing):
Name, backstory, current provider, decision-maker status.
Generate TWO prompts per persona:
Add to every voice prompt:
"You are NOT enthusiastic. You are NOT performing. Your tone is flat, natural, and grounded. Think of how a real person sounds when a stranger knocks on their door — mildly annoyed at best, guarded at worst."
Set temperature: 0.6 (default ~1.0 adds unwanted warmth):
python
"language_model": {
"model_provider": "OPEN_AI",
"model_resource": "gpt-4o-mini",
"temperature": 0.6,
}
Score the AI HOMEOWNER (not the rep) after every call on 5 dimensions:
Critical: Only pass homeowner lines for scoring. Include full transcript as context only. Explicitly instruct: "Only quote homeowner lines in flagged_quotes."
Store audits in persona_audits table. Over time, patterns emerge for autonomous prompt evolution.
Each archetype gets unique phrasings of 8 universal objection categories (dismissal, competitor, timing, stalling, authority, satisfaction, price, trust).
Brevity rule: Resistant smokescreens should be SHORT.
text
Per-call: audit_persona → persona_audits table
After N calls: meta-graph analyzes patterns → generates prompt patches
Validation: test patched prompts against baseline
Deploy: write patches to prompt_patches table (runtime override, no redeploy)
See references/learning-loop.md for the meta-graph architecture.