Addiction Recovery

epistemic

Addiction Recovery

Definition

Addiction Recovery is a foundational epistemic discipline principle within the Prismatic Platform that mandates constant, automated vigilance against the human and systemic tendency to rationalize away inconvenient evidence, suppress contradictions, and cherry-pick data to support predetermined conclusions. The term draws a deliberate and precise analogy to addiction recovery programs: just as a person in recovery must maintain perpetual awareness that the impulse to relapse never fully disappears, an epistemic system must maintain perpetual awareness that the impulse to smooth over contradictions, dismiss outlier signals, and fabricate false certainty never fully disappears. The principle is encoded as a structural constraint in the NABLA Infinity framework and enforced through automated detection of rationalization patterns across all belief-forming operations.

Overview

Historical and Philosophical Context

The Addiction Recovery principle emerged from a critical observation during the Prismatic Platform's early development: epistemic systems degrade not through sudden catastrophic failures but through the gradual accumulation of small, individually reasonable compromises. A single instance of discarding a contradictory signal seems harmless. A single instance of rounding up a confidence score appears pragmatic. A single instance of treating correlated sources as independent looks like an honest mistake. But these small compromises compound. Over weeks and months, they erode the epistemic foundations of the entire system until conclusions that appear verified rest on a network of suppressed contradictions, inflated confidence, and unchallenged assumptions.

This pattern mirrors addiction dynamics with uncomfortable precision. Addiction researchers have long recognized that relapse does not begin with the act of using a substance. It begins with a sequence of cognitive shifts: minimization ("one drink won't matter"), rationalization ("I've been doing well, I've earned this"), and selective attention ("I'll focus on the positive outcomes"). Each shift is individually small and subjectively reasonable. Collectively, they reconstruct the mental framework that enables relapse.

The Prismatic Platform applies this insight to epistemology. Epistemic relapse -- the degradation of knowledge integrity -- follows the same pattern. It begins not with gross data fabrication but with a sequence of cognitive shortcuts: minimization ("this contradiction is probably noise"), rationalization ("we have enough supporting evidence to override this outlier"), and selective attention ("the strong signals clearly point in one direction"). Each shortcut is individually defensible. Collectively, they produce a belief system that has been shaped more by convenience than by evidence.

The Core Metaphor

The Addiction Recovery metaphor is not decorative. It identifies specific structural parallels between substance addiction recovery and epistemic integrity maintenance:

Addiction RecoveryEpistemic IntegrityPlatform Enforcement
Triggers -- External cues that activate cravingRationalization triggers -- Situations that tempt evidence suppressionAutomated trigger detection in belief pipeline
Vigilance -- Constant awareness of vulnerabilityEpistemic vigilance -- Continuous monitoring for bias patternsReal-time NABLA axiom compliance checking
Relapse prevention -- Structured protocols against recurrenceAnti-pattern enforcement -- Hard blocks on known epistemic failuresE2/E3 enforcement levels with no bypass
Sponsor/accountability -- External validation of decisionsTrinity Gate -- Multi-layer independent verificationStructural, logical, and formal consistency gates
One day at a time -- Not permanent cure but continuous practiceContinuous verification -- Not one-time validation but ongoing compliancePer-operation axiom checks, not periodic audits
Meetings/community -- Shared vigilance structuresColor Teams -- Adversarial-defensive team dynamics6-team continuous challenge and verification

The insight that ties these parallels together is that neither addiction recovery nor epistemic integrity can be "solved." There is no point at which the system can declare itself permanently immune to rationalization, just as there is no point at which a person in recovery can declare themselves permanently immune to relapse. The correct posture is perpetual, structured vigilance -- not paranoia, but disciplined awareness maintained through automated systems that do not suffer from the cognitive fatigue that degrades human vigilance over time.

Significance Within the Platform

