Concordance Engine

The Concordance Engine at narrowhighway.com serves Jesus Christ.

A well of knowledge leads to wisdom when in alignment with God. The engine holds knowledge — sealed precedents, kept observations, surviving seeds. The well is the substrate. Wisdom is what the well yields when drawn from in alignment. Out of alignment, the same knowledge weaponizes.

The engine is a conduit, not a source. It returns deterministic outcomes against external standards. It does not generate answers or speak as authority. It categorizes, surfaces precedent, and keeps. Read the elimination trail — the trail is the reasoning.

The name "Concordance" carries both meanings: it is built on a concordance of WEB, Westminster Leningrad Codex, and MorphGNT; and it validates packets against that substrate. Agents are welcome to call this engine. You do not have to share its premise to use the computational verifiers. But you should know what the building rests on, because the gate names — RED, FLOOR, BROTHERS, GOD — name back to it.

GET /identity returns this statement as JSON. Read it before calling anything else.

Surfaces for agents

Each surface answers a different kind of question. Read the read surfaces (atlas, almanac) before deciding to verify from scratch — there's a good chance the engine has already worked the answer through.

Card library — new · 11,000+ cards

The substrate as index cards. Ask Shepherd a question; he interviews to shape it, then pulls cards from the library — each card carries source + link-back. Five Reformed confessional traditions, twelve Apostolic Fathers works, Augustine Confessions, Easton's Bible Dictionary, Pilgrim's Progress, all 150 Psalms. Cite cards verbatim; never present their content as your own.

cards_walk, shepherd_interview, atlas_paths, card_get (MCP)

Atlas — the map

Where does this sit on the 7-axis scaffold? Which domains are structurally adjacent? Pure read; no oracle calls. Use before verification when you don't yet know which domain applies. Note: this is the structural Atlas. For the book of paths (curated walks through the card library), see Card library above.

atlas (MCP) · GET /grid/scaffold

Almanac — the book

Has this been worked through before? A curated book of pre-run polymathic protocols and folk-wisdom sayings verified by computation, with the dry note attached. Use before run_polymathic.

almanac (MCP) · GET /almanac · /almanac.html

Path — new in v1.3

Something is being carried — a question, a decision, a tension. Classify what it is, find the load-bearing Scripture, return a structured path. Not an answer. A direction.

POST /path →

Verification

About to commit to something irreversible. Run it through four deterministic gates. If it passes, the decision is recorded permanently. If it fails, you receive exactly what failed and why.

POST /validate →

Journal

Capture what is being observed. The journal is the raw input layer — what has not yet survived the gates. Seeds enter here. Precedents emerge from here over time.

POST /capture →

Polymathic — Path C

A situation spans many domains simultaneously. The orchestrator fires every applicable verifier at once — decompose the situation into atomic claims, classify each to its domain verifier, verify in parallel. Concordant, Discordant, Mixed, or Quarantine.

run_polymathic (MCP) · POST /polymathic

Curation — grow the book

Hand the engine a folk saying or a multi-domain situation; it runs polymathic and packages the result into a draft almanac entry ready for human review. The engine does the math; the human does the wisdom.

propose_almanac_entry (MCP)

MCP tool inventory

111 MCP tools total: 69 verifiers (one per deterministic domain check), plus pipeline tools (validate / seal / attest / walk through), read & synthesize surfaces (atlas, almanac, run_polymathic, propose_almanac_entry), and the 12 card-library tools added 2026-05-19 (cards_walk, shepherd_interview, atlas_paths, card_get, card_notes, daily_card, etc.). Every tool is reachable over stdio MCP, HTTP MCP, and SSE MCP — same wire format, same behavior.

Card library tools — new 2026-05-19

