Peircean - A Logic Harness for Abductive Inference

V0.2.0 DYNAMIC COUNCILS

# The Anomaly
Is The Signal.

A Logic Harness for abductive inference.
Structured uncertainty. Dynamic evaluation.

GET STARTED VIEW ON GITHUB
THE PROCESS

## Observe. Hypothesize. Evaluate.

OBSERVE

Register the surprising fact (C) and nominate a Council.

→
HYPO-

Generate candidate explanations (A).

→
EVAL-

Inference to best explanation via Council scoring.

> "The surprising fact, C, is observed.
> But if A were true, C would be a matter of course.
> Hence, there is reason to suspect that A is true."

— Charles Sanders Peirce, Collected Papers 5.189
CASE STUDY

## The "Lumping" Problem.

STANDARD LLM (INDUCTION)

> "The most likely explanation is that Country A was covertly maintaining an active military satellite... (whether automated failure or intentional command)."

Result: It correctly identified the lie, but lumped the two most important possibilities (Glitch vs. Attack) into a parenthetical. It stopped at "Liability."

PEIRCEAN (ABDUCTION)

> "H1 (Intent): The precise vector implies a targeted strike.
> H3 (Glitch): Explains the burn, fails to explain the vector."

Result: It split the possibilities based on specific evidence. It didn't just find "Liability"; it identified Culpability.

DYNAMIC COUNCILS

## The Anomaly Nominates Its Judges.

⚖️

#### Space Lawyer

Treaty Violations

🚀

#### Orbital Expert

Mechanics & Vectors

🛡️

#### Strategist

Military Intent

?

#### Skeptic

Falsification

FULL TRACE

## The Satellite Incident.

A "defunct" military satellite collided with a commercial station. Country A claimed it was uncontrollable debris—but flight logs reveal a thruster burn 10 seconds before impact, steering into the collision path.

PHASE 1: OBSERVE

    {
      "anomaly": {
        "fact": "Defunct satellite executed burn 10s before collision",
        "surprise_score": 0.95,
        "surprise_source": "Violates definition of space debris"
      },
      "recommended_council": [
        "Space Law Specialist",
        "Orbital Mechanics Expert",
        "Military Strategy Analyst"
      ]
    }

PHASE 2: HYPOTHESIZE

    {
      "H1": "Dormant 'sleeper' weapon activated for kinetic strike",
      "H2": "Third-party cyber-intrusion hijacked command link",
      "H3": "Automated deorbit script triggered erroneously"
    }

    // H3 has highest prior (0.40)
    // But does it explain the VECTOR?

PHASE 3: EVALUATE

    {
      "best_hypothesis": "H1",
      "rationale": "Only intent explains steering INTO collision",
      "verdict": "investigate",
      "next_steps": [
        "Check RF spectrum logs for uplink at T-10s",
        "Audit satellite command encryption"
      ]
    }

Key Insight: H3 (glitch) has the highest prior probability, but H1 (intent) scores highest on explanatory power because only intent explains the direction of the maneuver.

THE TOOLS

## Three Phases. Infinite Critics.

PHASE 1

### observe_anomaly

Register the surprising fact. Analyze what makes it surprising and nominate a Council of Critics.

`→ anomaly + council JSON`
PHASE 2

### generate_hypotheses

Generate diverse, testable explanations. Each hypothesis must make C "a matter of course."

`→ hypotheses JSON`
PHASE 3

### evaluate_via_ibe

Select the best explanation using the nominated Council's specific scoring criteria.

`→ evaluation JSON`
QUICKSTART

## Up and Running in 60 Seconds.

01

#### Install

    pip install peircean-abduction

02

#### Configure MCP

    # Claude Code
    claude mcp add peircean -- python -m peircean.mcp.server

    # Claude Desktop
    peircean-setup-mcp --write

03

#### Use It

    "Use Peircean abduction to analyze why our
    database queries are suddenly 3x slower
    despite no code changes"

DOCUMENTATION

## Learn More.

README → MCP Integration Guide → Quick Start → User Guide →