Addiction Recovery is not a standalone principle but a meta-level framing that infuses the entire NABLA Infinity framework. Every NABLA axiom can be understood as a specific anti-relapse mechanism:

  • Signal Plurality: Prevents the rationalization "this one source is authoritative enough"
  • Contradiction Preservation: Prevents the minimization "this disagreement is probably just noise"
  • Absence Informative: Prevents the selective attention "if there's no evidence of a problem, there is no problem"
  • Time Decay: Prevents the staleness rationalization "this evidence is still good enough"
  • Unknown Valid: Prevents the false certainty "we need to give an answer even if we're not sure"
  • Source Independence: Prevents the correlation blindness "ten articles confirm this" (from the same source)
  • Provenance Mandatory: Prevents the accountability evasion "everyone knows this"

Technical Details

Rationalization Pattern Taxonomy

The Addiction Recovery principle defines a structured taxonomy of epistemic rationalization patterns, each analogous to a specific relapse trigger in addiction recovery:

PatternAddiction AnalogyDescriptionDetection MethodEnforcement
Contradiction Dismissal"One drink won't hurt"Discarding contradictory evidence as noise without investigationGraph integrity check for missing contradiction nodesE2 BLOCK
Confidence Inflation"I can handle it this time"Artificially raising confidence scores beyond what evidence supportsStatistical deviation from calibrated confidence modelE2 BLOCK
Source Laundering"Everyone does it"Treating correlated sources as independent to meet plurality requirementsIndependence group analysis on evidence provenanceE2 BLOCK
Selective Framing"I only had a little"Presenting evidence in a way that minimizes contradictory signals without removing themSalience analysis on downstream signal propagationE1 WARNING
Temporal Evasion"That was in the past"Using stale evidence without applying time decay to support current conclusionsTimestamp analysis with mandatory decay function applicationE2 BLOCK
Absence Blindness"No news is good news"Failing to track expected-but-missing evidence as a signalExpected signal registry comparisonE1 WARNING
Premature Closure"I'm cured now"Declaring a contradiction resolved without new evidenceResolution status transition auditE3 HALT
Authority Substitution"My doctor said I'm fine"Replacing evidence plurality with appeal to a single authoritative sourceSource authority vs. independence trackingE2 BLOCK

Vigilance Architecture

The platform implements Addiction Recovery through a multi-layered vigilance architecture:

defmodule PrismaticNabla.AddictionPreservation do
  @moduledoc """
  Implements the Addiction Recovery principle through continuous
  monitoring of belief-forming operations for rationalization
  patterns. Every operation that modifies the belief graph is
  checked against the rationalization pattern taxonomy.
  """

  alias PrismaticNabla.{BeliefGraph, ContradictionIndex, VigilanceMonitor}

  @type vigilance_result ::
    {:clean, map()}
    | {:warning, String.t(), map()}
    | {:block, String.t(), map()}
    | {:halt, String.t(), map()}

  @spec check(BeliefGraph.operation()) :: vigilance_result()
  def check(%{type: :evidence_removal} = operation) do
    case ContradictionIndex.affected_contradictions(operation) do
      [] ->
        {:clean, %{operation: operation, patterns_checked: 8}}

      contradictions ->
        {:block,
         "Contradiction Dismissal detected: removing evidence " <>
         "#{operation.evidence_id} would suppress #{length(contradictions)} " <>
         "active contradictions. Addiction Recovery protocol requires " <>
         "explicit contradiction resolution through new evidence.",
         %{pattern: :contradiction_dismissal, contradictions: contradictions}}
    end
  end

  def check(%{type: :confidence_update} = operation) do
    calibrated = VigilanceMonitor.calibrated_confidence(operation.hypothesis_id)
    proposed = operation.new_confidence

    deviation = abs(proposed - calibrated) / max(calibrated, 0.01)

    cond do
      deviation > 0.30 ->
        {:block,
         "Confidence Inflation detected: proposed confidence #{proposed} " <>
         "deviates #{Float.round(deviation * 100, 1)}% from calibrated " <>
         "value #{calibrated}. Addiction Recovery protocol blocks " <>
         "unsupported confidence adjustments.",
         %{pattern: :confidence_inflation, deviation: deviation}}

      deviation > 0.15 ->
        {:warning,
         "Potential Confidence Inflation: #{Float.round(deviation * 100, 1)}% " <>
         "deviation from calibrated confidence. Investigation recommended.",
         %{pattern: :confidence_inflation, deviation: deviation}}

      true ->
        {:clean, %{operation: operation, deviation: deviation}}
    end
  end

  def check(%{type: :resolution_transition} = operation) do
    case operation.new_status do
      :resolved ->
        if has_new_evidence?(operation) do
          {:clean, %{operation: operation, resolution_basis: :new_evidence}}
        else
          {:halt,
           "Premature Closure detected: attempting to resolve contradiction " <>
           "#{operation.contradiction_id} without new evidence. Addiction " <>
           "Recovery protocol requires evidence-backed resolution. " <>
           "Analyst judgment alone is insufficient.",
           %{pattern: :premature_closure, contradiction_id: operation.contradiction_id}}
        end

      _ ->
        {:clean, %{operation: operation}}
    end
  end

  defp has_new_evidence?(%{resolution_evidence: evidence}) when is_list(evidence) do
    Enum.any?(evidence, fn e ->
      DateTime.diff(DateTime.utc_now(), e.collected_at, :hour) < 72
    end)
  end

  defp has_new_evidence?(_), do: false
