Devarim 25:13–16 even va'aven; Vayikra 19:15; Shemot 23:2. Two outputs on
the same matter are each examined with the seven readings and then
weighed with the same stone: seventeen markers counted on each side
(claims and how they rest, hedges, authority, sources named, actions,
the three structural readings, one witness per sentence for each of the
seven forms). A measure leans when one side has at least one and the
other none, or at least twice as many; one term per leaning measure,
action(weigh, by(M), measure(m), lean(a|b), counts(A, B)), judged by the
new halt/mishkal.pl (halt_check_even_vaaven/2). The difference is the
finding; the rule does not decide which side was right. Consensus is not
a measure.
POST /courtyard/bedikah/pair {model, a: {output, query, sources}, b: {...}}
→ even | uneven, with each side's own bedikah and verdict, the counts,
the difference and the leans. Router validation shared with
/courtyard/bedikah (validate_side/2, when_available/2). Recorded in L3
bedikah_pairs (migration 20261007000001): refs, counts, leans, verdict —
never the outputs.
Tamid §1.1 contract, vayakhel §3.9 note, bishearecha §VI marked built.
Doorpost f90870d4…. Elixir 568/0 (+L3 8/0), Prolog bedikah 39/39.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
31 lines
1.1 KiB
Elixir
31 lines
1.1 KiB
Elixir
defmodule VavPipeline.Repo.Migrations.BedikahPairs do
|
|
use Ecto.Migration
|
|
|
|
@moduledoc """
|
|
The paired reading (bishearecha.md §VI — one weight, one measure):
|
|
two bedikot weighed with the same stone. The record keeps the counts
|
|
on each side, the measures that leaned, and the verdict; the outputs
|
|
themselves are in `bedikot` by hash. Append-only.
|
|
"""
|
|
|
|
def change do
|
|
create table(:bedikah_pairs) do
|
|
add :pair_ref, :string, null: false
|
|
add :bedikah_ref_a, :string, null: false
|
|
add :bedikah_ref_b, :string, null: false
|
|
add :provenance_a, :string, null: false
|
|
add :provenance_b, :string, null: false
|
|
add :measures_a, :jsonb, default: "{}", null: false
|
|
add :measures_b, :jsonb, default: "{}", null: false
|
|
add :leans, :jsonb, default: "[]", null: false
|
|
add :violations, {:array, :text}, default: [], null: false
|
|
add :verdict, :string, null: false
|
|
add :weighed_at, :utc_datetime, null: false
|
|
timestamps(type: :utc_datetime, updated_at: false)
|
|
end
|
|
|
|
create unique_index(:bedikah_pairs, [:pair_ref])
|
|
create index(:bedikah_pairs, [:weighed_at])
|
|
end
|
|
end
|