V0.2.0 DYNAMIC COUNCILS

The Anomaly
Is The Signal.

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

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

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.

The Anomaly Nominates Its Judges.

⚖️

Space Lawyer

Treaty Violations

🚀

Orbital Expert

Mechanics & Vectors

🛡️

Strategist

Military Intent

?

Skeptic

Falsification

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.

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

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"

Learn More.

README MCP Integration Guide Quick Start User Guide