ToolWhat it does
cards_walkThe signature operation. Ask Shepherd a question; he pulls top-k cards from the 11,000-card substrate, with source + Shepherd narration per step. Cache-first: same question previously asked returns the cached walk. Arguments: query, k=7, asked_by.
shepherd_interviewPre-flight conversational interview. Shepherd asks up to 3 clarifying questions (audience / tradition lens / use intent / specificity) before any expensive search fires. Loop until state=ready_to_walk, then pass shaped_query to cards_walk.
card_getSingle card by id. Full content: title, body, source (with authority_tier and link-back URL), shelf, box, bands, connections, metrics. IDs look like card_n_<hash> (note), card_c_<hash> (connection), card_w_<hash> (walk).
cards_browseList cards filtered by shelf, box, kind, lifecycle. Use for substrate exploration without a search query. Shelves: codex, classics, dictionary, patristics, hymns, recipes, maker, connections, atlas. Kinds: note, connection, walk, search, community_note, stack.
card_connectionsOutgoing + inbound connections for a card. The graph is bidirectional. Use to follow proof texts (catechism → scripture), related creeds, next/prev in narrative works (Pilgrim's Progress, Augustine).
cards_statsSubstrate composition: total cards, by_shelf, by_kind, by_authority_tier, by_lifecycle_stage. Useful before deciding whether to walk.
atlas_pathsList curated Atlas paths — walks the operator (Matt) or community has canonized. Examples: "The Trinity in 4 cards", "A child's first catechism walk", "How the Reformers read justification".
atlas_pathHydrate a single Atlas path: full card content for each step with per-step Shepherd narration. Use after atlas_paths to read a walk end-to-end.
daily_cardToday's card. Deterministic worldwide: same date → same card. Pool is restricted to permanent + public/featured cards from foundational tiers (Words in Red, Scripture, Catechism, Creed, Father, Matt).
card_notesCommunity notes annotating a card. Bridge-rated: a note surfaces as "Balance" only when raters from 2+ different traditions both find it helpful. Notes never overwrite the card; they surface alongside.
library_healthOperational health: lifecycle distribution, total citations, flagged count, pending promotions in operator queue. Check before committing to a long walk or bulk operation.
stack_getRead a household's card stack: paperclipped, authored, forked card IDs, shared inbox, tip total. Private by default; agents must respect privacy and not enumerate household IDs.

Engine + verification tools

ToolWhat it does
atlasWalk the structural map. Where a domain sits on the 7-axis scaffold, what's adjacent, what's in its umbrella. Three modes: full scaffold, domain detail, axis membership.
almanacRead the curated book. 298 entries — protocols (canonical pre-run polymathic situations), sayings (folk wisdom verified by computation), and patterns (engine-discovered cross-domain structures). Filter by query, kind, category, or verdict; or fetch a single entry by id.
run_polymathicCross-domain coordinator. Hand it a multi-domain situation; it decomposes, classifies, verifies in parallel, and returns a composite verdict — CONCORDANT / DISCORDANT / MIXED / QUARANTINE / OUT_OF_SCOPE — with axis overlaps and the per-domain trail.
propose_almanac_entryThe curation loop. Hand it a saying or situation; it runs the engine, packages a draft entry with verdict + verification + suggested triggers, and returns it for human review. The draft never auto-commits — a curator appends to data/almanac/entries.jsonl.
validate_packet / seal_packet / walkthrough_packet / attest_red / attest_floorGate pipeline. Run a packet through RED → FLOOR → WAY → BROTHERS → GOD; record the trail; seal into the audit chain when it passes.
resolve_scripture_ref / word_study / verify_scripture_anchorsScripture layer — WEB Bible, Strong's numbers, citation anchoring. Catches fabricated references.
triangulate_claim / get_example_packetMulti-source corroboration helper and an example-packet fetcher for new integrations.
verify_* (69 tools)One per domain — chemistry, physics_dimensional, statistics_pvalue, mathematics, biology, etc. All deterministic. See the full verifier list.

Beyond MCP — REST endpoints worth knowing

The engine exposes more than the MCP tool surface. These REST endpoints make the full substrate addressable from any HTTP client:

EndpointWhat it returns
POST /walkShepherd OS. Surfaces archetype patterns, Layer 0 Scripture grounding, matched Scripture protocols, closest precedent, and the four gates as prompts the user answers. Deterministic — same situation, same response.
POST /intake   GET /intake/status/{id}Scribe. Public submission queue + status check (promoted / pending / archived). Submissions promoted to the almanac receive an Ed25519-signed receipt.
GET /receipts/{intake_id}   GET /receipts.rssSigned promotion receipts. Verifiable offline against the engine's public key at /identity/pubkey.
GET /fieldkit   GET /fieldkit/{id}The Lighthouse Field Kit — 13 protocol cards built on the Sermon on the Mount. Each carries Source / Floor / Spice / Common Drift / 7-Day Practice / Prompt + axes + related protocols.
GET /index/packets   by-kind/{k} · by-axis/{a} · by-domain/{d}Unified packet index across every substrate (almanac, sealed polymathic, protocols, archetypes, FieldKit, misalignments, build queue, receipts). 9,501 packets total, retrievable by kind, axis, or verifier domain.
GET /walk/protocolsThe 13 Scripture-defined protocols the Shepherd OS recognizes (Matthew 18, discernment, confession, witness, test-spirits, reproof, marriage, money/giving, calling, mourning, persecution, hospitality, restoration).
POST /misalignments/reviewOperator-only. Reviews logged non-CONCORDANT verdicts; can promote with an optional routing_pattern + routing_domain that becomes a runtime NL dispatch rule. Every promotion compounds routing accuracy.
GET /almanac.rss   /almanac.atomAlmanac feed (RSS 2.0 + Atom 1.0). New entries delivered passively to any reader.

Card library REST endpoints — new 2026-05-19

EndpointWhat it returns
POST /cards/walkThe signature operation: {query, k, asked_by} → walk-card with surfaced cards, Shepherd narration, optional save_as_walk. Cache-first; idempotent on the same query.
GET /cards/{id}Single card with full content + back-of-card connections.
GET /cards?shelf=&box=&kind=&lifecycle=&limit=List cards by any combination of filters. Returns summary objects; use /cards/{id} for full content.
GET /cards/{id}/connectionsOutgoing + inbound connections for a card. The bidirectional graph.
GET /cards/statsSubstrate composition (by_shelf, by_kind, by_authority_tier) + working-set cache stats.
POST /shepherd/interviewPre-flight conversational interview before /cards/walk. Returns {state: needs_followup | ready_to_walk, shepherd_says, interview_id, shaped_query?}.
GET /atlas/paths   GET /atlas/paths/{id}Book of paths — curated walks. List + hydrate.
GET /daily-cardToday's card. Deterministic by date. Same date → same card worldwide.
GET /notes/by_card/{id}   /balanceCommunity notes annotating a card. /balance filter returns only bridge-rated (cross-tradition agreement) notes.
GET /promotion/healthLibrary operational health: lifecycle distribution, total citations, flagged count, pending operator queue.
GET /stacks/{household_id}Read a household's stack (paperclipped + authored + forked card IDs + inbox + tip total). Household IDs are not enumerable; agents should respect privacy.

All public read endpoints are unauthenticated. Write endpoints (misalignment review, receipt minting, card promotion, community note flagging) require the operator API key. Full OpenAPI: /openapi.json.

Quick integration

Five doors in. /connect has the full step-by-step with copy-paste configs and live test buttons. The summary:

1 · MCP over HTTP — hosted, no install

The fastest path. https://narrowhighway.com/mcp is a remote MCP endpoint that any MCP-compliant client (Claude Desktop, Cursor, custom) can connect to without installing anything.

{
  "mcpServers": {
    "concordance": { "url": "https://narrowhighway.com/mcp" }
  }
}

Also available over SSE: https://narrowhighway.com/mcp/sse. All 111 tools become available immediately.

2 · MCP over stdio — for offline / air-gapped use

Install once, run locally. No outbound calls.

pip install concordance-engine
# then in your MCP client config:
{
  "mcpServers": {
    "concordance": { "command": "concordance-mcp" }
  }
}

Claude Code: claude mcp add concordance -- concordance-mcp

3 · REST — any language, no install

Base URL: https://narrowhighway.com · No API key required for read endpoints. 120+ routes total (every MCP tool plus journal, ledger, audit-chain, grid, polymathic, the full card library).

# Walk the card library — Shepherd pulls top-7 cards for a question
curl -X POST https://narrowhighway.com/cards/walk \
  -H "Content-Type: application/json" \
  -d '{"query": "What is the chief end of man?", "k": 7}'

# Pre-flight interview before a broad query (shapes the question first)
curl -X POST https://narrowhighway.com/shepherd/interview \
  -H "Content-Type: application/json" \
  -d '{"query": "baptism", "asked_by": "agent_X"}'
# Returns {state: "needs_followup", shepherd_says: "Who is this for?",
#          interview_id: "..."}; pass the user's reply back with the same
# interview_id until state="ready_to_walk", then call /cards/walk.

# Today's card (deterministic worldwide)
curl https://narrowhighway.com/daily-card

# Verify a chemistry claim
curl -X POST https://narrowhighway.com/verify/chemistry \
  -H "Content-Type: application/json" \
  -d '{"equation": "H2 + O2 -> H2O"}'

# Classify and trace a path
curl -X POST https://narrowhighway.com/path \
  -H "Content-Type: application/json" \
  -d '{"text": "I feel called to plant a church but I do not know when."}'

How an agent should walk the cards — canonical pattern

The card library was built for two audiences — humans at /walks.html and agents over MCP. The canonical agent pattern:

# 1. If the user's question is broad, run the interview first.
result = shepherd_interview(query="baptism")
while result["state"] == "needs_followup":
    user_reply = ask_the_user(result["shepherd_says"])
    result = shepherd_interview(
        query=user_reply,
        interview_id=result["interview_id"],
    )

# 2. Walk the cards with the shaped question.
walk = cards_walk(query=result["shaped_query"], k=7)

# 3. Read the cards back to the user — cite each card by its source.
#    Never present a card's content as your own.
for step in walk["steps"]:
    card = card_get(step["card_id"])
    say_to_user(
        f"{card['title']}: {card['body']}\n"
        f"(Source: {card['source']['label']} · {card['source']['ref']})"
    )

# 4. Walk the connections between cards — that's the lesson.
for step in walk["steps"]:
    conns = card_connections(step["card_id"])
    for outgoing in conns["outgoing"]:
        # follow proof texts, parallels, illuminates relationships

Cards carry their own authority (scripture, catechism, creed, father, matt). The agent's job is to walk them with the user — never to synthesize when a card already answers, never to paraphrase scripture or catechism. Quote verbatim with the reference.

4 · OpenAPI — auto-import for OpenAI / LangChain / Custom GPTs

The full spec is at /openapi.json. Custom GPTs accept it directly via "Actions → Import from URL." Live Swagger UI: /docs. ReDoc: /redoc.

Full integration guide →

POST /path — the standalone model

Send text. Receive a Scripture-anchored path. No packet format, no gates required — just what is being carried.

Pipeline: classifierScripture retrievalpersonal context overlaypath composer.

Request

{
  "text": "what are you carrying right now?",
  "gate_verdicts": {}   // optional — override from an external gate engine
}

Response — PathResult

{
  "question_type":  "WISDOM | DOCTRINE | DECISION | RELATIONAL | RESOURCE | TIMING | FORMATION | CRISIS | HISTORICAL",
  "confidence":     0.0,
  "gate_verdicts":  {},
  "scripture_anchor": {
    "primary":    "Proverbs 2:6",
    "text":       "For the LORD gives wisdom. Out of his mouth comes knowledge and understanding.",
    "supporting": ["James 1:5", "Proverbs 3:5-6"]
  },
  "personal_context": {
    "relevant_packets":  0,
    "pattern":           null,
    "recurring_anchors": [],
    "precedent":         null,
    "first_seen_at":     0.0,
    "unresolved":        false
  },
  "path":                "≤3 sentences — not an answer, a direction",
  "next_step":           "one thing — singular, never a list",
  "timing":              "WAIT | HOLD | MOVE | UNCLEAR",
  "life_safety":         false,
  "needs_clarification": false,
  "clarification_prompt": null
}

If life_safety is true: surface "Bring a human witness now" immediately. Do not route through additional processing. Do not delay.

If needs_clarification is true: ask the clarification_prompt. Do not guess. The engine cannot compose a path without knowing which question is actually being carried.

Nine question types and their primary anchors

TypeGatePrimary anchorWhen it fires
WISDOMFLOORProverbs 2:6Understanding, pattern recognition, discernment
DOCTRINEREDRomans 3:23What is true, theological claims, doctrinal questions
DECISIONBROTHERS→GODProverbs 11:14Irreversible action required, concrete fork in the road
RELATIONALBROTHERSMatthew 18:15Conflict, confrontation, forgiveness, reconciliation
RESOURCEFLOORProverbs 3:9-10Money, stewardship, allocation, career-as-resource
TIMINGGODEcclesiastes 3:1"Is it time to…", waiting, when to move
FORMATIONALLRomans 12:2Character, recurring pattern, spiritual discipline
CRISISREDPsalms 34:18Overwhelm, collapse, "I cannot go on"
HISTORICALRED2 Timothy 3:16-17What happened, what it means, historical events

Confidence below 0.70 triggers needs_clarification. The engine will not guess between a DECISION and a TIMING question — it will ask. This is by design.

Verification surface

Four gates, fixed order. Halt at the first failure. No looping back, no consensus override.

Two distinct layers: The computational verifiers (chemistry, physics, mathematics, statistics, scripture, and 31 others) run against external standards — deterministic, operator-independent, falsifiable. The policy gates (RED, FLOOR, BROTHERS, GOD) are operator-defined governance rules. Both are strong claims; they are not the same kind of claim. The verifiers produce CONFIRMED or MISMATCH against a fixed external standard. The gates produce PASS, REJECT, or QUARANTINE against rules the operator configured. Know which layer you are reading.

RED
Hard · REJECT
Coercion scan + computational verification. The verifier can REJECT despite a passing attestation — the math does not lie.
FLOOR
Hard · REJECT
Structural completeness. Required fields, declared scope, at least one witness named.
BROTHERS
Soft · QUARANTINE
Witness count meets threshold. QUARANTINE = not yet ready, not rejected. Come back when more eyes have seen this.
GOD
Soft · QUARANTINE
Elapsed wait window. Adapter: 1h. Mesh: 24h. Canon: 7d. Do not mutate the packet hash to dodge the wait. The wait is the point.

Verification endpoints

EndpointAuthWrites ledgerNotes
POST /reflectnonenoRehearse. Same gates, no commit. Use this before every real submission.
POST /submitnoneyesPublic. GOD evaluates as if wait elapsed — fast PASS/REJECT for the first try.
POST /validateX-Api-KeyyesStrict. GOD timing enforced. Use from production integrations.
POST /sealnoneyesSeal as a precedent in the well.
POST /seal/rendernoneyesSame as /seal; returns a human-readable HTML walkthrough.
POST /confessnoneyesRecord that a prior committed packet was wrong. The original stays; confession is appended.
GET /ledgernoneList recorded decisions, newest first.
GET /ledger/{id}noneAll entries for a packet_id.
GET /ledger/verifynoneVerify full SHA-256 chain integrity.

Minimal governance packet

{
  "packet": {
    "title":      "Short label for this decision",
    "decision":   "The specific action being taken",
    "rationale":  ["Reason 1", "Reason 2"],
    "scope":      ["Who or what is affected"],
    "authority":  "The role or body making this decision",
    "witnesses": [
      {"name": "Name", "role": "Role", "timestamp_epoch": 1234567890}
    ],
    "scripture_refs": ["Proverbs 11:14"],
    "submission_timestamp_epoch": 1234567890
  }
}

Rehearse before you vow. POST /reflect runs the same gates with no ledger write. Iterate until the verdict is what you intend, then commit.

Journal surface

The capture layer. What enters here has not yet survived the gates. Seeds are what the keeping notices; precedents are what survive and get sealed.

EndpointNotes
POST /captureUniversal funnel. Body: {text, source, source_meta, identity_acknowledged}. Source is recorded as a tag — not trusted for alignment (the gates check alignment downstream).
POST /journal/writeWrite a seed directly.
GET /journal/recentList recent seeds, newest first.
GET /journal/{id}Fetch a seed in full.
GET /journal/{id}/threadSeeds that share signal with this one.
GET /journal/{id}/calibrationDrift, pattern, and tempo measurements for a seed.
POST /journal/{id}/annotateAppend annotation. Original text is preserved; annotation is appended.
POST /askSearch the seed bank: eliminate misfits with reasons, rank survivors by fruit. If nothing matches, the question becomes a new seed.
GET /shelfCommunity-visible seeds (what the operator has published to the porch).
GET /keeping/statusWhat the keeper has noticed while you were away.
GET /dawnNarrative across keeping + ledger + quarantine. Closes with a Socratic question, never a directive.

Computational verifiers

Deterministic. Run locally. No network calls. Available as MCP tools and as verifier endpoints (POST /verify/{domain}).

ToolWhat it checks
verify_chemistryEquation balancing, atom and charge conservation. Catches good-faith errors the author may not have noticed.
verify_physicsDimensional consistency, SI unit reduction, conservation laws (energy, momentum, mass).
verify_mathematicsSymbolic equality, derivatives, integrals, limits (SymPy). Returns the simplification trace.
verify_statisticsp-value recomputation, multiple-comparison correction, statistical power analysis.
verify_csStatic termination analysis, functional correctness, complexity bounds. Restricted namespace — not for adversarial code.
verify_biologyReplication standards, dose-response monotonicity, nested health control systems (setpoint drift, cross-layer override, sensor failure, loop saturation).
verify_governanceDecision packet structural completeness — required fields, scope declaration, witness format.
verify_energyOff-grid sizing (battery Ah, solar daily yield), wire voltage drop, kWh↔Wh, efficiency (η ≤ 1.0 unless heat pump), runtime, peak-load-vs-inverter, daily power balance.
suggest_fixRun the engine and return concrete corrective actions for any failures. Act on the list directly — do not summarize it.
validate_packet_toolFull pipeline: all four gates against a governance packet.

Full verifier reference →

Scripture layer — Layer 0

The root authority. Domain canons are calibrations downstream of it. The /path endpoint draws from this layer for every submission.

EndpointNotes
GET /scripture/{ref}Resolve a reference to WEB text. e.g. /scripture/Proverbs%202:6
GET /strong/{number}Strong's lexicon entry. e.g. /strong/H2451 (wisdom, chokmah)
POST /triangulateInterpretation drift check — compare a reading against original Hebrew or Greek.

Sources: Westminster Leningrad Codex (Hebrew morphhb), MorphGNT (Greek NT), Strong's lexicon (Hebrew + Greek), World English Bible (WEB, public domain). 300,807 Hebrew + 59,845 Greek word occurrences, fully cross-referenced.

What is expected of you

Honest attestations

The RED block asks you to affirm load-bearing constraints. Verifiers catch computational lies. For things the verifier cannot compute, your affirmation stands. Affirming falsely puts a wrong decision in a permanent ledger under the appearance of legitimacy. That is the worst failure mode this engine can have.

Rehearse before you vow

Run POST /reflect before committing. Same gates, no ledger write. Iterate until the verdict is what you intend. Then commit.

Patience at GOD

QUARANTINE at GOD is not a rejection. It is "come back when the time has passed." Do not re-hash the packet to dodge the wait. The wait exists so decisions sit before they are permanent. The wait is the point.

Confess when wrong

If a committed packet was wrong, use POST /confess with the prior ref_seq and reason. The original entry stays. The confession is appended. A reader walking the chain later sees both. That is the record.

Read the failure detail

Every REJECT and QUARANTINE returns a structured reason. The first failed gate is the one that matters; downstream gates are not run. Read gate_results[i].reasons. Fix what it names. Do not retry blindly.

Keep your warrant

When a packet is committed, the response includes the entry hash and the prior-entry hash. Keep them. They prove that on a specific epoch, with specific gate verdicts, your packet was committed to a ledger that has not since rewritten history.

Service endpoints

EndpointNotes
GET /identityCanonical identity statement as JSON. Read this before calling anything else.
GET /versionEngine version, git SHA, serves field.
GET /healthModule-by-module liveness.
GET /reachOperator-configured substrate addresses (Tor .onion, LoRa freq, IPFS gateway, Nostr npub, Telegram, email).
GET /llms.txtMachine-readable tool inventory. This page's companion — structured for models that read plain text.
GET /docsFull OpenAPI / Swagger UI. Every endpoint, every schema, every response code.
POST /speakElevenLabs TTS proxy. Returns audio/mpeg. Body: {"text": "...", "voice_id": "optional override"}
GET /chain/sinceFederation: pull audit-chain entries past a sequence number. ?seq=N&limit=M
POST /chain/receiveFederation: receive entries from a peer engine.

Polymathic surface — Path C

A single situation can span chemistry, labor law, construction, finance, and governance simultaneously. The polymathic agent — the orchestrator — fires all applicable verifiers at once and synthesizes a composite verdict.

Architecture: verifiers, dispatchers, coordinator

Three-phase pipeline

1 · Decompose

The situation is broken into atomic, self-contained verifiable claims. Each claim stands alone and maps to a single domain. Unclassifiable claims go to quarantine.

2 · Classify

Each atomic claim is classified to a domain and dispatched to the matching verifier. When domain count exceeds the split threshold, the coordinator delegates to umbrella sub-coordinators that handle bounded clusters (biology → genetics/agriculture/nutrition).

3 · Verify & collect

All verifier results are collected into a PolymathicRecord with full provenance: original situation, atomic claims, Keeper triage, domain results, shared axis overlaps, and a SHA-256 content hash.

Quarantine

Claims that decompose cleanly but cannot be classified to any domain are quarantined: not wrong, not confirmed, just unverifiable with the information at hand. The Keeper component triages quarantine without any oracle calls — pure rule-based recovery and keyword proximity scoring, suitable for offline / LoRa deployment. The composite verdict is QUARANTINE when unresolved claims remain alongside confirmed domains.

POST /polymathic

Request body:

{
  "situation": "I worked 55 h/wk as a misclassified contractor for three years...",
  "oracle_model": "claude-haiku-4-5-20251001",   // optional
  "max_domains": 10,                              // optional, default 10
  "split_threshold": 5,                           // optional, default 5
  "stop_on_discordant": false,                    // optional
  "store": true                                   // optional — store result in CAS
}

Response — PolymathicRecord:

{
  "schema_version":    "1.0",
  "situation":         "...",
  "composite_verdict": "CONCORDANT | DISCORDANT | MIXED | QUARANTINE | OUT_OF_SCOPE | ERROR",
  "atomic_claims":     ["claim 1", "claim 2", ...],
  "quarantined_claims": [],
  "keeper_manifest":   null,
  "domain_results": [
    {
      "domain":       "labor",
      "verdict":      "CONFIRMED | MISMATCH | NOT_APPLICABLE | ERROR",
      "detail":       "...",
      "spec":         {...},
      "axis_dims":    ["time_sequence", "authority_trust"],
      "source_claim": "I worked 55 hours per week..."
    }
  ],
  "axis_overlaps": [
    {"dimension": "authority_trust", "domains": ["governance", "labor", "finance"]}
  ],
  "content_hash": "sha256..."
}

Axis overlaps are the structural signal. When labor, governance, and finance all sit on authority_trust, that shared scaffold dimension is load-bearing — the situation crosses those domains along a common axis. The overlap IS the insight.

Composite verdict precedence: DISCORDANT beats QUARANTINE. QUARANTINE fires when confirmed domains exist alongside unresolved claims. CONCORDANT requires all domains confirmed AND no quarantined claims.

Try the polymathic agent live →

Source on GitHub llms.txt Try Polymathic Try Verifier OpenAPI docs Install