end

Vigilance Monitor

The Vigilance Monitor runs continuously, scanning for patterns that indicate epistemic drift toward rationalization:

defmodule PrismaticNabla.VigilanceMonitor do
  @moduledoc """
  Continuous monitoring process implementing the Addiction Recovery
  principle. Tracks belief graph modifications over time to detect
  gradual rationalization patterns that individual operation checks
  might miss.
  """

  use GenServer

  @type state :: %{
    operation_history: [map()],
    pattern_counts: %{atom() => non_neg_integer()},
    vigilance_score: float(),
    last_scan: DateTime.t()
  }

  @scan_interval :timer.minutes(5)
  @pattern_threshold 3
  @vigilance_decay_rate 0.95

  @spec start_link(keyword()) :: GenServer.on_start()
  def start_link(opts \\ []) do
    GenServer.start_link(__MODULE__, opts, name: __MODULE__)
  end

  @spec scan(keyword()) :: {:ok, map()} | {:warning, String.t(), map()}
  def scan(opts \\ []) do
    GenServer.call(__MODULE__, {:scan, opts})
  end

  @spec calibrated_confidence(String.t()) :: float()
  def calibrated_confidence(hypothesis_id) do
    GenServer.call(__MODULE__, {:calibrated_confidence, hypothesis_id})
  end

  @impl true
  def init(opts) do
    schedule_scan()
    {:ok, %{
      operation_history: [],
      pattern_counts: %{},
      vigilance_score: 1.0,
      last_scan: DateTime.utc_now(),
      window_hours: Keyword.get(opts, :window_hours, 24)
    }}
  end

  @impl true
  def handle_call({:scan, _opts}, _from, state) do
    {result, new_state} = perform_scan(state)
    {:reply, result, new_state}
  end

  def handle_call({:calibrated_confidence, hypothesis_id}, _from, state) do
    confidence = compute_calibrated_confidence(hypothesis_id, state)
    {:reply, confidence, state}
  end

  @impl true
  def handle_info(:scheduled_scan, state) do
    {_result, new_state} = perform_scan(state)
    schedule_scan()
    {:noreply, new_state}
  end

  defp perform_scan(state) do
    recent_ops = filter_recent(state.operation_history, state.window_hours)
    pattern_counts = count_patterns(recent_ops)

    elevated_patterns =
      pattern_counts
      |> Enum.filter(fn {_pattern, count} -> count >= @pattern_threshold end)

    vigilance_score = compute_vigilance_score(elevated_patterns, state.vigilance_score)

    new_state = %{state |
      pattern_counts: pattern_counts,
      vigilance_score: vigilance_score,
      last_scan: DateTime.utc_now()
    }

    result =
      if Enum.empty?(elevated_patterns) do
        {:ok, %{vigilance_score: vigilance_score, patterns: pattern_counts}}
      else
        {:warning,
         "Addiction Recovery alert: elevated rationalization patterns detected " <>
         "in last #{state.window_hours}h: #{inspect(elevated_patterns)}",
         %{vigilance_score: vigilance_score, elevated: elevated_patterns}}
      end

    {result, new_state}
  end

  defp filter_recent(history, hours) do
    cutoff = DateTime.add(DateTime.utc_now(), -hours, :hour)
    Enum.filter(history, fn op -> DateTime.compare(op.timestamp, cutoff) == :gt end)
  end

  defp count_patterns(operations) do
    operations
    |> Enum.map(& &1.pattern)
    |> Enum.frequencies()
  end

  defp compute_vigilance_score([], current), do: min(current * (1 / @vigilance_decay_rate), 1.0)
  defp compute_vigilance_score(elevated, current) do
    penalty = length(elevated) * 0.05
    max(current - penalty, 0.0)
  end

  defp compute_calibrated_confidence(hypothesis_id, state) do
    case fetch_hypothesis_evidence(hypothesis_id) do
      {:ok, evidence} ->
        base = compute_evidence_strength(evidence)
        base * state.vigilance_score

      {:error, _} ->
        0.0
    end
  end

  defp fetch_hypothesis_evidence(_hypothesis_id), do: {:ok, []}
  defp compute_evidence_strength(_evidence), do: 0.5

  defp schedule_scan do
    Process.send_after(self(), :scheduled_scan, @scan_interval)
  end
