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 →