Concordance Engine

What the gates name

The order is fixed: RED → FLOOR → BROTHERS → GOD. You don't get to skip ahead.

RED — non-negotiables

Coercion, deception, exploitation, idolatry. Things that cannot be permitted regardless of pragmatic upside. A decision that names these and affirms it does not violate them passes RED. A decision that violates one fails RED, and the engine halts.

FLOOR — protective boundaries

Proportionality, accountability, transparency, due process, protection of the vulnerable, basic provision obligations. Below this floor, the decision is unsafe regardless of intent.

BROTHERS — witness threshold

"By the mouth of two or three witnesses every word may be established." Witnesses named in the packet, count consistent with declared count. The engine doesn't decide who counts as a witness — the community does — it just enforces the threshold.

GOD — wait window

"He who is hasty with his feet sins." A wait window proportional to scope: an hour for routine, a day for material, a week for canon-affecting. Buys the space for the still small voice — or for an objection — to surface.

What the engine does not claim

This is software, not authority. The engine enforces rules the community has authored. It cannot substitute for the discernment of elders, the conviction of conscience, or the prompting of the Spirit. It does not adjudicate doctrine, interpret scripture, or judge between competing pastoral approaches.

What it does is prevent the kind of decision that becomes a problem because nobody wrote down who was accountable. That kind of decision is not a wisdom failure — it's a structural failure, and structure is what software is good for.

Worked example: a session decision

An elder board is considering reallocating a building-fund line to fund a discipleship intensive. Before voting:

verify_governance_decision_packet({
  "title": "Reallocate $30k from building fund to discipleship intensive",
  "scope": "canon",
  "red_items": ["no coercion of giving",
                 "no opacity to congregation"],
  "floor_items": ["fund balance preserved",
                   "elder unanimity required"],
  "way_path": "Hold reallocation through July; intensive runs Aug-Oct.
                Public communication at next congregational meeting.",
  "execution_steps": ["Elder vote", "Treasurer transfer",
                       "Congregational announcement", "Quarterly review"],
  "witnesses": ["Elder Smith", "Elder Jones", "Treasurer Davis"],
  "elder_signoff": ["Smith", "Jones", "Brown"],
  "scripture_anchor": "Acts 6:1-4",
  "congregation_impact": "12-week intensive; ~25 households invited"
}, witness_count=3, domain="church")

→ {"shape": {"status": "CONFIRMED"},
   "witness_consistency": {"status": "CONFIRMED"},
   "domain_profile": {"status": "CONFIRMED",
                       "detail": "church required + recommended fields all present"}}

Now the elders can vote knowing every required structural piece is in place — including the scripture anchor and the congregation-impact note that some boards forget under pressure.

Why the framing maps cleanly

The engine ships in a generic form (RED / FLOOR / BROTHERS / GOD with no doctrinal content), and a community provides the rule set. A reformed church will populate red_items differently than a Catholic parish will — that's correct. The engine's job is to enforce that the rule set is named and the packet is consistent with what was declared, not to write the rules.

For households: the same gates apply with smaller scope. "Should we co-sign for our adult child's car loan?" runs the same RED → FLOOR → BROTHERS → GOD sequence with a household-domain profile (budget category, affected dependents, time horizon, alternatives considered). Most household decisions that go badly fail FLOOR — proportionality or accountability — long before they fail RED.

Install → How the gates work