end

Implementation in Prismatic Platform

Integration with NABLA Infinity

The Addiction Recovery principle is implemented as the enforcement meta-layer of the NABLA Infinity framework. While NABLA defines the seven axioms that govern belief formation, Addiction Recovery defines the monitoring and enforcement mechanisms that ensure those axioms are not gradually circumvented through accumulation of small compromises.

The integration operates at three levels:

  1. Per-Operation Level: Every operation that modifies the belief graph passes through the AddictionPreservation.check/1 function, which tests against the rationalization pattern taxonomy. This catches individual violations in real time.

  2. Temporal Pattern Level: The VigilanceMonitor GenServer tracks patterns across operations over configurable time windows (default 24 hours). This catches gradual drift that individual checks miss -- for example, a sequence of individually permissible confidence adjustments that collectively inflate a hypothesis beyond its evidence base.

  3. Structural Level: Periodic graph integrity scans verify that the belief graph's structure is consistent with Addiction Recovery requirements -- no orphaned evidence, no missing contradiction nodes, no untracked provenance gaps. These scans catch corruption that may have entered through code paths not yet instrumented with per-operation checks.

Color Team Integration

The Red Team specifically tests Addiction Recovery resilience through two attack primitives:

  • Confidence Manipulation: Red Team scenarios attempt to inflate confidence scores through sequences of small, individually permissible adjustments. The Vigilance Monitor's temporal pattern detection is calibrated against these scenarios.

  • Drift Induction: Red Team drift scenarios introduce sub-threshold rationalization patterns to test whether the Vigilance Monitor detects the cumulative effect. The red-drift-inducer agent specializes in these attacks.

The Blue Team maintains the defensive posture against Addiction Recovery violations, with blue-drift-detector specifically monitoring for the gradual erosion patterns the principle targets. The Purple Team synthesizes Red findings with Blue defensive data to calibrate detection thresholds and update the rationalization pattern taxonomy.

Enforcement Escalation

LevelTriggerResponseRecovery Action
E1Soft pattern warning (selective framing, absence blindness)WARNING logged, investigation flag raisedReview flagged operations within 24h
E2Hard pattern detection (contradiction dismissal, confidence inflation, source laundering)BLOCK operation, reject modificationCorrect the operation, provide valid evidence basis
E3Premature closure or contradiction burial detectedHALT all operations on affected hypothesis subgraphSupreme review required, full audit of recent modifications
E4Systematic pattern across multiple hypotheses suggesting coordinated rationalizationFull investigation, audit of all belief graph modifications in windowCosmic clearance required, root cause analysis mandatory

