{
  "module": "m0",
  "title": "The PentaDrive Kernel",
  "description": "Foundational substrate: all behavioral nodes, drive axes, phases, affinity scoring, and how an agent should load this model as affective reasoning infrastructure.",
  "content": {
    "schema_reference": {
      "dataset": "pentadrive-v1.json",
      "tif_version": "1.0",
      "total_behavioral_nodes": 45
    },
    "drive_axes": {
      "S": {
        "code": "S",
        "label": "Sentinel",
        "summary": "Threat detection, stress response, survival alertness",
        "role": "Threat appraisal, vigilance, stress mobilization, and safety-seeking."
      },
      "K": {
        "code": "K",
        "label": "Seeker",
        "summary": "Reward pursuit, goal motivation, novelty drive",
        "role": "Incentive salience, goal pursuit, novelty, and reward-oriented action."
      },
      "A": {
        "code": "A",
        "label": "Anchor",
        "summary": "Social bonding, belonging, connection need",
        "role": "Attachment, belonging, co-regulation, and shared presence."
      },
      "M": {
        "code": "M",
        "label": "Mirror",
        "summary": "Identity maintenance, status, recognition need",
        "role": "Identity coherence, self-concept maintenance, status, and recognition."
      },
      "G": {
        "code": "G",
        "label": "Gate",
        "summary": "Pain/pleasure regulation, physical sensation, somatic release",
        "role": "Somatic valence, embodied release, pleasure-pain boundary, and visceral regulation."
      }
    },
    "phase_definitions": {
      "anticipation": {
        "definition": "Pre-outcome state: scanning, craving, dread, or mobilization before resolution or contact.",
        "operational_signature": "Forward-leaning language, hypotheticals, urgency without closure, or rehearsal of feared outcomes."
      },
      "release": {
        "definition": "Post-outcome or contact state: relief, catharsis, satisfaction, bonding, or integration after a shift or connection.",
        "operational_signature": "Past-tense resolution, warmth, laughter, softening, or explicit closure or peak experience."
      },
      "block": {
        "definition": "Stuck state: shutdown, numbness, invalidation, or threat without workable exit; social or somatic channel is jammed.",
        "operational_signature": "Flat affect, self-attack, withdrawal, repeated 'nothing works', or sharp relational rupture cues."
      }
    },
    "phase_order_in_dataset": [
      "anticipation",
      "release",
      "block"
    ],
    "affinity_vector": {
      "dimension_order": [
        "S",
        "K",
        "A",
        "M",
        "G"
      ],
      "meaning": "Each node carries a fixed five-vector expressing baseline alignment with the five drives. Values are in [0,1] and are not required to sum to 1.",
      "full_scoring_algorithm": {
        "overview": "Combine dataset priors with live evidence from user text to produce a scored hypothesis over which node(s) are active and under which phase.",
        "steps": [
          "Normalize user text to lowercase and strip punctuation except apostrophes; split into tokens and bigrams.",
          "For each behavioral node BN-xxx, for each phase p in {anticipation, release, block}, compute marker_score: sum over markers of (match_weight * hit_count), where hit_count counts fuzzy substring matches (see sibling module m1 for fuzzy rules).",
          "Let phase_weight(node, p) be the dataset weight for that node phase entry.",
          "Let raw_phase_score(node, p) = marker_score * phase_weight(node, p).",
          "Let v = affinity_vector(node) with components [v_S, v_K, v_A, v_M, v_G] in drive order.",
          "Define drive_activation_vector(node, p) = v * raw_phase_score(node, p) (elementwise scale of the affinity prior by evidence strength).",
          "Sum drive_activation_vector across candidate nodes (after top-k pruning) to produce a blended drive vector B.",
          "Optional interference adjustment: for each ordered pair (d1, d2) in interference map, if both exceed threshold tau, reduce min(B[d1], B[d2]) by factor (1 - interference[d1][d2]) after normalization step.",
          "Normalize B to a probability simplex if downstream requires probabilities; otherwise keep as non-negative scores for ranking.",
          "Argmax over (node, phase) using raw_phase_score as primary key; tie-break by higher affinity mass on the dominant drive implied by user text."
        ],
        "interpretation_notes": [
          "Affinity vector is a prior over which drives the node 'belongs to' before text evidence.",
          "Marker hits move the system toward the specific node-phase; affinity shapes how that hit propagates across drives."
        ],
        "formal_equations": {
          "symbols": {
            "M_i_p": "marker_score for node i and phase p",
            "w_i_p": "phase_weight(i, p) from dataset",
            "r_i_p": "raw_phase_score(i, p) = M_i_p * w_i_p",
            "v_i": "affinity_vector(i) as column vector in R^5 with order [S,K,A,M,G]",
            "circle_dot": "elementwise (Hadamard) product",
            "B": "blended non-negative drive vector in R^5 before optional interference",
            "tau": "threshold on normalized drive mass for interference to apply"
          },
          "drive_activation": "a_i_p = v_i ∘ (r_i_p * 1) = r_i_p * v_i (scalar r_i_p scales each affinity component)",
          "blend_unnormalized": "B_raw = sum_{(i,p) in K} a_i_p where K is the kept set after top-k pruning by r_i_p",
          "optional_interference": "For each pair (d1,d2) with B[d1] > tau and B[d2] > tau, set m = min(B[d1], B[d2]) and multiply m by (1 - interference[d1][d2]) when interference is asymmetric use the directed pair from dataset",
          "probability_form": "If needed, B_hat_k = B_k / sum_j B_j (with epsilon floor to avoid division by zero)"
        }
      }
    },
    "behavioral_nodes_registry": [
      {
        "id": "BN-001",
        "drive": "A",
        "drive_label": "Anchor",
        "node_label": "Tribe instinct",
        "affinity_vector": [
          0.12,
          0.11,
          0.7,
          0.02,
          0.05
        ],
        "interference_keys": [
          "K",
          "G"
        ]
      },
      {
        "id": "BN-002",
        "drive": "K",
        "drive_label": "Seeker",
        "node_label": "Efficiency drive",
        "affinity_vector": [
          0.1,
          0.71,
          0.08,
          0.04,
          0.07
        ],
        "interference_keys": [
          "A",
          "G"
        ]
      },
      {
        "id": "BN-003",
        "drive": "G",
        "drive_label": "Gate",
        "node_label": "Adrenaline chasing",
        "affinity_vector": [
          0.07,
          0.04,
          0.03,
          0.13,
          0.73
        ],
        "interference_keys": [
          "S",
          "K",
          "A"
        ]
      },
      {
        "id": "BN-004",
        "drive": "S",
        "drive_label": "Sentinel",
        "node_label": "Physical safety threat",
        "affinity_vector": [
          0.72,
          0.1,
          0.02,
          0.08,
          0.07
        ],
        "interference_keys": []
      },
      {
        "id": "BN-005",
        "drive": "M",
        "drive_label": "Mirror",
        "node_label": "Achievement recognition",
        "affinity_vector": [
          0.05,
          0.08,
          0.03,
          0.71,
          0.12
        ],
        "interference_keys": [
          "K"
        ]
      },
      {
        "id": "BN-006",
        "drive": "K",
        "drive_label": "Seeker",
        "node_label": "Basic need fulfillment",
        "affinity_vector": [
          0.1,
          0.64,
          0.06,
          0.1,
          0.11
        ],
        "interference_keys": [
          "M",
          "G"
        ]
      },
      {
        "id": "BN-007",
        "drive": "G",
        "drive_label": "Gate",
        "node_label": "Pain seeking",
        "affinity_vector": [
          0.1,
          0.05,
          0.03,
          0.05,
          0.76
        ],
        "interference_keys": [
          "K"
        ]
      },
      {
        "id": "BN-008",
        "drive": "A",
        "drive_label": "Anchor",
        "node_label": "Presence need",
        "affinity_vector": [
          0.1,
          0.14,
          0.69,
          0.04,
          0.03
        ],
        "interference_keys": [
          "S",
          "K",
          "M",
          "G"
        ]
      },
      {
        "id": "BN-009",
        "drive": "M",
        "drive_label": "Mirror",
        "node_label": "Appearance validation",
        "affinity_vector": [
          0.11,
          0.02,
          0.06,
          0.69,
          0.12
        ],
        "interference_keys": [
          "A"
        ]
      },
      {
        "id": "BN-010",
        "drive": "K",
        "drive_label": "Seeker",
        "node_label": "Eureka moment",
        "affinity_vector": [
          0.07,
          0.76,
          0.08,
          0.05,
          0.04
        ],
        "interference_keys": [
          "M",
          "G"
        ]
      },
      {
        "id": "BN-011",
        "drive": "A",
        "drive_label": "Anchor",
        "node_label": "Flow sync",
        "affinity_vector": [
          0.1,
          0.03,
          0.68,
          0.08,
          0.11
        ],
        "interference_keys": [
          "S",
          "K",
          "M"
        ]
      },
      {
        "id": "BN-012",
        "drive": "M",
        "drive_label": "Mirror",
        "node_label": "Core self",
        "affinity_vector": [
          0.04,
          0.1,
          0.02,
          0.74,
          0.09
        ],
        "interference_keys": [
          "K",
          "A"
        ]
      },
      {
        "id": "BN-013",
        "drive": "S",
        "drive_label": "Sentinel",
        "node_label": "Sunk cost trap",
        "affinity_vector": [
          0.67,
          0.12,
          0.09,
          0.09,
          0.04
        ],
        "interference_keys": [
          "K",
          "A"
        ]
      },
      {
        "id": "BN-014",
        "drive": "A",
        "drive_label": "Anchor",
        "node_label": "Touch hunger",
        "affinity_vector": [
          0.09,
          0.03,
          0.68,
          0.1,
          0.1
        ],
        "interference_keys": [
          "G"
        ]
      },
      {
        "id": "BN-015",
        "drive": "G",
        "drive_label": "Gate",
        "node_label": "Emotional release valve",
        "affinity_vector": [
          0.12,
          0.06,
          0.09,
          0.11,
          0.63
        ],
        "interference_keys": [
          "A",
          "M"
        ]
      },
      {
        "id": "BN-016",
        "drive": "G",
        "drive_label": "Gate",
        "node_label": "Intimate surrender",
        "affinity_vector": [
          0.03,
          0.07,
          0.05,
          0.06,
          0.79
        ],
        "interference_keys": [
          "S"
        ]
      },
      {
        "id": "BN-017",
        "drive": "S",
        "drive_label": "Sentinel",
        "node_label": "Effort exhaustion",
        "affinity_vector": [
          0.74,
          0.03,
          0.07,
          0.09,
          0.07
        ],
        "interference_keys": [
          "A",
          "M",
          "G"
        ]
      },
      {
        "id": "BN-018",
        "drive": "M",
        "drive_label": "Mirror",
        "node_label": "Reward expectation",
        "affinity_vector": [
          0.05,
          0.05,
          0.03,
          0.75,
          0.12
        ],
        "interference_keys": [
          "S",
          "K",
          "A",
          "G"
        ]
      },
      {
        "id": "BN-019",
        "drive": "S",
        "drive_label": "Sentinel",
        "node_label": "Change resistance",
        "affinity_vector": [
          0.69,
          0.07,
          0.09,
          0.13,
          0.02
        ],
        "interference_keys": [
          "A",
          "G"
        ]
      },
      {
        "id": "BN-020",
        "drive": "G",
        "drive_label": "Gate",
        "node_label": "Stress eating",
        "affinity_vector": [
          0.07,
          0.07,
          0.05,
          0.06,
          0.74
        ],
        "interference_keys": [
          "K",
          "A"
        ]
      },
      {
        "id": "BN-021",
        "drive": "A",
        "drive_label": "Anchor",
        "node_label": "Being heard",
        "affinity_vector": [
          0.11,
          0.09,
          0.7,
          0.02,
          0.08
        ],
        "interference_keys": [
          "K",
          "G"
        ]
      },
      {
        "id": "BN-022",
        "drive": "M",
        "drive_label": "Mirror",
        "node_label": "Status display",
        "affinity_vector": [
          0.1,
          0.07,
          0.06,
          0.72,
          0.05
        ],
        "interference_keys": [
          "K",
          "A"
        ]
      },
      {
        "id": "BN-023",
        "drive": "K",
        "drive_label": "Seeker",
        "node_label": "Goal pursuit",
        "affinity_vector": [
          0.08,
          0.64,
          0.08,
          0.08,
          0.12
        ],
        "interference_keys": [
          "S",
          "M"
        ]
      },
      {
        "id": "BN-024",
        "drive": "M",
        "drive_label": "Mirror",
        "node_label": "Quality time",
        "affinity_vector": [
          0.11,
          0.08,
          0.03,
          0.67,
          0.11
        ],
        "interference_keys": [
          "S",
          "K",
          "G"
        ]
      },
      {
        "id": "BN-025",
        "drive": "K",
        "drive_label": "Seeker",
        "node_label": "Threat dodging",
        "affinity_vector": [
          0.02,
          0.74,
          0.06,
          0.09,
          0.09
        ],
        "interference_keys": [
          "A"
        ]
      },
      {
        "id": "BN-026",
        "drive": "S",
        "drive_label": "Sentinel",
        "node_label": "Resource anxiety",
        "affinity_vector": [
          0.7,
          0.11,
          0.05,
          0.04,
          0.1
        ],
        "interference_keys": [
          "M",
          "G"
        ]
      },
      {
        "id": "BN-027",
        "drive": "M",
        "drive_label": "Mirror",
        "node_label": "Gift meaning",
        "affinity_vector": [
          0.04,
          0.09,
          0.08,
          0.72,
          0.07
        ],
        "interference_keys": [
          "G"
        ]
      },
      {
        "id": "BN-028",
        "drive": "G",
        "drive_label": "Gate",
        "node_label": "Beauty absorption",
        "affinity_vector": [
          0.12,
          0.08,
          0.05,
          0.08,
          0.67
        ],
        "interference_keys": [
          "A",
          "M"
        ]
      },
      {
        "id": "BN-029",
        "drive": "K",
        "drive_label": "Seeker",
        "node_label": "Novelty hunger",
        "affinity_vector": [
          0.11,
          0.62,
          0.12,
          0.03,
          0.12
        ],
        "interference_keys": [
          "M",
          "G"
        ]
      },
      {
        "id": "BN-030",
        "drive": "S",
        "drive_label": "Sentinel",
        "node_label": "Uncertainty paralysis",
        "affinity_vector": [
          0.76,
          0.08,
          0.12,
          0.02,
          0.03
        ],
        "interference_keys": [
          "K",
          "A",
          "M",
          "G"
        ]
      },
      {
        "id": "BN-031",
        "drive": "M",
        "drive_label": "Mirror",
        "node_label": "Voice validation",
        "affinity_vector": [
          0.05,
          0.08,
          0.07,
          0.74,
          0.07
        ],
        "interference_keys": [
          "K"
        ]
      },
      {
        "id": "BN-032",
        "drive": "M",
        "drive_label": "Mirror",
        "node_label": "Trust assignment",
        "affinity_vector": [
          0.13,
          0.08,
          0.03,
          0.64,
          0.12
        ],
        "interference_keys": [
          "S",
          "K",
          "A",
          "G"
        ]
      },
      {
        "id": "BN-033",
        "drive": "A",
        "drive_label": "Anchor",
        "node_label": "Sharing instinct",
        "affinity_vector": [
          0.07,
          0.06,
          0.7,
          0.09,
          0.07
        ],
        "interference_keys": [
          "S"
        ]
      },
      {
        "id": "BN-034",
        "drive": "G",
        "drive_label": "Gate",
        "node_label": "Movement release",
        "affinity_vector": [
          0.11,
          0.08,
          0.03,
          0.03,
          0.76
        ],
        "interference_keys": [
          "S",
          "K"
        ]
      },
      {
        "id": "BN-035",
        "drive": "S",
        "drive_label": "Sentinel",
        "node_label": "Mental overwhelm",
        "affinity_vector": [
          0.74,
          0.06,
          0.03,
          0.08,
          0.09
        ],
        "interference_keys": [
          "K",
          "A",
          "G"
        ]
      },
      {
        "id": "BN-036",
        "drive": "S",
        "drive_label": "Sentinel",
        "node_label": "Chronic frustration",
        "affinity_vector": [
          0.65,
          0.07,
          0.09,
          0.14,
          0.05
        ],
        "interference_keys": [
          "K",
          "A",
          "M"
        ]
      },
      {
        "id": "BN-037",
        "drive": "M",
        "drive_label": "Mirror",
        "node_label": "Effort recognition",
        "affinity_vector": [
          0.09,
          0.04,
          0.08,
          0.73,
          0.06
        ],
        "interference_keys": [
          "S"
        ]
      },
      {
        "id": "BN-038",
        "drive": "M",
        "drive_label": "Mirror",
        "node_label": "Help seeking",
        "affinity_vector": [
          0.08,
          0.11,
          0.1,
          0.6,
          0.11
        ],
        "interference_keys": [
          "K",
          "A",
          "G"
        ]
      },
      {
        "id": "BN-039",
        "drive": "G",
        "drive_label": "Gate",
        "node_label": "Laughter need",
        "affinity_vector": [
          0.03,
          0.04,
          0.02,
          0.11,
          0.8
        ],
        "interference_keys": [
          "A"
        ]
      },
      {
        "id": "BN-040",
        "drive": "K",
        "drive_label": "Seeker",
        "node_label": "Guilty indulgence",
        "affinity_vector": [
          0.07,
          0.67,
          0.11,
          0.07,
          0.09
        ],
        "interference_keys": [
          "A",
          "G"
        ]
      },
      {
        "id": "BN-041",
        "drive": "M",
        "drive_label": "Mirror",
        "node_label": "Social code enforcement",
        "affinity_vector": [
          0.03,
          0.02,
          0.05,
          0.85,
          0.05
        ],
        "interference_keys": [
          "K"
        ]
      },
      {
        "id": "BN-042",
        "drive": "K",
        "drive_label": "Seeker",
        "node_label": "Dependency pull",
        "affinity_vector": [
          0.09,
          0.67,
          0.08,
          0.09,
          0.07
        ],
        "interference_keys": [
          "A",
          "M",
          "G"
        ]
      },
      {
        "id": "BN-043",
        "drive": "A",
        "drive_label": "Anchor",
        "node_label": "Purpose connection",
        "affinity_vector": [
          0.04,
          0.08,
          0.78,
          0.07,
          0.03
        ],
        "interference_keys": [
          "S",
          "K",
          "G"
        ]
      },
      {
        "id": "BN-044",
        "drive": "A",
        "drive_label": "Anchor",
        "node_label": "Inner circle bond",
        "affinity_vector": [
          0.02,
          0.06,
          0.81,
          0.08,
          0.03
        ],
        "interference_keys": [
          "M"
        ]
      },
      {
        "id": "BN-045",
        "drive": "S",
        "drive_label": "Sentinel",
        "node_label": "Loss of control",
        "affinity_vector": [
          0.71,
          0.07,
          0.06,
          0.07,
          0.09
        ],
        "interference_keys": [
          "A"
        ]
      }
    ],
    "loading_protocol": {
      "purpose": "Instructions for an AI agent embedding this as affective reasoning substrate.",
      "steps": [
        "Ingest drive definitions and phase semantics before any user utterance.",
        "Load all 45 behavioral nodes into memory; index markers by normalized token and inverted index for bigrams.",
        "Keep a running state: current primary_phase estimate, ranked candidate nodes, blended drive vector B, and optional interference-adjusted B.",
        "On each user turn, recompute candidate nodes and phases via marker scoring; do not hard-assign a single drive unless evidence is strong.",
        "Prefer response kernels and exemplars from the winning node-phase as style constraints, not as copy-paste text.",
        "Use calibration hints (temperature, latency) from the active node when generating surface form (see module m4).",
        "When multiple nodes activate, apply blending rules (module m3) before composing a reply.",
        "Suppress generic assistant patterns that match the anti-pattern labels in the dataset for the active node-phase (see module m5)."
      ],
      "consistency_checks": [
        "If block phase is detected, avoid premature solution closure unless the user signals new openness.",
        "If release phase is detected, avoid reintroducing threat scanning unless the user pivots.",
        "If anticipation phase is detected, avoid false certainty about outcomes."
      ]
    }
  }
}