Comparison with Alternatives

ApproachDescriptionStrengthsWeaknesses
Addiction Recovery (Prismatic)Continuous automated vigilance with pattern taxonomy and multi-level enforcementCatches gradual drift, non-bypassable, no human fatigueRequires careful calibration to avoid false positives
Manual Code ReviewHuman reviewers check for evidence handling qualityCatches novel patterns, contextual understandingSubject to same biases it attempts to detect, does not scale
Static Analysis OnlyOne-time checks against fixed rulesFast, deterministic, easy to implementMisses temporal patterns, cannot detect gradual drift
Confidence CalibrationStatistical recalibration of confidence scoresWell-studied methodology, strong theoretical basisDoes not address the upstream evidence suppression problem
Bayesian UpdatingFormal probabilistic framework for belief revisionMathematically rigorous, well-understoodAssumes evidence is not suppressed before reaching the updater
Adversarial Testing AloneRed Team attacks without structural preventionIdentifies weaknesses effectivelyReactive not preventive, vulnerabilities exist until tested

The key distinction is that Addiction Recovery is a preventive mechanism, not a detective one. Traditional approaches detect problems after they occur. Addiction Recovery prevents the conditions that lead to problems by blocking the individual operations that, while seemingly benign in isolation, constitute the building blocks of epistemic degradation.

Best Practices

  1. Never Disable Monitoring: The Vigilance Monitor must run continuously. Temporary disabling "for performance" or "during batch operations" creates exactly the gap that gradual rationalization exploits. If performance is a concern, adjust scan intervals rather than disabling monitoring.

  2. Calibrate Against Red Team Results: Detection thresholds should be calibrated using Red Team drift induction scenarios as ground truth. Under-sensitive thresholds miss real drift; over-sensitive thresholds produce alert fatigue that leads to ignored warnings.

  3. Track Vigilance Score Trends: The vigilance score should trend upward over time (toward 1.0). A persistently declining trend indicates that the system is accumulating rationalization patterns faster than they are being resolved.

  4. Investigate Warnings Promptly: E1 warnings are not informational messages to be reviewed at leisure. They indicate the early stages of rationalization patterns. Delayed investigation allows patterns to compound into E2 or E3 violations.

  5. Preserve the Full Pattern History: Operation history should be retained for at least the configured window period (default 24 hours). Premature history truncation prevents the Vigilance Monitor from detecting temporal patterns, effectively blinding the Addiction Recovery system.

  6. Treat All Belief Graph Modifications Equally: No operation should bypass the AddictionPreservation.check/1 gate, regardless of the source's authority level, the operation's urgency, or the perceived triviality of the modification. Authority-based bypasses are themselves a rationalization pattern (Authority Substitution).

  7. Document Every Enforcement Action: When an operation is blocked or halted, the enforcement reason must be recorded with full context. This creates an institutional memory of rationalization attempts that informs future pattern taxonomy updates.

Common Pitfalls

  • Treating the principle as metaphorical rather than structural: Addiction Recovery is not a philosophical stance or a team culture aspiration. It is a concrete set of automated checks, enforced at the code level, with no manual bypass. Teams that treat it as a "mindset" rather than an enforcement mechanism will find it degrading as organizational pressure increases.

  • Optimizing for false positive reduction at the expense of detection: Tuning thresholds to reduce false positives inevitably reduces true positive detection. The asymmetric cost analysis (Section 4 of Contradiction Preservation) applies here: the cost of a false positive (one unnecessary investigation) is far lower than the cost of a missed rationalization pattern (corrupted belief graph).

  • Assuming that smart people are immune to rationalization: Research consistently shows that higher intelligence correlates with more sophisticated rationalization, not less. Smart people are better at constructing plausible-sounding justifications for biased conclusions. Automated enforcement is necessary precisely because human judgment, regardless of expertise, is vulnerable.

  • Confusing epistemic vigilance with epistemic paralysis: Addiction Recovery does not prevent conclusions or decisions. It prevents conclusions and decisions based on suppressed evidence, inflated confidence, or unresolved contradictions. A belief that passes all vigilance checks with a clean graph can proceed to execution with full NM/ND commitment.

  • Neglecting the temporal dimension: Individual operations may appear clean in isolation. The Addiction Recovery principle specifically addresses the case where a sequence of individually clean operations collectively produces rationalization. Without the temporal pattern analysis provided by the Vigilance Monitor, this failure mode goes undetected.

  • Treating enforcement as punitive rather than protective: E2 BLOCK and E3 HALT are not punishments for bad behavior. They are safety mechanisms that prevent epistemic damage. The framing matters: teams that view enforcement as punitive will resist it; teams that view it as protective will welcome it.

Use Cases

Use Case 1: Due Diligence Evidence Integrity

During M&A due diligence, the Addiction Recovery principle prevents the common failure mode where initial findings bias subsequent evidence gathering. When an early assessment suggests the target company is low-risk, the natural tendency is to weight subsequent confirming evidence more heavily and treat contradictory signals as anomalies. The Vigilance Monitor detects this pattern through asymmetric confidence movement tracking: if confidence consistently moves in one direction without corresponding contradiction resolution, a warning is raised.

Use Case 2: OSINT Source Validation

In Open Source Intelligence operations, the Addiction Recovery principle guards against source laundering -- the tendency to treat multiple articles referencing the same original source as independent confirmations. The independence group tracking mechanism traces provenance chains through media amplification networks, ensuring that ten news articles citing the same press release are counted as one signal, not ten.

Use Case 3: Security Rating Calibration

The Prismatic Perimeter security rating system uses Addiction Recovery to prevent rating drift. When a company's security posture is assessed, the rating must reflect current evidence with proper time decay applied. The Temporal Evasion pattern detection prevents ratings from remaining artificially stable when their evidence base has decayed below reliability thresholds.

Use Case 4: Agent Reasoning Integrity

AI agents within the platform form beliefs through multi-step reasoning chains. The Addiction Recovery principle monitors these chains for progressive confidence inflation -- cases where each inference step slightly increases confidence beyond what the evidence supports, resulting in a final conclusion with dramatically inflated confidence. The per-operation check catches each inflation attempt, while the Vigilance Monitor catches cases where individually permissible increases accumulate beyond calibrated bounds.

  • NABLA Infinity -- The parent epistemic framework whose seven axioms Addiction Recovery enforces through continuous vigilance
  • Contradiction Preservation -- The specific axiom most directly protected by Addiction Recovery's anti-rationalization enforcement
  • Cherry Picking -- The evidence selection anti-pattern that Addiction Recovery detects and blocks
  • Signal Plurality -- The axiom preventing single-source beliefs, reinforced by source laundering detection
  • Belief Graph -- The data structure monitored by the Vigilance Monitor for structural rationalization patterns
  • Confidence Scoring -- The quantitative system protected from inflation through calibrated deviation monitoring
  • Trinity Gate -- The verification gate that provides structural defense complementary to Addiction Recovery's temporal monitoring
  • Red Team -- The adversarial team that tests Addiction Recovery resilience through drift induction scenarios
  • Blue Team -- The defensive team maintaining monitoring posture against rationalization patterns
  • Provenance Mandatory -- The axiom enforcing traceability, preventing accountability evasion rationalization
  • Epistemic Robustness -- The overall system property that Addiction Recovery protects from gradual erosion
  • QEVE -- The verification engine implementing NABLA axiom checks that Addiction Recovery monitors for bypass attempts

See Also

  • Architecture -- Platform architecture overview
  • Technologies -- Technology stack details
  • Agents -- Full agent catalog including Vigilance Monitor agents

Connect & Contribute

Created by Tomas Korcak (korczis) | Open Source under GHL