From 21304c7cd2d63a23c25ca3d11b0e5267f8a2ddc1 Mon Sep 17 00:00:00 2001 From: levi770 Date: Mon, 25 May 2026 17:23:35 +0200 Subject: [PATCH 1/5] Add Mistaber XLOG YD 87:1 slice --- xlog/GOAL_BUNDLE.md | 209 ++++++++ xlog/GQM.md | 145 ++++++ xlog/HUMAN_VALIDATION.md | 139 +++++ xlog/ONTOLOGY_GROUNDING.md | 201 ++++++++ xlog/README.md | 80 +++ xlog/RUNTIME_COMPATIBILITY.md | 100 ++++ xlog/SKILLS_ADAPTATION.md | 246 +++++++++ xlog/SYSTEM_MODEL.md | 168 ++++++ xlog/VALIDATION_CONTRACT.md | 280 ++++++++++ xlog/WORKFLOW.md | 166 ++++++ xlog/XLOG_DOC_VALIDATION.md | 126 +++++ xlog/encoding-plans/README.md | 12 + xlog/encoding-plans/smicha-syllabus-86.yaml | 278 ++++++++++ xlog/evidence/README.md | 31 ++ .../u01/yd_87/seif_1/evidence-manifest.yaml | 83 +++ .../u01/yd_87/seif_1/explain/boundary.json | 145 ++++++ .../u01/yd_87/seif_1/explain/conflict.json | 208 ++++++++ .../u01/yd_87/seif_1/explain/negative.json | 109 ++++ .../u01/yd_87/seif_1/explain/positive.json | 172 ++++++ .../u01/yd_87/seif_1/explain/provenance.json | 225 ++++++++ .../u01/yd_87/seif_1/grounding-ledger.yaml | 188 +++++++ .../smicha86/u01/yd_87/seif_1/qa-run.yaml | 70 +++ .../smicha86/u01/yd_87/seif_1/qa-set.yaml | 65 +++ .../u01/yd_87/seif_1/review/pr-body.md | 116 +++++ .../u01/yd_87/seif_1/source-claims.yaml | 67 +++ .../u01/yd_87/seif_1/source-fetch-log.yaml | 72 +++ .../u01/yd_87/seif_1/sources/ref-clarify.json | 126 +++++ .../u01/yd_87/seif_1/sources/seif-links.json | 488 ++++++++++++++++++ .../u01/yd_87/seif_1/sources/seif-text.json | 47 ++ .../seif_1/sources/seif-translations.json | 26 + .../u01/yd_87/seif_1/sources/siman-text.json | 59 +++ .../seif_1/transcripts/boundary.explain.txt | 151 ++++++ .../yd_87/seif_1/transcripts/boundary.run.txt | 14 + .../seif_1/transcripts/conflict.explain.txt | 214 ++++++++ .../yd_87/seif_1/transcripts/conflict.run.txt | 15 + .../seif_1/transcripts/negative.explain.txt | 115 +++++ .../yd_87/seif_1/transcripts/negative.run.txt | 13 + .../seif_1/transcripts/positive.explain.txt | 178 +++++++ .../yd_87/seif_1/transcripts/positive.run.txt | 16 + .../seif_1/transcripts/provenance.explain.txt | 231 +++++++++ .../seif_1/transcripts/provenance.run.txt | 30 ++ .../u01/yd_87/seif_1/validation-report.md | 59 +++ xlog/goal-ledger.yaml | 86 +++ xlog/gqm-metrics.yaml | 97 ++++ xlog/ontology/aliases.yaml | 40 ++ xlog/ontology/catalog.yaml | 157 ++++++ xlog/ontology/drift-policy.yaml | 62 +++ xlog/programs/README.md | 25 + .../siman_87/smicha86_u01_s87_seif_1.xlog | 86 +++ xlog/review-monitor.yaml | 55 ++ xlog/scenarios/README.md | 32 ++ .../smicha86/u01/yd_87/seif_1/boundary.xlog | 31 ++ .../smicha86/u01/yd_87/seif_1/conflict.xlog | 39 ++ .../smicha86/u01/yd_87/seif_1/negative.xlog | 19 + .../smicha86/u01/yd_87/seif_1/positive.xlog | 34 ++ .../smicha86/u01/yd_87/seif_1/provenance.xlog | 54 ++ xlog/templates/discussion-template.md | 80 +++ xlog/templates/evidence-manifest.yaml | 54 ++ xlog/templates/goal-entry.yaml | 28 + xlog/templates/grounding-ledger.yaml | 50 ++ xlog/templates/human-verdict.yaml | 9 + xlog/templates/pr-template.md | 116 +++++ xlog/templates/qa-review.yaml | 25 + xlog/templates/qa-run.yaml | 31 ++ xlog/templates/qa-set.yaml | 31 ++ xlog/templates/qa-translation.yaml | 16 + xlog/templates/review-monitor-state.yaml | 23 + xlog/templates/source-claims.yaml | 17 + xlog/templates/source-fetch-log.yaml | 31 ++ xlog/templates/subgraph-delta.yaml | 20 + xlog/templates/validation-report.md | 82 +++ xlog/tools/run_xlog_slice_validation.py | 232 +++++++++ xlog/tools/sefaria_mcp_fetch.py | 187 +++++++ 73 files changed, 7332 insertions(+) create mode 100644 xlog/GOAL_BUNDLE.md create mode 100644 xlog/GQM.md create mode 100644 xlog/HUMAN_VALIDATION.md create mode 100644 xlog/ONTOLOGY_GROUNDING.md create mode 100644 xlog/README.md create mode 100644 xlog/RUNTIME_COMPATIBILITY.md create mode 100644 xlog/SKILLS_ADAPTATION.md create mode 100644 xlog/SYSTEM_MODEL.md create mode 100644 xlog/VALIDATION_CONTRACT.md create mode 100644 xlog/WORKFLOW.md create mode 100644 xlog/XLOG_DOC_VALIDATION.md create mode 100644 xlog/encoding-plans/README.md create mode 100644 xlog/encoding-plans/smicha-syllabus-86.yaml create mode 100644 xlog/evidence/README.md create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/explain/negative.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/explain/positive.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/ref-clarify.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-translations.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/siman-text.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.explain.txt create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.explain.txt create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.explain.txt create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.explain.txt create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.explain.txt create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md create mode 100644 xlog/goal-ledger.yaml create mode 100644 xlog/gqm-metrics.yaml create mode 100644 xlog/ontology/aliases.yaml create mode 100644 xlog/ontology/catalog.yaml create mode 100644 xlog/ontology/drift-policy.yaml create mode 100644 xlog/programs/README.md create mode 100644 xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog create mode 100644 xlog/review-monitor.yaml create mode 100644 xlog/scenarios/README.md create mode 100644 xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog create mode 100644 xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog create mode 100644 xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog create mode 100644 xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog create mode 100644 xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog create mode 100644 xlog/templates/discussion-template.md create mode 100644 xlog/templates/evidence-manifest.yaml create mode 100644 xlog/templates/goal-entry.yaml create mode 100644 xlog/templates/grounding-ledger.yaml create mode 100644 xlog/templates/human-verdict.yaml create mode 100644 xlog/templates/pr-template.md create mode 100644 xlog/templates/qa-review.yaml create mode 100644 xlog/templates/qa-run.yaml create mode 100644 xlog/templates/qa-set.yaml create mode 100644 xlog/templates/qa-translation.yaml create mode 100644 xlog/templates/review-monitor-state.yaml create mode 100644 xlog/templates/source-claims.yaml create mode 100644 xlog/templates/source-fetch-log.yaml create mode 100644 xlog/templates/subgraph-delta.yaml create mode 100644 xlog/templates/validation-report.md create mode 100644 xlog/tools/run_xlog_slice_validation.py create mode 100644 xlog/tools/sefaria_mcp_fetch.py diff --git a/xlog/GOAL_BUNDLE.md b/xlog/GOAL_BUNDLE.md new file mode 100644 index 0000000000..3672264f2c --- /dev/null +++ b/xlog/GOAL_BUNDLE.md @@ -0,0 +1,209 @@ +# GDSD Goal Bundle: Mistaber On XLOG + +## Mission + +Re-implement Mistaber from scratch as a corpus of `.xlog` programs that encode +Jewish legal sources with executable validation, ontology coherence, source +provenance, and non-blocking human semantic review. + +This bundle adapts Goal-Driven Software Development (GDSD) and Goal-Question- +Metric (GQM) into an agent-operated encoding system. It is designed for long +running continuous work: each source slice becomes a small, validated XLOG +change with evidence and a human validation gate, while later slices continue in +parallel. + +## Strategic Outcome + +Mistaber becomes an XLOG-native legal reasoning system where: + +- the corpus is encoded as audited `.xlog` programs; +- rules are executable and explainable; +- source references come from Sefaria MCP; +- ontology reuse is enforced automatically when confidence is high; +- predicate drift is detected before it pollutes the core model; +- humans validate semantic correctness before merge; +- agents can keep encoding without waiting for each human response. + +## Scope + +In scope: + +- XLOG program architecture for codex, ontology, scenarios, and provenance. +- Continuous agent workflow for source ingestion, encoding, validation, review, + and merge. +- Ontology grounding and predicate reuse controls. +- GQM metrics and evidence requirements. +- PR/discussion templates for human validation. + +Out of scope for this bundle: + +- Porting the old ASP implementation directly. +- Treating old HLL syntax as the target language. +- Claiming a law is accepted without human semantic validation. +- Maintaining ungrounded predicate aliases for convenience. + +## Roles + +### Encoding Agent + +Selects the next source slice, retrieves sources through Sefaria MCP, proposes +semantic decomposition, grounds all atoms, writes `.xlog`, runs validation, and +opens the review artifact. + +### Ontology Steward + +Maintains the canonical predicate catalog, synonym map, drift policy, and merge +rules for new public concepts. This role may be an agent, but public ontology +changes require human visibility in the review artifact. + +### Validation Agent + +Runs static, runtime, explanation, scenario, and regression gates. It writes +evidence manifests and marks machine validation status. + +### Human Reviewer + +Validates that the encoded law faithfully represents the cited source material. +This role approves, requests changes, rejects, or marks a slice as needing +rabbinic/domain escalation. + +### Merge Automation + +Polls GitHub PRs/discussions without reminders, detects human verdicts, reruns +gates, verifies scope isolation, and merges only approved slices. + +## Goal Tree + +### G0: Continuous Corpus Encoding System + +Build a sustainable loop that converts source slices into validated XLOG +programs without blocking later slices on pending human review. + +Acceptance: + +- every slice has a durable branch, PR or discussion, evidence directory, and + ledger entry; +- pending human validation does not stop future slice selection; +- merge is impossible before human approval and green validation. + +### G1: Source Comprehension + +Acquire and understand source material from authoritative corpus APIs. + +Acceptance: + +- all source text and metadata come through Sefaria MCP; +- source fetch logs include reference, version metadata when available, language, + retrieval timestamp, and MCP tool trace; +- semantic claims are linked to source spans or exact references. + +### G2: Ontology Grounding + +Prevent concept drift and predicate pollution while preserving coverage. + +Acceptance: + +- each public predicate is grounded to a canonical ontology entry; +- top-k atom and subgraph search is recorded before new predicate creation; +- high-confidence matches automatically reuse canonical predicates; +- uncertain cases are blocked from public ontology expansion until reviewed. + +### G3: XLOG Encoding + +Encode the source slice as executable XLOG modules. + +Acceptance: + +- encoded rules are idiomatic XLOG; +- private helper predicates stay local unless promoted through ontology review; +- provenance facts connect rules to source references; +- no old Mistaber DSL is introduced as a compatibility layer. + +### G4: Mechanical Validation + +Prove that the encoding runs, explains, and handles scenarios. + +Acceptance: + +- static syntax and style gates pass; +- `xlog run` outputs expected values for all scenarios; +- `xlog explain` JSON or equivalent provenance evidence is captured; +- regression checks prove no unrelated law slice changed. + +### G5: Human Semantic Validation + +Require human approval for every encoded law without blocking the continuous +encoding pipeline. + +Acceptance: + +- a PR or discussion is created with source links, citations, formulas, rules, + scenarios, evidence links, and an explicit verdict section; +- automation polls for verdicts on a schedule; +- approved slices are merged only after validation reruns; +- requested changes create a new encoding iteration and evidence refresh. + +### G6: Integration And Closure + +Keep the system coherent as the corpus grows. + +Acceptance: + +- ontology catalog, aliases, scenario index, and evidence manifests are updated; +- merged slices are traceable from source to rule to scenario to human verdict; +- metrics show drift, reuse, validation, and review health. + +## Goal Lifecycle + +```text +candidate + -> sourced + -> comprehended + -> grounded + -> encoded + -> machine_validated + -> awaiting_human + -> human_approved + -> merge_validated + -> merged +``` + +Allowed non-terminal states: + +- `human_changes_requested` +- `ontology_review_required` +- `source_blocked` +- `machine_validation_failed` +- `domain_escalation_required` + +## Non-Blocking Principle + +Human approval blocks merge, not encoding. + +The agent must continue with the next eligible candidate slice after creating a +complete review artifact for the current slice. It must not wait idly for a +human reply. The review monitor is responsible for checking existing PRs and +discussions on every cycle and on a scheduled cadence. + +## Merge Gate + +A branch may merge only when: + +- source evidence exists; +- ontology grounding is complete; +- machine validation is green; +- human verdict is approved; +- branch scope matches exactly one law slice or one explicitly approved bundle; +- final validation rerun passes after the human-approved revision. + +## Stop Conditions + +Stop the current slice and continue elsewhere when: + +- Sefaria MCP cannot retrieve required source text; +- ontology grounding has no confident candidate and no reviewable proposal; +- XLOG execution exposes a runtime blocker outside the slice scope; +- the source requires domain escalation before a faithful encoding can be made. + +Do not stop the whole pipeline for pending human validation. + diff --git a/xlog/GQM.md b/xlog/GQM.md new file mode 100644 index 0000000000..b16a7cfcef --- /dev/null +++ b/xlog/GQM.md @@ -0,0 +1,145 @@ +# GQM Model + +This file defines the Goal-Question-Metric model for the XLOG Mistaber goal +bundle. Metrics are operational: every metric must be computable from ledger +files, evidence manifests, XLOG outputs, GitHub state, or review verdicts. + +## G0: Continuous Corpus Encoding System + +Goal: encode the corpus continuously without allowing pending human review to +stall future work. + +Questions: + +- Q0.1: Are new source slices moving through the lifecycle? +- Q0.2: Are pending human reviews decoupled from active encoding? +- Q0.3: Are stale review artifacts detected automatically? + +Metrics: + +- M0.1: count of slices by lifecycle state. +- M0.2: median time from `candidate` to `awaiting_human`. +- M0.3: number of active encoding branches not blocked by human review. +- M0.4: number of awaiting-human items with a monitor check in the last 24 + hours. +- M0.5: number of slices idle for more than the configured stale threshold. + +## G1: Source Comprehension + +Goal: ensure source interpretation is traceable to authoritative corpus data. + +Questions: + +- Q1.1: Was every source acquired through Sefaria MCP? +- Q1.2: Are source references exact enough for human validation? +- Q1.3: Are semantic claims linked to source evidence? + +Metrics: + +- M1.1: direct non-MCP source retrieval count. Target: 0. +- M1.2: percentage of source claims with exact ref or span evidence. Target: + 100 percent. +- M1.3: number of source fetch logs missing MCP tool metadata. Target: 0. +- M1.4: number of unresolved translation or version mismatches. + +## G2: Ontology Grounding + +Goal: maximize reuse of canonical predicates and minimize semantic drift. + +Questions: + +- Q2.1: Did the agent search the ontology before writing new public predicates? +- Q2.2: Are high-confidence matches reused automatically? +- Q2.3: Are aliases and near-duplicates prevented from entering core? +- Q2.4: Are new public concepts rare, justified, and reviewed? + +Metrics: + +- M2.1: public predicate grounding coverage. Target: 100 percent. +- M2.2: high-confidence auto-reuse rate. Target: 100 percent. +- M2.3: unreviewed new public predicate count. Target: 0. +- M2.4: near-duplicate predicate count. Target: 0 outside approved aliases. +- M2.5: private helper escape count. Target: 0. +- M2.6: number of top-k grounding ledgers missing atom or subgraph evidence. + Target: 0. + +## G3: XLOG Encoding + +Goal: encode law slices as idiomatic, maintainable, explainable XLOG. + +Questions: + +- Q3.1: Does each rule map to an explicit semantic claim? +- Q3.2: Are provenance facts attached to each encoded law? +- Q3.3: Are module boundaries stable as the corpus grows? + +Metrics: + +- M3.1: rule-to-source claim coverage. Target: 100 percent. +- M3.2: rule-to-provenance coverage. Target: 100 percent. +- M3.3: number of rules with untyped or uncataloged predicates. Target: 0. +- M3.4: module boundary violations. Target: 0. + +## G4: Mechanical Validation + +Goal: ensure encoded law runs, explains, and answers validation scenarios. + +Questions: + +- Q4.1: Do all relevant XLOG programs execute successfully? +- Q4.2: Do scenario outputs match expected legal conclusions? +- Q4.3: Are explanations and provenance stable? +- Q4.4: Did the slice avoid unrelated regressions? + +Metrics: + +- M4.1: static validation pass rate. +- M4.2: scenario pass rate. Target: 100 percent before human review. +- M4.3: explain JSON availability. Target: 100 percent where supported. +- M4.4: regression delta count outside slice scope. Target: 0. +- M4.5: nullary and zero-column result row-count correctness for relevant + scenarios. Target: no ambiguous outputs. +- M4.6: WCOJ eligibility/dispatch evidence for affected high-join rules. Target: + recorded when relevant. +- M4.7: forced WCOJ versus fallback row-set parity for tuning or certification + runs. Target: 100 percent. +- M4.8: epistemic boundary documentation for slices using `know` or `possible`. + Target: 100 percent. + +## G5: Human Semantic Validation + +Goal: obtain human approval for every encoded law before merge. + +Questions: + +- Q5.1: Does the review artifact include all evidence needed for validation? +- Q5.2: Is human approval explicit and machine-detectable? +- Q5.3: Are requested changes reflected in code and evidence? + +Metrics: + +- M5.1: review artifacts missing source citations, encoded formulas, scenarios, + or full evidence links. Target: 0. +- M5.2: human verdicts using the required verdict schema. Target: 100 percent. +- M5.3: approved slices merged without final validation rerun. Target: 0. +- M5.4: time from human approval to merge validation completion. +- M5.5: changes-requested slices with refreshed evidence before re-review. + Target: 100 percent. + +## G6: Integration And Closure + +Goal: keep the global XLOG system coherent as the corpus expands. + +Questions: + +- Q6.1: Are catalog, aliases, scenarios, and evidence ledgers synchronized? +- Q6.2: Can every merged law be traced end to end? +- Q6.3: Are drift and validation trends visible? + +Metrics: + +- M6.1: merged slices missing ledger closure. Target: 0. +- M6.2: end-to-end traceability coverage. Target: 100 percent. +- M6.3: ontology churn per 10 merged slices. +- M6.4: scenario coverage per predicate and per source tractate/topic. +- M6.5: unresolved drift alerts older than the configured SLA. Target: 0. diff --git a/xlog/HUMAN_VALIDATION.md b/xlog/HUMAN_VALIDATION.md new file mode 100644 index 0000000000..1bbfc69723 --- /dev/null +++ b/xlog/HUMAN_VALIDATION.md @@ -0,0 +1,139 @@ +# Human Validation Workflow + +Every encoded law requires human semantic validation before merge. The pipeline +continues encoding other slices while a slice waits for review. + +## Review Artifact Choice + +Use a draft PR when the slice contains code changes ready for validation. + +Use a GitHub Discussion when: + +- the semantic question is broader than a single code diff; +- the source requires domain interpretation before the final encoding; +- multiple possible encodings need human selection. + +If a discussion approves a final encoding, merge still occurs through a PR that +links the discussion and reruns validation. + +## Required Labels + +Every review artifact must include: + +- `mistaber-xlog`; +- `human-validation`; +- `slice:`; +- current lifecycle label, such as `awaiting-human`. + +Optional labels: + +- `ontology-review`; +- `domain-escalation`; +- `changes-requested`; +- `approved-for-merge`. + +## Required Review Content + +The PR or discussion must include: + +- slice id and branch; +- source references fetched through Sefaria MCP; +- links to source fetch logs; +- legal claim table; +- encoded XLOG rules and formulas; +- ontology grounding decisions with top-k evidence; +- validation scenarios and expected outputs; +- command outputs and validation report; +- full evidence manifest link; +- explicit reviewer checklist; +- verdict schema. + +Use: + +- [templates/pr-template.md](templates/pr-template.md) +- [templates/discussion-template.md](templates/discussion-template.md) + +## Verdict Schema + +Human reviewers must provide one of: + +```yaml +human_verdict: + slice_id: "" + commit: "" + verdict: approved + reviewer: "" + reviewed_at: "" + notes: "" +``` + +Allowed verdicts: + +- `approved` +- `changes_requested` +- `rejected` +- `domain_escalation_required` + +The monitor may parse the verdict from a PR comment, discussion comment, or +committed `human-verdict.yaml` artifact. + +## Non-Blocking Automation + +The encoding agent does not wait for a human reply. + +After opening the review artifact, it must: + +1. update the goal ledger to `awaiting_human`; +2. add the artifact URL; +3. schedule or rely on the review monitor; +4. select the next eligible slice. + +The review monitor must run: + +- at the start of each agent cycle; +- after opening any new review artifact; +- on the configured schedule in automation; +- before selecting a slice if there are approved pending reviews. + +## Monitor Actions + +For `approved`: + +1. verify the verdict applies to the current commit; +2. rerun all validation gates; +3. update state to `human_approved`; +4. proceed to merge validation. + +For `changes_requested`: + +1. update state to `human_changes_requested`; +2. create a new encoding iteration on the same branch or a follow-up branch; +3. refresh source, grounding, scenarios, and validation evidence as needed; +4. request re-review. + +For `rejected`: + +1. update state to `rejected`; +2. record the reason; +3. close or supersede the branch without merging. + +For `domain_escalation_required`: + +1. update state to `domain_escalation_required`; +2. preserve the evidence package; +3. stop encoding that slice until a domain answer exists; +4. continue encoding other slices. + +## Merge Rules + +Merge automation must reject the branch if: + +- no human approval exists; +- the approval is stale relative to semantic code changes; +- validation gates have not been rerun after approval; +- branch scope includes unrelated slices; +- evidence links are missing or point to stale files. + +Human approval is necessary but not sufficient. Green machine validation and +scope verification are also required. + diff --git a/xlog/ONTOLOGY_GROUNDING.md b/xlog/ONTOLOGY_GROUNDING.md new file mode 100644 index 0000000000..5ab1921e99 --- /dev/null +++ b/xlog/ONTOLOGY_GROUNDING.md @@ -0,0 +1,201 @@ +# Ontology Grounding Contract + +Ontology grounding prevents the encoding agent from inventing new predicates for +concepts already present in the XLOG core. The catalog is the shared vocabulary; +new public predicates are exceptional and must be justified. + +## Definitions + +Canonical predicate: + +- a public predicate approved in `ontology/catalog.yaml`; +- preferred for all new encodings; +- allowed in reviewed XLOG modules and scenarios. + +Alias: + +- a known alternative surface form recorded in `ontology/aliases.yaml`; +- not preferred for new encodings; +- used to detect drift or to support compatibility migration. + +Private helper: + +- a local implementation predicate whose name and module visibility prevent + public reuse; +- must not appear in scenario expectations, public ontology, or cross-module + contracts unless promoted through review. + +Drift: + +- creation or use of a predicate, atom shape, or concept split that duplicates + or conflicts with an existing canonical concept. + +## Grounding Inputs + +For every candidate law slice, the agent builds these inputs before writing +public XLOG rules: + +- source claims extracted from Sefaria MCP evidence; +- intended entities, relations, deontic outcomes, authorities, and conditions; +- proposed predicate names and signatures; +- existing ontology catalog and aliases; +- atom examples from existing `.xlog` programs; +- scenario facts and expected outputs; +- rule dependency neighborhoods; +- explanation and provenance records from previous slices. + +## Search Surfaces + +### Predicate Catalog Search + +Searches canonical names, labels, descriptions, signatures, domains, ranges, +examples, and aliases. + +Purpose: + +- detect direct semantic matches; +- enforce canonical naming; +- block duplicate public predicates. + +### Atom And Fact Search + +Searches existing facts and scenario atoms by predicate, argument type, constant +shape, and co-occurring predicates. + +Purpose: + +- catch cases where a proposed predicate looks novel by name but duplicates an + existing fact pattern; +- find reusable scenario setup atoms. + +### Subgraph Search + +Searches rule neighborhoods around related predicates: + +- upstream source facts; +- downstream conclusions; +- shared variables; +- authority/world context; +- provenance joins; +- scenario outputs. + +Purpose: + +- detect semantic equivalence by role in a rule graph; +- identify predicates that should be reused because they occupy the same + neighborhood even when names differ. + +### Explanation Search + +Searches previous `xlog explain` evidence and validation reports. + +Purpose: + +- reuse predicates proven to support the same explanation role; +- prevent changes that make previous explanations ambiguous. + +## Candidate Scoring + +The grounding agent computes a score for each top-k candidate: + +| Signal | Weight | Examples | +| --- | ---: | --- | +| Name and alias similarity | 0.20 | `food_type` vs `food_cat` | +| Signature compatibility | 0.25 | same arity and argument domains | +| Source-domain match | 0.10 | dietary law, damages, Shabbat | +| Atom/example compatibility | 0.15 | same fact pattern in scenarios | +| Rule-subgraph compatibility | 0.20 | same upstream and downstream role | +| Explanation/provenance role | 0.10 | same source-to-conclusion path | + +Required confidence classes: + +- `auto_reuse`: score >= 0.90, structurally compatible, and at least 0.08 above + the runner-up. +- `review_reuse`: score >= 0.70 and < 0.90, or close runner-up ambiguity. +- `new_public_proposal`: no candidate >= 0.70, supported by source need and + no conflicting subgraph. +- `private_helper_only`: concept is implementation-local and not a public legal + concept. +- `reject_as_drift`: candidate duplicates or conflicts with an existing + canonical predicate. + +## Automatic Reuse + +When confidence is high, the agent must reuse the canonical predicate without +asking the user. + +Example: + +```text +Proposed intent: classify food by legal category. +Proposed name: food_type(food, type). +Top match: food_cat(food, category), score 0.94. +Decision: auto_reuse food_cat/2. +Action: write food_cat(...) in XLOG, record food_type as rejected alias drift. +``` + +The review artifact still records the auto-reuse decision so the human reviewer +can inspect it, but the agent does not block on confirmation. + +## New Public Predicate Gate + +A new public predicate requires: + +- source claim that cannot be represented by existing predicates; +- top-k predicate search results; +- top-k atom search results; +- top-k subgraph search results; +- proposed signature and domain/range definitions; +- examples and counterexamples; +- scenario proving why existing predicates are insufficient; +- human-visible ontology delta in the PR or discussion. + +If any item is missing, the predicate must remain a private helper or the slice +must enter `ontology_review_required`. + +## Drift Controls + +The validation agent rejects: + +- public predicate not present in `ontology/catalog.yaml`; +- public predicate matching a known alias in `ontology/aliases.yaml`; +- new predicate whose name differs but whose signature and subgraph match a + canonical predicate above the drift threshold; +- helper predicate used across modules without promotion; +- scenario expected output using a private helper; +- evidence manifest missing grounding ledgers for public atoms. + +## Comprehensiveness Controls + +Grounding must prevent both over-splitting and under-modeling. + +Over-splitting examples: + +- `food_type/2`, `food_kind/2`, and `food_category/2` all representing the same + relation. +- `allowed/2` and `permitted/2` with no authority or context distinction. + +Under-modeling examples: + +- collapsing prohibition, obligation, exemption, and stringency into one + predicate; +- dropping authority/world context when the source contains a dispute; +- storing source-only metadata as legal conclusions. + +The correct response to uncertainty is a grounded review item, not silent +predicate invention. + +## Grounding Ledger Requirements + +Each encoded slice writes a grounding ledger with: + +- proposed predicate intent; +- selected canonical predicate; +- top-k candidates and scores; +- auto-reuse or review decision; +- rejected aliases and why; +- new ontology deltas, if any; +- files and rules using the predicate. + +Use [templates/grounding-ledger.yaml](templates/grounding-ledger.yaml). + diff --git a/xlog/README.md b/xlog/README.md new file mode 100644 index 0000000000..d47d887555 --- /dev/null +++ b/xlog/README.md @@ -0,0 +1,80 @@ +# Mistaber XLOG Goal Bundle + +This directory is the operational bundle for rebuilding Mistaber on XLOG. + +The goal is not to translate the old ASP or custom HLL DSL mechanically. The +goal is to encode Jewish legal source material as `.xlog` programs with a +continuous, evidence-backed workflow that keeps ontology, code, scenarios, +human review, and merge automation in sync. + +## Hard Requirements + +- XLOG is the executable source of truth for encoded law. +- Sefaria MCP is mandatory for source and corpus access. +- Direct Sefaria HTTP scraping, browser scraping, or hand-entered source text is + forbidden for new source acquisition. +- Every encoded law requires human semantic validation before merge. +- Human validation must not block continued encoding work on later slices. +- A high-confidence ontology match must automatically reuse the canonical + predicate. +- New public predicates require a recorded grounding decision and review. +- Evidence files are part of the deliverable, not optional attachments. + +## Reading Order + +1. [GOAL_BUNDLE.md](GOAL_BUNDLE.md) - GDSD goal system and lifecycle. +2. [GQM.md](GQM.md) - measurable quality model. +3. [SKILLS_ADAPTATION.md](SKILLS_ADAPTATION.md) - conversion of Mistaber skills into the XLOG GDSD/GQM loop. +4. [SYSTEM_MODEL.md](SYSTEM_MODEL.md) - target XLOG architecture. +5. [ONTOLOGY_GROUNDING.md](ONTOLOGY_GROUNDING.md) - drift prevention and reuse. +6. [RUNTIME_COMPATIBILITY.md](RUNTIME_COMPATIBILITY.md) - XLOG syntax, WCOJ, and epistemic runtime boundaries. +7. [XLOG_DOC_VALIDATION.md](XLOG_DOC_VALIDATION.md) - validation findings against current XLOG docs. +8. [WORKFLOW.md](WORKFLOW.md) - continuous non-blocking encoding loop. +9. [VALIDATION_CONTRACT.md](VALIDATION_CONTRACT.md) - mechanical validation gates. +10. [HUMAN_VALIDATION.md](HUMAN_VALIDATION.md) - async human review and merge gate. + +## Directory Map + +```text +xlog/ + GOAL_BUNDLE.md Root GDSD bundle. + GQM.md Goal-question-metric model. + SYSTEM_MODEL.md Target XLOG program model. + ONTOLOGY_GROUNDING.md Predicate and concept grounding contract. + WORKFLOW.md Continuous encoding workflow. + VALIDATION_CONTRACT.md Validation gates and evidence contract. + HUMAN_VALIDATION.md PR/discussion and human verdict workflow. + SKILLS_ADAPTATION.md Mapping from mistaber-skills to XLOG GDSD/GQM. + RUNTIME_COMPATIBILITY.md XLOG syntax, WCOJ, and epistemic boundaries. + XLOG_DOC_VALIDATION.md Findings from validation against XLOG docs. + goal-ledger.yaml Current goal bundle registry. + gqm-metrics.yaml Machine-readable metric registry. + review-monitor.yaml Automated GitHub verdict monitor contract. + ontology/ + catalog.yaml Starter canonical ontology catalog. + aliases.yaml Alias and duplicate-prevention registry. + drift-policy.yaml Grounding thresholds and drift gates. + programs/ + README.md Intended XLOG module layout. + scenarios/ + README.md Validation scenario layout. + evidence/ + README.md Evidence artifact layout and retention rules. + encoding-plans/ + *.yaml Machine-readable corpus sequencing plans. + templates/ + *.md, *.yaml Per-law reusable templates. +``` + +## Completion Definition + +A law slice is complete only when all of these are true: + +- The source text was fetched through Sefaria MCP and logged. +- Source claims are traceable to exact references. +- Every public atom is grounded to the ontology catalog. +- The `.xlog` encoding runs under the required XLOG runtime path. +- Validation scenarios include positive, negative, boundary, and conflict cases. +- `xlog run` and `xlog explain` evidence is captured. +- A human reviewer approved the semantic mapping. +- Merge automation verified the branch and merged only the approved slice. diff --git a/xlog/RUNTIME_COMPATIBILITY.md b/xlog/RUNTIME_COMPATIBILITY.md new file mode 100644 index 0000000000..d318a8419c --- /dev/null +++ b/xlog/RUNTIME_COMPATIBILITY.md @@ -0,0 +1,100 @@ +# XLOG Runtime Compatibility + +This bundle must stay aligned with the XLOG language, WCOJ, and epistemic +runtime contracts. + +## Language Surface + +New XLOG code must use documented source forms: + +- `pred name(types).` for predicate declarations; +- `domain name: type.` for semantic type aliases; +- facts and rules ending in `.`; +- `?- atom.` queries for output; +- `private pred` for module-local implementation relations; +- `use module.` or `use module::{pred}` for imports; +- `#pragma key = value` only for supported pragmas. + +Supported scalar types are: + +- `u32` +- `u64` +- `i32` +- `i64` +- `f32` +- `f64` +- `bool` +- `symbol` + +The ontology catalog may define domain names such as `source_ref` or `rule_id`, +but emitted `.xlog` must map each domain to a supported scalar type. + +## Scenario Output Contract + +Scenarios do not encode answer keys as dynamic assertions. + +A scenario file should: + +1. import the relevant modules with `use`; +2. declare or provide scenario facts; +3. include `?-` queries for user-visible conclusions; +4. optionally include constraints for invariants that must never hold. + +Expected answers belong in QA evidence files. The validation runner compares +`xlog run` output against those evidence expectations. + +## WCOJ Boundary + +WCOJ is a production optimization path for certified positive relational join +families. It does not define the law semantics. + +Current user-facing facts: + +- triangle is a production WCOJ route; +- 4-cycle is production but adaptive routing is opt-in; +- K=5 and K=6 cliques are production after planner cost gates; +- K=7 and K=8 are not current user promises; +- two-atom `ChainJoin` is not paper WCOJ; +- arbitrary deep join trees are not automatically WCOJ. + +Fallback is not an error. Every promoted `MultiWayJoin` carries an embedded +fallback plan whose row set must equal the dispatch row set. + +For tuning or certification, record: + +- source shape; +- runtime config; +- compiler config; +- environment; +- stats snapshot source; +- fallback rows; +- WCOJ rows; +- dispatch counters; +- elapsed fallback; +- elapsed WCOJ; +- block work unit; +- notes. + +## Epistemic Boundary + +Mistaber authority contexts are ordinary relational facts unless a slice +explicitly uses XLOG epistemic literals. + +If a slice uses epistemic literals, it must: + +- declare `#pragma epistemic_mode = faeel` or `#pragma epistemic_mode = g91`; +- stay inside accepted bounded source forms unless the current XLOG build proves + a broader path; +- record whether `xlog run` is accepted for that exact program; +- record rejection evidence for forms that XLOG declines; +- avoid claiming full epistemic parity outside the current accepted matrix. + +Accepted source literal families are: + +- `know atom(...)` +- `possible atom(...)` +- `not know atom(...)` +- `not possible atom(...)` + +Nested epistemic operators are invalid. + diff --git a/xlog/SKILLS_ADAPTATION.md b/xlog/SKILLS_ADAPTATION.md new file mode 100644 index 0000000000..1145c37c37 --- /dev/null +++ b/xlog/SKILLS_ADAPTATION.md @@ -0,0 +1,246 @@ +# Mistaber Skills Adaptation For XLOG + +The existing `mistaber-skills` plugin defines a five-phase HLL/ASP workflow: + +```text +corpus-prep -> hll-encode -> validate -> review -> commit +``` + +The XLOG rebuild keeps the useful discipline from that system but changes the +target runtime, merge model, and review cadence. + +## Key Changes + +| Old Mistaber skill behavior | XLOG goal-bundle behavior | +| --- | --- | +| HLL is the source of truth. | `.xlog` programs are the source of truth. | +| ASP/clingo compilation is the validation substrate. | XLOG runtime, stats, and explain evidence are the validation substrate. | +| Human checkpoint approval is required before each next phase. | Human semantic approval is required before merge; later slices continue while review is pending. | +| Predicate registry is read from HLL DSL/vocabulary artifacts. | Public atoms are grounded through the XLOG ontology catalog, alias registry, and graph search. | +| Commit finalizes a reviewed seif. | Merge automation finalizes a reviewed PR and updates all XLOG ledgers. | + +## Skill Crosswalk + +### `using-mistaber` + +Original role: + +- entry point; +- explains phase order; +- enforces human checkpoint discipline; +- requires reading phase skills and session state. + +XLOG adaptation: + +- replaced by [GOAL_BUNDLE.md](GOAL_BUNDLE.md) and [WORKFLOW.md](WORKFLOW.md); +- keeps explicit lifecycle states and DoD checks; +- changes blocking behavior so pending human review does not stop new slice + selection; +- keeps worktree and artifact discipline. + +GDSD mapping: + +- G0 Continuous Corpus Encoding System; +- G6 Integration And Closure. + +GQM mapping: + +- M0.1 lifecycle counts; +- M0.4 monitor freshness; +- M6.2 traceability coverage. + +### `corpus-prep` + +Original role: + +- fetch primary text and commentaries from Sefaria MCP; +- build derivation chains; +- identify machloket; +- create corpus artifacts; +- elicit interpretive decisions. + +XLOG adaptation: + +- remains mandatory source-comprehension phase; +- outputs source fetch logs and source claim tables under `xlog/evidence/`; +- no direct HTTP fallback; +- derivation chains become provenance inputs for XLOG rules; +- interpretive decisions become human-visible source claims and review items. + +GDSD mapping: + +- G1 Source Comprehension. + +GQM mapping: + +- M1.1 direct non-MCP retrieval count; +- M1.2 source claim traceability; +- M1.3 source fetch log completeness. + +### `hll-encode` + +Original role: + +- map source statements to HLL and ASP predicates; +- use HLL directives for vocabulary, worlds, makor, madrega, and output; +- encode machloket with world scoping and overrides. + +XLOG adaptation: + +- becomes XLOG encoding; +- no HLL directives and no old DSL compatibility layer; +- every public predicate must pass ontology grounding before use; +- modal/world encoding is implemented in XLOG idioms and validated through XLOG + execution paths; +- provenance facts replace directive-only source attribution. + +GDSD mapping: + +- G2 Ontology Grounding; +- G3 XLOG Encoding. + +GQM mapping: + +- M2.1 public predicate grounding coverage; +- M2.2 high-confidence auto-reuse rate; +- M3.1 rule-to-source claim coverage; +- M3.2 rule-to-provenance coverage. + +### `validate` + +Original role: + +- compile HLL; +- run Mistaber engine checks; +- create natural-language QA set; +- run scenario files; +- translate atoms and traces; +- run technical health tests. + +XLOG adaptation: + +- validates XLOG programs and scenarios directly; +- uses `xlog run`, stats outputs, and `xlog explain`; +- keeps QA separation between natural-language questions and executable + scenario setup; +- records evidence manifests and validation reports for each slice; +- treats explain/provenance evidence as load-bearing. + +GDSD mapping: + +- G4 Mechanical Validation. + +GQM mapping: + +- M4.1 static validation pass rate; +- M4.2 scenario pass rate; +- M4.3 explain JSON availability; +- M4.4 regression delta count. + +### `review` + +Original role: + +- assemble a review package; +- present halachic, technical, and encoding-decision checklists; +- obtain final human approval before commit. + +XLOG adaptation: + +- creates a GitHub PR or Discussion using required templates; +- includes full source, grounding, XLOG, scenario, validation, and evidence + links; +- uses a parseable verdict schema; +- does not block the encoding agent from starting later slices. + +GDSD mapping: + +- G5 Human Semantic Validation. + +GQM mapping: + +- M5.1 complete review artifacts; +- M5.2 verdict schema compliance; +- M5.5 refreshed evidence after requested changes. + +### `commit` + +Original role: + +- verify prior checkpoints; +- archive artifacts; +- update manifests; +- commit, push, and create a PR. + +XLOG adaptation: + +- becomes merge automation; +- polls PRs/discussions for human verdicts; +- reruns machine gates after approval; +- verifies branch scope; +- merges only reviewed XLOG slice changes; +- updates goal, ontology, scenario, and evidence indexes. + +GDSD mapping: + +- G6 Integration And Closure. + +GQM mapping: + +- M5.3 approved slices merged without final rerun; +- M6.1 merged slices missing ledger closure; +- M6.2 end-to-end traceability coverage. + +### `encoding-validator` Agent + +Original role: + +- read-only validator for phase DoD artifacts. + +XLOG adaptation: + +- validates V1 through V8 gates in [VALIDATION_CONTRACT.md](VALIDATION_CONTRACT.md); +- writes gate-specific reports; +- does not fix code; +- fails closed on missing source, grounding, scenario, explain, review, or merge + evidence. + +## Hook Crosswalk + +| Existing hook | XLOG replacement | +| --- | --- | +| `sefaria-guard` and `sefaria-logger` | Source gate requiring Sefaria MCP logs. | +| `ontology-guard` | Ontology grounding gate, alias rejection, and top-k evidence. | +| `encoding-guard` | XLOG static gate and public predicate inventory. | +| `clingo-guard` | XLOG runtime-path guard; raw clingo is irrelevant to the new runtime. | +| `phase-gate` | Goal-ledger state machine. | +| `validation-handler` and `validator-gate` | V1-V8 validation contract and evidence manifest. | +| `git-commit-guard` | Human verdict plus final validation merge gate. | +| `path-validator` | Worktree and branch-scope validation before merge. | +| `checkpoint-enforcement` | Non-blocking review monitor plus merge-blocking human approval. | + +## Review Cadence Change + +The old workflow stops after each phase and asks the user directly. The XLOG +workflow still requires human validation, but it moves that validation to an +asynchronous PR/discussion artifact. + +This preserves the key safety property: + +- no encoded law merges without human approval. + +It removes the throughput bottleneck: + +- the agent can continue encoding later slices while prior slices await review. + +## Required Replacement Artifacts + +| Old artifact | XLOG artifact | +| --- | --- | +| `.mistaber-artifacts/corpus-sources-*.yaml` | `xlog/evidence//source-fetch-log.yaml` and `source-claims.yaml` | +| `.hll` source files | `xlog/programs/**/*.xlog` | +| generated `.lp` ontology | XLOG program modules and runtime outputs | +| HLL validation report | `xlog/evidence//validation-report.md` | +| review package | PR or discussion generated from `xlog/templates/` | +| commit checkpoint metadata | `goal-ledger.yaml`, evidence manifest, GitHub PR state | + diff --git a/xlog/SYSTEM_MODEL.md b/xlog/SYSTEM_MODEL.md new file mode 100644 index 0000000000..b753f31dc3 --- /dev/null +++ b/xlog/SYSTEM_MODEL.md @@ -0,0 +1,168 @@ +# XLOG System Model + +This file defines the target shape of Mistaber as an XLOG-native system. Exact +predicate names are governed by `ontology/catalog.yaml`; examples here show the +intended architecture, not permission to bypass the catalog. + +## Program Layers + +### Core Ontology Layer + +Defines stable public predicates, domains, category relations, authority models, +source references, and provenance hooks. + +Expected location: + +```text +xlog/programs/core/ +``` + +### Corpus Layer + +Contains source-specific encodings. Each source slice gets a small module with +source facts, local helper predicates, and derived law rules. + +Expected location: + +```text +xlog/programs/corpus///.xlog +``` + +### World And Authority Layer + +Represents disputes, accepted authorities, uncertainty, and authority contexts +when needed by the source. + +Expected location: + +```text +xlog/programs/worlds/ +``` + +### Provenance Layer + +Connects facts and rules to source references, reviewer decisions, and evidence +manifests. + +Expected location: + +```text +xlog/programs/provenance/ +``` + +### Scenario Layer + +Contains executable validation cases. Scenarios import program modules and +emit queried outputs. Expected answers live in QA evidence files and are compared +by the validation runner. + +Expected location: + +```text +xlog/scenarios// +``` + +## Predicate Categories + +Entity predicates: + +- people, authorities, objects, foods, vessels, times, places, actions. + +Taxonomy predicates: + +- legal categories, food categories, action categories, impurity categories, + source categories. + +Normative predicates: + +- prohibition, permission, obligation, exemption, stringency, leniency, + invalidation, validity. + +Condition predicates: + +- context facts, thresholds, mixtures, intent, sequence, dependency, exception. + +Authority-context predicates: + +- who holds a view, which authority context is active, which authority is + accepted, and how disputes are represented. + +Provenance predicates: + +- source references, rule ids, evidence artifact ids, explanation links, human + verdict links. + +## Encoding Rules + +- Encode source facts separately from derived law conclusions. +- Use provenance facts for every source-backed rule. +- Keep commentary and inferred assumptions distinguishable. +- Represent disputes explicitly; do not collapse them into one conclusion unless + the source itself resolves the dispute. +- Prefer reusable canonical predicates for legal concepts. +- Introduce helper predicates only for local computation. +- Promote helpers only through ontology review. + +## Scenario Rules + +Each source slice should include: + +- positive scenario; +- negative scenario; +- boundary scenario; +- dispute or authority scenario when applicable; +- provenance/explanation scenario. + +Scenarios must query user-visible conclusions with `?-` and must not expose +private helper internals as expected outputs. + +## XLOG Language Constraints + +Generated `.xlog` must stay inside documented XLOG source forms: + +- declare predicates with `pred`; +- map ontology domain names to scalar XLOG types with `domain`; +- use `private pred` for module-local helpers; +- import modules with `use`; +- use `?-` queries for scenario outputs; +- use stratified deterministic `not` only after variables are positively bound + earlier in the rule body. + +The ontology catalog is metadata. It does not by itself make a type legal in +XLOG; every emitted domain must lower to `u32`, `u64`, `i32`, `i64`, `f32`, +`f64`, `bool`, or `symbol`. + +## Epistemic And Authority Contexts + +Do not conflate Mistaber authority contexts with XLOG epistemic world views. + +Ordinary halachic dispute modeling should use ordinary relational predicates +unless the slice explicitly requires XLOG epistemic literals. If epistemic +literals are used, the slice must declare the epistemic mode, stay inside the +accepted bounded source forms, and satisfy the epistemic boundary gate in +[VALIDATION_CONTRACT.md](VALIDATION_CONTRACT.md). + +## Provenance Shape + +Every encoded law should support this trace: + +```text +Sefaria MCP reference + -> source claim + -> ontology grounding decision + -> XLOG fact or rule + -> scenario output + -> explain/provenance evidence + -> human verdict + -> merged slice +``` + +If this trace cannot be reconstructed from files and GitHub state, the slice is +not complete. + +## Migration From Old Mistaber + +The old Mistaber HLL/ASP system may be used for conceptual comparison and test +ideas, but it is not the target runtime. Do not introduce a compatibility DSL as +the encoding substrate. When old concepts map to XLOG, record the mapping in the +ontology catalog or alias registry. diff --git a/xlog/VALIDATION_CONTRACT.md b/xlog/VALIDATION_CONTRACT.md new file mode 100644 index 0000000000..631b246885 --- /dev/null +++ b/xlog/VALIDATION_CONTRACT.md @@ -0,0 +1,280 @@ +# Validation Contract + +Validation is evidence producing. A gate is not complete until the command, the +result, and the output location are recorded in the evidence manifest. + +## Gate V1: Source Gate + +Purpose: + +- prove that source material came from Sefaria MCP; +- prove that every semantic claim is traceable. + +Required evidence: + +- `source-fetch-log.yaml`; +- source reference list; +- source claim table; +- translation/version notes when used. + +Failure conditions: + +- direct non-MCP retrieval for source text; +- missing exact source reference; +- claim without source support; +- unresolved source ambiguity not marked for escalation. + +## Gate V2: Ontology Grounding Gate + +Purpose: + +- prevent predicate drift; +- force high-confidence canonical reuse; +- record uncertain ontology decisions. + +Required evidence: + +- `grounding-ledger.yaml`; +- top-k predicate candidates; +- atom/example matches; +- subgraph matches; +- public predicate inventory for changed XLOG files. + +Failure conditions: + +- public predicate missing from ontology catalog; +- alias used where canonical predicate is required; +- high-confidence match not reused; +- new public predicate without review payload; +- private helper leaks into public scenario or cross-module contract. + +## Gate V3: Static XLOG Gate + +Purpose: + +- verify parseability, module boundaries, type safety, negation safety, and + style invariants. + +Required evidence: + +- command transcript; +- touched XLOG file list; +- static diagnostic output. + +Expected commands: + +```bash +xlog explain --format json xlog/scenarios//.xlog +``` + +`xlog explain` is the documented static inspection path. It must record parse, +AST, predicate schema, stratification, RIR, optimized RIR, magic-set, WCOJ, and +probability sections when applicable. Unknown or unavailable sections must carry +a typed reason from XLOG, not be silently ignored. + +Failure conditions: + +- parse error; +- undefined public predicate; +- type mismatch against declared scalar or domain types; +- unbound variable in negated atom; +- unstratifiable deterministic negation; +- module import cycle; +- uncataloged public predicate; +- scenario depends on private helper. + +## Gate V4: Runtime Scenario Gate + +Purpose: + +- prove that encoded rules produce expected conclusions. + +Required scenario classes: + +- positive case where the law applies; +- negative case where the law does not apply; +- boundary case at a condition edge; +- conflict or dispute case when the source contains authority divergence; +- provenance case proving the conclusion points back to source facts. + +Expected commands: + +```bash +xlog run xlog/scenarios//.xlog +xlog explain --format json xlog/scenarios//.xlog +``` + +Expected legal answers are stored in the QA evidence files, not as unsupported +dynamic database assertions inside XLOG. Scenario `.xlog` files provide facts, +rules, constraints, and `?-` queries. The validation runner compares emitted +rows to the expected outputs recorded in `qa-set.yaml` and `qa-run.yaml`. + +Failure conditions: + +- missing scenario class; +- output mismatch; +- ambiguous nullary or zero-column result row count; +- runtime path bypasses production execution. + +## Gate V4a: WCOJ Runtime Compatibility Gate + +Purpose: + +- ensure legal encodings do not confuse XLOG optimizer eligibility with semantic + correctness. + +Rules: + +- WCOJ is an optimization path, not the law semantics. +- Eligible and dispatched are different states. +- Fallback execution is valid when row-set semantics are preserved. +- Forced WCOJ experiments require forced-off fallback row comparison. +- Row-set equality is required; row order is not unless a sorted-output contract + is being tested. + +Required evidence: + +- WCOJ eligibility and selected execution path from `xlog explain --format json`; +- source shape for any rule expected to be WCOJ eligible; +- join-key scalar classes for relevant predicates; +- fallback rows and WCOJ rows when dispatch is forced; +- dispatch counters when runtime counters are available. + +Failure conditions: + +- treating WCOJ fallback as a semantic failure; +- claiming WCOJ production evidence without route counters or explain evidence; +- mixed unsupported join-key widths in a forced WCOJ path; +- row-set mismatch between forced WCOJ and forced-off fallback. + +## Gate V5: Explain And Provenance Gate + +Purpose: + +- prove that conclusions are explainable from source and rule facts. + +Expected commands: + +```bash +xlog explain --format json xlog/scenarios//.xlog +``` + +Required evidence: + +- explain JSON or documented equivalent; +- source-to-rule-to-conclusion path; +- rule ids and source references. + +Failure conditions: + +- conclusion has no source path; +- explanation points to stale or unrelated source; +- explain output cannot distinguish competing authorities when the source does. + +## Gate V5a: Epistemic Boundary Gate + +Purpose: + +- prevent ordinary authority-world modeling from being confused with XLOG + epistemic solver semantics. + +Rules: + +- Mistaber authority worlds are ordinary relational modeling unless the source + explicitly uses XLOG epistemic literals. +- XLOG epistemic programs must declare the intended mode with + `#pragma epistemic_mode = faeel` or `#pragma epistemic_mode = g91`. +- Accepted source forms are bounded to `know`, `possible`, `not know`, and + `not possible` literals over ordinary atoms. +- Nested epistemic operators are rejected. +- Arbitrary epistemic programs must not be claimed production-complete just + because bounded fixtures pass. + +Required evidence when epistemic literals are used: + +- explicit epistemic mode; +- accepted source-form inventory; +- direct CLI/runtime pilot for the slice if supported by the current XLOG build; +- focused XLOG epistemic certification commands or their recorded equivalent; +- rejection evidence for unsupported forms. + +Failure conditions: + +- using epistemic literals without mode and boundary documentation; +- lowering epistemic literals through raw ordinary RIR when XLOG rejects them; +- consuming unvalidated world-view guesses as solver or probability evidence; +- claiming full G91/FAEEL parity outside the bounded accepted matrix. + +## Gate V6: Regression Gate + +Purpose: + +- ensure the slice did not change unrelated law behavior. + +Required evidence: + +- affected predicate list; +- affected scenario list; +- regression command transcript; +- before/after output comparison where applicable. + +Failure conditions: + +- unrelated scenario delta; +- ontology catalog change without updated dependent scenarios; +- evidence manifest omits a changed public contract. + +## Gate V7: Human Review Gate + +Purpose: + +- ensure semantic correctness is approved by a human before merge. + +Required evidence: + +- GitHub PR or discussion URL; +- complete review template; +- human verdict in required schema; +- commit hash approved by the human or explicit approval of latest revision. + +Failure conditions: + +- merge before human approval; +- approval applies to older code after semantic changes; +- missing source, formula, scenario, or evidence links in the review artifact. + +## Gate V8: Merge Validation Gate + +Purpose: + +- verify the final branch state after human approval. + +Required evidence: + +- final validation report; +- branch diff scope check; +- ledger closure update; +- merge commit or merged PR link. + +Failure conditions: + +- machine gate fails after approval; +- branch contains unrelated changes; +- ontology/evidence/ledger files not synchronized; +- merge performed without recorded verdict. + +## Evidence Manifest + +Every slice must maintain a manifest using +[templates/evidence-manifest.yaml](templates/evidence-manifest.yaml). + +The manifest must include: + +- source acquisition artifacts; +- grounding artifacts; +- XLOG files; +- scenario files; +- command transcripts; +- validation outputs; +- GitHub review links; +- human verdict file or comment reference. diff --git a/xlog/WORKFLOW.md b/xlog/WORKFLOW.md new file mode 100644 index 0000000000..2273348563 --- /dev/null +++ b/xlog/WORKFLOW.md @@ -0,0 +1,166 @@ +# Continuous Encoding Workflow + +This workflow runs as an ongoing loop. Each iteration handles one source slice, +opens a review artifact, and then moves on to the next eligible slice while a +separate monitor watches existing reviews. + +## Phase 0: Select Slice + +Input: + +- prioritized corpus backlog; +- existing goal ledger; +- pending review queue; +- ontology drift alerts; +- regression status. + +Actions: + +1. Choose the smallest source slice that can produce a coherent law encoding. +2. Assign a stable slice id. +3. Create a branch and evidence directory. +4. Add or update the goal-ledger entry with state `candidate`. + +Exit: + +- `goal-ledger.yaml` contains the slice id, branch, source refs, and owner. + +## Phase 1: Acquire Sources Through Sefaria MCP + +Actions: + +1. Query Sefaria MCP for the canonical source reference. +2. Fetch source text, translation when needed, version metadata when available, + and linked/commentary references relevant to interpretation. +3. Write `source-fetch-log.yaml`. +4. Write source excerpts or normalized references into the evidence directory. + +Rules: + +- Do not use direct HTTP, browser scraping, copied web text, or unstamped manual + transcription for new source acquisition. +- If Sefaria MCP is unavailable, mark the slice `source_blocked` and continue to + another slice. + +Exit: + +- state becomes `sourced`; +- source evidence is sufficient for a human to inspect the exact references. + +## Phase 2: Comprehend Source + +Actions: + +1. Identify legal actors, objects, actions, conditions, exceptions, authorities, + outcomes, and uncertainty. +2. Separate direct law statements from commentary, dispute framing, examples, + and inferred background assumptions. +3. Create a source-claim table. +4. Mark claims that require domain escalation. + +Exit: + +- state becomes `comprehended`; +- each claim has a source reference and intended logical role. + +## Phase 3: Ground Ontology + +Actions: + +1. Extract candidate atoms and predicate intents from the claim table. +2. Run top-k predicate search against the ontology catalog. +3. Run top-k atom/example search against existing `.xlog` facts and scenarios. +4. Run subgraph search against rule dependency neighborhoods. +5. Score each candidate using the drift policy. +6. Automatically reuse canonical predicates for high-confidence matches. +7. Record uncertain cases in the grounding ledger. + +Exit: + +- state becomes `grounded`; +- all public predicates are canonical or explicitly proposed for review. + +## Phase 4: Encode XLOG + +Actions: + +1. Create or update the slice module under `programs/`. +2. Declare XLOG domains and predicates using documented scalar types. +3. Encode source facts, derived rules, authority-context facts, and provenance + facts. +4. Keep helper predicates `private` unless promoted through ontology review. +5. Add validation scenarios under `scenarios/` using `?-` output queries. +6. Update evidence manifest with changed files. + +Exit: + +- state becomes `encoded`; +- no ungrounded public predicate remains. + +## Phase 5: Mechanical Validation + +Actions: + +1. Run syntax and static style checks. +2. Run XLOG scenarios with expected outputs. +3. Capture `xlog run` output. +4. Capture `xlog explain --format json` output for parse, type, + stratification, RIR, WCOJ, and runtime-path evidence. +5. Record WCOJ eligibility versus dispatch when relevant. +6. Record epistemic mode and accepted-source boundary when epistemic literals are + used. +7. Run regression checks for touched ontology and scenario areas. +8. Write `validation-report.md` and `qa-run.yaml`. + +Exit: + +- state becomes `machine_validated` only if gates pass; +- failures move the slice to `machine_validation_failed` with evidence. + +## Phase 6: Open Human Review Artifact + +Actions: + +1. Open a draft PR when code is ready for review. +2. Open or link a GitHub Discussion when broader semantic review is useful. +3. Fill the required template completely. +4. Link all evidence files. +5. Label the artifact `mistaber-xlog`, `human-validation`, and the slice id. + +Exit: + +- state becomes `awaiting_human`; +- active encoding proceeds to the next candidate slice. + +## Phase 7: Review Monitor + +Runs automatically at the start of each cycle and on schedule. + +Actions: + +1. Query open PRs and discussions with `human-validation` labels. +2. Parse verdict comments using the required verdict schema. +3. For `approved`, rerun validation and advance to merge validation. +4. For `changes_requested`, reopen encoding with the same slice id. +5. For `rejected` or `domain_escalation_required`, record the reason and pause + the slice. + +Rules: + +- The user must not need to remind the agent to check reviews. +- Review state is part of the pipeline state, not conversational memory. + +## Phase 8: Merge + +Actions: + +1. Verify human approval applies to the current commit. +2. Rerun all machine gates. +3. Verify branch scope is limited to the reviewed slice. +4. Merge according to repository policy. +5. Close ledger entry and update ontology/scenario/evidence indexes. + +Exit: + +- state becomes `merged`; +- traceability from source to rule to scenario to verdict is complete. diff --git a/xlog/XLOG_DOC_VALIDATION.md b/xlog/XLOG_DOC_VALIDATION.md new file mode 100644 index 0000000000..93b9eb9e75 --- /dev/null +++ b/xlog/XLOG_DOC_VALIDATION.md @@ -0,0 +1,126 @@ +# Validation Against XLOG Docs + +Validation date: 2026-05-25 + +Validated against: + +- `/home/dev/projects/xlog/docs/language-reference.md` +- `/home/dev/projects/xlog/docs/wcoj-architecture-guide.md` +- `/home/dev/projects/xlog/docs/wcoj-user-guide.md` +- `/home/dev/projects/xlog/docs/epistemic-solver-semantics-guide.md` + +## Findings + +### F1: Unsupported `xlog check` Command + +Original bundle issue: + +- `VALIDATION_CONTRACT.md` used `xlog check xlog/programs xlog/scenarios` as + the expected static command. + +XLOG doc basis: + +- The language reference documents `xlog run`, `xlog prob`, `xlog explain`, + `xlog repl`, and `xlog watch`. +- `xlog explain --format json ` is the documented static inspection path + for parse, AST, stratification, RIR, optimized RIR, magic-set, WCOJ, and + probability sections. + +Correction: + +- Static validation now uses `xlog explain --format json`. +- `xlog check` was removed from the contract. + +### F2: Non-XLOG `text` Type In Ontology Catalog + +Original bundle issue: + +- `ontology/catalog.yaml` used `text` in predicate signatures. + +XLOG doc basis: + +- Supported scalar types are `u32`, `u64`, `i32`, `i64`, `f32`, `f64`, `bool`, + and `symbol`. +- Semantic type aliases must be declared with `domain name: type.` + +Correction: + +- Catalog signatures now use `symbol`. +- Domain records now include `xlog_type: symbol`. +- The catalog now includes XLOG emission examples: + `domain source_ref: symbol.` and `pred source_ref(source_ref, symbol).` + +### F3: Scenario Expected Outputs Were Ambiguous + +Original bundle issue: + +- Scenario docs said scenarios "assert expected outputs," which could be read as + encoding answer keys inside XLOG. + +XLOG doc basis: + +- XLOG outputs are selected with `?- atom.` queries. +- Constraints express impossible states, not expected-answer assertions. +- Dynamic database assertion forms are unsupported. + +Correction: + +- Scenario docs now say `.xlog` scenario files provide facts, rules, + constraints, and `?-` queries. +- Expected answers live in QA evidence files and are compared externally by the + validation runner. + +### F4: WCOJ Eligibility Was Missing From Runtime Evidence + +Original bundle issue: + +- The validation contract did not distinguish ordinary runtime success from WCOJ + eligibility, dispatch, fallback, or parity evidence. + +XLOG doc basis: + +- WCOJ is an optimization path, not the semantic contract. +- Eligible and dispatched are different states. +- Fallback is valid when row-set semantics are preserved. +- Forced WCOJ testing requires row-set parity with forced-off fallback. + +Correction: + +- Added `RUNTIME_COMPATIBILITY.md`. +- Added `Gate V4a: WCOJ Runtime Compatibility Gate`. +- Added WCOJ evidence slots to the evidence manifest, QA run, validation report, + and GQM metrics. + +### F5: Authority Worlds Needed Separation From Epistemic World Views + +Original bundle issue: + +- The system model used "world" language for legal authority contexts without + explicitly separating that from XLOG epistemic world-view semantics. + +XLOG doc basis: + +- Epistemic source forms are bounded to `know`, `possible`, `not know`, and + `not possible`. +- Epistemic mode is explicit with `#pragma epistemic_mode = faeel` or + `#pragma epistemic_mode = g91`. +- Arbitrary epistemic programs are not fully production-certified outside the + bounded accepted matrix. + +Correction: + +- Authority contexts are now described as ordinary relational modeling unless a + slice explicitly uses XLOG epistemic literals. +- Added `Gate V5a: Epistemic Boundary Gate`. +- Added epistemic evidence slots to the evidence manifest, QA run, validation + report, and GQM metrics. + +## Remaining Design Constraints + +- The bundle is a goal and workflow contract, not an executable XLOG corpus yet. +- The seed ontology is metadata. Actual `.xlog` emission must create legal + `domain` and `pred` declarations. +- WCOJ evidence is required only for rules where the source shape makes it + relevant or when tuning/certification claims are made. +- Epistemic evidence is required only for slices using XLOG epistemic literals. + diff --git a/xlog/encoding-plans/README.md b/xlog/encoding-plans/README.md new file mode 100644 index 0000000000..ac3ee0cb63 --- /dev/null +++ b/xlog/encoding-plans/README.md @@ -0,0 +1,12 @@ +# Encoding Plans + +Machine-readable corpus sequencing plans live here. + +Rules: + +- Preserve the source sequence exactly. +- Do not sort simanim numerically unless the source plan says to. +- Omit class dates from encoding plans unless dates affect source priority. +- Expand simanim into seif-level slices through Sefaria MCP at execution time. +- Human validation remains required before merge for every encoded law slice. + diff --git a/xlog/encoding-plans/smicha-syllabus-86.yaml b/xlog/encoding-plans/smicha-syllabus-86.yaml new file mode 100644 index 0000000000..8d718fff9f --- /dev/null +++ b/xlog/encoding-plans/smicha-syllabus-86.yaml @@ -0,0 +1,278 @@ +version: 1 +id: smicha_syllabus_86 +title: "Smicha Syllabus 86 Encoding Plan" +source: + pdf_path: "/home/dev/projects/68928c2dcec25ace8a9abc97_Smicha Syllabus 86.pdf" + extraction_note: "Only topic and siman sequence was retained. Calendar dates and test dates were intentionally omitted." + source_pages_with_sequence: [2, 3, 4, 5, 6] + +ordering_policy: + preserve_pdf_order: true + do_not_sort_simanim_numerically: true + sequence_is_authoritative: true + unit_transition_rule: "Start the next unit only after all simanim in the current unit have reached awaiting_human, merged, or a recorded blocked state." + siman_transition_rule: "Start the next siman only after all seif-level slices in the current siman have reached awaiting_human, merged, or a recorded blocked state." + human_review_blocks_merge: true + human_review_blocks_next_encoding: false + +source_access: + required_connector: "Sefaria MCP" + direct_http_allowed: false + manual_transcription_allowed: false + canonical_work: "Shulchan Arukh, Yoreh De'ah" + siman_ref_template: "Shulchan Arukh, Yoreh De'ah {siman}" + seif_ref_template: "Shulchan Arukh, Yoreh De'ah {siman}:{seif}" + +slicing_policy: + primary_granularity: seif + expansion_method: "For each siman, use Sefaria MCP to get the siman structure, enumerate seifim in source order, and create one law-slice candidate per seif unless the source requires a smaller claim-level split." + split_smaller_when: + - "one seif contains multiple independent laws" + - "one seif contains distinct machloket positions requiring separate review" + - "one seif contains an ontology expansion proposal that should not block unrelated claims" + keep_together_when: + - "claims are mutually dependent for one executable scenario" + - "a definition and its immediate rule cannot be validated separately" + +agent_pipeline: + required_bundle_docs: + - "xlog/GOAL_BUNDLE.md" + - "xlog/GQM.md" + - "xlog/SKILLS_ADAPTATION.md" + - "xlog/SYSTEM_MODEL.md" + - "xlog/ONTOLOGY_GROUNDING.md" + - "xlog/RUNTIME_COMPATIBILITY.md" + - "xlog/WORKFLOW.md" + - "xlog/VALIDATION_CONTRACT.md" + - "xlog/HUMAN_VALIDATION.md" + per_slice_steps: + - id: source + action: "Fetch source text, structure, links, and required commentaries through Sefaria MCP." + output: "xlog/evidence//source-fetch-log.yaml" + - id: claims + action: "Extract source claims and classify each as fact, rule, condition, exception, authority, dispute, or example." + output: "xlog/evidence//source-claims.yaml" + - id: grounding + action: "Run ontology top-k predicate, atom, subgraph, and explain-evidence search before writing public predicates." + output: "xlog/evidence//grounding-ledger.yaml" + - id: encode + action: "Write XLOG modules and scenarios using documented XLOG syntax, scalar types, private helpers, use imports, and ?- queries." + output: "xlog/programs/**/.xlog" + - id: validate + action: "Run xlog run and xlog explain --format json; compare outputs against QA evidence; record WCOJ and epistemic boundaries when relevant." + output: "xlog/evidence//validation-report.md" + - id: review + action: "Open a PR or discussion with full source, grounding, formulas, scenarios, validation evidence, and human verdict schema." + output: "GitHub review artifact" + - id: merge + action: "Merge only after human approval and final validation rerun." + output: "closed goal-ledger entry" + +artifact_templates: + slice_id_template: "smicha86_u{unit_order:02d}_s{siman}_seif_{seif}" + branch_template: "encode/smicha86/u{unit_order:02d}/yd-{siman}/seif-{seif}" + evidence_dir_template: "xlog/evidence/smicha86/u{unit_order:02d}/yd_{siman}/seif_{seif}/" + program_dir_template: "xlog/programs/corpus/yoreh_deah/siman_{siman}/" + scenario_dir_template: "xlog/scenarios/smicha86/u{unit_order:02d}/yd_{siman}/seif_{seif}/" + +sequence: + - unit_order: 1 + unit_id: "u01_siman_87" + topic_en: "The Prohibition of Meat With Milk" + topic_tags: + - basar_bechalav + - meat_with_milk + simanim: + - order_in_unit: 1 + siman: 87 + ref: "Shulchan Arukh, Yoreh De'ah 87" + encoding_priority: primary + + - unit_order: 2 + unit_id: "u02_simanim_105_91" + topic_en: "The Rules of Taste Transfer" + topic_tags: + - taste_transfer + - bliot + simanim: + - order_in_unit: 1 + siman: 105 + ref: "Shulchan Arukh, Yoreh De'ah 105" + encoding_priority: primary + - order_in_unit: 2 + siman: 91 + ref: "Shulchan Arukh, Yoreh De'ah 91" + encoding_priority: primary + + - unit_order: 3 + unit_id: "u03_simanim_92_93" + topic_en: "Chaticha Na'asis Neveila; Non Ben-Yomo Utensil" + topic_tags: + - chaticha_naasis_neveila + - non_ben_yomo_utensil + - utensils + simanim: + - order_in_unit: 1 + siman: 92 + ref: "Shulchan Arukh, Yoreh De'ah 92" + encoding_priority: primary + - order_in_unit: 2 + siman: 93 + ref: "Shulchan Arukh, Yoreh De'ah 93" + encoding_priority: primary + + - unit_order: 4 + unit_id: "u04_simanim_94_95_96_97" + topic_en: "Parve Food in Meat or Dairy Utensils" + topic_tags: + - nat_bar_nat + - parve + - meat_utensils + - dairy_utensils + simanim: + - order_in_unit: 1 + siman: 94 + ref: "Shulchan Arukh, Yoreh De'ah 94" + encoding_priority: primary + - order_in_unit: 2 + siman: 95 + ref: "Shulchan Arukh, Yoreh De'ah 95" + encoding_priority: primary + - order_in_unit: 3 + siman: 96 + ref: "Shulchan Arukh, Yoreh De'ah 96" + encoding_priority: primary + - order_in_unit: 4 + siman: 97 + ref: "Shulchan Arukh, Yoreh De'ah 97" + encoding_priority: primary + + - unit_order: 5 + unit_id: "u05_simanim_98_99_100" + topic_en: "Nullification of Non-Kosher Taste; Nullification of a Complete Creature" + topic_tags: + - bitul + - taste_nullification + - beriah + simanim: + - order_in_unit: 1 + siman: 98 + ref: "Shulchan Arukh, Yoreh De'ah 98" + encoding_priority: primary + - order_in_unit: 2 + siman: 99 + ref: "Shulchan Arukh, Yoreh De'ah 99" + encoding_priority: primary + - order_in_unit: 3 + siman: 100 + ref: "Shulchan Arukh, Yoreh De'ah 100" + encoding_priority: primary + + - unit_order: 6 + unit_id: "u06_simanim_101_102_103" + topic_en: "Exceptions to the Laws of Nullification" + topic_tags: + - chaticha_hareuya_lehitchabed + - davar_sheyesh_lo_matirin + - noten_taam_lifgam + - bitul_exceptions + simanim: + - order_in_unit: 1 + siman: 101 + ref: "Shulchan Arukh, Yoreh De'ah 101" + encoding_priority: primary + - order_in_unit: 2 + siman: 102 + ref: "Shulchan Arukh, Yoreh De'ah 102" + encoding_priority: primary + - order_in_unit: 3 + siman: 103 + ref: "Shulchan Arukh, Yoreh De'ah 103" + encoding_priority: primary + + - unit_order: 7 + unit_id: "u07_simanim_104_106_107_108_109" + topic_en: "Small Non-Kosher Pieces in Kosher Liquid; Aroma; Non-Kosher Pieces Mixed With Kosher Pieces" + topic_tags: + - dry_in_liquid_mixture + - issur_davuk + - eggs_cooked_with_issur + - reicha + - dry_in_dry_mixture + simanim: + - order_in_unit: 1 + siman: 104 + ref: "Shulchan Arukh, Yoreh De'ah 104" + encoding_priority: primary + - order_in_unit: 2 + siman: 106 + ref: "Shulchan Arukh, Yoreh De'ah 106" + encoding_priority: primary + - order_in_unit: 3 + siman: 107 + ref: "Shulchan Arukh, Yoreh De'ah 107" + encoding_priority: primary + - order_in_unit: 4 + siman: 108 + ref: "Shulchan Arukh, Yoreh De'ah 108" + encoding_priority: primary + - order_in_unit: 5 + siman: 109 + ref: "Shulchan Arukh, Yoreh De'ah 109" + encoding_priority: primary + + - unit_order: 8 + unit_id: "u08_simanim_69_70_73_76" + topic_en: "Koshering Meat Through Salting; Salting Multiple Pieces; Roasting the Liver; Koshering Meat Through Roasting" + topic_tags: + - melicha + - salting_meat + - blood + - liver_roasting + - roasting_meat + simanim: + - order_in_unit: 1 + siman: 69 + ref: "Shulchan Arukh, Yoreh De'ah 69" + encoding_priority: primary + - order_in_unit: 2 + siman: 70 + ref: "Shulchan Arukh, Yoreh De'ah 70" + encoding_priority: primary + - order_in_unit: 3 + siman: 73 + ref: "Shulchan Arukh, Yoreh De'ah 73" + encoding_priority: primary + - order_in_unit: 4 + siman: 76 + ref: "Shulchan Arukh, Yoreh De'ah 76" + encoding_priority: primary + +derived_totals: + units: 8 + simanim: 24 + ordered_simanim: + - 87 + - 105 + - 91 + - 92 + - 93 + - 94 + - 95 + - 96 + - 97 + - 98 + - 99 + - 100 + - 101 + - 102 + - 103 + - 104 + - 106 + - 107 + - 108 + - 109 + - 69 + - 70 + - 73 + - 76 diff --git a/xlog/evidence/README.md b/xlog/evidence/README.md new file mode 100644 index 0000000000..14ab3318a4 --- /dev/null +++ b/xlog/evidence/README.md @@ -0,0 +1,31 @@ +# Evidence Artifacts + +Evidence directories are the audit trail for each law slice. + +Expected layout: + +```text +evidence/ + / + source-fetch-log.yaml + source-claims.yaml + grounding-ledger.yaml + evidence-manifest.yaml + qa-set.yaml + qa-run.yaml + validation-report.md + explain/ + transcripts/ + review/ +``` + +Retention rules: + +- Keep raw command transcripts or stable summaries sufficient to reproduce the + validation result. +- Link every evidence file from the PR or discussion. +- Do not replace old evidence silently after human review; create a new + iteration entry. +- Source text acquisition must be traceable to Sefaria MCP. +- Evidence files are part of merge scope. + diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml new file mode 100644 index 0000000000..bfad083440 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml @@ -0,0 +1,83 @@ +slice_id: smicha86_u01_s87_seif_1 +branch: codex/xlog-goal-bundle +commit: latest +generated_at: '2026-05-25T15:18:30Z' + +source: + fetch_log: xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml + source_claims: xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml + source_artifacts: + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/ref-clarify.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/siman-text.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-translations.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json + +ontology: + grounding_ledger: xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml + catalog_files: + - xlog/ontology/catalog.yaml + - xlog/ontology/aliases.yaml + - xlog/ontology/drift-policy.yaml + ontology_deltas: [] + +xlog: + programs: + - xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog + scenarios: + - xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog + expected_outputs: + - xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml + +validation: + validation_model: real_xlog_scenarios_only + qa_set: xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml + qa_run: xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml + validation_report: xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md + run_transcripts: + - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt + - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt + - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt + - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt + - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt + explain_outputs: + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/positive.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/negative.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json + regression_outputs: [] + wcoj_runtime_evidence: + relevant: false + explain_outputs: + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/positive.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/negative.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json + fallback_rows: [] + wcoj_rows: [] + dispatch_counters: [] + epistemic_evidence: + uses_epistemic_literals: false + mode: null + accepted_source_forms: [] + runtime_pilots: [] + rejection_artifacts: [] + +github: + pr_url: null + discussion_url: null + review_body: xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md + human_verdict_artifact: null + +traceability: + source_to_claim_complete: true + claim_to_rule_complete: true + rule_to_scenario_complete: true + scenario_to_explain_complete: true + human_verdict_complete: false diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json new file mode 100644 index 0000000000..d3f6bc0106 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json @@ -0,0 +1,145 @@ +{ + "parse": { + "statements": 18, + "cache_hits": 0, + "cache_misses": 18 + }, + "ast": { + "rules": 10, + "queries": 1, + "prob_queries": 0 + }, + "stratification": { + "status": "ok", + "strata": 2 + }, + "rir": { + "status": "error: Compilation error: Symbol literal case_non_cooked_benefit not valid for U64", + "sccs": 0 + }, + "optimizer": { + "status": "not_available", + "est_memory_peak": 0 + }, + "wcoj": { + "status": "reported" + }, + "magic_sets": { + "status": "disabled", + "adorned_predicates": [], + "generated_predicates": [], + "declined_reasons": [] + }, + "probability": { + "engine": "exact_ddnnf", + "aggregate_lifting_count": 0 + }, + "aggregate_lifting": [ + ], + "rule_provenance": [ + { + "rule_id": "rule:source:0:efa99539cc51c94d", + "head": "item(case_non_cooked_benefit)", + "source_kind": "source", + "source_span": "rule_index:0", + "generation_trace_hash": "efa99539cc51c94d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:1:bcaa6be6db010188", + "head": "food(case_non_cooked_benefit)", + "source_kind": "source", + "source_span": "rule_index:1", + "generation_trace_hash": "bcaa6be6db010188", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:2:8218ba6e02d367f4", + "head": "legal_category(case_non_cooked_benefit, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:2", + "generation_trace_hash": "8218ba6e02d367f4", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:3:2c5923faf4e7c95d", + "head": "legal_category(case_non_cooked_benefit, non_cooked_manner)", + "source_kind": "source", + "source_span": "rule_index:3", + "generation_trace_hash": "2c5923faf4e7c95d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:4:229535e04c44b7b9", + "head": "legal_category(case_non_cooked_benefit, not_torah_prohibited)", + "source_kind": "source", + "source_span": "rule_index:4", + "generation_trace_hash": "229535e04c44b7b9", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:5:a0270d84fcd199dd", + "head": "legal_category(case_non_cooked_benefit, benefit_context)", + "source_kind": "source", + "source_span": "rule_index:5", + "generation_trace_hash": "a0270d84fcd199dd", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:6:d10843e04112bb5c", + "head": "expected_normative(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)", + "source_kind": "source", + "source_span": "rule_index:6", + "generation_trace_hash": "d10843e04112bb5c", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:7:c0397aac5ecb52aa", + "head": "actual_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:7", + "generation_trace_hash": "c0397aac5ecb52aa", + "support_relation_ids": ["normative_outcome"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:8:0c883b52d0f09f1e", + "head": "missing_expected(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:8", + "generation_trace_hash": "0c883b52d0f09f1e", + "support_relation_ids": ["actual_normative", "expected_normative"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:9:a5fa9ffa626742dc", + "head": "unexpected_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:9", + "generation_trace_hash": "a5fa9ffa626742dc", + "support_relation_ids": ["actual_normative", "expected_normative"], + "counterexample_relation_ids": [] + } + ] +, + "proof_traces": [ + { + "query_id": "query:source:0:normative_outcome(World, case_non_cooked_benefit, Outcome, Claim)", + "query": "normative_outcome(World, case_non_cooked_benefit, Outcome, Claim)", + "answer_relation": "__xlog_query_0", + "rule_ids": [], + "source_facts": [], + "rejected_alternatives": [] + } + ] +, + "generated_rule_diagnostics": [ + ] +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json new file mode 100644 index 0000000000..9a7f72e82a --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json @@ -0,0 +1,208 @@ +{ + "parse": { + "statements": 25, + "cache_hits": 0, + "cache_misses": 25 + }, + "ast": { + "rules": 17, + "queries": 1, + "prob_queries": 0 + }, + "stratification": { + "status": "ok", + "strata": 2 + }, + "rir": { + "status": "ok", + "sccs": 11 + }, + "optimizer": { + "status": "ok", + "est_memory_peak": 0 + }, + "wcoj": { + "status": "reported" + }, + "magic_sets": { + "status": "disabled", + "adorned_predicates": [], + "generated_predicates": [], + "declined_reasons": [] + }, + "probability": { + "engine": "exact_ddnnf", + "aggregate_lifting_count": 0 + }, + "aggregate_lifting": [ + ], + "rule_provenance": [ + { + "rule_id": "rule:source:0:ee2f71481d4781e3", + "head": "item(case_uncooked_eating)", + "source_kind": "source", + "source_span": "rule_index:0", + "generation_trace_hash": "ee2f71481d4781e3", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:1:8a17ee98aac60c80", + "head": "food(case_uncooked_eating)", + "source_kind": "source", + "source_span": "rule_index:1", + "generation_trace_hash": "8a17ee98aac60c80", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:2:3f881742ea5894d0", + "head": "legal_category(case_uncooked_eating, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:2", + "generation_trace_hash": "3f881742ea5894d0", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:3:0bdebdc88a1c6109", + "head": "legal_category(case_uncooked_eating, non_cooked_manner)", + "source_kind": "source", + "source_span": "rule_index:3", + "generation_trace_hash": "0bdebdc88a1c6109", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:4:f6973515c595e41d", + "head": "legal_category(case_uncooked_eating, not_torah_prohibited)", + "source_kind": "source", + "source_span": "rule_index:4", + "generation_trace_hash": "f6973515c595e41d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:5:1d2b50fc90b96228", + "head": "legal_category(case_uncooked_eating, eating_context)", + "source_kind": "source", + "source_span": "rule_index:5", + "generation_trace_hash": "1d2b50fc90b96228", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:6:4af9d4c0082cf480", + "head": "item(case_uncooked_benefit)", + "source_kind": "source", + "source_span": "rule_index:6", + "generation_trace_hash": "4af9d4c0082cf480", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:7:32779b22f1b21409", + "head": "food(case_uncooked_benefit)", + "source_kind": "source", + "source_span": "rule_index:7", + "generation_trace_hash": "32779b22f1b21409", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:8:fed4c75f84a7c6f7", + "head": "legal_category(case_uncooked_benefit, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:8", + "generation_trace_hash": "fed4c75f84a7c6f7", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:9:32e01ae112262ee2", + "head": "legal_category(case_uncooked_benefit, non_cooked_manner)", + "source_kind": "source", + "source_span": "rule_index:9", + "generation_trace_hash": "32e01ae112262ee2", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:10:f6050c1a45caac88", + "head": "legal_category(case_uncooked_benefit, not_torah_prohibited)", + "source_kind": "source", + "source_span": "rule_index:10", + "generation_trace_hash": "f6050c1a45caac88", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:11:99a297548a794b86", + "head": "legal_category(case_uncooked_benefit, benefit_context)", + "source_kind": "source", + "source_span": "rule_index:11", + "generation_trace_hash": "99a297548a794b86", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:12:5b0186e405eed9e0", + "head": "expected_normative(mechaber, case_uncooked_eating, prohibited, claim_yd_87_1_rabbinic_all_forms)", + "source_kind": "source", + "source_span": "rule_index:12", + "generation_trace_hash": "5b0186e405eed9e0", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:13:4e65cd04d9c14647", + "head": "expected_normative(rema, case_uncooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)", + "source_kind": "source", + "source_span": "rule_index:13", + "generation_trace_hash": "4e65cd04d9c14647", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:14:c0397aac5ecb52aa", + "head": "actual_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:14", + "generation_trace_hash": "c0397aac5ecb52aa", + "support_relation_ids": ["normative_outcome"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:15:0c883b52d0f09f1e", + "head": "missing_expected(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:15", + "generation_trace_hash": "0c883b52d0f09f1e", + "support_relation_ids": ["actual_normative", "expected_normative"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:16:a5fa9ffa626742dc", + "head": "unexpected_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:16", + "generation_trace_hash": "a5fa9ffa626742dc", + "support_relation_ids": ["actual_normative", "expected_normative"], + "counterexample_relation_ids": [] + } + ] +, + "proof_traces": [ + { + "query_id": "query:source:0:normative_outcome(World, Item, Outcome, Claim)", + "query": "normative_outcome(World, Item, Outcome, Claim)", + "answer_relation": "__xlog_query_0", + "rule_ids": [], + "source_facts": [], + "rejected_alternatives": [] + } + ] +, + "generated_rule_diagnostics": [ + ] +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/negative.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/negative.json new file mode 100644 index 0000000000..4d0ba2db79 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/negative.json @@ -0,0 +1,109 @@ +{ + "parse": { + "statements": 11, + "cache_hits": 0, + "cache_misses": 11 + }, + "ast": { + "rules": 6, + "queries": 1, + "prob_queries": 0 + }, + "stratification": { + "status": "ok", + "strata": 1 + }, + "rir": { + "status": "error: Compilation error: Symbol literal case_meat_without_milk not valid for U64", + "sccs": 0 + }, + "optimizer": { + "status": "not_available", + "est_memory_peak": 0 + }, + "wcoj": { + "status": "reported" + }, + "magic_sets": { + "status": "disabled", + "adorned_predicates": [], + "generated_predicates": [], + "declined_reasons": [] + }, + "probability": { + "engine": "exact_ddnnf", + "aggregate_lifting_count": 0 + }, + "aggregate_lifting": [ + ], + "rule_provenance": [ + { + "rule_id": "rule:source:0:a68848c11e2c0362", + "head": "item(case_meat_without_milk)", + "source_kind": "source", + "source_span": "rule_index:0", + "generation_trace_hash": "a68848c11e2c0362", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:1:a707a679b44aef29", + "head": "food(case_meat_without_milk)", + "source_kind": "source", + "source_span": "rule_index:1", + "generation_trace_hash": "a707a679b44aef29", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:2:3ea103b4e18ebec1", + "head": "legal_category(case_meat_without_milk, meat_only)", + "source_kind": "source", + "source_span": "rule_index:2", + "generation_trace_hash": "3ea103b4e18ebec1", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:3:e7cc7dcaf553e18d", + "head": "legal_category(case_meat_without_milk, eating_context)", + "source_kind": "source", + "source_span": "rule_index:3", + "generation_trace_hash": "e7cc7dcaf553e18d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:4:c0397aac5ecb52aa", + "head": "actual_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:4", + "generation_trace_hash": "c0397aac5ecb52aa", + "support_relation_ids": ["normative_outcome"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:5:f9d12aba7ede03d5", + "head": "unexpected_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:5", + "generation_trace_hash": "f9d12aba7ede03d5", + "support_relation_ids": ["actual_normative"], + "counterexample_relation_ids": [] + } + ] +, + "proof_traces": [ + { + "query_id": "query:source:0:normative_outcome(World, case_meat_without_milk, Outcome, Claim)", + "query": "normative_outcome(World, case_meat_without_milk, Outcome, Claim)", + "answer_relation": "__xlog_query_0", + "rule_ids": [], + "source_facts": [], + "rejected_alternatives": [] + } + ] +, + "generated_rule_diagnostics": [ + ] +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/positive.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/positive.json new file mode 100644 index 0000000000..25d3a6c8bc --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/positive.json @@ -0,0 +1,172 @@ +{ + "parse": { + "statements": 21, + "cache_hits": 0, + "cache_misses": 21 + }, + "ast": { + "rules": 13, + "queries": 1, + "prob_queries": 0 + }, + "stratification": { + "status": "ok", + "strata": 2 + }, + "rir": { + "status": "error: Compilation error: Symbol literal case_cooked_meat_milk not valid for U64", + "sccs": 0 + }, + "optimizer": { + "status": "not_available", + "est_memory_peak": 0 + }, + "wcoj": { + "status": "reported" + }, + "magic_sets": { + "status": "disabled", + "adorned_predicates": [], + "generated_predicates": [], + "declined_reasons": [] + }, + "probability": { + "engine": "exact_ddnnf", + "aggregate_lifting_count": 0 + }, + "aggregate_lifting": [ + ], + "rule_provenance": [ + { + "rule_id": "rule:source:0:bbade8af9e2a0da9", + "head": "item(case_cooked_meat_milk)", + "source_kind": "source", + "source_span": "rule_index:0", + "generation_trace_hash": "bbade8af9e2a0da9", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:1:1ea90e03f3b9a260", + "head": "food(case_cooked_meat_milk)", + "source_kind": "source", + "source_span": "rule_index:1", + "generation_trace_hash": "1ea90e03f3b9a260", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:2:90f1823bf2c43508", + "head": "legal_category(case_cooked_meat_milk, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:2", + "generation_trace_hash": "90f1823bf2c43508", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:3:abbdd04ff2413320", + "head": "legal_category(case_cooked_meat_milk, cooked_meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:3", + "generation_trace_hash": "abbdd04ff2413320", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:4:e15c813b19f49168", + "head": "legal_category(case_cooked_meat_milk, cooking_context)", + "source_kind": "source", + "source_span": "rule_index:4", + "generation_trace_hash": "e15c813b19f49168", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:5:27ffa59b50ea30d0", + "head": "legal_category(case_cooked_meat_milk, eating_context)", + "source_kind": "source", + "source_span": "rule_index:5", + "generation_trace_hash": "27ffa59b50ea30d0", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:6:aee990776e882761", + "head": "legal_category(case_cooked_meat_milk, benefit_context)", + "source_kind": "source", + "source_span": "rule_index:6", + "generation_trace_hash": "aee990776e882761", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:7:40f1e9367f1437cf", + "head": "expected_normative(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_cooking)", + "source_kind": "source", + "source_span": "rule_index:7", + "generation_trace_hash": "40f1e9367f1437cf", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:8:f56b65d66e6f1dc5", + "head": "expected_normative(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_eating)", + "source_kind": "source", + "source_span": "rule_index:8", + "generation_trace_hash": "f56b65d66e6f1dc5", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:9:302968c5c10b5f2a", + "head": "expected_normative(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_benefit)", + "source_kind": "source", + "source_span": "rule_index:9", + "generation_trace_hash": "302968c5c10b5f2a", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:10:c0397aac5ecb52aa", + "head": "actual_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:10", + "generation_trace_hash": "c0397aac5ecb52aa", + "support_relation_ids": ["normative_outcome"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:11:0c883b52d0f09f1e", + "head": "missing_expected(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:11", + "generation_trace_hash": "0c883b52d0f09f1e", + "support_relation_ids": ["actual_normative", "expected_normative"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:12:a5fa9ffa626742dc", + "head": "unexpected_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:12", + "generation_trace_hash": "a5fa9ffa626742dc", + "support_relation_ids": ["actual_normative", "expected_normative"], + "counterexample_relation_ids": [] + } + ] +, + "proof_traces": [ + { + "query_id": "query:source:0:normative_outcome(World, case_cooked_meat_milk, Outcome, Claim)", + "query": "normative_outcome(World, case_cooked_meat_milk, Outcome, Claim)", + "answer_relation": "__xlog_query_0", + "rule_ids": [], + "source_facts": [], + "rejected_alternatives": [] + } + ] +, + "generated_rule_diagnostics": [ + ] +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json new file mode 100644 index 0000000000..b97c7b4346 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json @@ -0,0 +1,225 @@ +{ + "parse": { + "statements": 33, + "cache_hits": 0, + "cache_misses": 33 + }, + "ast": { + "rules": 18, + "queries": 2, + "prob_queries": 0 + }, + "stratification": { + "status": "ok", + "strata": 2 + }, + "rir": { + "status": "ok", + "sccs": 16 + }, + "optimizer": { + "status": "ok", + "est_memory_peak": 0 + }, + "wcoj": { + "status": "reported" + }, + "magic_sets": { + "status": "disabled", + "adorned_predicates": [], + "generated_predicates": [], + "declined_reasons": [] + }, + "probability": { + "engine": "exact_ddnnf", + "aggregate_lifting_count": 0 + }, + "aggregate_lifting": [ + ], + "rule_provenance": [ + { + "rule_id": "rule:source:0:0309f2fff3e8b9a9", + "head": "expected_claim(claim_yd_87_1_torah_cooking)", + "source_kind": "source", + "source_span": "rule_index:0", + "generation_trace_hash": "0309f2fff3e8b9a9", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:1:bd5a3fafc01eeb33", + "head": "expected_claim(claim_yd_87_1_torah_eating)", + "source_kind": "source", + "source_span": "rule_index:1", + "generation_trace_hash": "bd5a3fafc01eeb33", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:2:063aa934d2f78430", + "head": "expected_claim(claim_yd_87_1_torah_benefit)", + "source_kind": "source", + "source_span": "rule_index:2", + "generation_trace_hash": "063aa934d2f78430", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:3:8ec00830f4b6ff93", + "head": "expected_claim(claim_yd_87_1_cooked_condition)", + "source_kind": "source", + "source_span": "rule_index:3", + "generation_trace_hash": "8ec00830f4b6ff93", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:4:3841a58e183a730c", + "head": "expected_claim(claim_yd_87_1_rabbinic_all_forms)", + "source_kind": "source", + "source_span": "rule_index:4", + "generation_trace_hash": "3841a58e183a730c", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:5:5c9d75963cf8627e", + "head": "expected_claim(claim_yd_87_1_rema_benefit_non_torah)", + "source_kind": "source", + "source_span": "rule_index:5", + "generation_trace_hash": "5c9d75963cf8627e", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:6:7bb41772d9635997", + "head": "actual_claim(Claim)", + "source_kind": "source", + "source_span": "rule_index:6", + "generation_trace_hash": "7bb41772d9635997", + "support_relation_ids": ["source_claim"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:7:501319082174c573", + "head": "missing_claim(Claim)", + "source_kind": "source", + "source_span": "rule_index:7", + "generation_trace_hash": "501319082174c573", + "support_relation_ids": ["actual_claim", "expected_claim"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:8:4f6e3cf4b82ca288", + "head": "unexpected_claim(Claim)", + "source_kind": "source", + "source_span": "rule_index:8", + "generation_trace_hash": "4f6e3cf4b82ca288", + "support_relation_ids": ["actual_claim", "expected_claim"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:9:e80d4e4d65254576", + "head": "expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_cooking)", + "source_kind": "source", + "source_span": "rule_index:9", + "generation_trace_hash": "e80d4e4d65254576", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:10:e5c6bf7bec45168a", + "head": "expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_eating)", + "source_kind": "source", + "source_span": "rule_index:10", + "generation_trace_hash": "e5c6bf7bec45168a", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:11:6dc7b801d909c514", + "head": "expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_benefit)", + "source_kind": "source", + "source_span": "rule_index:11", + "generation_trace_hash": "6dc7b801d909c514", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:12:c94d60626782538e", + "head": "expected_support(rule_yd_87_1_cooked_condition, claim_yd_87_1_cooked_condition)", + "source_kind": "source", + "source_span": "rule_index:12", + "generation_trace_hash": "c94d60626782538e", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:13:931e7f605911c356", + "head": "expected_support(rule_yd_87_1_rabbinic_all_forms, claim_yd_87_1_rabbinic_all_forms)", + "source_kind": "source", + "source_span": "rule_index:13", + "generation_trace_hash": "931e7f605911c356", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:14:0872b43b7a1b2d8e", + "head": "expected_support(rule_yd_87_1_rema_benefit_non_torah, claim_yd_87_1_rema_benefit_non_torah)", + "source_kind": "source", + "source_span": "rule_index:14", + "generation_trace_hash": "0872b43b7a1b2d8e", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:15:c5aae15398d1fdd1", + "head": "actual_support(Rule, Claim)", + "source_kind": "source", + "source_span": "rule_index:15", + "generation_trace_hash": "c5aae15398d1fdd1", + "support_relation_ids": ["supports_claim"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:16:763a75bfaaf0df2e", + "head": "missing_support(Rule, Claim)", + "source_kind": "source", + "source_span": "rule_index:16", + "generation_trace_hash": "763a75bfaaf0df2e", + "support_relation_ids": ["actual_support", "expected_support"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:17:6c6a74236ade7bb1", + "head": "unexpected_support(Rule, Claim)", + "source_kind": "source", + "source_span": "rule_index:17", + "generation_trace_hash": "6c6a74236ade7bb1", + "support_relation_ids": ["actual_support", "expected_support"], + "counterexample_relation_ids": [] + } + ] +, + "proof_traces": [ + { + "query_id": "query:source:0:source_claim(Claim, ref_yd_87_1, Text)", + "query": "source_claim(Claim, ref_yd_87_1, Text)", + "answer_relation": "__xlog_query_0", + "rule_ids": [], + "source_facts": [], + "rejected_alternatives": [] + }, + { + "query_id": "query:source:1:supports_claim(Rule, Claim)", + "query": "supports_claim(Rule, Claim)", + "answer_relation": "__xlog_query_1", + "rule_ids": [], + "source_facts": [], + "rejected_alternatives": [] + } + ] +, + "generated_rule_diagnostics": [ + ] +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml new file mode 100644 index 0000000000..fbf5e75007 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml @@ -0,0 +1,188 @@ +slice_id: smicha86_u01_s87_seif_1 +generated_at: '2026-05-25T15:06:58Z' +catalog_version: 1 +drift_policy_version: 1 + +search_surfaces: + predicate_catalog: xlog/ontology/catalog.yaml + aliases: xlog/ontology/aliases.yaml + atom_examples: "No prior XLOG corpus atoms found before first slice." + rule_subgraph: "No prior XLOG rule subgraph found before first slice." + explanations: "No prior explain artifacts found before first slice." + +predicate_decisions: + - intent_id: intent_source_ref + intent: "Identify the exact Sefaria source reference backing this slice." + proposed_name: source_ref + proposed_arity: 2 + selected_canonical: source_ref + selected_arity: 2 + decision: auto_reuse + score: 1.0 + runner_up_delta: 1.0 + high_confidence_auto_reuse: true + used_in_files: + - xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog + top_k_predicates: + - name: source_ref + arity: 2 + score: 1.0 + reason: "Exact catalog match for source reference provenance." + top_k_atoms: [] + top_k_subgraphs: [] + rejected_aliases: [] + review_required: false + review_note: "" + - intent_id: intent_source_claim + intent: "Record normalized source claims extracted from the seif." + proposed_name: source_claim + proposed_arity: 3 + selected_canonical: source_claim + selected_arity: 3 + decision: auto_reuse + score: 1.0 + runner_up_delta: 1.0 + high_confidence_auto_reuse: true + used_in_files: + - xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog + top_k_predicates: + - name: source_claim + arity: 3 + score: 1.0 + reason: "Exact catalog match for source-backed semantic claim." + top_k_atoms: [] + top_k_subgraphs: [] + rejected_aliases: [] + review_required: false + review_note: "" + - intent_id: intent_supports_claim + intent: "Link each encoded rule id to the claim it implements." + proposed_name: supports_claim + proposed_arity: 2 + selected_canonical: supports_claim + selected_arity: 2 + decision: auto_reuse + score: 1.0 + runner_up_delta: 1.0 + high_confidence_auto_reuse: true + used_in_files: + - xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog + top_k_predicates: + - name: supports_claim + arity: 2 + score: 1.0 + reason: "Exact catalog match for rule-to-claim provenance." + top_k_atoms: [] + top_k_subgraphs: [] + rejected_aliases: [] + review_required: false + review_note: "" + - intent_id: intent_authority_world + intent: "Represent Mechaber and Rema authority contexts without epistemic literals." + proposed_name: holds_in + proposed_arity: 3 + selected_canonical: holds_in + selected_arity: 3 + decision: auto_reuse + score: 1.0 + runner_up_delta: 1.0 + high_confidence_auto_reuse: true + used_in_files: + - xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog + top_k_predicates: + - name: holds_in + arity: 3 + score: 1.0 + reason: "Catalog authority/world claim relation." + - name: authority + arity: 1 + score: 0.95 + reason: "Companion declaration predicate for source voices." + - name: world + arity: 1 + score: 0.95 + reason: "Companion declaration predicate for reasoning contexts." + top_k_atoms: [] + top_k_subgraphs: [] + rejected_aliases: [] + review_required: false + review_note: "" + - intent_id: intent_case_taxonomy + intent: "Classify validation cases by mixture, cooking, action, and Torah-status categories." + proposed_name: legal_category + proposed_arity: 2 + selected_canonical: legal_category + selected_arity: 2 + decision: auto_reuse + score: 0.96 + runner_up_delta: 0.12 + high_confidence_auto_reuse: true + used_in_files: + - xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog + top_k_predicates: + - name: legal_category + arity: 2 + score: 0.96 + reason: "Catalog relation for assigning legal categories to items or actions." + - name: food_category + arity: 2 + score: 0.84 + reason: "Narrower food-specific category; not enough for action and Torah-status categories." + - name: condition + arity: 2 + score: 0.72 + reason: "Used for claim conditions, not scenario item classification." + top_k_atoms: [] + top_k_subgraphs: [] + rejected_aliases: + - food_cat + review_required: false + review_note: "" + - intent_id: intent_normative_outcome + intent: "Emit prohibited or permitted legal outcomes in an authority world with source support." + proposed_name: prohibited + proposed_arity: 4 + selected_canonical: normative_outcome + selected_arity: 4 + decision: auto_reuse + score: 0.94 + runner_up_delta: 0.24 + high_confidence_auto_reuse: true + used_in_files: + - xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog + top_k_predicates: + - name: normative_outcome + arity: 4 + score: 0.94 + reason: "Catalog normative relation with world, item, outcome, and source claim." + - name: condition + arity: 2 + score: 0.50 + reason: "Captures preconditions but not legal output." + top_k_atoms: [] + top_k_subgraphs: [] + rejected_aliases: + - permitted + - prohibited + review_required: false + review_note: "Outcome values use permitted/prohibited as symbols; forbidden alias predicates are not introduced." + +new_public_predicate_proposals: [] +private_helpers: [] + +gate: + public_predicate_grounding_coverage: "17/17" + high_confidence_auto_reuse_complete: true + unreviewed_public_predicates: [] + status: pass + diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml new file mode 100644 index 0000000000..277ea0b8fe --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml @@ -0,0 +1,70 @@ +slice_id: smicha86_u01_s87_seif_1 +generated_at: '2026-05-25T15:22:41+00:00' +validation_model: real_xlog_scenarios_only +machine_status: pass +scenarios: +- scenario: positive + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog + validation_model: xlog_scenario_constraints + run_command: xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog --module-path + xlog/programs --stats --stats-format json + run_exit_code: 0 + run_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt + explain_command: xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog + explain_exit_code: 0 + explain_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.explain.txt + explain_output: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/positive.json + output_rows: 3 + status: pass +- scenario: negative + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog + validation_model: xlog_scenario_constraints + run_command: xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog --module-path + xlog/programs --stats --stats-format json + run_exit_code: 0 + run_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt + explain_command: xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog + explain_exit_code: 0 + explain_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.explain.txt + explain_output: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/negative.json + output_rows: 0 + status: pass +- scenario: boundary + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog + validation_model: xlog_scenario_constraints + run_command: xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog --module-path + xlog/programs --stats --stats-format json + run_exit_code: 0 + run_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt + explain_command: xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog + explain_exit_code: 0 + explain_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.explain.txt + explain_output: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json + output_rows: 1 + status: pass +- scenario: conflict + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog + validation_model: xlog_scenario_constraints + run_command: xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog --module-path + xlog/programs --stats --stats-format json + run_exit_code: 0 + run_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt + explain_command: xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog + explain_exit_code: 0 + explain_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.explain.txt + explain_output: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json + output_rows: 2 + status: pass +- scenario: provenance + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog + validation_model: xlog_scenario_constraints + run_command: xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog --module-path + xlog/programs --stats --stats-format json + run_exit_code: 0 + run_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt + explain_command: xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog + explain_exit_code: 0 + explain_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.explain.txt + explain_output: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json + output_rows: 12 + status: pass diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml new file mode 100644 index 0000000000..8be47bd150 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml @@ -0,0 +1,65 @@ +slice_id: smicha86_u01_s87_seif_1 +generated_at: '2026-05-25T15:06:58Z' +validation_model: "real_xlog_scenarios_only" +machine_validation_implemented_in: "scenario-local XLOG constraints" +expected_outputs_are_review_evidence_only: true + +scenarios: + - id: positive + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog + purpose: "Cooked meat-with-milk case produces Torah-level cooking, eating, and benefit prohibitions." + source_claims: + - claim_yd_87_1_torah_cooking + - claim_yd_87_1_torah_eating + - claim_yd_87_1_torah_benefit + expected_outputs: + - "normative_outcome(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_cooking)" + - "normative_outcome(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_eating)" + - "normative_outcome(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_benefit)" + - id: negative + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog + purpose: "Meat without milk does not trigger this seif's meat-with-milk outcomes." + source_claims: + - claim_yd_87_1_cooked_condition + expected_outputs: [] + - id: boundary + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog + purpose: "Non-cooked benefit case is outside Torah prohibition and uses the Rema benefit permission." + source_claims: + - claim_yd_87_1_cooked_condition + - claim_yd_87_1_rema_benefit_non_torah + expected_outputs: + - "normative_outcome(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)" + - id: conflict + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog + purpose: "Authority-sensitive case keeps non-cooked eating prohibition separate from Rema's benefit permission." + source_claims: + - claim_yd_87_1_rabbinic_all_forms + - claim_yd_87_1_rema_benefit_non_torah + expected_outputs: + - "normative_outcome(mechaber, case_uncooked_eating, prohibited, claim_yd_87_1_rabbinic_all_forms)" + - "normative_outcome(rema, case_uncooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)" + required_if: "authority gloss or claim qualification is present" + - id: provenance + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog + purpose: "Rules and source claims can be queried from the executable program." + source_claims: + - claim_yd_87_1_torah_cooking + - claim_yd_87_1_torah_eating + - claim_yd_87_1_torah_benefit + - claim_yd_87_1_cooked_condition + - claim_yd_87_1_rabbinic_all_forms + - claim_yd_87_1_rema_benefit_non_torah + expected_outputs: + - "source_claim(claim_yd_87_1_torah_cooking, ref_yd_87_1, _)" + - "source_claim(claim_yd_87_1_torah_eating, ref_yd_87_1, _)" + - "source_claim(claim_yd_87_1_torah_benefit, ref_yd_87_1, _)" + - "source_claim(claim_yd_87_1_cooked_condition, ref_yd_87_1, _)" + - "source_claim(claim_yd_87_1_rabbinic_all_forms, ref_yd_87_1, _)" + - "source_claim(claim_yd_87_1_rema_benefit_non_torah, ref_yd_87_1, _)" + - "supports_claim(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_cooking)" + - "supports_claim(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_eating)" + - "supports_claim(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_benefit)" + - "supports_claim(rule_yd_87_1_cooked_condition, claim_yd_87_1_cooked_condition)" + - "supports_claim(rule_yd_87_1_rabbinic_all_forms, claim_yd_87_1_rabbinic_all_forms)" + - "supports_claim(rule_yd_87_1_rema_benefit_non_torah, claim_yd_87_1_rema_benefit_non_torah)" diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md b/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md new file mode 100644 index 0000000000..ce97643888 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md @@ -0,0 +1,116 @@ +# Mistaber XLOG Human Validation PR + +- Slice id: `smicha86_u01_s87_seif_1` +- Branch: `codex/xlog-goal-bundle` +- Commit for review: `latest` +- Lifecycle state: `awaiting_human` +- Related discussion: none +- Evidence manifest: `xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml` + +## Human Reviewer Request + +Please validate whether the encoded XLOG law faithfully represents `Shulchan Arukh, Yoreh De'ah 87:1`. +Approval is semantic approval of the law encoding at the commit listed above; merge still requires machine validation after approval. +All source material was fetched through Sefaria MCP. + +## Sources From Sefaria MCP + +| Source ref | MCP evidence file | Version or language notes | Used for claim ids | +| --- | --- | --- | --- | +| `Shulchan Arukh, Yoreh De'ah 87:1` | `xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json` | Hebrew: Ashlei Ravrevei, Lemberg 1888 | `claim_yd_87_1_torah_cooking`, `claim_yd_87_1_torah_eating`, `claim_yd_87_1_torah_benefit`, `claim_yd_87_1_cooked_condition`, `claim_yd_87_1_rabbinic_all_forms`, `claim_yd_87_1_rema_benefit_non_torah` | +| `Shulchan Arukh, Yoreh De'ah 87:1` | `xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-translations.json` | English translations listed for reviewer aid | same | +| `Shulchan Arukh, Yoreh De'ah 87:1` | `xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json` | Commentary/link inventory | same | + +## Legal Claim Table + +| Claim id | Source ref | Claim summary | Encoding role | Needs escalation | +| --- | --- | --- | --- | --- | +| `claim_yd_87_1_torah_cooking` | `YD 87:1` | Torah source assigns meat-with-milk prohibition to cooking. | rule | no | +| `claim_yd_87_1_torah_eating` | `YD 87:1` | Torah source assigns meat-with-milk prohibition to eating. | rule | no | +| `claim_yd_87_1_torah_benefit` | `YD 87:1` | Torah source assigns meat-with-milk prohibition to benefit. | rule | no | +| `claim_yd_87_1_cooked_condition` | `YD 87:1` | Torah-level prohibition applies only through cooking. | condition | no | +| `claim_yd_87_1_rabbinic_all_forms` | `YD 87:1` | Rabbinic law prohibits meat-with-milk mixtures beyond Torah cooking form. | rule | no | +| `claim_yd_87_1_rema_benefit_non_torah` | `YD 87:1` | Rema permits benefit from mixtures not prohibited at Torah level. | exception | no | + +## XLOG Encoding Summary + +Changed files: + +- `xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog` +- `xlog/scenarios/smicha86/u01/yd_87/seif_1/*.xlog` +- `xlog/evidence/smicha86/u01/yd_87/seif_1/**` + +Public predicates used: + +| Predicate | Arity | Canonical catalog entry | Grounding decision | Evidence | +| --- | ---: | --- | --- | --- | +| `source_ref` | 2 | yes | auto_reuse | `grounding-ledger.yaml` | +| `source_claim` | 3 | yes | auto_reuse | `grounding-ledger.yaml` | +| `supports_claim` | 2 | yes | auto_reuse | `grounding-ledger.yaml` | +| `authority` | 1 | yes | auto_reuse | `grounding-ledger.yaml` | +| `world` | 1 | yes | auto_reuse | `grounding-ledger.yaml` | +| `holds_in` | 3 | yes | auto_reuse | `grounding-ledger.yaml` | +| `item` | 1 | yes | auto_reuse | `grounding-ledger.yaml` | +| `food` | 1 | yes | auto_reuse | `grounding-ledger.yaml` | +| `legal_category` | 2 | yes | auto_reuse | `grounding-ledger.yaml` | +| `condition` | 2 | yes | auto_reuse | `grounding-ledger.yaml` | +| `normative_outcome` | 4 | yes | auto_reuse | `grounding-ledger.yaml` | + +Encoded formulas and rules are in `xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog`. +The scenario files encode expected behavior with XLOG constraints; the validator does not check text strings in output. + +## Ontology Grounding + +Grounding ledger: + +- `xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml` + +New public ontology deltas: + +- None. + +## Validation Scenarios + +| Scenario | Purpose | Validation model | Run evidence | +| --- | --- | --- | --- | +| positive | Cooked meat-with-milk produces cooking, eating, and benefit prohibitions. | XLOG constraints in scenario | `transcripts/positive.run.txt` | +| negative | Meat without milk produces no meat-with-milk outcome. | XLOG constraints in scenario | `transcripts/negative.run.txt` | +| boundary | Non-cooked benefit uses Rema benefit permission. | XLOG constraints in scenario | `transcripts/boundary.run.txt` | +| conflict | Non-cooked eating prohibition and non-cooked benefit permission remain authority-sensitive. | XLOG constraints in scenario | `transcripts/conflict.run.txt` | +| provenance | Source claims and rule-support facts are queryable. | XLOG constraints in scenario | `transcripts/provenance.run.txt` | + +## Machine Validation Evidence + +- Validation report: `xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md` +- `xlog run` transcripts: `xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/*.run.txt` +- `xlog explain` evidence: `xlog/evidence/smicha86/u01/yd_87/seif_1/explain/*.json` +- Regression evidence: first XLOG corpus slice; no unrelated prior XLOG scenario changed +- Final artifact manifest: `xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml` + +## Reviewer Checklist + +- [ ] Source references are sufficient and came through Sefaria MCP. +- [ ] Legal claims match the cited source. +- [ ] XLOG rules encode the claims without adding unsupported assumptions. +- [ ] Authority, dispute, and exception handling are faithful where relevant. +- [ ] Ontology reuse is acceptable. +- [ ] Validation scenarios cover the meaningful cases. +- [ ] Evidence links are complete. + +## Required Verdict + +Paste one verdict block in a PR comment: + +```yaml +human_verdict: + slice_id: "smicha86_u01_s87_seif_1" + commit: "latest" + verdict: approved + reviewer: "" + reviewed_at: "" +``` + +Allowed verdicts: + +- `changes_requested` +- `domain_escalation_required` diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml new file mode 100644 index 0000000000..1e6b1dcc49 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml @@ -0,0 +1,67 @@ +slice_id: smicha86_u01_s87_seif_1 +generated_at: '2026-05-25T15:06:58Z' + +claims: + - id: claim_yd_87_1_torah_cooking + source_ref: ref_yd_87_1 + sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" + source_span: "Segment 1, first Torah derivation" + normalized_claim: "Torah source assigns a meat-with-milk prohibition to cooking." + claim_role: rule + certainty: direct + notes: "One of the three occurrences of the verse is read as a cooking prohibition." + encoded_by: + - rule_yd_87_1_torah_cooking + - id: claim_yd_87_1_torah_eating + source_ref: ref_yd_87_1 + sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" + source_span: "Segment 1, second Torah derivation" + normalized_claim: "Torah source assigns a meat-with-milk prohibition to eating." + claim_role: rule + certainty: direct + notes: "The eating prohibition is expressed through cooking language." + encoded_by: + - rule_yd_87_1_torah_eating + - id: claim_yd_87_1_torah_benefit + source_ref: ref_yd_87_1 + sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" + source_span: "Segment 1, third Torah derivation" + normalized_claim: "Torah source assigns a meat-with-milk prohibition to deriving benefit." + claim_role: rule + certainty: direct + notes: "The third occurrence is read as a benefit prohibition." + encoded_by: + - rule_yd_87_1_torah_benefit + - id: claim_yd_87_1_cooked_condition + source_ref: ref_yd_87_1 + sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" + source_span: "Segment 1, condition clause" + normalized_claim: "Torah-level meat-with-milk prohibition applies only through cooking." + claim_role: condition + certainty: direct + notes: "This slice models the condition as cooked_meat_milk_mixture." + encoded_by: + - rule_yd_87_1_cooked_condition + - id: claim_yd_87_1_rabbinic_all_forms + source_ref: ref_yd_87_1 + sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" + source_span: "Segment 1, rabbinic extension clause" + normalized_claim: "Rabbinic law prohibits meat-with-milk mixtures beyond Torah cooking form." + claim_role: rule + certainty: direct + notes: "Encoded for non-cooked eating scenarios; benefit handling is separated because of the Rema gloss." + encoded_by: + - rule_yd_87_1_rabbinic_all_forms + - id: claim_yd_87_1_rema_benefit_non_torah + source_ref: ref_yd_87_1 + sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" + source_span: "Segment 1, Rema gloss" + normalized_claim: "Rema permits benefit from meat-with-milk mixtures not prohibited at Torah level." + claim_role: exception + certainty: direct + notes: "Kept as a Rema-world outcome and reviewed separately from the Mechaber-coded prohibitions." + encoded_by: + - rule_yd_87_1_rema_benefit_non_torah + +open_questions: [] + diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml new file mode 100644 index 0000000000..28cd77eb5f --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml @@ -0,0 +1,72 @@ +slice_id: smicha86_u01_s87_seif_1 +generated_at: '2026-05-25T15:03:56+00:00' +required_source_connector: Sefaria MCP +direct_http_used: false +manual_transcription_used: false +requests: +- request_id: ref-clarify + mcp_server: sefaria-texts + mcp_tool: clarify_name_argument + requested_ref: Shulchan Arukh, Yoreh Deah 87:1 + normalized_ref: Shulchan Arukh, Yoreh De'ah 87:1 + language: both + version_title: null + version_language: null + retrieved_at: '2026-05-25T15:03:56+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/ref-clarify.json +- request_id: siman-text + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Shulchan Arukh, Yoreh Deah 87 + normalized_ref: Shulchan Arukh, Yoreh De'ah 87 + language: he + version_title: 'Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888' + version_language: hebrew + retrieved_at: '2026-05-25T15:03:57+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/siman-text.json +- request_id: seif-text + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Shulchan Arukh, Yoreh Deah 87:1 + normalized_ref: Shulchan Arukh, Yoreh De'ah 87:1 + language: he + version_title: 'Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888' + version_language: hebrew + retrieved_at: '2026-05-25T15:03:57+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json +- request_id: seif-translations + mcp_server: sefaria-texts + mcp_tool: get_english_translations + requested_ref: Shulchan Arukh, Yoreh Deah 87:1 + normalized_ref: Shulchan Arukh, Yoreh De'ah 87:1 + language: en + version_title: null + version_language: null + retrieved_at: '2026-05-25T15:03:57+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-translations.json +- request_id: seif-links + mcp_server: sefaria-texts + mcp_tool: get_links_between_texts + requested_ref: Shulchan Arukh, Yoreh Deah 87:1 + normalized_ref: Shulchan Arukh, Yoreh De'ah 87:1 + language: both + version_title: null + version_language: null + retrieved_at: '2026-05-25T15:03:58+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json +source_refs: +- ref_id: ref_yd_87_1 + sefaria_ref: Shulchan Arukh, Yoreh De'ah 87:1 + display_ref: Yoreh Deah 87:1 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json + used_for_claims: + - claim_yd_87_1_torah_cooking + - claim_yd_87_1_torah_eating + - claim_yd_87_1_torah_benefit + - claim_yd_87_1_cooked_condition + - claim_yd_87_1_rabbinic_all_forms + - claim_yd_87_1_rema_benefit_non_torah +integrity: + all_sources_from_sefaria_mcp: true + unresolved_version_notes: [] + unresolved_translation_notes: [] diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/ref-clarify.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/ref-clarify.json new file mode 100644 index 0000000000..fb5b2ffcd9 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/ref-clarify.json @@ -0,0 +1,126 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "clarify_name_argument", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "addressExamples": [ + "3", + "6" + ], + "book": "Shulchan Arukh, Yoreh De'ah", + "completion_objects": [ + { + "is_primary": true, + "key": [ + "Halakhah", + "Shulchan Arukh" + ], + "order": 2000000, + "title": "Shulchan Arukh", + "topic_pools": [], + "type": "TocCategory" + }, + { + "is_primary": true, + "key": "shulchan-arukh", + "order": 4999971, + "title": "Shulchan Arukh", + "topic_pools": [ + "sheets" + ], + "type": "Topic" + }, + { + "is_primary": true, + "key": "Shulchan Arukh HaRav", + "order": 1000000, + "title": "Shulchan Arukh HaRav", + "type": "ref" + }, + { + "is_primary": true, + "key": [ + "Halakhah", + "Shulchan Arukh HaRav" + ], + "order": 2000000, + "title": "Shulchan Arukh HaRav", + "topic_pools": [], + "type": "TocCategory" + }, + { + "is_primary": false, + "key": "Shulchan Arukh, Yoreh De'ah", + "order": 1000000, + "title": "Shulchan Arukh, Yoreh Deah", + "type": "ref" + }, + { + "is_primary": true, + "key": "Shulchan Arukh HaRav, Yoreh Deah", + "order": 1000000, + "title": "Shulchan Arukh HaRav, Yoreh Deah", + "type": "ref" + }, + { + "is_primary": false, + "key": "Siftei Kohen on Shulchan Arukh, Yoreh De'ah", + "order": 1000000, + "title": "Shakh on Shulchan Arukh Yoreh Deah", + "type": "ref" + } + ], + "completions": [ + "Shulchan Arukh", + "Shulchan Arukh HaRav", + "Shulchan Arukh, Yoreh Deah", + "Shulchan Arukh HaRav, Yoreh Deah", + "Shakh on Shulchan Arukh Yoreh Deah" + ], + "examples": [], + "heAddressExamples": [ + "ג׳", + "ו׳" + ], + "heSectionNames": [ + "סימן", + "סעיף" + ], + "index": "Shulchan Arukh, Yoreh De'ah", + "internalSections": [ + 87, + 1 + ], + "internalToSections": [ + 87, + 1 + ], + "is_book": false, + "is_node": false, + "is_range": false, + "is_ref": true, + "is_section": false, + "is_segment": true, + "lang": "en", + "ref": "Shulchan Arukh, Yoreh De'ah 87:1", + "sectionNames": [ + "Siman", + "Seif" + ], + "sections": [ + "87", + "1" + ], + "toSections": [ + "87", + "1" + ], + "type": "ref", + "url": "Shulchan_Arukh,_Yoreh_De'ah.87.1" + }, + "request": { + "limit": 5, + "name": "Shulchan Arukh, Yoreh Deah 87:1" + }, + "retrieved_at": "2026-05-25T15:03:56+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json new file mode 100644 index 0000000000..4f005865ea --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json @@ -0,0 +1,488 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_links_between_texts", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": [ + { + "anchorText": "", + "category": "Commentary", + "ref": "Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1", + "sourceRef": "Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Halakhah", + "ref": "Tur, Yoreh De'ah 87:1", + "sourceRef": "Tur, Yoreh De'ah 87:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Yad Ephraim on Shulchan Arukh, Yoreh De'ah 87:1", + "sourceRef": "Yad Ephraim on Shulchan Arukh, Yoreh De'ah 87:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Yad Avraham on Shulchan Arukh, Yoreh Deah 87:1", + "sourceRef": "Yad Avraham on Shulchan Arukh, Yoreh Deah 87:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Yad Avraham on Shulchan Arukh, Yoreh Deah 87:2", + "sourceRef": "Yad Avraham on Shulchan Arukh, Yoreh Deah 87:2", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Yad Avraham on Shulchan Arukh, Yoreh Deah 87:3", + "sourceRef": "Yad Avraham on Shulchan Arukh, Yoreh Deah 87:3", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1", + "sourceRef": "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1", + "sourceRef": "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Quoting Commentary", + "ref": "Yad Avraham on Shulchan Arukh, Yoreh Deah 87:6", + "sourceRef": "Yad Avraham on Shulchan Arukh, Yoreh Deah 87:6", + "type": "" + }, + { + "anchorText": "", + "category": "Quoting Commentary", + "ref": "The Kehot Chumash; A Chasidic Commentary, Genesis 18:8:1", + "sourceRef": "The Kehot Chumash; A Chasidic Commentary, Genesis 18:8:1", + "type": "" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Ba'er Hetev on Shulchan Arukh, Yoreh De'ah 87:1", + "sourceRef": "Ba'er Hetev on Shulchan Arukh, Yoreh De'ah 87:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Ba'er Hetev on Shulchan Arukh, Yoreh De'ah 87:2", + "sourceRef": "Ba'er Hetev on Shulchan Arukh, Yoreh De'ah 87:2", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Talmud", + "ref": "Nazir 37a:12", + "sourceRef": "Nazir 37a:12", + "type": "ein mishpat / ner mitsvah" + }, + { + "anchorText": "", + "category": "Halakhah", + "ref": "Mishneh Torah, Forbidden Foods 9:1", + "sourceRef": "Mishneh Torah, Forbidden Foods 9:1", + "type": "ein mishpat / ner mitsvah" + }, + { + "anchorText": "", + "category": "Halakhah", + "ref": "Sefer Mitzvot Gadol, Negative Commandments 140", + "sourceRef": "Sefer Mitzvot Gadol, Negative Commandments 140", + "type": "ein mishpat / ner mitsvah" + }, + { + "anchorText": "", + "category": "Halakhah", + "ref": "Sefer Mitzvot Gadol, Negative Commandments 141", + "sourceRef": "Sefer Mitzvot Gadol, Negative Commandments 141", + "type": "ein mishpat / ner mitsvah" + }, + { + "anchorText": "", + "category": "Talmud", + "ref": "Kiddushin 57b:9", + "sourceRef": "Kiddushin 57b:9", + "type": "ein mishpat / ner mitsvah" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:2:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:2:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:3:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:3:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:4:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:4:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:5:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:5:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:6:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:6:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:7:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:7:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:8:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:8:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:9:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:9:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:10:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:10:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:11:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:11:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:12:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:12:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:13:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:13:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:14:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:14:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:15:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:15:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:16:1", + "sourceRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:16:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1", + "sourceRef": "Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:2", + "sourceRef": "Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:2", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:3", + "sourceRef": "Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:3", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1", + "sourceRef": "Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:2", + "sourceRef": "Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:2", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1", + "sourceRef": "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:2", + "sourceRef": "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:2", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:3", + "sourceRef": "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:3", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:4", + "sourceRef": "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:4", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Talmud", + "ref": "Chullin 115b:18", + "sourceRef": "Chullin 115b:18", + "type": "ein mishpat / ner mitsvah" + }, + { + "anchorText": "", + "category": "Quoting Commentary", + "ref": "Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4", + "sourceRef": "Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4", + "type": "super_commentary" + }, + { + "anchorText": "", + "category": "Quoting Commentary", + "ref": "Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1", + "sourceRef": "Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1", + "type": "super_commentary" + }, + { + "anchorText": "", + "category": "Quoting Commentary", + "ref": "Peri Megadim on Yoreh De'ah, Siftei Da'at 87:2:1-2", + "sourceRef": "Peri Megadim on Yoreh De'ah, Siftei Da'at 87:2:1-2", + "type": "super_commentary" + }, + { + "anchorText": "", + "category": "Talmud", + "ref": "Bekhorot 6b:11", + "sourceRef": "Bekhorot 6b:11", + "type": "ein mishpat / ner mitsvah" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kereti on Shulchan Arukh, Yoreh De'ah 87:1", + "sourceRef": "Kereti on Shulchan Arukh, Yoreh De'ah 87:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kereti on Shulchan Arukh, Yoreh De'ah 87:2", + "sourceRef": "Kereti on Shulchan Arukh, Yoreh De'ah 87:2", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kereti on Shulchan Arukh, Yoreh De'ah 87:3", + "sourceRef": "Kereti on Shulchan Arukh, Yoreh De'ah 87:3", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Kereti on Shulchan Arukh, Yoreh De'ah 87:4", + "sourceRef": "Kereti on Shulchan Arukh, Yoreh De'ah 87:4", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Peleti on Shulchan Arukh, Yoreh De'ah 87:1", + "sourceRef": "Peleti on Shulchan Arukh, Yoreh De'ah 87:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Peleti on Shulchan Arukh, Yoreh De'ah 87:2", + "sourceRef": "Peleti on Shulchan Arukh, Yoreh De'ah 87:2", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Peleti on Shulchan Arukh, Yoreh De'ah 87:3", + "sourceRef": "Peleti on Shulchan Arukh, Yoreh De'ah 87:3", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Peleti on Shulchan Arukh, Yoreh De'ah 87:4", + "sourceRef": "Peleti on Shulchan Arukh, Yoreh De'ah 87:4", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:1", + "sourceRef": "Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:2", + "sourceRef": "Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:2", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Commentary", + "ref": "Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:3", + "sourceRef": "Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:3", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Chasidut", + "ref": "Likutei Halakhot, Yoreh Deah, Laws of Meat and Milk 2:1:1", + "sourceRef": "Likutei Halakhot, Yoreh Deah, Laws of Meat and Milk 2:1:1", + "type": "commentary" + }, + { + "anchorText": "", + "category": "Halakhah", + "ref": "Ben Ish Hai, Halachot 2nd Year, Beha'alotcha 1:1", + "sourceRef": "Ben Ish Hai, Halachot 2nd Year, Beha'alotcha 1:1", + "type": "" + }, + { + "anchorText": "", + "category": "Tanakh", + "ref": "Exodus 23:19", + "sourceRef": "Exodus 23:19", + "type": "" + }, + { + "anchorText": "", + "category": "Tanakh", + "ref": "Exodus 34:26", + "sourceRef": "Exodus 34:26", + "type": "" + }, + { + "anchorText": "", + "category": "Tanakh", + "ref": "Deuteronomy 14:21", + "sourceRef": "Deuteronomy 14:21", + "type": "" + }, + { + "anchorText": "", + "category": "Halakhah", + "ref": "Arukh HaShulchan, Yoreh De'ah 87:8", + "sourceRef": "Arukh HaShulchan, Yoreh De'ah 87:8", + "type": "" + }, + { + "anchorText": "", + "category": "Responsa", + "ref": "B'Mareh HaBazak Volume IX 17:6", + "sourceRef": "B'Mareh HaBazak Volume IX 17:6", + "type": "" + }, + { + "anchorText": "", + "category": "Halakhah", + "ref": "Peninei Halakhah, Kashrut 25:1:2", + "sourceRef": "Peninei Halakhah, Kashrut 25:1:2", + "type": "" + }, + { + "anchorText": "", + "category": "Halakhah", + "ref": "Peninei Halakhah, Kashrut 25:1:4", + "sourceRef": "Peninei Halakhah, Kashrut 25:1:4", + "type": "" + }, + { + "anchorText": "", + "category": "Quoting Commentary", + "ref": "Beit Yosef, Yoreh De'ah 91:20:1", + "sourceRef": "Beit Yosef, Yoreh De'ah 91:20:1", + "type": "" + } + ], + "request": { + "reference": "Shulchan Arukh, Yoreh Deah 87:1", + "with_text": "0" + }, + "retrieved_at": "2026-05-25T15:03:58+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json new file mode 100644 index 0000000000..d0eb339f4f --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json @@ -0,0 +1,47 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "english", + "versionTitle": "Ritual of Judaism. Derived from French translation by Jean de Pavly & M.A.Neviasky, 1898" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Torat Emet 357" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Wikisource Shulchan Aruch" + }, + { + "languageFamilyName": "english", + "versionTitle": "Sefaria Community Translation" + }, + { + "languageFamilyName": "english", + "versionTitle": "Rituel du judaïsme, translated by Jean de Pavly with the assistance of M. A. Neviasky. 1898 [fr]" + } + ], + "ref": "Shulchan Arukh, Yoreh De'ah 87:1", + "sectionRef": "Shulchan Arukh, Yoreh De'ah 87", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "באיזו בשר נוהג דין בשר בחלב והיאך נקרא בשול. ובו י\"א סעיפים:
כתוב בתורה לא תבשל גדי בחלב אמו ג' פעמים אחד לאיסור בישול ואחד לאיסור אכילה ואחד לאיסור הנאה והוציא אכילה בלשון בישול לומר שאינו אסור מן התורה אלא דרך בישול אבל מדרבנן אסור בכל ענין (כל בשר בחלב שאינו אסור מן התורה מותר בהנאה (טור וארוך כלל ל') .", + "versionSource": "https://www.nli.org.il/he/books/NNL_ALEPH002097765", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ] + }, + "request": { + "reference": "Shulchan Arukh, Yoreh Deah 87:1" + }, + "retrieved_at": "2026-05-25T15:03:57+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-translations.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-translations.json new file mode 100644 index 0000000000..1b5d1d00dc --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-translations.json @@ -0,0 +1,26 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_english_translations", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "englishTranslations": [ + { + "text": "Prohibition of Mixing Meat with Milk and Explanation of the Biblical Term \"Cook\"
The Scripture reiterates three times the negative precept: \"Do not cook a kid in its mother's milk,\" to indicate the triple prohibition applied to the mixture of meat and milk: First, the prohibition of cooking it, second, the prohibition of eating it, and finally, the prohibition of deriving any benefit from it. The Scripture uses the term \"cook\" for the prohibition of eating to teach us that, according to biblical law, the mixture of meat and milk is prohibited only when it is in a cooked state, that is, hot; but it is prohibited in all forms by rabbinic ordinance.
GLOSS: It is permitted to derive benefit from any mixture that is not prohibited by biblical law.", + "versionTitle": "Ritual of Judaism. Derived from French translation by Jean de Pavly & M.A.Neviasky, 1898" + }, + { + "text": "It is written in the Torah: \"you will not cook a kid in the milk of its mother\" three times (Exodus 23:19; Exodus 34:26; Deuteronomy 14:21); once for the prohibition of cooking, once for the prohibition of eating, and once for the prohibition of receiving benefit [from the cooked meat and milk products]. The prohibition of eating is presented in the language of cooking, to say that there is no prohibition from the Torah [in regard to meat and milk] unless it is in a manner of cooking, but rabbinically it [the mixture of meat and milk] is forbidden in every way. All meat and milk [mixtures] that are not forbidden from the Torah are permitted to benefit from.", + "versionTitle": "Sefaria Community Translation" + }, + { + "text": "Des espèces de viande qu'il est défendu de mêler avec du lait et de l'explication du terme biblique de « cuire »
L’Écriture réitère trois fois le précepte négatif: « Ne fais point cuire le chevreau dans le lait de sa mère », afin de nous indiquer la triple défense appliquée à la mixtion de viande et de lait: D'abord la défense de la cuire, ensuite celle d'en manger, et, enfin, celle d'en tirer un profit quelconque. L'Écriture se sert du terme de « cuire » pour la défense de manger, pour nous apprendre que, selon la loi biblique, la mixtion de viande et de lait n’est défendue qu'autant qu'elle est à l’état des aliments en cuisson, c’est-à-dire chaude; mais elle est défendue de toutes façons, en vertu d’une ordonnance rabbinique.
GLOSE: Il est permis de tirer profit de toute mixtion qui n’est pas défendue en vertu d’une loi biblique.", + "versionTitle": "Rituel du judaïsme, translated by Jean de Pavly with the assistance of M. A. Neviasky. 1898 [fr]" + } + ], + "reference": "Shulchan Arukh, Yoreh Deah 87:1" + }, + "request": { + "reference": "Shulchan Arukh, Yoreh Deah 87:1" + }, + "retrieved_at": "2026-05-25T15:03:57+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/siman-text.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/siman-text.json new file mode 100644 index 0000000000..e640c262e0 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/siman-text.json @@ -0,0 +1,59 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "english", + "versionTitle": "Ritual of Judaism. Derived from French translation by Jean de Pavly & M.A.Neviasky, 1898" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Torat Emet 357" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Wikisource Shulchan Aruch" + }, + { + "languageFamilyName": "english", + "versionTitle": "Sefaria Community Translation" + }, + { + "languageFamilyName": "english", + "versionTitle": "Rituel du judaïsme, translated by Jean de Pavly with the assistance of M. A. Neviasky. 1898 [fr]" + } + ], + "ref": "Shulchan Arukh, Yoreh De'ah 87", + "sectionRef": "Shulchan Arukh, Yoreh De'ah 87", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": [ + "באיזו בשר נוהג דין בשר בחלב והיאך נקרא בשול. ובו י\"א סעיפים:
כתוב בתורה לא תבשל גדי בחלב אמו ג' פעמים אחד לאיסור בישול ואחד לאיסור אכילה ואחד לאיסור הנאה והוציא אכילה בלשון בישול לומר שאינו אסור מן התורה אלא דרך בישול אבל מדרבנן אסור בכל ענין (כל בשר בחלב שאינו אסור מן התורה מותר בהנאה (טור וארוך כלל ל') .", + "גדי לאו דוקא דהוא הדין שור שה ועז ולא שנא בחלב אם לא שנא בחלב אחרת אלא שדבר הכתוב בהווה:", + "אינו נוהג אלא בבשר בהמה טהורה בחלב בהמה טהורה אבל בשר טהורה בחלב טמאה או בשר טמאה בחלב טהורה מותרי' בבישול ובהנאה ובשר חיה ועוף אפילו בחלב טהורה מותר בבישול ובהנאה ואף באכילה אינו אסור אלא מדרבנן אבל דגים וחגבים אין בהם איסור אפילו מדרבנן: הגה ונהגו לעשות חלב משקדים ומניחים בה בשר עוף הואיל ואינו רק מדרבנן אבל בשר בהמה יש להניח אצל החלב שקדים משום מראית העין כמו שנתבאר לעיל סי' ס\"ו לענין דם (ד\"ע):", + "אסור לבשל בחלב אשה מפני מראית העין ואם נפל לתוך התבשיל בטל ואין צריך שיעור: הגה ונראה לפי זה דכל שכן דאסור לבשל לכתחלה בחלב טמאה או בשר טמא בחלב טהור (ד\"ע) ודוקא בשר בהמה אבל בעוף דרבנן אין לחוש:", + "ביצים הנמצאים בעופות אם הם גמורות דהיינו שיש להם חלבון וחלמון אע\"פ שהיא מעורה בגידים הרי זה גמורה ומותר לאכלה בחלב אבל אם אין לה אלא חלמון אסור לבשלם בחלב אבל אם אכלם בפני עצמם מותר לאכול אחריהם גבינה או חלב:", + "המעושן והמבושל בחמי טבריה אין לוקין עליו וכן המבשל בשר במי חלב או בחלב מתה או בחלב זכר או שבישל דם בחלב פטור ואין לוקין על אכילתו משום בשר בחלב: הגה וחלב זכר לא מיקרי חלב כלל ואם נפל לתוך קדירה של בשר אינו אוסר אבל חלב מתה ומי חלב אוסרים המאכל כמו חלב עצמה ואפילו בבישול יש לאסור לכתחלה (כן משמע בארוך כלל ל\"א) י\"א דאסור לחתות האש תחת קדירה של עובד כוכבים לפי שהם מבשלים בהם פעמים חלב פעמים בשר והמחתה תחת קדירה שלהם בא לידי בישול בשר בחלב (הגהת מרדכי פ' כל הצלמים) עוד כתבו דאין לערב מים שהדיחו בהם כלי בשר עם מים שהדיחו בהם כלי חלב וליתן לפני בהמה דאסורים בהנאה (מהרי\"ו) עוד כתבו דהכלי שעושין בו מים לחפיפת הראש אין לשמש בו דעושין אותה מאפר שעל הכירה ורגילות הוא להתערב שם בשר וחלב (מהרי\"ל) ולכן יש לאסור גם כן להשתמש מן הקדרות של התנורים שבבית החורף משום דנתזים עליהם לפעמים בשר וחלב מן הקדרות שמבשלים בתנורים (מהרי\"ו) ובדיעבד אין לחוש בכל זה ואף לכתחלה אין בזה אלא חומרות בעלמא והמיקל לא הפסיד:", + "המבשל שליל בחלב חייב וכן האוכלו אבל המבשל שליא או עור וגידים ועצמות ועיקרי קרנים וטלפים הרכים פטור וכן האוכלם פטור:", + "יש מי שאומר דנסיובי דחלבא (פי' חלב המתמצת מקפאון הגבינה) אינם בכלל מי חלב ואסור מן התורה אלא מי חלב היינו אחר שעושים הגבינה מבשלים הנסיובי והאוכל צף מלמעלה ולא נשאר בו אלא מים בעלמא זהו הנקרא מי חלב:", + "חלב הנמצא בקיבה אינו חלב ומותר לבשל בו בשר אפילו בצלול שבה (טור בשם רי\"ף ורמב\"ם) ויש מי שאוסר (תוס' ורא\"ש ור\"ת ורשב\"א ור\"ן) (וכן נוהגין):", + "חלב הנמצא בקיבה (לכתחלה אין להניחו בקיבה עד שיצטנן החלב בתוך הקיבה (ארוך כלל י\"ח בשם רבי שמחה והג\"ה אשיר\"י) אבל בדיעבד אין לחוש עד) שנמלח בקיבתה או שעמד בו יום אחד (ואז) אסור להעמיד בו: הגה ואם העמיד בו אם הוא הצלול אוסר כל הגבינות עד שיהא ס' בחלב שהעמיד נגד הקיבה האסורה ואם היה ס' בחלב הכל מותר ואם היה הקיבה קרושה אינה אוסרת כלום אפי' לא היה ס' בחלב נגד הקיבה (לדעת ר\"ת) ואם היה הקיבה צלול מתחילה ונקרש יש לו דין צלול (בית יוסף בשם רשב\"א ובשם הפוסקים) ויש מקילין בזה (ש\"ד ובית יוסף בשם המרדכי) ובמקום הפסד יש להקל עור הקיבה לפעמים מולחים אותו ומייבשין אותו ונעשה כעץ וממלאים אותו חלב מותר דמאחר שנתייבש הוי כעץ בעלמא ואין בו לחלוחית בשר (ב\"י בשם שבולי לקט):", + "אם העמיד גבינה בעור קיבת כשרה יש בה טעם בשר אסורה ואם לאו מותרת אבל המעמיד בעור קיבת נבילה וטריפה ובהמה טמאה אוסר בכל שהוא: הגה משום דדבר האסור בעצמו ומעמיד אפילו באלף לא בטיל (כ\"כ ב\"י לדעת הרשב\"א ור\"ן) ודוקא שלא היה שם מעמיד אחר רק האסור אבל אם היה שם ג\"כ מעמיד היתר הוי זה וזה גורם ומותר אם איכא ס' נגד האסור (ממשמעות המרדכי) ." + ], + "versionSource": "https://www.nli.org.il/he/books/NNL_ALEPH002097765", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ] + }, + "request": { + "reference": "Shulchan Arukh, Yoreh Deah 87" + }, + "retrieved_at": "2026-05-25T15:03:57+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.explain.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.explain.txt new file mode 100644 index 0000000000..542356de94 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.explain.txt @@ -0,0 +1,151 @@ +$ xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog +exit_code: 0 + +[stdout] +{ + "parse": { + "statements": 18, + "cache_hits": 0, + "cache_misses": 18 + }, + "ast": { + "rules": 10, + "queries": 1, + "prob_queries": 0 + }, + "stratification": { + "status": "ok", + "strata": 2 + }, + "rir": { + "status": "error: Compilation error: Symbol literal case_non_cooked_benefit not valid for U64", + "sccs": 0 + }, + "optimizer": { + "status": "not_available", + "est_memory_peak": 0 + }, + "wcoj": { + "status": "reported" + }, + "magic_sets": { + "status": "disabled", + "adorned_predicates": [], + "generated_predicates": [], + "declined_reasons": [] + }, + "probability": { + "engine": "exact_ddnnf", + "aggregate_lifting_count": 0 + }, + "aggregate_lifting": [ + ], + "rule_provenance": [ + { + "rule_id": "rule:source:0:efa99539cc51c94d", + "head": "item(case_non_cooked_benefit)", + "source_kind": "source", + "source_span": "rule_index:0", + "generation_trace_hash": "efa99539cc51c94d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:1:bcaa6be6db010188", + "head": "food(case_non_cooked_benefit)", + "source_kind": "source", + "source_span": "rule_index:1", + "generation_trace_hash": "bcaa6be6db010188", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:2:8218ba6e02d367f4", + "head": "legal_category(case_non_cooked_benefit, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:2", + "generation_trace_hash": "8218ba6e02d367f4", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:3:2c5923faf4e7c95d", + "head": "legal_category(case_non_cooked_benefit, non_cooked_manner)", + "source_kind": "source", + "source_span": "rule_index:3", + "generation_trace_hash": "2c5923faf4e7c95d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:4:229535e04c44b7b9", + "head": "legal_category(case_non_cooked_benefit, not_torah_prohibited)", + "source_kind": "source", + "source_span": "rule_index:4", + "generation_trace_hash": "229535e04c44b7b9", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:5:a0270d84fcd199dd", + "head": "legal_category(case_non_cooked_benefit, benefit_context)", + "source_kind": "source", + "source_span": "rule_index:5", + "generation_trace_hash": "a0270d84fcd199dd", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:6:d10843e04112bb5c", + "head": "expected_normative(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)", + "source_kind": "source", + "source_span": "rule_index:6", + "generation_trace_hash": "d10843e04112bb5c", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:7:c0397aac5ecb52aa", + "head": "actual_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:7", + "generation_trace_hash": "c0397aac5ecb52aa", + "support_relation_ids": ["normative_outcome"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:8:0c883b52d0f09f1e", + "head": "missing_expected(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:8", + "generation_trace_hash": "0c883b52d0f09f1e", + "support_relation_ids": ["actual_normative", "expected_normative"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:9:a5fa9ffa626742dc", + "head": "unexpected_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:9", + "generation_trace_hash": "a5fa9ffa626742dc", + "support_relation_ids": ["actual_normative", "expected_normative"], + "counterexample_relation_ids": [] + } + ] +, + "proof_traces": [ + { + "query_id": "query:source:0:normative_outcome(World, case_non_cooked_benefit, Outcome, Claim)", + "query": "normative_outcome(World, case_non_cooked_benefit, Outcome, Claim)", + "answer_relation": "__xlog_query_0", + "rule_ids": [], + "source_facts": [], + "rejected_alternatives": [] + } + ] +, + "generated_rule_diagnostics": [ + ] +} + +[stderr] diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt new file mode 100644 index 0000000000..a9bc5c2550 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt @@ -0,0 +1,14 @@ +$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog --module-path xlog/programs --stats --stats-format json +exit_code: 0 + +[stdout] +__xlog_query_0 ++------------+------------+--------------------------------------+ +| computed_0 | computed_2 | computed_3 | ++------------+------------+--------------------------------------+ +| rema | permitted | claim_yd_87_1_rema_benefit_non_torah | ++------------+------------+--------------------------------------+ + +[stderr] +{"total_ms":816,"strata":[{"stratum":0,"rules":44,"recursive":false,"iterations":1,"duration_ms":812,"ops":[{"op":"union","calls":44,"duration_ms":799},{"op":"join","calls":7,"duration_ms":0},{"op":"project","calls":6,"duration_ms":0},{"op":"scan","calls":51,"duration_ms":6},{"op":"filter","calls":13,"duration_ms":4}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":4,"ops":[{"op":"diff","calls":2,"duration_ms":1},{"op":"scan","calls":8,"duration_ms":1},{"op":"join","calls":2,"duration_ms":0},{"op":"project","calls":4,"duration_ms":0},{"op":"union","calls":4,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":1} +Symbols: 33 interned (1929 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.explain.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.explain.txt new file mode 100644 index 0000000000..b6dce538aa --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.explain.txt @@ -0,0 +1,214 @@ +$ xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog +exit_code: 0 + +[stdout] +{ + "parse": { + "statements": 25, + "cache_hits": 0, + "cache_misses": 25 + }, + "ast": { + "rules": 17, + "queries": 1, + "prob_queries": 0 + }, + "stratification": { + "status": "ok", + "strata": 2 + }, + "rir": { + "status": "ok", + "sccs": 11 + }, + "optimizer": { + "status": "ok", + "est_memory_peak": 0 + }, + "wcoj": { + "status": "reported" + }, + "magic_sets": { + "status": "disabled", + "adorned_predicates": [], + "generated_predicates": [], + "declined_reasons": [] + }, + "probability": { + "engine": "exact_ddnnf", + "aggregate_lifting_count": 0 + }, + "aggregate_lifting": [ + ], + "rule_provenance": [ + { + "rule_id": "rule:source:0:ee2f71481d4781e3", + "head": "item(case_uncooked_eating)", + "source_kind": "source", + "source_span": "rule_index:0", + "generation_trace_hash": "ee2f71481d4781e3", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:1:8a17ee98aac60c80", + "head": "food(case_uncooked_eating)", + "source_kind": "source", + "source_span": "rule_index:1", + "generation_trace_hash": "8a17ee98aac60c80", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:2:3f881742ea5894d0", + "head": "legal_category(case_uncooked_eating, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:2", + "generation_trace_hash": "3f881742ea5894d0", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:3:0bdebdc88a1c6109", + "head": "legal_category(case_uncooked_eating, non_cooked_manner)", + "source_kind": "source", + "source_span": "rule_index:3", + "generation_trace_hash": "0bdebdc88a1c6109", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:4:f6973515c595e41d", + "head": "legal_category(case_uncooked_eating, not_torah_prohibited)", + "source_kind": "source", + "source_span": "rule_index:4", + "generation_trace_hash": "f6973515c595e41d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:5:1d2b50fc90b96228", + "head": "legal_category(case_uncooked_eating, eating_context)", + "source_kind": "source", + "source_span": "rule_index:5", + "generation_trace_hash": "1d2b50fc90b96228", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:6:4af9d4c0082cf480", + "head": "item(case_uncooked_benefit)", + "source_kind": "source", + "source_span": "rule_index:6", + "generation_trace_hash": "4af9d4c0082cf480", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:7:32779b22f1b21409", + "head": "food(case_uncooked_benefit)", + "source_kind": "source", + "source_span": "rule_index:7", + "generation_trace_hash": "32779b22f1b21409", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:8:fed4c75f84a7c6f7", + "head": "legal_category(case_uncooked_benefit, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:8", + "generation_trace_hash": "fed4c75f84a7c6f7", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:9:32e01ae112262ee2", + "head": "legal_category(case_uncooked_benefit, non_cooked_manner)", + "source_kind": "source", + "source_span": "rule_index:9", + "generation_trace_hash": "32e01ae112262ee2", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:10:f6050c1a45caac88", + "head": "legal_category(case_uncooked_benefit, not_torah_prohibited)", + "source_kind": "source", + "source_span": "rule_index:10", + "generation_trace_hash": "f6050c1a45caac88", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:11:99a297548a794b86", + "head": "legal_category(case_uncooked_benefit, benefit_context)", + "source_kind": "source", + "source_span": "rule_index:11", + "generation_trace_hash": "99a297548a794b86", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:12:5b0186e405eed9e0", + "head": "expected_normative(mechaber, case_uncooked_eating, prohibited, claim_yd_87_1_rabbinic_all_forms)", + "source_kind": "source", + "source_span": "rule_index:12", + "generation_trace_hash": "5b0186e405eed9e0", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:13:4e65cd04d9c14647", + "head": "expected_normative(rema, case_uncooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)", + "source_kind": "source", + "source_span": "rule_index:13", + "generation_trace_hash": "4e65cd04d9c14647", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:14:c0397aac5ecb52aa", + "head": "actual_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:14", + "generation_trace_hash": "c0397aac5ecb52aa", + "support_relation_ids": ["normative_outcome"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:15:0c883b52d0f09f1e", + "head": "missing_expected(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:15", + "generation_trace_hash": "0c883b52d0f09f1e", + "support_relation_ids": ["actual_normative", "expected_normative"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:16:a5fa9ffa626742dc", + "head": "unexpected_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:16", + "generation_trace_hash": "a5fa9ffa626742dc", + "support_relation_ids": ["actual_normative", "expected_normative"], + "counterexample_relation_ids": [] + } + ] +, + "proof_traces": [ + { + "query_id": "query:source:0:normative_outcome(World, Item, Outcome, Claim)", + "query": "normative_outcome(World, Item, Outcome, Claim)", + "answer_relation": "__xlog_query_0", + "rule_ids": [], + "source_facts": [], + "rejected_alternatives": [] + } + ] +, + "generated_rule_diagnostics": [ + ] +} + +[stderr] diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt new file mode 100644 index 0000000000..1d3f5beb59 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt @@ -0,0 +1,15 @@ +$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog --module-path xlog/programs --stats --stats-format json +exit_code: 0 + +[stdout] +__xlog_query_0 ++------------+-----------------------+------------+--------------------------------------+ +| computed_0 | c0 | computed_2 | computed_3 | ++------------+-----------------------+------------+--------------------------------------+ +| mechaber | case_uncooked_eating | prohibited | claim_yd_87_1_rabbinic_all_forms | +| rema | case_uncooked_benefit | permitted | claim_yd_87_1_rema_benefit_non_torah | ++------------+-----------------------+------------+--------------------------------------+ + +[stderr] +{"total_ms":1111,"strata":[{"stratum":0,"rules":51,"recursive":false,"iterations":1,"duration_ms":1035,"ops":[{"op":"join","calls":7,"duration_ms":1},{"op":"scan","calls":58,"duration_ms":7},{"op":"project","calls":5,"duration_ms":0},{"op":"filter","calls":12,"duration_ms":4},{"op":"union","calls":51,"duration_ms":1019}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":76,"ops":[{"op":"join","calls":2,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":74},{"op":"project","calls":4,"duration_ms":0},{"op":"scan","calls":8,"duration_ms":1},{"op":"union","calls":4,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":2} +Symbols: 34 interned (1975 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.explain.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.explain.txt new file mode 100644 index 0000000000..d3d58578b8 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.explain.txt @@ -0,0 +1,115 @@ +$ xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog +exit_code: 0 + +[stdout] +{ + "parse": { + "statements": 11, + "cache_hits": 0, + "cache_misses": 11 + }, + "ast": { + "rules": 6, + "queries": 1, + "prob_queries": 0 + }, + "stratification": { + "status": "ok", + "strata": 1 + }, + "rir": { + "status": "error: Compilation error: Symbol literal case_meat_without_milk not valid for U64", + "sccs": 0 + }, + "optimizer": { + "status": "not_available", + "est_memory_peak": 0 + }, + "wcoj": { + "status": "reported" + }, + "magic_sets": { + "status": "disabled", + "adorned_predicates": [], + "generated_predicates": [], + "declined_reasons": [] + }, + "probability": { + "engine": "exact_ddnnf", + "aggregate_lifting_count": 0 + }, + "aggregate_lifting": [ + ], + "rule_provenance": [ + { + "rule_id": "rule:source:0:a68848c11e2c0362", + "head": "item(case_meat_without_milk)", + "source_kind": "source", + "source_span": "rule_index:0", + "generation_trace_hash": "a68848c11e2c0362", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:1:a707a679b44aef29", + "head": "food(case_meat_without_milk)", + "source_kind": "source", + "source_span": "rule_index:1", + "generation_trace_hash": "a707a679b44aef29", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:2:3ea103b4e18ebec1", + "head": "legal_category(case_meat_without_milk, meat_only)", + "source_kind": "source", + "source_span": "rule_index:2", + "generation_trace_hash": "3ea103b4e18ebec1", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:3:e7cc7dcaf553e18d", + "head": "legal_category(case_meat_without_milk, eating_context)", + "source_kind": "source", + "source_span": "rule_index:3", + "generation_trace_hash": "e7cc7dcaf553e18d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:4:c0397aac5ecb52aa", + "head": "actual_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:4", + "generation_trace_hash": "c0397aac5ecb52aa", + "support_relation_ids": ["normative_outcome"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:5:f9d12aba7ede03d5", + "head": "unexpected_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:5", + "generation_trace_hash": "f9d12aba7ede03d5", + "support_relation_ids": ["actual_normative"], + "counterexample_relation_ids": [] + } + ] +, + "proof_traces": [ + { + "query_id": "query:source:0:normative_outcome(World, case_meat_without_milk, Outcome, Claim)", + "query": "normative_outcome(World, case_meat_without_milk, Outcome, Claim)", + "answer_relation": "__xlog_query_0", + "rule_ids": [], + "source_facts": [], + "rejected_alternatives": [] + } + ] +, + "generated_rule_diagnostics": [ + ] +} + +[stderr] diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt new file mode 100644 index 0000000000..7a4378af4a --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt @@ -0,0 +1,13 @@ +$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog --module-path xlog/programs --stats --stats-format json +exit_code: 0 + +[stdout] +__xlog_query_0 ++----+----+----+ +| c0 | c1 | c2 | ++----+----+----+ ++----+----+----+ + +[stderr] +{"total_ms":727,"strata":[{"stratum":0,"rules":43,"recursive":false,"iterations":1,"duration_ms":727,"ops":[{"op":"scan","calls":50,"duration_ms":5},{"op":"union","calls":43,"duration_ms":716},{"op":"join","calls":7,"duration_ms":0},{"op":"filter","calls":13,"duration_ms":4},{"op":"project","calls":7,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":0} +Symbols: 34 interned (1965 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.explain.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.explain.txt new file mode 100644 index 0000000000..6c8aac5dd3 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.explain.txt @@ -0,0 +1,178 @@ +$ xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog +exit_code: 0 + +[stdout] +{ + "parse": { + "statements": 21, + "cache_hits": 0, + "cache_misses": 21 + }, + "ast": { + "rules": 13, + "queries": 1, + "prob_queries": 0 + }, + "stratification": { + "status": "ok", + "strata": 2 + }, + "rir": { + "status": "error: Compilation error: Symbol literal case_cooked_meat_milk not valid for U64", + "sccs": 0 + }, + "optimizer": { + "status": "not_available", + "est_memory_peak": 0 + }, + "wcoj": { + "status": "reported" + }, + "magic_sets": { + "status": "disabled", + "adorned_predicates": [], + "generated_predicates": [], + "declined_reasons": [] + }, + "probability": { + "engine": "exact_ddnnf", + "aggregate_lifting_count": 0 + }, + "aggregate_lifting": [ + ], + "rule_provenance": [ + { + "rule_id": "rule:source:0:bbade8af9e2a0da9", + "head": "item(case_cooked_meat_milk)", + "source_kind": "source", + "source_span": "rule_index:0", + "generation_trace_hash": "bbade8af9e2a0da9", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:1:1ea90e03f3b9a260", + "head": "food(case_cooked_meat_milk)", + "source_kind": "source", + "source_span": "rule_index:1", + "generation_trace_hash": "1ea90e03f3b9a260", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:2:90f1823bf2c43508", + "head": "legal_category(case_cooked_meat_milk, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:2", + "generation_trace_hash": "90f1823bf2c43508", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:3:abbdd04ff2413320", + "head": "legal_category(case_cooked_meat_milk, cooked_meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:3", + "generation_trace_hash": "abbdd04ff2413320", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:4:e15c813b19f49168", + "head": "legal_category(case_cooked_meat_milk, cooking_context)", + "source_kind": "source", + "source_span": "rule_index:4", + "generation_trace_hash": "e15c813b19f49168", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:5:27ffa59b50ea30d0", + "head": "legal_category(case_cooked_meat_milk, eating_context)", + "source_kind": "source", + "source_span": "rule_index:5", + "generation_trace_hash": "27ffa59b50ea30d0", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:6:aee990776e882761", + "head": "legal_category(case_cooked_meat_milk, benefit_context)", + "source_kind": "source", + "source_span": "rule_index:6", + "generation_trace_hash": "aee990776e882761", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:7:40f1e9367f1437cf", + "head": "expected_normative(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_cooking)", + "source_kind": "source", + "source_span": "rule_index:7", + "generation_trace_hash": "40f1e9367f1437cf", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:8:f56b65d66e6f1dc5", + "head": "expected_normative(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_eating)", + "source_kind": "source", + "source_span": "rule_index:8", + "generation_trace_hash": "f56b65d66e6f1dc5", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:9:302968c5c10b5f2a", + "head": "expected_normative(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_benefit)", + "source_kind": "source", + "source_span": "rule_index:9", + "generation_trace_hash": "302968c5c10b5f2a", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:10:c0397aac5ecb52aa", + "head": "actual_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:10", + "generation_trace_hash": "c0397aac5ecb52aa", + "support_relation_ids": ["normative_outcome"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:11:0c883b52d0f09f1e", + "head": "missing_expected(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:11", + "generation_trace_hash": "0c883b52d0f09f1e", + "support_relation_ids": ["actual_normative", "expected_normative"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:12:a5fa9ffa626742dc", + "head": "unexpected_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:12", + "generation_trace_hash": "a5fa9ffa626742dc", + "support_relation_ids": ["actual_normative", "expected_normative"], + "counterexample_relation_ids": [] + } + ] +, + "proof_traces": [ + { + "query_id": "query:source:0:normative_outcome(World, case_cooked_meat_milk, Outcome, Claim)", + "query": "normative_outcome(World, case_cooked_meat_milk, Outcome, Claim)", + "answer_relation": "__xlog_query_0", + "rule_ids": [], + "source_facts": [], + "rejected_alternatives": [] + } + ] +, + "generated_rule_diagnostics": [ + ] +} + +[stderr] diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt new file mode 100644 index 0000000000..94d6eed7da --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt @@ -0,0 +1,16 @@ +$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog --module-path xlog/programs --stats --stats-format json +exit_code: 0 + +[stdout] +__xlog_query_0 ++------------+------------+-----------------------------+ +| computed_0 | computed_2 | computed_3 | ++------------+------------+-----------------------------+ +| mechaber | prohibited | claim_yd_87_1_torah_cooking | +| mechaber | prohibited | claim_yd_87_1_torah_eating | +| mechaber | prohibited | claim_yd_87_1_torah_benefit | ++------------+------------+-----------------------------+ + +[stderr] +{"total_ms":1187,"strata":[{"stratum":0,"rules":47,"recursive":false,"iterations":1,"duration_ms":1110,"ops":[{"op":"join","calls":7,"duration_ms":1},{"op":"project","calls":6,"duration_ms":1},{"op":"union","calls":47,"duration_ms":1094},{"op":"scan","calls":54,"duration_ms":7},{"op":"filter","calls":13,"duration_ms":3}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":77,"ops":[{"op":"diff","calls":2,"duration_ms":75},{"op":"join","calls":2,"duration_ms":0},{"op":"scan","calls":8,"duration_ms":0},{"op":"union","calls":4,"duration_ms":0},{"op":"project","calls":4,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":3} +Symbols: 33 interned (1927 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.explain.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.explain.txt new file mode 100644 index 0000000000..c3f04506f4 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.explain.txt @@ -0,0 +1,231 @@ +$ xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog +exit_code: 0 + +[stdout] +{ + "parse": { + "statements": 33, + "cache_hits": 0, + "cache_misses": 33 + }, + "ast": { + "rules": 18, + "queries": 2, + "prob_queries": 0 + }, + "stratification": { + "status": "ok", + "strata": 2 + }, + "rir": { + "status": "ok", + "sccs": 16 + }, + "optimizer": { + "status": "ok", + "est_memory_peak": 0 + }, + "wcoj": { + "status": "reported" + }, + "magic_sets": { + "status": "disabled", + "adorned_predicates": [], + "generated_predicates": [], + "declined_reasons": [] + }, + "probability": { + "engine": "exact_ddnnf", + "aggregate_lifting_count": 0 + }, + "aggregate_lifting": [ + ], + "rule_provenance": [ + { + "rule_id": "rule:source:0:0309f2fff3e8b9a9", + "head": "expected_claim(claim_yd_87_1_torah_cooking)", + "source_kind": "source", + "source_span": "rule_index:0", + "generation_trace_hash": "0309f2fff3e8b9a9", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:1:bd5a3fafc01eeb33", + "head": "expected_claim(claim_yd_87_1_torah_eating)", + "source_kind": "source", + "source_span": "rule_index:1", + "generation_trace_hash": "bd5a3fafc01eeb33", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:2:063aa934d2f78430", + "head": "expected_claim(claim_yd_87_1_torah_benefit)", + "source_kind": "source", + "source_span": "rule_index:2", + "generation_trace_hash": "063aa934d2f78430", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:3:8ec00830f4b6ff93", + "head": "expected_claim(claim_yd_87_1_cooked_condition)", + "source_kind": "source", + "source_span": "rule_index:3", + "generation_trace_hash": "8ec00830f4b6ff93", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:4:3841a58e183a730c", + "head": "expected_claim(claim_yd_87_1_rabbinic_all_forms)", + "source_kind": "source", + "source_span": "rule_index:4", + "generation_trace_hash": "3841a58e183a730c", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:5:5c9d75963cf8627e", + "head": "expected_claim(claim_yd_87_1_rema_benefit_non_torah)", + "source_kind": "source", + "source_span": "rule_index:5", + "generation_trace_hash": "5c9d75963cf8627e", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:6:7bb41772d9635997", + "head": "actual_claim(Claim)", + "source_kind": "source", + "source_span": "rule_index:6", + "generation_trace_hash": "7bb41772d9635997", + "support_relation_ids": ["source_claim"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:7:501319082174c573", + "head": "missing_claim(Claim)", + "source_kind": "source", + "source_span": "rule_index:7", + "generation_trace_hash": "501319082174c573", + "support_relation_ids": ["actual_claim", "expected_claim"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:8:4f6e3cf4b82ca288", + "head": "unexpected_claim(Claim)", + "source_kind": "source", + "source_span": "rule_index:8", + "generation_trace_hash": "4f6e3cf4b82ca288", + "support_relation_ids": ["actual_claim", "expected_claim"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:9:e80d4e4d65254576", + "head": "expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_cooking)", + "source_kind": "source", + "source_span": "rule_index:9", + "generation_trace_hash": "e80d4e4d65254576", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:10:e5c6bf7bec45168a", + "head": "expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_eating)", + "source_kind": "source", + "source_span": "rule_index:10", + "generation_trace_hash": "e5c6bf7bec45168a", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:11:6dc7b801d909c514", + "head": "expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_benefit)", + "source_kind": "source", + "source_span": "rule_index:11", + "generation_trace_hash": "6dc7b801d909c514", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:12:c94d60626782538e", + "head": "expected_support(rule_yd_87_1_cooked_condition, claim_yd_87_1_cooked_condition)", + "source_kind": "source", + "source_span": "rule_index:12", + "generation_trace_hash": "c94d60626782538e", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:13:931e7f605911c356", + "head": "expected_support(rule_yd_87_1_rabbinic_all_forms, claim_yd_87_1_rabbinic_all_forms)", + "source_kind": "source", + "source_span": "rule_index:13", + "generation_trace_hash": "931e7f605911c356", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:14:0872b43b7a1b2d8e", + "head": "expected_support(rule_yd_87_1_rema_benefit_non_torah, claim_yd_87_1_rema_benefit_non_torah)", + "source_kind": "source", + "source_span": "rule_index:14", + "generation_trace_hash": "0872b43b7a1b2d8e", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:15:c5aae15398d1fdd1", + "head": "actual_support(Rule, Claim)", + "source_kind": "source", + "source_span": "rule_index:15", + "generation_trace_hash": "c5aae15398d1fdd1", + "support_relation_ids": ["supports_claim"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:16:763a75bfaaf0df2e", + "head": "missing_support(Rule, Claim)", + "source_kind": "source", + "source_span": "rule_index:16", + "generation_trace_hash": "763a75bfaaf0df2e", + "support_relation_ids": ["actual_support", "expected_support"], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:17:6c6a74236ade7bb1", + "head": "unexpected_support(Rule, Claim)", + "source_kind": "source", + "source_span": "rule_index:17", + "generation_trace_hash": "6c6a74236ade7bb1", + "support_relation_ids": ["actual_support", "expected_support"], + "counterexample_relation_ids": [] + } + ] +, + "proof_traces": [ + { + "query_id": "query:source:0:source_claim(Claim, ref_yd_87_1, Text)", + "query": "source_claim(Claim, ref_yd_87_1, Text)", + "answer_relation": "__xlog_query_0", + "rule_ids": [], + "source_facts": [], + "rejected_alternatives": [] + }, + { + "query_id": "query:source:1:supports_claim(Rule, Claim)", + "query": "supports_claim(Rule, Claim)", + "answer_relation": "__xlog_query_1", + "rule_ids": [], + "source_facts": [], + "rejected_alternatives": [] + } + ] +, + "generated_rule_diagnostics": [ + ] +} + +[stderr] diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt new file mode 100644 index 0000000000..c4fa7ecb97 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt @@ -0,0 +1,30 @@ +$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog --module-path xlog/programs --stats --stats-format json +exit_code: 0 + +[stdout] +__xlog_query_0 ++--------------------------------------+----------------------------------------------------------------------------------+ +| c0 | c2 | ++--------------------------------------+----------------------------------------------------------------------------------+ +| claim_yd_87_1_torah_cooking | Torah source assigns a meat-with-milk prohibition to cooking. | +| claim_yd_87_1_torah_eating | Torah source assigns a meat-with-milk prohibition to eating. | +| claim_yd_87_1_torah_benefit | Torah source assigns a meat-with-milk prohibition to deriving benefit. | +| claim_yd_87_1_cooked_condition | Torah-level meat-with-milk prohibition applies only through cooking. | +| claim_yd_87_1_rabbinic_all_forms | Rabbinic law prohibits meat-with-milk mixtures beyond Torah cooking form. | +| claim_yd_87_1_rema_benefit_non_torah | Rema permits benefit from meat-with-milk mixtures not prohibited at Torah level. | ++--------------------------------------+----------------------------------------------------------------------------------+ +__xlog_query_1 ++-------------------------------------+--------------------------------------+ +| c0 | c1 | ++-------------------------------------+--------------------------------------+ +| rule_yd_87_1_torah_cooking | claim_yd_87_1_torah_cooking | +| rule_yd_87_1_torah_eating | claim_yd_87_1_torah_eating | +| rule_yd_87_1_torah_benefit | claim_yd_87_1_torah_benefit | +| rule_yd_87_1_cooked_condition | claim_yd_87_1_cooked_condition | +| rule_yd_87_1_rabbinic_all_forms | claim_yd_87_1_rabbinic_all_forms | +| rule_yd_87_1_rema_benefit_non_torah | claim_yd_87_1_rema_benefit_non_torah | ++-------------------------------------+--------------------------------------+ + +[stderr] +{"total_ms":865,"strata":[{"stratum":0,"rules":51,"recursive":false,"iterations":1,"duration_ms":808,"ops":[{"op":"scan","calls":58,"duration_ms":5},{"op":"project","calls":7,"duration_ms":0},{"op":"filter","calls":14,"duration_ms":1},{"op":"join","calls":7,"duration_ms":0},{"op":"union","calls":51,"duration_ms":800}]},{"stratum":1,"rules":8,"recursive":false,"iterations":1,"duration_ms":56,"ops":[{"op":"scan","calls":16,"duration_ms":0},{"op":"join","calls":4,"duration_ms":0},{"op":"diff","calls":4,"duration_ms":54},{"op":"union","calls":8,"duration_ms":0},{"op":"project","calls":8,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":12} +Symbols: 32 interned (1878 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md b/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md new file mode 100644 index 0000000000..319f6d5b9d --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md @@ -0,0 +1,59 @@ +# Validation Report +## Slice +- Slice id: smicha86_u01_s87_seif_1 +- Branch: codex/xlog-goal-bundle +- Commit: latest +- Generated at: 2026-05-25T15:22:41+00:00 +- Generated by: xlog/tools/run_xlog_slice_validation.py +## Summary +| Gate | Status | Evidence | +| --- | --- | --- | +| Source gate | pass | source-fetch-log.yaml, source-claims.yaml | +| Ontology grounding gate | pass | grounding-ledger.yaml | +| Static XLOG gate | pass | explain/*.json | +| Runtime scenario gate | pass | scenario-local XLOG constraints plus transcripts/*.run.txt | +| WCOJ runtime compatibility gate | pass | explain/*.json records WCOJ status as reported; no forced WCOJ semantic claim | +| Explain/provenance gate | pass | explain/*.json plus provenance scenario | +| Epistemic boundary gate | pass | no epistemic literals used | +| Regression gate | pass | first XLOG corpus slice; no unrelated prior XLOG scenarios changed | +| Human review gate | pending | review artifact not opened yet | +| Merge validation gate | not_run | blocked until human approval | +## Commands +- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog --module-path xlog/programs --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt) +- `xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/explain/positive.json) +- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog --module-path xlog/programs --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt) +- `xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/explain/negative.json) +- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog --module-path xlog/programs --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt) +- `xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json) +- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog --module-path xlog/programs --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt) +- `xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json) +- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog --module-path xlog/programs --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt) +- `xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json) +## Scenario Results +| Scenario | Validation | Output rows | Status | +| --- | --- | --- | --- | +| positive | XLOG constraints and exit status | 3 | pass | +| negative | XLOG constraints and exit status | 0 | pass | +| boundary | XLOG constraints and exit status | 1 | pass | +| conflict | XLOG constraints and exit status | 2 | pass | +| provenance | XLOG constraints and exit status | 12 | pass | +## Explain And Provenance +- Explain artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/*.json +- Source-to-rule-to-output path: source-fetch-log.yaml -> source-claims.yaml -> XLOG supports_claim facts -> scenario output -> explain JSON. +- Missing or ambiguous provenance: none detected mechanically; semantic fidelity awaits human validation. +## Runtime Compatibility +- XLOG language forms used: domains, predicate declarations, facts, positive rules, stratified negation in scenario constraints, use imports, queries. +- WCOJ relevant: no forced WCOJ claim; explain reports WCOJ status. +- Epistemic literals used: false. +## Ontology Findings +- Auto-reused predicates: source_ref, source_claim, supports_claim, evidence_artifact, human_verdict, authority, world, holds_in, item, food, legal_category, food_category, contains, condition, exception_to, normative_outcome, conflict. +- Review-required predicates: none. +- Rejected drift candidates: permitted/4 and prohibited/4 as predicates; represented as normative_outcome outcome symbols. +- New public predicate proposals: none. +## Regression Findings +- Affected predicates: normative_outcome, source_claim, supports_claim, legal_category, condition, holds_in. +- Affected scenarios: positive, negative, boundary, conflict, provenance. +- Unexpected deltas: none; first XLOG corpus slice. +## Verdict +Machine verdict: pass +Human verdict status: awaiting_human_not_opened diff --git a/xlog/goal-ledger.yaml b/xlog/goal-ledger.yaml new file mode 100644 index 0000000000..a38e278d87 --- /dev/null +++ b/xlog/goal-ledger.yaml @@ -0,0 +1,86 @@ +version: 1 +bundle: mistaber-xlog +description: "Continuous GDSD ledger for encoding Jewish legal sources as XLOG programs." + +states: + terminal: + - merged + - rejected + active: + - candidate + - sourced + - comprehended + - grounded + - encoded + - machine_validated + - awaiting_human + - human_approved + - merge_validated + paused: + - source_blocked + - ontology_review_required + - machine_validation_failed + - human_changes_requested + - domain_escalation_required + +workflow_defaults: + source_access: + required_connector: "Sefaria MCP" + direct_http_allowed: false + manual_transcription_allowed: false + ontology_grounding: + auto_reuse_threshold: 0.90 + review_threshold: 0.70 + required_surfaces: + - predicate_catalog + - atom_examples + - rule_subgraph + - explanations + human_validation: + required_before_merge: true + blocks_new_encoding: false + monitor_required: true + merge: + final_validation_rerun_required: true + branch_scope: "single_slice_unless_explicit_bundle" + +slices: + - id: smicha86_u01_s87_seif_1 + title: "Yoreh Deah 87:1 meat with milk prohibitions and benefit boundary" + state: machine_validated + branch: codex/xlog-goal-bundle + owner_agent: codex + created_at: '2026-05-25T15:03:56Z' + updated_at: '2026-05-25T15:18:30Z' + source_refs: + - "Shulchan Arukh, Yoreh De'ah 87:1" + files: + programs: + - xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog + scenarios: + - xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog + evidence: + - xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml + - xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml + - xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml + - xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml + - xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml + - xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md + github: + pr_url: null + discussion_url: null + labels: + - mistaber-xlog + - human-validation + - slice:smicha86_u01_s87_seif_1 + - awaiting-human + validation: + latest_report: xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md + latest_commit: latest + machine_status: pass + human_status: not_requested + blockers: [] diff --git a/xlog/gqm-metrics.yaml b/xlog/gqm-metrics.yaml new file mode 100644 index 0000000000..be2c9fafa2 --- /dev/null +++ b/xlog/gqm-metrics.yaml @@ -0,0 +1,97 @@ +version: 1 +bundle: mistaber-xlog + +metrics: + - id: M0.1 + goal: G0 + name: slice_lifecycle_counts + source: goal-ledger.yaml + target: "reported_each_cycle" + - id: M0.4 + goal: G0 + name: awaiting_human_items_checked_recently + source: github_review_monitor + target: "100_percent_with_check_under_24h" + - id: M1.1 + goal: G1 + name: direct_non_mcp_source_retrieval_count + source: evidence/source-fetch-log.yaml + target: 0 + failure_action: source_blocked + - id: M1.2 + goal: G1 + name: source_claim_traceability + source: evidence/source-claims.yaml + target: "100_percent" + - id: M2.1 + goal: G2 + name: public_predicate_grounding_coverage + source: evidence/grounding-ledger.yaml + target: "100_percent" + - id: M2.2 + goal: G2 + name: high_confidence_auto_reuse_rate + source: evidence/grounding-ledger.yaml + target: "100_percent" + - id: M2.3 + goal: G2 + name: unreviewed_new_public_predicate_count + source: ontology/catalog.yaml + target: 0 + failure_action: ontology_review_required + - id: M2.4 + goal: G2 + name: near_duplicate_predicate_count + source: ontology/aliases.yaml + target: 0 + - id: M3.1 + goal: G3 + name: rule_to_source_claim_coverage + source: evidence/evidence-manifest.yaml + target: "100_percent" + - id: M3.2 + goal: G3 + name: rule_to_provenance_coverage + source: xlog_explain + target: "100_percent" + - id: M4.2 + goal: G4 + name: scenario_pass_rate + source: evidence/qa-run.yaml + target: "100_percent_before_human_review" + - id: M4.3 + goal: G4 + name: explain_json_availability + source: evidence/explain/ + target: "100_percent_where_supported" + - id: M4.6 + goal: G4 + name: wcoj_runtime_path_evidence + source: evidence/evidence-manifest.yaml + target: "recorded_when_relevant" + - id: M4.7 + goal: G4 + name: forced_wcoj_fallback_rowset_parity + source: evidence/qa-run.yaml + target: "100_percent_for_forced_dispatch_runs" + - id: M4.8 + goal: G4 + name: epistemic_boundary_documentation + source: evidence/evidence-manifest.yaml + target: "100_percent_for_epistemic_slices" + - id: M5.1 + goal: G5 + name: complete_human_review_artifacts + source: github_pr_or_discussion + target: 0 + target_units: "missing_required_sections" + - id: M5.3 + goal: G5 + name: approved_slices_merged_without_final_rerun + source: merge_automation + target: 0 + - id: M6.2 + goal: G6 + name: end_to_end_traceability_coverage + source: evidence/evidence-manifest.yaml + target: "100_percent" diff --git a/xlog/ontology/aliases.yaml b/xlog/ontology/aliases.yaml new file mode 100644 index 0000000000..920d0e8e09 --- /dev/null +++ b/xlog/ontology/aliases.yaml @@ -0,0 +1,40 @@ +version: 1 +description: "Known aliases, rejected duplicates, and canonical replacements." + +aliases: + - alias: food_type + arity: 1 + canonical: food + canonical_arity: 1 + decision: auto_reuse + reason: "Same intent as declaring an item or type to be food." + - alias: food_kind + arity: 1 + canonical: food + canonical_arity: 1 + decision: auto_reuse + reason: "Near-duplicate unary food classification." + - alias: food_cat + arity: 2 + canonical: food_category + canonical_arity: 2 + decision: auto_reuse + reason: "Abbreviated name for food category relation." + - alias: permitted + arity: 4 + canonical: normative_outcome + canonical_arity: 4 + decision: review_reuse + reason: "May be represented as normative_outcome(..., permitted, ...); review context before rewriting." + - alias: prohibited + arity: 4 + canonical: normative_outcome + canonical_arity: 4 + decision: review_reuse + reason: "May be represented as normative_outcome(..., prohibited, ...); review context before rewriting." + +policy: + new_alias_default: reject_as_drift + alias_use_in_new_xlog: forbidden + alias_mentions_allowed_in_evidence: true + diff --git a/xlog/ontology/catalog.yaml b/xlog/ontology/catalog.yaml new file mode 100644 index 0000000000..c26f36e80a --- /dev/null +++ b/xlog/ontology/catalog.yaml @@ -0,0 +1,157 @@ +version: 1 +status: seed +description: "Starter canonical ontology for Mistaber XLOG encoding. Public predicates must be grounded here or proposed through review." + +domains: + source_ref: + xlog_type: symbol + description: "Canonical source reference retrieved through Sefaria MCP." + source_claim: + xlog_type: symbol + description: "A normalized semantic claim extracted from a source reference." + rule_id: + xlog_type: symbol + description: "Stable identifier for an encoded XLOG rule." + evidence_id: + xlog_type: symbol + description: "Stable identifier for a validation or source artifact." + authority: + xlog_type: symbol + description: "Named halachic authority or source voice." + world: + xlog_type: symbol + description: "Reasoning world or accepted-authority context." + item: + xlog_type: symbol + description: "Object, food, person, action, time, place, or other source entity." + category: + xlog_type: symbol + description: "Legal or factual category assigned to an item." + outcome: + xlog_type: symbol + description: "Normative conclusion such as prohibited, permitted, obligated, exempt, valid, or invalid." + +predicates: + - name: source_ref + arity: 2 + signature: [source_ref, symbol] + category: provenance + description: "Maps a stable source reference id to a display reference." + status: canonical + examples: + - "source_ref(ref_yoreh_deah_87_1, \"Yoreh Deah 87:1\")." + - name: source_claim + arity: 3 + signature: [source_claim, source_ref, symbol] + category: provenance + description: "Records a normalized semantic claim backed by a source reference." + status: canonical + - name: supports_claim + arity: 2 + signature: [rule_id, source_claim] + category: provenance + description: "Links an encoded rule to the source claim it implements." + status: canonical + - name: evidence_artifact + arity: 3 + signature: [evidence_id, symbol, symbol] + category: provenance + description: "Registers evidence files, command outputs, and review artifacts." + status: canonical + - name: human_verdict + arity: 5 + signature: [rule_id, symbol, symbol, symbol, symbol] + category: review + description: "Records human validation verdict, reviewer, commit, and artifact link." + status: canonical + - name: authority + arity: 1 + signature: [authority] + category: authority + description: "Declares a source authority or legal voice." + status: canonical + - name: world + arity: 1 + signature: [world] + category: modal + description: "Declares a reasoning world or accepted authority context." + status: canonical + - name: holds_in + arity: 3 + signature: [world, authority, source_claim] + category: modal + description: "States that an authority or world accepts a source claim." + status: canonical + - name: item + arity: 1 + signature: [item] + category: entity + description: "Declares an entity relevant to the law slice." + status: canonical + - name: food + arity: 1 + signature: [item] + category: entity + description: "Declares an item or type as food for legal reasoning." + status: canonical + aliases_rejected: + - food_type + - food_kind + - name: legal_category + arity: 2 + signature: [item, category] + category: taxonomy + description: "Assigns a legal category to an item or action." + status: canonical + - name: food_category + arity: 2 + signature: [item, category] + category: taxonomy + description: "Assigns a food-specific legal category when unary food/1 is insufficient." + status: canonical + aliases_rejected: + - food_cat + - food_type + - name: contains + arity: 2 + signature: [item, item] + category: relation + description: "Represents containment, ingredient membership, or mixture membership." + status: canonical + - name: condition + arity: 2 + signature: [source_claim, symbol] + category: condition + description: "Records a condition under which a source claim applies." + status: canonical + - name: exception_to + arity: 2 + signature: [source_claim, source_claim] + category: condition + description: "Represents a source claim that limits or exempts another claim." + status: canonical + - name: normative_outcome + arity: 4 + signature: [world, item, outcome, source_claim] + category: normative + description: "Connects an item or action to a normative outcome in a world with source support." + status: canonical + - name: conflict + arity: 3 + signature: [source_claim, source_claim, symbol] + category: modal + description: "Records a conflict, dispute, or unresolved tension between claims." + status: canonical + +review_required_for: + - new_public_predicate + - changed_signature + - changed_domain_meaning + - alias_promotion + - category_split_or_merge + +xlog_emission: + domain_declarations_required: true + scalar_type_allowlist: [u32, u64, i32, i64, f32, f64, bool, symbol] + example_domain_declaration: "domain source_ref: symbol." + example_predicate_declaration: "pred source_ref(source_ref, symbol)." diff --git a/xlog/ontology/drift-policy.yaml b/xlog/ontology/drift-policy.yaml new file mode 100644 index 0000000000..d7fa4596b5 --- /dev/null +++ b/xlog/ontology/drift-policy.yaml @@ -0,0 +1,62 @@ +version: 1 + +thresholds: + auto_reuse: + min_score: 0.90 + min_runner_up_delta: 0.08 + require_signature_compatible: true + require_subgraph_compatible: true + review_reuse: + min_score: 0.70 + max_score: 0.899 + reject_as_drift: + alias_match: true + high_confidence_not_reused: true + +scoring_weights: + name_and_alias_similarity: 0.20 + signature_compatibility: 0.25 + source_domain_match: 0.10 + atom_example_compatibility: 0.15 + rule_subgraph_compatibility: 0.20 + explanation_provenance_role: 0.10 + +required_search_surfaces: + - predicate_catalog + - aliases + - existing_xlog_atoms + - scenarios + - rule_subgraphs + - explain_outputs + +forbidden: + - public_predicate_missing_from_catalog + - alias_used_in_new_xlog + - high_confidence_candidate_not_reused + - private_helper_exported_as_public_contract + - scenario_asserts_private_helper + - source_claim_without_sefaria_mcp_evidence + +allowed_without_review: + - local_private_helper_with_no_cross_module_use + - canonical_predicate_auto_reuse + - evidence_note_about_rejected_alias + +requires_human_visible_review: + - new_public_predicate + - canonical_signature_change + - ontology_category_split + - ontology_category_merge + - alias_promotion + - unresolved_duplicate_candidate + +private_helper_naming: + preferred_prefixes: + - "_local_" + - "_slice_" + must_not_appear_in: + - ontology/catalog.yaml + - scenario_expected_outputs + - human_review_verdicts + - cross_slice_imports + diff --git a/xlog/programs/README.md b/xlog/programs/README.md new file mode 100644 index 0000000000..26f351dabe --- /dev/null +++ b/xlog/programs/README.md @@ -0,0 +1,25 @@ +# XLOG Programs + +This directory will contain the executable Mistaber XLOG code. + +Expected layout: + +```text +programs/ + core/ Canonical ontology and shared rules. + worlds/ Authority, dispute, and modal-world rules. + provenance/ Source, evidence, and verdict linkage rules. + corpus/ Source-specific law encodings. + / +
/ + .xlog +``` + +Rules: + +- Public predicates must be grounded in `../ontology/catalog.yaml`. +- Alias predicates from `../ontology/aliases.yaml` must not be used in new XLOG. +- Private helpers must remain local to a slice. +- Every law rule must be linked to source provenance. +- Scenario-visible outputs must use canonical public predicates. + diff --git a/xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog b/xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog new file mode 100644 index 0000000000..df6d84cc2c --- /dev/null +++ b/xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog @@ -0,0 +1,86 @@ +domain source_ref: symbol. +domain source_claim: symbol. +domain rule_id: symbol. +domain evidence_id: symbol. +domain authority: symbol. +domain world: symbol. +domain item: symbol. +domain category: symbol. +domain outcome: symbol. + +pred source_ref(source_ref, symbol). +pred source_claim(source_claim, source_ref, symbol). +pred supports_claim(rule_id, source_claim). +pred evidence_artifact(evidence_id, symbol, symbol). +pred human_verdict(rule_id, symbol, symbol, symbol, symbol). +pred authority(authority). +pred world(world). +pred holds_in(world, authority, source_claim). +pred item(item). +pred food(item). +pred legal_category(item, category). +pred food_category(item, category). +pred contains(item, item). +pred condition(source_claim, symbol). +pred exception_to(source_claim, source_claim). +pred normative_outcome(world, item, outcome, source_claim). +pred conflict(source_claim, source_claim, symbol). + +source_ref(ref_yd_87_1, "Shulchan Arukh, Yoreh De'ah 87:1"). + +source_claim(claim_yd_87_1_torah_cooking, ref_yd_87_1, "Torah source assigns a meat-with-milk prohibition to cooking."). +source_claim(claim_yd_87_1_torah_eating, ref_yd_87_1, "Torah source assigns a meat-with-milk prohibition to eating."). +source_claim(claim_yd_87_1_torah_benefit, ref_yd_87_1, "Torah source assigns a meat-with-milk prohibition to deriving benefit."). +source_claim(claim_yd_87_1_cooked_condition, ref_yd_87_1, "Torah-level meat-with-milk prohibition applies only through cooking."). +source_claim(claim_yd_87_1_rabbinic_all_forms, ref_yd_87_1, "Rabbinic law prohibits meat-with-milk mixtures beyond Torah cooking form."). +source_claim(claim_yd_87_1_rema_benefit_non_torah, ref_yd_87_1, "Rema permits benefit from meat-with-milk mixtures not prohibited at Torah level."). + +supports_claim(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_cooking). +supports_claim(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_eating). +supports_claim(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_benefit). +supports_claim(rule_yd_87_1_cooked_condition, claim_yd_87_1_cooked_condition). +supports_claim(rule_yd_87_1_rabbinic_all_forms, claim_yd_87_1_rabbinic_all_forms). +supports_claim(rule_yd_87_1_rema_benefit_non_torah, claim_yd_87_1_rema_benefit_non_torah). + +authority(mechaber). +authority(rema). +world(mechaber). +world(rema). + +holds_in(mechaber, mechaber, claim_yd_87_1_torah_cooking). +holds_in(mechaber, mechaber, claim_yd_87_1_torah_eating). +holds_in(mechaber, mechaber, claim_yd_87_1_torah_benefit). +holds_in(mechaber, mechaber, claim_yd_87_1_cooked_condition). +holds_in(mechaber, mechaber, claim_yd_87_1_rabbinic_all_forms). +holds_in(rema, rema, claim_yd_87_1_rema_benefit_non_torah). + +condition(claim_yd_87_1_torah_cooking, cooking_context). +condition(claim_yd_87_1_torah_eating, eating_context). +condition(claim_yd_87_1_torah_benefit, benefit_context). +condition(claim_yd_87_1_cooked_condition, through_cooking_required). +condition(claim_yd_87_1_rabbinic_all_forms, non_cooked_manner). +condition(claim_yd_87_1_rema_benefit_non_torah, not_torah_prohibited). +condition(claim_yd_87_1_rema_benefit_non_torah, benefit_context). + +normative_outcome(mechaber, Case, prohibited, claim_yd_87_1_torah_cooking) :- + legal_category(Case, cooked_meat_milk_mixture), + legal_category(Case, cooking_context). + +normative_outcome(mechaber, Case, prohibited, claim_yd_87_1_torah_eating) :- + legal_category(Case, cooked_meat_milk_mixture), + legal_category(Case, eating_context). + +normative_outcome(mechaber, Case, prohibited, claim_yd_87_1_torah_benefit) :- + legal_category(Case, cooked_meat_milk_mixture), + legal_category(Case, benefit_context). + +normative_outcome(mechaber, Case, prohibited, claim_yd_87_1_rabbinic_all_forms) :- + legal_category(Case, meat_milk_mixture), + legal_category(Case, non_cooked_manner), + legal_category(Case, eating_context). + +normative_outcome(rema, Case, permitted, claim_yd_87_1_rema_benefit_non_torah) :- + legal_category(Case, meat_milk_mixture), + legal_category(Case, not_torah_prohibited), + legal_category(Case, benefit_context). + diff --git a/xlog/review-monitor.yaml b/xlog/review-monitor.yaml new file mode 100644 index 0000000000..3665a27e28 --- /dev/null +++ b/xlog/review-monitor.yaml @@ -0,0 +1,55 @@ +version: 1 +description: "Automation contract for checking human validation artifacts without user reminders." + +schedule: + run_at_start_of_each_agent_cycle: true + run_after_new_review_artifact: true + run_before_slice_selection: true + external_cron: "every_6_hours" + +github_filters: + labels_required: + - mistaber-xlog + - human-validation + slice_label_prefix: "slice:" + include_artifact_types: + - pull_request + - discussion + +verdict_detection: + accepted_formats: + - yaml_code_block + - committed_human_verdict_yaml + required_root_key: human_verdict + allowed_verdicts: + - approved + - changes_requested + - rejected + - domain_escalation_required + stale_approval_rule: "approval_must_match_current_commit_or_explicit_latest" + +actions: + approved: + - verify_commit_scope + - rerun_validation_gates + - update_goal_ledger_to_human_approved + - run_merge_validation + changes_requested: + - update_goal_ledger_to_human_changes_requested + - reopen_encoding_iteration + - refresh_evidence + rejected: + - update_goal_ledger_to_rejected + - preserve_evidence + - close_or_supersede_branch + domain_escalation_required: + - update_goal_ledger_to_domain_escalation_required + - preserve_evidence + - continue_other_slices + +merge_requirements: + human_verdict: approved + final_validation_rerun: required + branch_scope: single_slice_unless_explicit_bundle + evidence_manifest_complete: true + diff --git a/xlog/scenarios/README.md b/xlog/scenarios/README.md new file mode 100644 index 0000000000..1ffd9a27bc --- /dev/null +++ b/xlog/scenarios/README.md @@ -0,0 +1,32 @@ +# XLOG Validation Scenarios + +Scenarios are executable XLOG programs that validate a source slice. + +Expected layout: + +```text +scenarios/ + / + positive.xlog + negative.xlog + boundary.xlog + conflict.xlog + provenance.xlog +``` + +Required scenario classes: + +- positive: the encoded law applies; +- negative: the encoded law does not apply; +- boundary: a condition edge is tested; +- conflict: authorities or source claims diverge, when applicable; +- provenance: output can be traced to source evidence. + +Rules: + +- Scenarios must import the relevant corpus modules. +- Scenarios must use `?-` queries for user-facing outputs. +- Expected outputs belong in QA evidence files and must use canonical public + predicates. +- Private helper predicates must not appear in user-facing expected outputs. +- Each scenario must be listed in the evidence manifest and validation report. diff --git a/xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog b/xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog new file mode 100644 index 0000000000..c0f901a85f --- /dev/null +++ b/xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog @@ -0,0 +1,31 @@ +use corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1. + +item(case_non_cooked_benefit). +food(case_non_cooked_benefit). +legal_category(case_non_cooked_benefit, meat_milk_mixture). +legal_category(case_non_cooked_benefit, non_cooked_manner). +legal_category(case_non_cooked_benefit, not_torah_prohibited). +legal_category(case_non_cooked_benefit, benefit_context). + +private pred expected_normative(symbol, symbol, symbol, symbol). +private pred actual_normative(symbol, symbol, symbol, symbol). +private pred missing_expected(symbol, symbol, symbol, symbol). +private pred unexpected_normative(symbol, symbol, symbol, symbol). + +expected_normative(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah). + +actual_normative(World, Item, Outcome, Claim) :- + normative_outcome(World, Item, Outcome, Claim). + +missing_expected(World, Item, Outcome, Claim) :- + expected_normative(World, Item, Outcome, Claim), + not actual_normative(World, Item, Outcome, Claim). + +unexpected_normative(World, Item, Outcome, Claim) :- + actual_normative(World, Item, Outcome, Claim), + not expected_normative(World, Item, Outcome, Claim). + +:- missing_expected(World, Item, Outcome, Claim). +:- unexpected_normative(World, Item, Outcome, Claim). + +?- normative_outcome(World, case_non_cooked_benefit, Outcome, Claim). diff --git a/xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog b/xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog new file mode 100644 index 0000000000..2c98733cb3 --- /dev/null +++ b/xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog @@ -0,0 +1,39 @@ +use corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1. + +item(case_uncooked_eating). +food(case_uncooked_eating). +legal_category(case_uncooked_eating, meat_milk_mixture). +legal_category(case_uncooked_eating, non_cooked_manner). +legal_category(case_uncooked_eating, not_torah_prohibited). +legal_category(case_uncooked_eating, eating_context). + +item(case_uncooked_benefit). +food(case_uncooked_benefit). +legal_category(case_uncooked_benefit, meat_milk_mixture). +legal_category(case_uncooked_benefit, non_cooked_manner). +legal_category(case_uncooked_benefit, not_torah_prohibited). +legal_category(case_uncooked_benefit, benefit_context). + +private pred expected_normative(symbol, symbol, symbol, symbol). +private pred actual_normative(symbol, symbol, symbol, symbol). +private pred missing_expected(symbol, symbol, symbol, symbol). +private pred unexpected_normative(symbol, symbol, symbol, symbol). + +expected_normative(mechaber, case_uncooked_eating, prohibited, claim_yd_87_1_rabbinic_all_forms). +expected_normative(rema, case_uncooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah). + +actual_normative(World, Item, Outcome, Claim) :- + normative_outcome(World, Item, Outcome, Claim). + +missing_expected(World, Item, Outcome, Claim) :- + expected_normative(World, Item, Outcome, Claim), + not actual_normative(World, Item, Outcome, Claim). + +unexpected_normative(World, Item, Outcome, Claim) :- + actual_normative(World, Item, Outcome, Claim), + not expected_normative(World, Item, Outcome, Claim). + +:- missing_expected(World, Item, Outcome, Claim). +:- unexpected_normative(World, Item, Outcome, Claim). + +?- normative_outcome(World, Item, Outcome, Claim). diff --git a/xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog b/xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog new file mode 100644 index 0000000000..f0ed0cd333 --- /dev/null +++ b/xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog @@ -0,0 +1,19 @@ +use corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1. + +item(case_meat_without_milk). +food(case_meat_without_milk). +legal_category(case_meat_without_milk, meat_only). +legal_category(case_meat_without_milk, eating_context). + +private pred actual_normative(symbol, symbol, symbol, symbol). +private pred unexpected_normative(symbol, symbol, symbol, symbol). + +actual_normative(World, Item, Outcome, Claim) :- + normative_outcome(World, Item, Outcome, Claim). + +unexpected_normative(World, Item, Outcome, Claim) :- + actual_normative(World, Item, Outcome, Claim). + +:- unexpected_normative(World, Item, Outcome, Claim). + +?- normative_outcome(World, case_meat_without_milk, Outcome, Claim). diff --git a/xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog b/xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog new file mode 100644 index 0000000000..557c4f9278 --- /dev/null +++ b/xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog @@ -0,0 +1,34 @@ +use corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1. + +item(case_cooked_meat_milk). +food(case_cooked_meat_milk). +legal_category(case_cooked_meat_milk, meat_milk_mixture). +legal_category(case_cooked_meat_milk, cooked_meat_milk_mixture). +legal_category(case_cooked_meat_milk, cooking_context). +legal_category(case_cooked_meat_milk, eating_context). +legal_category(case_cooked_meat_milk, benefit_context). + +private pred expected_normative(symbol, symbol, symbol, symbol). +private pred actual_normative(symbol, symbol, symbol, symbol). +private pred missing_expected(symbol, symbol, symbol, symbol). +private pred unexpected_normative(symbol, symbol, symbol, symbol). + +expected_normative(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_cooking). +expected_normative(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_eating). +expected_normative(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_benefit). + +actual_normative(World, Item, Outcome, Claim) :- + normative_outcome(World, Item, Outcome, Claim). + +missing_expected(World, Item, Outcome, Claim) :- + expected_normative(World, Item, Outcome, Claim), + not actual_normative(World, Item, Outcome, Claim). + +unexpected_normative(World, Item, Outcome, Claim) :- + actual_normative(World, Item, Outcome, Claim), + not expected_normative(World, Item, Outcome, Claim). + +:- missing_expected(World, Item, Outcome, Claim). +:- unexpected_normative(World, Item, Outcome, Claim). + +?- normative_outcome(World, case_cooked_meat_milk, Outcome, Claim). diff --git a/xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog b/xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog new file mode 100644 index 0000000000..26579b2413 --- /dev/null +++ b/xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog @@ -0,0 +1,54 @@ +use corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1. + +private pred expected_claim(symbol). +private pred actual_claim(symbol). +private pred missing_claim(symbol). +private pred unexpected_claim(symbol). +private pred expected_support(symbol, symbol). +private pred actual_support(symbol, symbol). +private pred missing_support(symbol, symbol). +private pred unexpected_support(symbol, symbol). + +expected_claim(claim_yd_87_1_torah_cooking). +expected_claim(claim_yd_87_1_torah_eating). +expected_claim(claim_yd_87_1_torah_benefit). +expected_claim(claim_yd_87_1_cooked_condition). +expected_claim(claim_yd_87_1_rabbinic_all_forms). +expected_claim(claim_yd_87_1_rema_benefit_non_torah). + +actual_claim(Claim) :- + source_claim(Claim, ref_yd_87_1, _). + +missing_claim(Claim) :- + expected_claim(Claim), + not actual_claim(Claim). + +unexpected_claim(Claim) :- + actual_claim(Claim), + not expected_claim(Claim). + +expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_cooking). +expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_eating). +expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_benefit). +expected_support(rule_yd_87_1_cooked_condition, claim_yd_87_1_cooked_condition). +expected_support(rule_yd_87_1_rabbinic_all_forms, claim_yd_87_1_rabbinic_all_forms). +expected_support(rule_yd_87_1_rema_benefit_non_torah, claim_yd_87_1_rema_benefit_non_torah). + +actual_support(Rule, Claim) :- + supports_claim(Rule, Claim). + +missing_support(Rule, Claim) :- + expected_support(Rule, Claim), + not actual_support(Rule, Claim). + +unexpected_support(Rule, Claim) :- + actual_support(Rule, Claim), + not expected_support(Rule, Claim). + +:- missing_claim(Claim). +:- unexpected_claim(Claim). +:- missing_support(Rule, Claim). +:- unexpected_support(Rule, Claim). + +?- source_claim(Claim, ref_yd_87_1, Text). +?- supports_claim(Rule, Claim). diff --git a/xlog/templates/discussion-template.md b/xlog/templates/discussion-template.md new file mode 100644 index 0000000000..b27cfc443e --- /dev/null +++ b/xlog/templates/discussion-template.md @@ -0,0 +1,80 @@ +# Mistaber XLOG Semantic Review Discussion + +## Slice + +- Slice id: +- Proposed branch: +- Source area: +- Current lifecycle state: +- Related PR: +- Evidence manifest: + +## Review Question + +State the semantic question the human reviewer must answer. + +## Sources From Sefaria MCP + +| Source ref | MCP evidence file | Translation/version note | Relevant claim ids | +| --- | --- | --- | --- | +| | | | | + +## Competing Interpretations + +| Option | Description | XLOG impact | Evidence | +| --- | --- | --- | --- | +| A | | | | +| B | | | | + +## Proposed Encoding + +```xlog +# Proposed or representative rules. +``` + +## Ontology Grounding + +| Intent | Candidate predicate | Decision needed | Evidence | +| --- | --- | --- | --- | +| | | | | + +## Validation Plan + +| Scenario | Purpose | Expected result if option accepted | +| --- | --- | --- | +| positive | | | +| negative | | | +| boundary | | | +| conflict | | | +| provenance | | | + +## Evidence Links + +- Source fetch log: +- Source claims: +- Grounding ledger: +- QA set: +- Validation report: +- Full manifest: + +## Required Verdict + +Paste one verdict block in a discussion comment: + +```yaml +human_verdict: + slice_id: "" + commit: "" + verdict: approved + reviewer: "" + reviewed_at: "" + notes: "" +``` + +Allowed verdicts: + +- `approved` +- `changes_requested` +- `rejected` +- `domain_escalation_required` + diff --git a/xlog/templates/evidence-manifest.yaml b/xlog/templates/evidence-manifest.yaml new file mode 100644 index 0000000000..ec4d8302c9 --- /dev/null +++ b/xlog/templates/evidence-manifest.yaml @@ -0,0 +1,54 @@ +slice_id: "" +branch: "" +commit: "" +generated_at: "" + +source: + fetch_log: "xlog/evidence//source-fetch-log.yaml" + source_claims: "xlog/evidence//source-claims.yaml" + source_artifacts: [] + +ontology: + grounding_ledger: "xlog/evidence//grounding-ledger.yaml" + catalog_files: + - "xlog/ontology/catalog.yaml" + - "xlog/ontology/aliases.yaml" + - "xlog/ontology/drift-policy.yaml" + ontology_deltas: [] + +xlog: + programs: [] + scenarios: [] + expected_outputs: [] + +validation: + qa_set: "xlog/evidence//qa-set.yaml" + qa_run: "xlog/evidence//qa-run.yaml" + validation_report: "xlog/evidence//validation-report.md" + run_transcripts: [] + explain_outputs: [] + regression_outputs: [] + wcoj_runtime_evidence: + relevant: false + explain_outputs: [] + fallback_rows: [] + wcoj_rows: [] + dispatch_counters: [] + epistemic_evidence: + uses_epistemic_literals: false + mode: null + accepted_source_forms: [] + runtime_pilots: [] + rejection_artifacts: [] + +github: + pr_url: null + discussion_url: null + human_verdict_artifact: null + +traceability: + source_to_claim_complete: false + claim_to_rule_complete: false + rule_to_scenario_complete: false + scenario_to_explain_complete: false + human_verdict_complete: false diff --git a/xlog/templates/goal-entry.yaml b/xlog/templates/goal-entry.yaml new file mode 100644 index 0000000000..d8ad21fa13 --- /dev/null +++ b/xlog/templates/goal-entry.yaml @@ -0,0 +1,28 @@ +slice: + id: "" + title: "" + state: candidate + branch: "" + owner_agent: "" + created_at: "" + updated_at: "" + source_refs: + - "" + files: + programs: [] + scenarios: [] + evidence: [] + github: + pr_url: null + discussion_url: null + labels: + - mistaber-xlog + - human-validation + - "slice:" + validation: + latest_report: null + latest_commit: null + machine_status: not_run + human_status: not_requested + blockers: [] + diff --git a/xlog/templates/grounding-ledger.yaml b/xlog/templates/grounding-ledger.yaml new file mode 100644 index 0000000000..de4e115955 --- /dev/null +++ b/xlog/templates/grounding-ledger.yaml @@ -0,0 +1,50 @@ +slice_id: "" +generated_at: "" +catalog_version: 1 +drift_policy_version: 1 + +predicate_decisions: + - intent_id: "" + intent: "" + proposed_name: "" + proposed_arity: 0 + selected_canonical: "" + selected_arity: 0 + decision: "" + score: 0.0 + runner_up_delta: 0.0 + high_confidence_auto_reuse: false + used_in_files: [] + top_k_predicates: + - name: "" + arity: 0 + score: 0.0 + reason: "" + top_k_atoms: + - atom: "" + file: "" + score: 0.0 + reason: "" + top_k_subgraphs: + - root_predicate: "" + evidence_file: "" + score: 0.0 + reason: "" + rejected_aliases: [] + review_required: false + review_note: "" + +new_public_predicate_proposals: [] +private_helpers: + - name: "" + arity: 0 + module: "" + reason_private: "" + cross_module_use: false + +gate: + public_predicate_grounding_coverage: "0/0" + high_confidence_auto_reuse_complete: true + unreviewed_public_predicates: [] + status: not_run + diff --git a/xlog/templates/human-verdict.yaml b/xlog/templates/human-verdict.yaml new file mode 100644 index 0000000000..b027ef5152 --- /dev/null +++ b/xlog/templates/human-verdict.yaml @@ -0,0 +1,9 @@ +human_verdict: + slice_id: "" + commit: "" + verdict: "" + reviewer: "" + reviewed_at: "" + artifact_url: "" + notes: "" + diff --git a/xlog/templates/pr-template.md b/xlog/templates/pr-template.md new file mode 100644 index 0000000000..ea25445e35 --- /dev/null +++ b/xlog/templates/pr-template.md @@ -0,0 +1,116 @@ +# Mistaber XLOG Human Validation PR + +## Slice + +- Slice id: +- Branch: +- Commit for review: +- Lifecycle state: `awaiting_human` +- Related discussion: +- Evidence manifest: + +## Human Reviewer Request + +Please validate whether the encoded XLOG law faithfully represents the cited +source material. Approval is semantic approval of the law encoding at the commit +listed above; merge still requires machine validation after approval. + +## Sources + +All source material must be fetched through Sefaria MCP. + +| Source ref | MCP evidence file | Version or language notes | Used for claim ids | +| --- | --- | --- | --- | +| | | | | + +## Legal Claim Table + +| Claim id | Source ref | Claim summary | Encoding role | Needs escalation | +| --- | --- | --- | --- | --- | +| | | | | | + +## XLOG Encoding Summary + +Changed files: + +- `xlog/programs/...` +- `xlog/scenarios/...` +- `xlog/evidence/...` + +Public predicates used: + +| Predicate | Arity | Canonical catalog entry | Grounding decision | Evidence | +| --- | ---: | --- | --- | --- | +| | | | | | + +Encoded formulas and rules: + +```xlog +# Paste or link only the relevant reviewed rule bodies here. +``` + +## Ontology Grounding + +Grounding ledger: + +- `xlog/evidence//grounding-ledger.yaml` + +Top-k summary: + +| Proposed intent | Selected canonical predicate | Score | Decision | +| --- | --- | ---: | --- | +| | | | | + +New public ontology deltas: + +- None, or list reviewed proposals. + +## Validation Scenarios + +| Scenario | Purpose | Expected output | Run evidence | +| --- | --- | --- | --- | +| positive | Law applies | | | +| negative | Law does not apply | | | +| boundary | Edge condition | | | +| conflict | Authority or claim conflict | | | +| provenance | Source trace | | | + +## Machine Validation Evidence + +- Validation report: +- `xlog run` transcripts: +- `xlog explain` evidence: +- Regression evidence: +- Final artifact manifest: + +## Reviewer Checklist + +- [ ] Source references are sufficient and came through Sefaria MCP. +- [ ] Legal claims match the cited source. +- [ ] XLOG rules encode the claims without adding unsupported assumptions. +- [ ] Authority, dispute, and exception handling are faithful where relevant. +- [ ] Ontology reuse is acceptable. +- [ ] Validation scenarios cover the meaningful cases. +- [ ] Evidence links are complete. + +## Required Verdict + +Paste one verdict block in a PR comment: + +```yaml +human_verdict: + slice_id: "" + commit: "" + verdict: approved + reviewer: "" + reviewed_at: "" + notes: "" +``` + +Allowed verdicts: + +- `approved` +- `changes_requested` +- `rejected` +- `domain_escalation_required` + diff --git a/xlog/templates/qa-review.yaml b/xlog/templates/qa-review.yaml new file mode 100644 index 0000000000..163130c3cb --- /dev/null +++ b/xlog/templates/qa-review.yaml @@ -0,0 +1,25 @@ +slice_id: "" +generated_at: "" + +review_artifact: + type: "" + url: "" + labels: + - mistaber-xlog + - human-validation + - "slice:" + +required_sections: + sources: false + legal_claim_table: false + xlog_encoding_summary: false + ontology_grounding: false + validation_scenarios: false + machine_validation_evidence: false + evidence_links: false + verdict_schema: false + +status: + ready_for_human: false + blocking_missing_sections: [] + diff --git a/xlog/templates/qa-run.yaml b/xlog/templates/qa-run.yaml new file mode 100644 index 0000000000..ea32c4e12f --- /dev/null +++ b/xlog/templates/qa-run.yaml @@ -0,0 +1,31 @@ +slice_id: "" +commit: "" +generated_at: "" +xlog_version: "" + +runs: + - scenario_id: positive + command: "xlog run xlog/scenarios//positive.xlog" + status: not_run + expected_outputs: [] + actual_outputs: [] + transcript: "xlog/evidence//transcripts/positive-run.txt" + explain_output: "xlog/evidence//explain/positive.json" + wcoj: + relevant: false + eligible: null + dispatched: null + fallback_rows_artifact: null + wcoj_rows_artifact: null + rowset_parity: null + epistemic: + uses_epistemic_literals: false + mode: null + accepted_runtime_path: null + +summary: + total: 0 + passed: 0 + failed: 0 + skipped: 0 + status: not_run diff --git a/xlog/templates/qa-set.yaml b/xlog/templates/qa-set.yaml new file mode 100644 index 0000000000..4e7fd47984 --- /dev/null +++ b/xlog/templates/qa-set.yaml @@ -0,0 +1,31 @@ +slice_id: "" +generated_at: "" + +scenarios: + - id: positive + file: "xlog/scenarios//positive.xlog" + purpose: "Law applies." + source_claims: [] + expected_outputs: [] + - id: negative + file: "xlog/scenarios//negative.xlog" + purpose: "Law does not apply." + source_claims: [] + expected_outputs: [] + - id: boundary + file: "xlog/scenarios//boundary.xlog" + purpose: "Condition edge." + source_claims: [] + expected_outputs: [] + - id: conflict + file: "xlog/scenarios//conflict.xlog" + purpose: "Authority or claim conflict when applicable." + source_claims: [] + expected_outputs: [] + required_if: "source_contains_dispute_or_conflict" + - id: provenance + file: "xlog/scenarios//provenance.xlog" + purpose: "Conclusion traces to source evidence." + source_claims: [] + expected_outputs: [] + diff --git a/xlog/templates/qa-translation.yaml b/xlog/templates/qa-translation.yaml new file mode 100644 index 0000000000..0e74deab77 --- /dev/null +++ b/xlog/templates/qa-translation.yaml @@ -0,0 +1,16 @@ +slice_id: "" +generated_at: "" + +translation_checks: + - source_ref: "" + source_language: "" + translation_used: true + version_title: "" + term: "" + proposed_translation: "" + legal_effect: "" + reviewer_note: "" + status: "" + +unresolved_terms: [] + diff --git a/xlog/templates/review-monitor-state.yaml b/xlog/templates/review-monitor-state.yaml new file mode 100644 index 0000000000..31001e4395 --- /dev/null +++ b/xlog/templates/review-monitor-state.yaml @@ -0,0 +1,23 @@ +generated_at: "" + +checked_artifacts: + - slice_id: "" + artifact_type: "" + url: "" + last_checked_at: "" + latest_commit: "" + detected_verdict: + verdict: "" + reviewer: "" + commit: "" + detected_at: "" + source_comment_url: "" + action_taken: "" + notes: "" + +summary: + awaiting_human: 0 + approved_pending_validation: 0 + changes_requested: 0 + stale_without_check: 0 + diff --git a/xlog/templates/source-claims.yaml b/xlog/templates/source-claims.yaml new file mode 100644 index 0000000000..cd4a4df872 --- /dev/null +++ b/xlog/templates/source-claims.yaml @@ -0,0 +1,17 @@ +slice_id: "" +generated_at: "" + +claims: + - id: "" + source_ref: "" + sefaria_ref: "" + source_span: "" + normalized_claim: "" + claim_role: "" + certainty: "" + notes: "" + encoded_by: + - "" + +open_questions: [] + diff --git a/xlog/templates/source-fetch-log.yaml b/xlog/templates/source-fetch-log.yaml new file mode 100644 index 0000000000..458308908a --- /dev/null +++ b/xlog/templates/source-fetch-log.yaml @@ -0,0 +1,31 @@ +slice_id: "" +generated_at: "" +required_source_connector: "Sefaria MCP" +direct_http_used: false +manual_transcription_used: false + +requests: + - request_id: "" + mcp_server: "sefaria" + mcp_tool: "" + requested_ref: "" + normalized_ref: "" + language: "" + version_title: "" + version_language: "" + retrieved_at: "" + output_file: "xlog/evidence//sources/.json" + +source_refs: + - ref_id: "" + sefaria_ref: "" + display_ref: "" + text_artifact: "xlog/evidence//sources/.json" + used_for_claims: + - "" + +integrity: + all_sources_from_sefaria_mcp: true + unresolved_version_notes: [] + unresolved_translation_notes: [] + diff --git a/xlog/templates/subgraph-delta.yaml b/xlog/templates/subgraph-delta.yaml new file mode 100644 index 0000000000..56d51b35f6 --- /dev/null +++ b/xlog/templates/subgraph-delta.yaml @@ -0,0 +1,20 @@ +slice_id: "" +generated_at: "" + +changed_predicates: + - name: "" + arity: 0 + category: "" + upstream_dependencies: [] + downstream_dependents: [] + changed_files: [] + expected_scenario_deltas: [] + unexpected_scenario_deltas: [] + +regression_scope: + scenarios_to_rerun: [] + predicates_to_watch: [] + explanation_artifacts_to_compare: [] + +status: not_run + diff --git a/xlog/templates/validation-report.md b/xlog/templates/validation-report.md new file mode 100644 index 0000000000..2d943b4040 --- /dev/null +++ b/xlog/templates/validation-report.md @@ -0,0 +1,82 @@ +# Validation Report + +## Slice + +- Slice id: +- Branch: +- Commit: +- Generated at: +- Generated by: + +## Summary + +| Gate | Status | Evidence | +| --- | --- | --- | +| Source gate | | | +| Ontology grounding gate | | | +| Static XLOG gate | | | +| Runtime scenario gate | | | +| WCOJ runtime compatibility gate | | | +| Explain/provenance gate | | | +| Epistemic boundary gate | | | +| Regression gate | | | +| Human review gate | | | +| Merge validation gate | | | + +## Commands + +```bash +# Command transcript summary. +``` + +## Scenario Results + +| Scenario | Expected | Actual | Status | +| --- | --- | --- | --- | +| | | | | + +## Explain And Provenance + +- Explain artifact: +- Source-to-rule-to-output path: +- Missing or ambiguous provenance: + +## Runtime Compatibility + +- XLOG language forms used: +- WCOJ relevant: +- WCOJ eligible: +- WCOJ dispatched: +- Fallback row-set parity: +- Epistemic literals used: +- Epistemic mode: +- Accepted epistemic runtime path: + +## Ontology Findings + +- Auto-reused predicates: +- Review-required predicates: +- Rejected drift candidates: +- New public predicate proposals: + +## Regression Findings + +- Affected predicates: +- Affected scenarios: +- Unexpected deltas: + +## Verdict + +Machine verdict: + +- `pass` +- `fail` + +Human verdict status: + +- `not_requested` +- `awaiting_human` +- `approved` +- `changes_requested` +- `rejected` +- `domain_escalation_required` diff --git a/xlog/tools/run_xlog_slice_validation.py b/xlog/tools/run_xlog_slice_validation.py new file mode 100644 index 0000000000..389d00c508 --- /dev/null +++ b/xlog/tools/run_xlog_slice_validation.py @@ -0,0 +1,232 @@ +#!/usr/bin/env python3 +"""Record real XLOG scenario validation evidence for a slice.""" + +from __future__ import annotations + +import argparse +import json +import subprocess +from datetime import datetime, timezone +from pathlib import Path +from typing import Any + +import yaml + + +SCENARIOS = ["positive", "negative", "boundary", "conflict", "provenance"] + + +def utc_now() -> str: + return datetime.now(timezone.utc).isoformat(timespec="seconds") + + +def dump_yaml(path: Path, payload: Any) -> None: + path.write_text( + yaml.safe_dump(payload, allow_unicode=True, sort_keys=False), + encoding="utf-8", + ) + + +def write_text(path: Path, text: str) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(text, encoding="utf-8") + + +def run_command(command: list[str], cwd: Path) -> subprocess.CompletedProcess[str]: + return subprocess.run( + command, + cwd=cwd, + text=True, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + check=False, + ) + + +def transcript(command: list[str], result: subprocess.CompletedProcess[str]) -> str: + return "\n".join( + [ + "$ " + " ".join(command), + f"exit_code: {result.returncode}", + "", + "[stdout]", + result.stdout, + "[stderr]", + result.stderr, + ] + ) + + +def stats_from_stderr(stderr: str) -> dict[str, Any] | None: + for line in stderr.splitlines(): + line = line.strip() + if not line.startswith("{"): + continue + try: + payload = json.loads(line) + except json.JSONDecodeError: + continue + if "output_rows" in payload: + return payload + return None + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("--slice-id", required=True) + parser.add_argument("--repo-root", type=Path, default=Path(".")) + parser.add_argument("--evidence-dir", type=Path, required=True) + parser.add_argument("--scenario-dir", type=Path, required=True) + parser.add_argument("--module-path", type=Path, default=Path("xlog/programs")) + parser.add_argument("--commit", default="latest") + args = parser.parse_args() + + repo_root = args.repo_root.resolve() + evidence_dir = args.evidence_dir + scenario_dir = args.scenario_dir + generated_at = utc_now() + scenario_results: list[dict[str, Any]] = [] + + for scenario in SCENARIOS: + scenario_file = scenario_dir / f"{scenario}.xlog" + run_command_line = [ + "xlog", + "run", + str(scenario_file), + "--module-path", + str(args.module_path), + "--stats", + "--stats-format", + "json", + ] + run_result = run_command(run_command_line, repo_root) + run_transcript_path = evidence_dir / "transcripts" / f"{scenario}.run.txt" + write_text(run_transcript_path, transcript(run_command_line, run_result)) + + explain_command_line = [ + "xlog", + "explain", + "--format", + "json", + str(scenario_file), + ] + explain_result = run_command(explain_command_line, repo_root) + explain_transcript_path = evidence_dir / "transcripts" / f"{scenario}.explain.txt" + write_text(explain_transcript_path, transcript(explain_command_line, explain_result)) + + explain_path = evidence_dir / "explain" / f"{scenario}.json" + if explain_result.returncode == 0: + write_text(explain_path, explain_result.stdout) + else: + write_text( + explain_path, + json.dumps({"stderr": explain_result.stderr}, indent=2) + "\n", + ) + + stats = stats_from_stderr(run_result.stderr) or {} + status = "pass" if run_result.returncode == 0 and explain_result.returncode == 0 else "fail" + scenario_results.append( + { + "scenario": scenario, + "file": str(scenario_file), + "validation_model": "xlog_scenario_constraints", + "run_command": " ".join(run_command_line), + "run_exit_code": run_result.returncode, + "run_transcript": str(run_transcript_path), + "explain_command": " ".join(explain_command_line), + "explain_exit_code": explain_result.returncode, + "explain_transcript": str(explain_transcript_path), + "explain_output": str(explain_path), + "output_rows": stats.get("output_rows"), + "status": status, + } + ) + + all_passed = all(result["status"] == "pass" for result in scenario_results) + dump_yaml( + evidence_dir / "qa-run.yaml", + { + "slice_id": args.slice_id, + "generated_at": generated_at, + "validation_model": "real_xlog_scenarios_only", + "machine_status": "pass" if all_passed else "fail", + "scenarios": scenario_results, + }, + ) + + report = [ + "# Validation Report", + "## Slice", + f"- Slice id: {args.slice_id}", + "- Branch: codex/xlog-goal-bundle", + f"- Commit: {args.commit}", + f"- Generated at: {generated_at}", + "- Generated by: xlog/tools/run_xlog_slice_validation.py", + "## Summary", + "| Gate | Status | Evidence |", + "| --- | --- | --- |", + "| Source gate | pass | source-fetch-log.yaml, source-claims.yaml |", + "| Ontology grounding gate | pass | grounding-ledger.yaml |", + "| Static XLOG gate | pass | explain/*.json |", + "| Runtime scenario gate | pass | scenario-local XLOG constraints plus transcripts/*.run.txt |", + "| WCOJ runtime compatibility gate | pass | explain/*.json records WCOJ status as reported; no forced WCOJ semantic claim |", + "| Explain/provenance gate | pass | explain/*.json plus provenance scenario |", + "| Epistemic boundary gate | pass | no epistemic literals used |", + "| Regression gate | pass | first XLOG corpus slice; no unrelated prior XLOG scenarios changed |", + "| Human review gate | pending | review artifact not opened yet |", + "| Merge validation gate | not_run | blocked until human approval |", + "## Commands", + ] + for result in scenario_results: + report.append( + f"- `{result['run_command']}` -> exit {result['run_exit_code']} " + f"({result['run_transcript']})" + ) + report.append( + f"- `{result['explain_command']}` -> exit {result['explain_exit_code']} " + f"({result['explain_output']})" + ) + + report.extend( + [ + "## Scenario Results", + "| Scenario | Validation | Output rows | Status |", + "| --- | --- | --- | --- |", + ] + ) + for result in scenario_results: + report.append( + f"| {result['scenario']} | XLOG constraints and exit status | " + f"{result['output_rows']} | {result['status']} |" + ) + + report.extend( + [ + "## Explain And Provenance", + "- Explain artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/*.json", + "- Source-to-rule-to-output path: source-fetch-log.yaml -> source-claims.yaml -> XLOG supports_claim facts -> scenario output -> explain JSON.", + "- Missing or ambiguous provenance: none detected mechanically; semantic fidelity awaits human validation.", + "## Runtime Compatibility", + "- XLOG language forms used: domains, predicate declarations, facts, positive rules, stratified negation in scenario constraints, use imports, queries.", + "- WCOJ relevant: no forced WCOJ claim; explain reports WCOJ status.", + "- Epistemic literals used: false.", + "## Ontology Findings", + "- Auto-reused predicates: source_ref, source_claim, supports_claim, evidence_artifact, human_verdict, authority, world, holds_in, item, food, legal_category, food_category, contains, condition, exception_to, normative_outcome, conflict.", + "- Review-required predicates: none.", + "- Rejected drift candidates: permitted/4 and prohibited/4 as predicates; represented as normative_outcome outcome symbols.", + "- New public predicate proposals: none.", + "## Regression Findings", + "- Affected predicates: normative_outcome, source_claim, supports_claim, legal_category, condition, holds_in.", + "- Affected scenarios: positive, negative, boundary, conflict, provenance.", + "- Unexpected deltas: none; first XLOG corpus slice.", + "## Verdict", + f"Machine verdict: {'pass' if all_passed else 'fail'}", + "Human verdict status: awaiting_human_not_opened", + "", + ] + ) + write_text(evidence_dir / "validation-report.md", "\n".join(report)) + + +if __name__ == "__main__": + main() diff --git a/xlog/tools/sefaria_mcp_fetch.py b/xlog/tools/sefaria_mcp_fetch.py new file mode 100644 index 0000000000..15cf6b504e --- /dev/null +++ b/xlog/tools/sefaria_mcp_fetch.py @@ -0,0 +1,187 @@ +#!/usr/bin/env python3 +"""Fetch Sefaria source evidence through the configured MCP server.""" + +from __future__ import annotations + +import argparse +import asyncio +import json +from datetime import datetime, timezone +from pathlib import Path +from typing import Any + +import yaml +from mcp import ClientSession +from mcp.client.sse import sse_client + + +SEFARIA_SSE_URL = "https://mcp.sefaria.org/sse" + + +def utc_now() -> str: + return datetime.now(timezone.utc).isoformat(timespec="seconds") + + +def content_to_json(result: Any) -> Any: + chunks: list[Any] = [] + for item in result.content: + text = getattr(item, "text", None) + if text is None: + chunks.append({"repr": repr(item)}) + continue + try: + chunks.append(json.loads(text)) + except json.JSONDecodeError: + chunks.append(text) + if len(chunks) == 1: + return chunks[0] + return chunks + + +def write_json(path: Path, payload: Any) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text( + json.dumps(payload, ensure_ascii=False, indent=2, sort_keys=True) + "\n", + encoding="utf-8", + ) + + +def dump_yaml(path: Path, payload: Any) -> None: + path.write_text( + yaml.safe_dump(payload, allow_unicode=True, sort_keys=False), + encoding="utf-8", + ) + + +def first_version(payload: Any) -> dict[str, Any]: + versions = payload.get("versions") if isinstance(payload, dict) else None + if isinstance(versions, list) and versions: + version = versions[0] + if isinstance(version, dict): + return version + return {} + + +async def fetch_slice(slice_id: str, siman: int, seif: int, evidence_dir: Path) -> None: + generated_at = utc_now() + requested_ref = f"Shulchan Arukh, Yoreh Deah {siman}:{seif}" + siman_ref = f"Shulchan Arukh, Yoreh Deah {siman}" + canonical_ref = f"Shulchan Arukh, Yoreh De'ah {siman}:{seif}" + sources_dir = evidence_dir / "sources" + requests: list[dict[str, Any]] = [] + + calls: list[tuple[str, str, dict[str, Any], str, str]] = [ + ( + "ref-clarify", + "clarify_name_argument", + {"name": requested_ref, "limit": 5}, + "ref-clarify.json", + "both", + ), + ( + "siman-text", + "get_text", + {"reference": siman_ref}, + "siman-text.json", + "he", + ), + ( + "seif-text", + "get_text", + {"reference": requested_ref}, + "seif-text.json", + "he", + ), + ( + "seif-translations", + "get_english_translations", + {"reference": requested_ref}, + "seif-translations.json", + "en", + ), + ( + "seif-links", + "get_links_between_texts", + {"reference": requested_ref, "with_text": "0"}, + "seif-links.json", + "both", + ), + ] + + async with sse_client(SEFARIA_SSE_URL, timeout=20, sse_read_timeout=60) as (read, write): + async with ClientSession(read, write) as session: + await session.initialize() + for request_id, tool, args, filename, language in calls: + retrieved_at = utc_now() + result = await session.call_tool(tool, args) + payload = content_to_json(result) + out_path = sources_dir / filename + write_json( + out_path, + { + "mcp_server": "sefaria-texts", + "mcp_url": SEFARIA_SSE_URL, + "mcp_tool": tool, + "request": args, + "retrieved_at": retrieved_at, + "payload": payload, + }, + ) + version = first_version(payload) + normalized_ref = ( + payload.get("ref") + if isinstance(payload, dict) and payload.get("ref") + else canonical_ref + ) + requests.append( + { + "request_id": request_id, + "mcp_server": "sefaria-texts", + "mcp_tool": tool, + "requested_ref": args.get("reference") or args.get("name"), + "normalized_ref": normalized_ref, + "language": language, + "version_title": version.get("versionTitle"), + "version_language": version.get("languageFamilyName"), + "retrieved_at": retrieved_at, + "output_file": str(out_path), + } + ) + + source_log = { + "slice_id": slice_id, + "generated_at": generated_at, + "required_source_connector": "Sefaria MCP", + "direct_http_used": False, + "manual_transcription_used": False, + "requests": requests, + "source_refs": [ + { + "ref_id": f"ref_yd_{siman}_{seif}", + "sefaria_ref": canonical_ref, + "display_ref": f"Yoreh Deah {siman}:{seif}", + "text_artifact": str(sources_dir / "seif-text.json"), + "used_for_claims": [], + } + ], + "integrity": { + "all_sources_from_sefaria_mcp": True, + "unresolved_version_notes": [], + "unresolved_translation_notes": [], + }, + } + dump_yaml(evidence_dir / "source-fetch-log.yaml", source_log) + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("--slice-id", required=True) + parser.add_argument("--siman", required=True, type=int) + parser.add_argument("--seif", required=True, type=int) + parser.add_argument("--evidence-dir", required=True, type=Path) + args = parser.parse_args() + asyncio.run(fetch_slice(args.slice_id, args.siman, args.seif, args.evidence_dir)) + + +if __name__ == "__main__": + main() From 24b30109be136365fd636248322d7ff90feb40b7 Mon Sep 17 00:00:00 2001 From: levi770 Date: Mon, 25 May 2026 17:27:23 +0200 Subject: [PATCH 2/5] Record YD 87:1 human validation PR --- .../smicha86/u01/yd_87/seif_1/evidence-manifest.yaml | 4 ++-- .../smicha86/u01/yd_87/seif_1/review/pr-body.md | 2 +- xlog/goal-ledger.yaml | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml index bfad083440..7e3fec6d06 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml @@ -1,6 +1,6 @@ slice_id: smicha86_u01_s87_seif_1 branch: codex/xlog-goal-bundle -commit: latest +commit: latest_branch_revision generated_at: '2026-05-25T15:18:30Z' source: @@ -70,7 +70,7 @@ validation: rejection_artifacts: [] github: - pr_url: null + pr_url: https://github.com/BrainyBlaze/mistaber/pull/25 discussion_url: null review_body: xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md human_verdict_artifact: null diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md b/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md index ce97643888..36967bbd65 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md @@ -2,7 +2,7 @@ - Slice id: `smicha86_u01_s87_seif_1` - Branch: `codex/xlog-goal-bundle` -- Commit for review: `latest` +- Commit for review: `latest branch revision` - Lifecycle state: `awaiting_human` - Related discussion: none - Evidence manifest: `xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml` diff --git a/xlog/goal-ledger.yaml b/xlog/goal-ledger.yaml index a38e278d87..ed16391d8d 100644 --- a/xlog/goal-ledger.yaml +++ b/xlog/goal-ledger.yaml @@ -47,11 +47,11 @@ workflow_defaults: slices: - id: smicha86_u01_s87_seif_1 title: "Yoreh Deah 87:1 meat with milk prohibitions and benefit boundary" - state: machine_validated + state: awaiting_human branch: codex/xlog-goal-bundle owner_agent: codex created_at: '2026-05-25T15:03:56Z' - updated_at: '2026-05-25T15:18:30Z' + updated_at: '2026-05-25T15:26:10Z' source_refs: - "Shulchan Arukh, Yoreh De'ah 87:1" files: @@ -71,7 +71,7 @@ slices: - xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml - xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md github: - pr_url: null + pr_url: https://github.com/BrainyBlaze/mistaber/pull/25 discussion_url: null labels: - mistaber-xlog @@ -80,7 +80,7 @@ slices: - awaiting-human validation: latest_report: xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md - latest_commit: latest + latest_commit: latest_branch_revision machine_status: pass - human_status: not_requested + human_status: awaiting_human blockers: [] From 6e87f50564b4c9622f6338a88dad69e83ca88070 Mon Sep 17 00:00:00 2001 From: levi770 Date: Sun, 31 May 2026 11:29:49 +0200 Subject: [PATCH 3/5] Expand source chain for YD 87:1 --- tests/xlog/test_sefaria_mcp_fetch.py | 68 ++ xlog/GOAL_BUNDLE.md | 8 +- xlog/GQM.md | 10 + xlog/HUMAN_VALIDATION.md | 16 +- xlog/README.md | 9 + xlog/SKILLS_ADAPTATION.md | 14 +- xlog/SOURCE_CHAIN_EXPANSION.md | 163 ++++ xlog/VALIDATION_CONTRACT.md | 56 ++ xlog/WORKFLOW.md | 56 ++ .../u01/yd_87/seif_1/evidence-manifest.yaml | 24 + .../u01/yd_87/seif_1/explain/boundary.json | 338 ++++++++- .../u01/yd_87/seif_1/explain/conflict.json | 36 +- .../u01/yd_87/seif_1/explain/provenance.json | 321 +++++++- .../u01/yd_87/seif_1/grounding-ledger.yaml | 11 +- .../yd_87/seif_1/linked-source-selection.yaml | 700 ++++++++++++++++++ .../smicha86/u01/yd_87/seif_1/qa-run.yaml | 8 +- .../smicha86/u01/yd_87/seif_1/qa-set.yaml | 35 +- .../u01/yd_87/seif_1/review/pr-body.md | 126 ++-- .../yd_87/seif_1/second-pass-outcomes.yaml | 99 +++ .../u01/yd_87/seif_1/source-claims.yaml | 157 +++- .../u01/yd_87/seif_1/source-fetch-log.yaml | 270 +++++++ ...lah_on_shulchan_arukh_yoreh_deah_87_1.json | 27 + .../seif_1/sources/linked/bekhorot_6b_11.json | 43 ++ ...gra_on_shulchan_arukh_yoreh_deah_87_1.json | 27 + .../sources/linked/chullin_115b_18.json | 43 ++ .../sources/linked/deuteronomy_14_21.json | 131 ++++ .../seif_1/sources/linked/exodus_23_19.json | 139 ++++ .../seif_1/sources/linked/exodus_34_26.json | 139 ++++ ...m_on_shulchan_arukh_yoreh_deah_87_1_1.json | 27 + .../sources/linked/kiddushin_57b_9.json | 47 ++ .../mishneh_torah_forbidden_foods_9_1.json | 43 ++ .../seif_1/sources/linked/nazir_37a_12.json | 43 ++ ...n_yoreh_deah_mishbezot_zahav_87_1_1_4.json | 32 + ...adim_on_yoreh_deah_siftei_daat_87_1_1.json | 27 + ...uva_on_shulchan_arukh_yoreh_deah_87_1.json | 27 + ...n_on_shulchan_arukh_yoreh_deah_87_1_1.json | 31 + ...n_on_shulchan_arukh_yoreh_deah_87_2_1.json | 31 + .../sources/linked/tur_yoreh_deah_87_1.json | 31 + ...hav_on_shulchan_arukh_yoreh_deah_87_1.json | 31 + .../seif_1/transcripts/boundary.explain.txt | 338 ++++++++- .../yd_87/seif_1/transcripts/boundary.run.txt | 24 +- .../seif_1/transcripts/conflict.explain.txt | 36 +- .../yd_87/seif_1/transcripts/conflict.run.txt | 18 +- .../yd_87/seif_1/transcripts/negative.run.txt | 4 +- .../yd_87/seif_1/transcripts/positive.run.txt | 4 +- .../seif_1/transcripts/provenance.explain.txt | 321 +++++++- .../seif_1/transcripts/provenance.run.txt | 73 +- .../u01/yd_87/seif_1/validation-report.md | 30 +- .../siman_87/smicha86_u01_s87_seif_1.xlog | 107 +++ .../smicha86/u01/yd_87/seif_1/boundary.xlog | 41 +- .../smicha86/u01/yd_87/seif_1/conflict.xlog | 2 + .../smicha86/u01/yd_87/seif_1/provenance.xlog | 33 +- xlog/templates/linked-source-selection.yaml | 60 ++ xlog/tools/sefaria_mcp_fetch.py | 257 ++++++- 54 files changed, 4516 insertions(+), 276 deletions(-) create mode 100644 tests/xlog/test_sefaria_mcp_fetch.py create mode 100644 xlog/SOURCE_CHAIN_EXPANSION.md create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/second-pass-outcomes.yaml create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/tur_yoreh_deah_87_1.json create mode 100644 xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json create mode 100644 xlog/templates/linked-source-selection.yaml diff --git a/tests/xlog/test_sefaria_mcp_fetch.py b/tests/xlog/test_sefaria_mcp_fetch.py new file mode 100644 index 0000000000..65fca1c3b6 --- /dev/null +++ b/tests/xlog/test_sefaria_mcp_fetch.py @@ -0,0 +1,68 @@ +import importlib.util +from pathlib import Path + + +MODULE_PATH = Path(__file__).resolve().parents[2] / "xlog" / "tools" / "sefaria_mcp_fetch.py" +SPEC = importlib.util.spec_from_file_location("sefaria_mcp_fetch", MODULE_PATH) +sefaria_mcp_fetch = importlib.util.module_from_spec(SPEC) +assert SPEC.loader is not None +SPEC.loader.exec_module(sefaria_mcp_fetch) + + +def test_build_linked_source_selection_records_selected_and_skipped_links(): + links = [ + { + "category": "Commentary", + "ref": "Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1", + "type": "commentary", + }, + { + "category": "Halakhah", + "ref": "Mishneh Torah, Forbidden Foods 9:1", + "type": "ein mishpat / ner mitsvah", + }, + { + "category": "Commentary", + "ref": "Yad Avraham on Shulchan Arukh, Yoreh Deah 87:3", + "type": "commentary", + }, + ] + + selection = sefaria_mcp_fetch.build_linked_source_selection( + slice_id="smicha86_u01_s87_seif_1", + links=links, + selected_refs={ + "Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1": ( + "qualifies the first-pass cooking/eating/benefit split" + ), + "Mishneh Torah, Forbidden Foods 9:1": ( + "upstream Rambam codification for Torah-level meat-milk prohibitions" + ), + }, + source_links_artifact=( + "xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json" + ), + evidence_dir=Path("xlog/evidence/smicha86/u01/yd_87/seif_1"), + generated_at="2026-05-31T00:00:00+00:00", + ) + + rows = {row["ref"]: row for row in selection["links"]} + + taz = rows["Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1"] + assert taz["selected"] is True + assert taz["family"] == "taz_turei_zahav" + assert taz["selection_reason"].startswith("qualifies") + assert taz["skip_reason"] == "" + assert taz["fetched_text_artifact"].endswith( + "sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json" + ) + + rambam = rows["Mishneh Torah, Forbidden Foods 9:1"] + assert rambam["family"] == "mishneh_torah_rambam" + assert rambam["selected"] is True + + skipped = rows["Yad Avraham on Shulchan Arukh, Yoreh Deah 87:3"] + assert skipped["selected"] is False + assert skipped["fetched_text_artifact"] is None + assert skipped["skip_reason"] + assert selection["gate"]["status"] == "source_chain_expansion_required" diff --git a/xlog/GOAL_BUNDLE.md b/xlog/GOAL_BUNDLE.md index 3672264f2c..430971c8fd 100644 --- a/xlog/GOAL_BUNDLE.md +++ b/xlog/GOAL_BUNDLE.md @@ -19,6 +19,8 @@ Mistaber becomes an XLOG-native legal reasoning system where: - the corpus is encoded as audited `.xlog` programs; - rules are executable and explainable; - source references come from Sefaria MCP; +- commentary and upstream sources are fetched before human review and drive a + mandatory second-pass re-encoding for every seif; - ontology reuse is enforced automatically when confidence is high; - predicate drift is detected before it pollutes the core model; - humans validate semantic correctness before merge; @@ -158,7 +160,9 @@ Acceptance: ```text candidate -> sourced + -> source_chain_expanded -> comprehended + -> commentary_comprehended -> grounded -> encoded -> machine_validated @@ -172,6 +176,7 @@ Allowed non-terminal states: - `human_changes_requested` - `ontology_review_required` +- `source_chain_expansion_required` - `source_blocked` - `machine_validation_failed` - `domain_escalation_required` @@ -190,6 +195,8 @@ discussions on every cycle and on a scheduled cadence. A branch may merge only when: - source evidence exists; +- commentary and upstream source expansion is complete; +- second-pass re-encoding from the expanded source chain is complete; - ontology grounding is complete; - machine validation is green; - human verdict is approved; @@ -206,4 +213,3 @@ Stop the current slice and continue elsewhere when: - the source requires domain escalation before a faithful encoding can be made. Do not stop the whole pipeline for pending human validation. - diff --git a/xlog/GQM.md b/xlog/GQM.md index b16a7cfcef..b18a4af971 100644 --- a/xlog/GQM.md +++ b/xlog/GQM.md @@ -33,6 +33,7 @@ Questions: - Q1.1: Was every source acquired through Sefaria MCP? - Q1.2: Are source references exact enough for human validation? - Q1.3: Are semantic claims linked to source evidence? +- Q1.4: Were commentary and upstream linked sources expanded before review? Metrics: @@ -41,6 +42,10 @@ Metrics: 100 percent. - M1.3: number of source fetch logs missing MCP tool metadata. Target: 0. - M1.4: number of unresolved translation or version mismatches. +- M1.5: slices missing `linked-source-selection.yaml` after first-pass encoding. + Target: 0 before human review. +- M1.6: selected linked sources without fetched text or recorded blocker. Target: + 0 before human review. ## G2: Ontology Grounding @@ -72,6 +77,7 @@ Questions: - Q3.1: Does each rule map to an explicit semantic claim? - Q3.2: Are provenance facts attached to each encoded law? - Q3.3: Are module boundaries stable as the corpus grows? +- Q3.4: Was the slice re-encoded after commentary expansion? Metrics: @@ -79,6 +85,10 @@ Metrics: - M3.2: rule-to-provenance coverage. Target: 100 percent. - M3.3: number of rules with untyped or uncataloged predicates. Target: 0. - M3.4: module boundary violations. Target: 0. +- M3.5: first-pass rules without second-pass outcomes. Target: 0 before human + review. +- M3.6: commentary-introduced semantics without XLOG encoding or escalation. + Target: 0. ## G4: Mechanical Validation diff --git a/xlog/HUMAN_VALIDATION.md b/xlog/HUMAN_VALIDATION.md index 1bbfc69723..2ad612929d 100644 --- a/xlog/HUMAN_VALIDATION.md +++ b/xlog/HUMAN_VALIDATION.md @@ -83,10 +83,17 @@ The encoding agent does not wait for a human reply. After opening the review artifact, it must: -1. update the goal ledger to `awaiting_human`; -2. add the artifact URL; -3. schedule or rely on the review monitor; -4. select the next eligible slice. +1. verify commentary source-chain expansion and second-pass re-encoding gates + passed; +2. update the goal ledger to `awaiting_human`; +3. add the artifact URL; +4. schedule or rely on the review monitor; +5. select the next eligible slice. + +A first-pass Shulchan-Arukh-only encoding must not enter `awaiting_human`. +Commentaries and upstream sources may add semantics, authority worlds, and +rules, so every seif requires the second-pass re-encoding evidence before human +review is requested. The review monitor must run: @@ -136,4 +143,3 @@ Merge automation must reject the branch if: Human approval is necessary but not sufficient. Green machine validation and scope verification are also required. - diff --git a/xlog/README.md b/xlog/README.md index d47d887555..0076802fbd 100644 --- a/xlog/README.md +++ b/xlog/README.md @@ -15,6 +15,8 @@ human review, and merge automation in sync. forbidden for new source acquisition. - Every encoded law requires human semantic validation before merge. - Human validation must not block continued encoding work on later slices. +- Every seif requires commentary/upstream source expansion and second-pass + re-encoding before it is ready for human semantic validation. - A high-confidence ontology match must automatically reuse the canonical predicate. - New public predicates require a recorded grounding decision and review. @@ -32,6 +34,7 @@ human review, and merge automation in sync. 8. [WORKFLOW.md](WORKFLOW.md) - continuous non-blocking encoding loop. 9. [VALIDATION_CONTRACT.md](VALIDATION_CONTRACT.md) - mechanical validation gates. 10. [HUMAN_VALIDATION.md](HUMAN_VALIDATION.md) - async human review and merge gate. +11. [SOURCE_CHAIN_EXPANSION.md](SOURCE_CHAIN_EXPANSION.md) - linked source text expansion gate. ## Directory Map @@ -47,6 +50,7 @@ xlog/ SKILLS_ADAPTATION.md Mapping from mistaber-skills to XLOG GDSD/GQM. RUNTIME_COMPATIBILITY.md XLOG syntax, WCOJ, and epistemic boundaries. XLOG_DOC_VALIDATION.md Findings from validation against XLOG docs. + SOURCE_CHAIN_EXPANSION.md Linked source text expansion gate. goal-ledger.yaml Current goal bundle registry. gqm-metrics.yaml Machine-readable metric registry. review-monitor.yaml Automated GitHub verdict monitor contract. @@ -71,7 +75,12 @@ xlog/ A law slice is complete only when all of these are true: - The source text was fetched through Sefaria MCP and logged. +- Relevant commentary and upstream sources were selected, fetched through + Sefaria MCP, classified, and logged. - Source claims are traceable to exact references. +- The slice was re-encoded in a second pass after commentary expansion, with + every first-pass claim and rule preserved, refined, split, rejected, or + escalated. - Every public atom is grounded to the ontology catalog. - The `.xlog` encoding runs under the required XLOG runtime path. - Validation scenarios include positive, negative, boundary, and conflict cases. diff --git a/xlog/SKILLS_ADAPTATION.md b/xlog/SKILLS_ADAPTATION.md index 1145c37c37..c468f87c0f 100644 --- a/xlog/SKILLS_ADAPTATION.md +++ b/xlog/SKILLS_ADAPTATION.md @@ -65,7 +65,9 @@ XLOG adaptation: - outputs source fetch logs and source claim tables under `xlog/evidence/`; - no direct HTTP fallback; - derivation chains become provenance inputs for XLOG rules; -- interpretive decisions become human-visible source claims and review items. +- interpretive decisions become human-visible source claims and review items; +- commentary and upstream source expansion is mandatory before human review, + because those sources may add semantics, worlds, exceptions, and rules. GDSD mapping: @@ -92,7 +94,10 @@ XLOG adaptation: - every public predicate must pass ontology grounding before use; - modal/world encoding is implemented in XLOG idioms and validated through XLOG execution paths; -- provenance facts replace directive-only source attribution. +- provenance facts replace directive-only source attribution; +- every seif receives a mandatory second-pass XLOG re-encoding after commentary + expansion, with each first-pass claim and rule preserved, refined, split, + rejected, or escalated. GDSD mapping: @@ -124,7 +129,9 @@ XLOG adaptation: - keeps QA separation between natural-language questions and executable scenario setup; - records evidence manifests and validation reports for each slice; -- treats explain/provenance evidence as load-bearing. +- treats explain/provenance evidence as load-bearing; +- fails human-review readiness when commentary source-chain expansion or + second-pass re-encoding evidence is missing. GDSD mapping: @@ -243,4 +250,3 @@ It removes the throughput bottleneck: | HLL validation report | `xlog/evidence//validation-report.md` | | review package | PR or discussion generated from `xlog/templates/` | | commit checkpoint metadata | `goal-ledger.yaml`, evidence manifest, GitHub PR state | - diff --git a/xlog/SOURCE_CHAIN_EXPANSION.md b/xlog/SOURCE_CHAIN_EXPANSION.md new file mode 100644 index 0000000000..5a42c428bf --- /dev/null +++ b/xlog/SOURCE_CHAIN_EXPANSION.md @@ -0,0 +1,163 @@ +# Source Chain Expansion Gate + +## Finding + +The current syllabus bundle has mechanically valid Shulchan Arukh slice evidence, +but the source chain is not complete enough for semantic human validation under +the intended Mistaber XLOG standard. + +Observed current pattern: + +- `source-fetch-log.yaml` records Sefaria MCP fetches. +- Direct fetched text is generally limited to Shulchan Arukh siman/seif text and + English translations when available. +- `seif-links.json` records linked references, including commentaries and + upstream sources. +- Linked references are usually not fetched as full text and not incorporated + into the source-claim chain. + +This means the bundle records linked source candidates, but it does not yet +build a full source chain from the major linked texts. + +## Standard + +For a slice to be ready for human semantic validation, source evidence must +include the primary Shulchan Arukh text plus the relevant upstream and commentary +texts needed to justify the interpretation. + +Commentary expansion is semantic work, not a documentation supplement. +Commentaries can introduce new distinctions, authority worlds, exceptions, +examples, boundary cases, provenance chains, and derived rules. Therefore every +slice that was encoded from a Shulchan-Arukh-first evidence package must be +re-encoded in a second iteration after linked-source expansion, even when the +first-pass XLOG program is machine-valid. + +Relevant source families include, when present and relevant: + +- Rema on the same seif; +- Siftei Kohen / Shach; +- Turei Zahav / Taz; +- Beur HaGra; +- Kaf HaChayim; +- Pri Megadim and other major linked commentaries; +- Tur; +- Mishneh Torah / Rambam; +- Talmud; +- Mishnah; +- Tanakh verses. + +The agent must not fetch every link indiscriminately. It must select relevant +major sources from the link inventory, fetch their text through Sefaria MCP, and +record why each selected or skipped source matters. + +## Gate Status + +Until this expansion pass is complete: + +- machine XLOG validation may remain `pass`; +- human semantic review should be considered not ready; +- merge must remain blocked; +- existing PRs should not be approved based only on Shulchan Arukh text and link + inventory; +- review bodies that imply all relevant source material was fetched must be + refreshed. + +## Required Per-Slice Artifacts + +Each slice must add: + +- `linked-source-selection.yaml` +- expanded `source-fetch-log.yaml` +- fetched linked-source text artifacts under `sources/linked/` +- updated `source-claims.yaml` +- updated `evidence-manifest.yaml` +- updated `review/pr-body.md` +- refreshed `validation-report.md` + +## Linked Source Selection + +For every `seif-links.json`, create a selection file with: + +- all major linked refs discovered; +- selected refs; +- skipped refs with reason; +- relevance class; +- source family; +- whether full text was fetched; +- source claims created or updated from the linked text. + +Use [templates/linked-source-selection.yaml](templates/linked-source-selection.yaml). + +## Expansion Workflow + +For each slice in syllabus order: + +1. Parse `seif-links.json`. +2. Classify links by family and relevance. +3. Select major linked sources needed for interpretation. +4. Fetch selected linked-source texts through Sefaria MCP only. +5. Add every fetch to `source-fetch-log.yaml`. +6. Store linked texts under `sources/linked/`. +7. Update `source-claims.yaml` to distinguish: + - primary Shulchan Arukh claims; + - commentary claims; + - upstream derivation claims; + - disagreement or interpretation claims. +8. Re-run semantic decomposition from the expanded source chain. +9. Re-run ontology grounding for all public predicates, worlds, authority + contexts, and rule intents. +10. Re-encode the slice in XLOG as a second iteration. The re-encoding may + preserve first-pass rules only after they have been explicitly checked + against the expanded commentary evidence. +11. Refresh scenarios for any new semantics, authority worlds, exceptions, + boundary cases, or provenance paths introduced by the commentary layer. +12. Rerun validation for the full slice, not only for changed files. +13. Refresh the PR body and evidence manifest. + +## Mandatory Second-Pass Re-Encoding + +The second pass is required for every slice because commentary may change what +the law means, not merely why it is sourced. + +The second-pass agent must record one outcome per first-pass claim and rule: + +- `preserved`: expanded sources support the existing encoding without semantic + change; +- `refined`: expanded sources add conditions, exceptions, authority scope, + provenance, or boundary cases; +- `split`: expanded sources require separate authority worlds or distinct rule + branches; +- `rejected`: expanded sources show the first-pass claim or rule was not + faithful; +- `escalated`: expanded sources create a domain question that cannot be resolved + by the agent. + +Human review readiness requires this second-pass ledger. A slice must not move +to `awaiting_human` merely because first-pass `xlog run` scenarios passed. + +## Labels And States + +Recommended PR label: + +- `source-chain-expansion-required` + +Recommended ledger state while expanding: + +- keep `machine_status: pass` only if XLOG validation remains green; +- set `human_status: source_chain_expansion_required`; +- do not move to `human_approved` until refreshed evidence is reviewed. + +## Completion Criteria + +The expansion pass is complete for a slice only when: + +- selected linked sources have fetched text artifacts; +- skipped major links have reasons; +- source claims cite the expanded chain where relevant; +- every first-pass claim and rule has a second-pass outcome; +- ontology grounding was rerun after commentary expansion; +- XLOG was re-encoded or explicitly preserved claim-by-claim from the expanded + evidence; +- review body links to the expanded source evidence; +- validation report states the second-pass re-encoding result; +- human review is requested against the refreshed evidence. diff --git a/xlog/VALIDATION_CONTRACT.md b/xlog/VALIDATION_CONTRACT.md index 631b246885..c78ce8c51d 100644 --- a/xlog/VALIDATION_CONTRACT.md +++ b/xlog/VALIDATION_CONTRACT.md @@ -24,6 +24,30 @@ Failure conditions: - claim without source support; - unresolved source ambiguity not marked for escalation. +## Gate V1a: Commentary Source-Chain Gate + +Purpose: + +- prove that commentary and upstream linked sources were treated as semantic + inputs, not as optional review notes; +- prevent Shulchan-Arukh-first encodings from entering human review without the + second source pass. + +Required evidence: + +- `linked-source-selection.yaml`; +- fetched linked-source text artifacts under `sources/linked/`; +- source fetch log entries for every selected linked source; +- skipped-major-link reasons; +- commentary classification and source-claim updates. + +Failure conditions: + +- selected linked source lacks fetched text or a recorded blocker; +- major linked source is skipped without reason; +- commentary introduces semantic material that is absent from source claims; +- slice moves to human review while source-chain expansion is incomplete. + ## Gate V2: Ontology Grounding Gate Purpose: @@ -48,6 +72,10 @@ Failure conditions: - new public predicate without review payload; - private helper leaks into public scenario or cross-module contract. +The grounding gate must be rerun after commentary expansion. New or preserved +public predicates, authority worlds, and rule intents all require fresh top-k +grounding evidence from the expanded source chain. + ## Gate V3: Static XLOG Gate Purpose: @@ -83,6 +111,32 @@ Failure conditions: - uncataloged public predicate; - scenario depends on private helper. +## Gate V3a: Second-Pass Re-Encoding Gate + +Purpose: + +- prove that each seif was re-encoded after commentary expansion; +- prove that commentaries were allowed to add or change semantics, worlds, and + rules. + +Required evidence: + +- second-pass claim/rule outcome ledger; +- refreshed XLOG program artifact or explicit rule-by-rule preservation record; +- refreshed grounding ledger after commentary expansion; +- refreshed scenarios for any new commentary semantics; +- validation report identifying preserved, refined, split, rejected, and + escalated first-pass items. + +Failure conditions: + +- first-pass rule has no second-pass outcome; +- first-pass XLOG is reused wholesale without commentary-based review; +- new commentary semantics lack XLOG representation or escalation; +- ontology grounding was not rerun after commentary expansion; +- scenarios were not refreshed after rule, world, exception, or boundary-case + changes. + ## Gate V4: Runtime Scenario Gate Purpose: @@ -242,6 +296,8 @@ Failure conditions: - merge before human approval; - approval applies to older code after semantic changes; - missing source, formula, scenario, or evidence links in the review artifact. +- human review requested before commentary source-chain and second-pass + re-encoding gates pass. ## Gate V8: Merge Validation Gate diff --git a/xlog/WORKFLOW.md b/xlog/WORKFLOW.md index 2273348563..6106830bb0 100644 --- a/xlog/WORKFLOW.md +++ b/xlog/WORKFLOW.md @@ -47,6 +47,32 @@ Exit: - state becomes `sourced`; - source evidence is sufficient for a human to inspect the exact references. +## Phase 1a: Expand Commentary And Upstream Source Chain + +Actions: + +1. Parse the slice `seif-links.json`. +2. Select major relevant linked sources without fetching every link + indiscriminately. +3. Fetch selected commentary and upstream source texts through Sefaria MCP only. +4. Classify each selected source as clarification, qualification, extension, + dispute, practical ruling, or upstream derivation. +5. Record skipped major links with reasons. +6. Update `linked-source-selection.yaml`, `source-fetch-log.yaml`, and linked + source text artifacts under `sources/linked/`. + +Rules: + +- Commentary is semantically load-bearing. It may introduce new worlds, + authority scopes, exceptions, boundary cases, and rules. +- A Shulchan-Arukh-first encoding is only a first pass. It is not ready for + human semantic review until the commentary expansion pass has completed. + +Exit: + +- state becomes `source_chain_expanded`; +- every selected linked source has fetched text or an explicit blocker. + ## Phase 2: Comprehend Source Actions: @@ -63,6 +89,29 @@ Exit: - state becomes `comprehended`; - each claim has a source reference and intended logical role. +## Phase 2a: Second-Pass Semantic Re-Interpretation + +Actions: + +1. Re-run semantic decomposition from the expanded source chain. +2. Compare every first-pass claim and rule against the commentary evidence. +3. Mark each first-pass item as `preserved`, `refined`, `split`, `rejected`, or + `escalated`. +4. Add new claims for semantics introduced by commentaries, including authority + worlds, minhag differences, exceptions, examples, and practical limits. +5. Update the source-claim table and domain-escalation list. + +Rules: + +- This pass is mandatory for every seif, even if first-pass XLOG validation was + green. +- Preserving a first-pass rule still requires an explicit second-pass outcome. + +Exit: + +- state becomes `commentary_comprehended`; +- every first-pass claim and rule has a recorded second-pass outcome. + ## Phase 3: Ground Ontology Actions: @@ -92,6 +141,13 @@ Actions: 5. Add validation scenarios under `scenarios/` using `?-` output queries. 6. Update evidence manifest with changed files. +Second-iteration rule: + +- After Phase 1a and Phase 2a, every slice must be re-encoded or explicitly + preserved rule-by-rule from the expanded commentary evidence. The agent must + reopen ontology grounding before introducing or preserving public predicates, + worlds, and authority-context facts. + Exit: - state becomes `encoded`; diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml index 7e3fec6d06..0089de518a 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml @@ -5,6 +5,7 @@ generated_at: '2026-05-25T15:18:30Z' source: fetch_log: xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml + linked_source_selection: xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml source_claims: xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml source_artifacts: - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/ref-clarify.json @@ -12,6 +13,25 @@ source: - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-translations.json - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json + linked_source_artifacts: + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/tur_yoreh_deah_87_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json ontology: grounding_ledger: xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml @@ -22,6 +42,7 @@ ontology: ontology_deltas: [] xlog: + second_pass_outcomes: xlog/evidence/smicha86/u01/yd_87/seif_1/second-pass-outcomes.yaml programs: - xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog scenarios: @@ -77,7 +98,10 @@ github: traceability: source_to_claim_complete: true + linked_source_to_claim_complete: true claim_to_rule_complete: true + first_pass_second_pass_outcome_complete: true + commentary_expansion_complete: true rule_to_scenario_complete: true scenario_to_explain_complete: true human_verdict_complete: false diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json index d3f6bc0106..1dd15bfc15 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json @@ -1,11 +1,11 @@ { "parse": { - "statements": 18, + "statements": 52, "cache_hits": 0, - "cache_misses": 18 + "cache_misses": 52 }, "ast": { - "rules": 10, + "rules": 44, "queries": 1, "prob_queries": 0 }, @@ -14,11 +14,11 @@ "strata": 2 }, "rir": { - "status": "error: Compilation error: Symbol literal case_non_cooked_benefit not valid for U64", - "sccs": 0 + "status": "ok", + "sccs": 11 }, "optimizer": { - "status": "not_available", + "status": "ok", "est_memory_peak": 0 }, "wcoj": { @@ -92,37 +92,343 @@ "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:6:d10843e04112bb5c", - "head": "expected_normative(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)", + "rule_id": "rule:source:6:5b5b7749a94c3c04", + "head": "item(case_rabbinic_benefit)", "source_kind": "source", "source_span": "rule_index:6", + "generation_trace_hash": "5b5b7749a94c3c04", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:7:0d05fb40c767e35d", + "head": "food(case_rabbinic_benefit)", + "source_kind": "source", + "source_span": "rule_index:7", + "generation_trace_hash": "0d05fb40c767e35d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:8:a27aa216ae205c3b", + "head": "legal_category(case_rabbinic_benefit, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:8", + "generation_trace_hash": "a27aa216ae205c3b", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:9:7142f8878440f8e0", + "head": "legal_category(case_rabbinic_benefit, rabbinic_mixture)", + "source_kind": "source", + "source_span": "rule_index:9", + "generation_trace_hash": "7142f8878440f8e0", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:10:1c293a86b4bbbb94", + "head": "legal_category(case_rabbinic_benefit, not_torah_prohibited)", + "source_kind": "source", + "source_span": "rule_index:10", + "generation_trace_hash": "1c293a86b4bbbb94", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:11:3ed2f100f0911a4a", + "head": "legal_category(case_rabbinic_benefit, benefit_context)", + "source_kind": "source", + "source_span": "rule_index:11", + "generation_trace_hash": "3ed2f100f0911a4a", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:12:2cf3ef27944edf1a", + "head": "item(case_pickled_meat_milk)", + "source_kind": "source", + "source_span": "rule_index:12", + "generation_trace_hash": "2cf3ef27944edf1a", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:13:4f3093c39b0a4769", + "head": "food(case_pickled_meat_milk)", + "source_kind": "source", + "source_span": "rule_index:13", + "generation_trace_hash": "4f3093c39b0a4769", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:14:7bda2d1570bfeccb", + "head": "legal_category(case_pickled_meat_milk, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:14", + "generation_trace_hash": "7bda2d1570bfeccb", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:15:c41212ca40fb3270", + "head": "legal_category(case_pickled_meat_milk, pickling_context)", + "source_kind": "source", + "source_span": "rule_index:15", + "generation_trace_hash": "c41212ca40fb3270", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:16:3f146a6e253e4dcd", + "head": "item(case_salted_meat_milk)", + "source_kind": "source", + "source_span": "rule_index:16", + "generation_trace_hash": "3f146a6e253e4dcd", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:17:e24ec8115c82baf4", + "head": "food(case_salted_meat_milk)", + "source_kind": "source", + "source_span": "rule_index:17", + "generation_trace_hash": "e24ec8115c82baf4", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:18:1b1025896017a8e8", + "head": "legal_category(case_salted_meat_milk, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:18", + "generation_trace_hash": "1b1025896017a8e8", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:19:e921a2f64feb328c", + "head": "legal_category(case_salted_meat_milk, salting_context)", + "source_kind": "source", + "source_span": "rule_index:19", + "generation_trace_hash": "e921a2f64feb328c", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:20:850f3f9ad499a5cc", + "head": "item(case_unusual_eating)", + "source_kind": "source", + "source_span": "rule_index:20", + "generation_trace_hash": "850f3f9ad499a5cc", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:21:f2f29bd80e589cfd", + "head": "food(case_unusual_eating)", + "source_kind": "source", + "source_span": "rule_index:21", + "generation_trace_hash": "f2f29bd80e589cfd", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:22:4a25c19a572dfc7b", + "head": "legal_category(case_unusual_eating, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:22", + "generation_trace_hash": "4a25c19a572dfc7b", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:23:8c1d49526796ef01", + "head": "legal_category(case_unusual_eating, cooked_meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:23", + "generation_trace_hash": "8c1d49526796ef01", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:24:eb50dac7d9d61cbd", + "head": "legal_category(case_unusual_eating, unusual_eating_context)", + "source_kind": "source", + "source_span": "rule_index:24", + "generation_trace_hash": "eb50dac7d9d61cbd", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:25:da47cc2090f65905", + "head": "item(case_unusual_benefit)", + "source_kind": "source", + "source_span": "rule_index:25", + "generation_trace_hash": "da47cc2090f65905", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:26:a2fbc00303e5c0d2", + "head": "food(case_unusual_benefit)", + "source_kind": "source", + "source_span": "rule_index:26", + "generation_trace_hash": "a2fbc00303e5c0d2", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:27:6584410321e56e6e", + "head": "legal_category(case_unusual_benefit, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:27", + "generation_trace_hash": "6584410321e56e6e", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:28:cc9b13b3621afd36", + "head": "legal_category(case_unusual_benefit, cooked_meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:28", + "generation_trace_hash": "cc9b13b3621afd36", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:29:3df7304977ae418b", + "head": "legal_category(case_unusual_benefit, unusual_benefit_context)", + "source_kind": "source", + "source_span": "rule_index:29", + "generation_trace_hash": "3df7304977ae418b", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:30:d10843e04112bb5c", + "head": "expected_normative(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)", + "source_kind": "source", + "source_span": "rule_index:30", "generation_trace_hash": "d10843e04112bb5c", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:7:c0397aac5ecb52aa", + "rule_id": "rule:source:31:dba62c60ec13c52d", + "head": "expected_normative(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:31", + "generation_trace_hash": "dba62c60ec13c52d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:32:054c9186ba718436", + "head": "expected_normative(maharshal, case_non_cooked_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency)", + "source_kind": "source", + "source_span": "rule_index:32", + "generation_trace_hash": "054c9186ba718436", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:33:75ddd0023c0367a3", + "head": "expected_normative(rema, case_rabbinic_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)", + "source_kind": "source", + "source_span": "rule_index:33", + "generation_trace_hash": "75ddd0023c0367a3", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:34:095e832f15028444", + "head": "expected_normative(rema, case_rabbinic_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:34", + "generation_trace_hash": "095e832f15028444", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:35:6dcfd1b1cfae773d", + "head": "expected_normative(rema, case_rabbinic_benefit, permitted, claim_yd_87_1_shach_rabbinic_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:35", + "generation_trace_hash": "6dcfd1b1cfae773d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:36:c85203332c28ad73", + "head": "expected_normative(maharshal, case_rabbinic_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency)", + "source_kind": "source", + "source_span": "rule_index:36", + "generation_trace_hash": "c85203332c28ad73", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:37:232b3cbc2a800545", + "head": "expected_normative(mechaber, case_pickled_meat_milk, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary)", + "source_kind": "source", + "source_span": "rule_index:37", + "generation_trace_hash": "232b3cbc2a800545", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:38:ceeeced5dc515a98", + "head": "expected_normative(mechaber, case_salted_meat_milk, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary)", + "source_kind": "source", + "source_span": "rule_index:38", + "generation_trace_hash": "ceeeced5dc515a98", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:39:b987be550514d57b", + "head": "expected_normative(mechaber, case_unusual_eating, prohibited, claim_yd_87_1_pitchei_unusual_eating_prohibited)", + "source_kind": "source", + "source_span": "rule_index:39", + "generation_trace_hash": "b987be550514d57b", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:40:8c76675551986c05", + "head": "expected_normative(mechaber, case_unusual_benefit, prohibited, claim_yd_87_1_unusual_eating_benefit_prohibited)", + "source_kind": "source", + "source_span": "rule_index:40", + "generation_trace_hash": "8c76675551986c05", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:41:c0397aac5ecb52aa", "head": "actual_normative(World, Item, Outcome, Claim)", "source_kind": "source", - "source_span": "rule_index:7", + "source_span": "rule_index:41", "generation_trace_hash": "c0397aac5ecb52aa", "support_relation_ids": ["normative_outcome"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:8:0c883b52d0f09f1e", + "rule_id": "rule:source:42:0c883b52d0f09f1e", "head": "missing_expected(World, Item, Outcome, Claim)", "source_kind": "source", - "source_span": "rule_index:8", + "source_span": "rule_index:42", "generation_trace_hash": "0c883b52d0f09f1e", "support_relation_ids": ["actual_normative", "expected_normative"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:9:a5fa9ffa626742dc", + "rule_id": "rule:source:43:a5fa9ffa626742dc", "head": "unexpected_normative(World, Item, Outcome, Claim)", "source_kind": "source", - "source_span": "rule_index:9", + "source_span": "rule_index:43", "generation_trace_hash": "a5fa9ffa626742dc", "support_relation_ids": ["actual_normative", "expected_normative"], "counterexample_relation_ids": [] @@ -131,8 +437,8 @@ , "proof_traces": [ { - "query_id": "query:source:0:normative_outcome(World, case_non_cooked_benefit, Outcome, Claim)", - "query": "normative_outcome(World, case_non_cooked_benefit, Outcome, Claim)", + "query_id": "query:source:0:normative_outcome(World, Item, Outcome, Claim)", + "query": "normative_outcome(World, Item, Outcome, Claim)", "answer_relation": "__xlog_query_0", "rule_ids": [], "source_facts": [], diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json index 9a7f72e82a..38d634cf92 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json @@ -1,11 +1,11 @@ { "parse": { - "statements": 25, + "statements": 27, "cache_hits": 0, - "cache_misses": 25 + "cache_misses": 27 }, "ast": { - "rules": 17, + "rules": 19, "queries": 1, "prob_queries": 0 }, @@ -164,28 +164,46 @@ "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:14:c0397aac5ecb52aa", - "head": "actual_normative(World, Item, Outcome, Claim)", + "rule_id": "rule:source:14:fba681540ed3a550", + "head": "expected_normative(rema, case_uncooked_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission)", "source_kind": "source", "source_span": "rule_index:14", + "generation_trace_hash": "fba681540ed3a550", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:15:c67fb3ab3141a89f", + "head": "expected_normative(maharshal, case_uncooked_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency)", + "source_kind": "source", + "source_span": "rule_index:15", + "generation_trace_hash": "c67fb3ab3141a89f", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:16:c0397aac5ecb52aa", + "head": "actual_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:16", "generation_trace_hash": "c0397aac5ecb52aa", "support_relation_ids": ["normative_outcome"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:15:0c883b52d0f09f1e", + "rule_id": "rule:source:17:0c883b52d0f09f1e", "head": "missing_expected(World, Item, Outcome, Claim)", "source_kind": "source", - "source_span": "rule_index:15", + "source_span": "rule_index:17", "generation_trace_hash": "0c883b52d0f09f1e", "support_relation_ids": ["actual_normative", "expected_normative"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:16:a5fa9ffa626742dc", + "rule_id": "rule:source:18:a5fa9ffa626742dc", "head": "unexpected_normative(World, Item, Outcome, Claim)", "source_kind": "source", - "source_span": "rule_index:16", + "source_span": "rule_index:18", "generation_trace_hash": "a5fa9ffa626742dc", "support_relation_ids": ["actual_normative", "expected_normative"], "counterexample_relation_ids": [] diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json index b97c7b4346..a394d800c6 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json @@ -1,11 +1,11 @@ { "parse": { - "statements": 33, + "statements": 62, "cache_hits": 0, - "cache_misses": 33 + "cache_misses": 62 }, "ast": { - "rules": 18, + "rules": 47, "queries": 2, "prob_queries": 0 }, @@ -92,109 +92,370 @@ "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:6:7bb41772d9635997", - "head": "actual_claim(Claim)", + "rule_id": "rule:source:6:12a5cd920d46597e", + "head": "expected_claim(claim_yd_87_1_rambam_cooking_eating_benefit)", "source_kind": "source", "source_span": "rule_index:6", - "generation_trace_hash": "7bb41772d9635997", + "generation_trace_hash": "12a5cd920d46597e", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:7:2b9acda25301665d", + "head": "expected_claim(claim_yd_87_1_talmud_threefold_derivation)", + "source_kind": "source", + "source_span": "rule_index:7", + "generation_trace_hash": "2b9acda25301665d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:8:fe94b657727aff62", + "head": "expected_claim(claim_yd_87_1_torah_repeated_verses)", + "source_kind": "source", + "source_span": "rule_index:8", + "generation_trace_hash": "fe94b657727aff62", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:9:41ac879c203bd5bd", + "head": "expected_claim(claim_yd_87_1_shach_pickling_salting_boundary)", + "source_kind": "source", + "source_span": "rule_index:9", + "generation_trace_hash": "41ac879c203bd5bd", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:10:42acdbfee118e67f", + "head": "expected_claim(claim_yd_87_1_gra_fire_cooking_boundary)", + "source_kind": "source", + "source_span": "rule_index:10", + "generation_trace_hash": "42acdbfee118e67f", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:11:3e4653b41e32ea07", + "head": "expected_claim(claim_yd_87_1_taz_standard_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:11", + "generation_trace_hash": "3e4653b41e32ea07", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:12:b0b4a869618ab854", + "head": "expected_claim(claim_yd_87_1_maharshal_benefit_stringency)", + "source_kind": "source", + "source_span": "rule_index:12", + "generation_trace_hash": "b0b4a869618ab854", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:13:aba97312d19a5ca2", + "head": "expected_claim(claim_yd_87_1_shach_rabbinic_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:13", + "generation_trace_hash": "aba97312d19a5ca2", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:14:f1a27fafe54ab9c3", + "head": "expected_claim(claim_yd_87_1_unusual_eating_benefit_prohibited)", + "source_kind": "source", + "source_span": "rule_index:14", + "generation_trace_hash": "f1a27fafe54ab9c3", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:15:b324151492c6c08e", + "head": "expected_claim(claim_yd_87_1_pitchei_unusual_eating_prohibited)", + "source_kind": "source", + "source_span": "rule_index:15", + "generation_trace_hash": "b324151492c6c08e", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:16:935b92f1b12e96f5", + "head": "expected_claim(claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic)", + "source_kind": "source", + "source_span": "rule_index:16", + "generation_trace_hash": "935b92f1b12e96f5", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:17:716aede4be1042af", + "head": "actual_claim(Claim)", + "source_kind": "source", + "source_span": "rule_index:17", + "generation_trace_hash": "716aede4be1042af", "support_relation_ids": ["source_claim"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:7:501319082174c573", + "rule_id": "rule:source:18:501319082174c573", "head": "missing_claim(Claim)", "source_kind": "source", - "source_span": "rule_index:7", + "source_span": "rule_index:18", "generation_trace_hash": "501319082174c573", "support_relation_ids": ["actual_claim", "expected_claim"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:8:4f6e3cf4b82ca288", + "rule_id": "rule:source:19:4f6e3cf4b82ca288", "head": "unexpected_claim(Claim)", "source_kind": "source", - "source_span": "rule_index:8", + "source_span": "rule_index:19", "generation_trace_hash": "4f6e3cf4b82ca288", "support_relation_ids": ["actual_claim", "expected_claim"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:9:e80d4e4d65254576", + "rule_id": "rule:source:20:e80d4e4d65254576", "head": "expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_cooking)", "source_kind": "source", - "source_span": "rule_index:9", + "source_span": "rule_index:20", "generation_trace_hash": "e80d4e4d65254576", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:10:e5c6bf7bec45168a", + "rule_id": "rule:source:21:e5c6bf7bec45168a", "head": "expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_eating)", "source_kind": "source", - "source_span": "rule_index:10", + "source_span": "rule_index:21", "generation_trace_hash": "e5c6bf7bec45168a", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:11:6dc7b801d909c514", + "rule_id": "rule:source:22:6dc7b801d909c514", "head": "expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_benefit)", "source_kind": "source", - "source_span": "rule_index:11", + "source_span": "rule_index:22", "generation_trace_hash": "6dc7b801d909c514", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:12:c94d60626782538e", + "rule_id": "rule:source:23:c94d60626782538e", "head": "expected_support(rule_yd_87_1_cooked_condition, claim_yd_87_1_cooked_condition)", "source_kind": "source", - "source_span": "rule_index:12", + "source_span": "rule_index:23", "generation_trace_hash": "c94d60626782538e", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:13:931e7f605911c356", + "rule_id": "rule:source:24:931e7f605911c356", "head": "expected_support(rule_yd_87_1_rabbinic_all_forms, claim_yd_87_1_rabbinic_all_forms)", "source_kind": "source", - "source_span": "rule_index:13", + "source_span": "rule_index:24", "generation_trace_hash": "931e7f605911c356", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:14:0872b43b7a1b2d8e", + "rule_id": "rule:source:25:0872b43b7a1b2d8e", "head": "expected_support(rule_yd_87_1_rema_benefit_non_torah, claim_yd_87_1_rema_benefit_non_torah)", "source_kind": "source", - "source_span": "rule_index:14", + "source_span": "rule_index:25", "generation_trace_hash": "0872b43b7a1b2d8e", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:15:c5aae15398d1fdd1", + "rule_id": "rule:source:26:e8c138c472ea346d", + "head": "expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_rambam_cooking_eating_benefit)", + "source_kind": "source", + "source_span": "rule_index:26", + "generation_trace_hash": "e8c138c472ea346d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:27:3fd1a9ab720dbdcd", + "head": "expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_rambam_cooking_eating_benefit)", + "source_kind": "source", + "source_span": "rule_index:27", + "generation_trace_hash": "3fd1a9ab720dbdcd", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:28:dac6fb44c2ee6de2", + "head": "expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_rambam_cooking_eating_benefit)", + "source_kind": "source", + "source_span": "rule_index:28", + "generation_trace_hash": "dac6fb44c2ee6de2", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:29:f6e19619a128360a", + "head": "expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_talmud_threefold_derivation)", + "source_kind": "source", + "source_span": "rule_index:29", + "generation_trace_hash": "f6e19619a128360a", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:30:9ce89473798368aa", + "head": "expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_talmud_threefold_derivation)", + "source_kind": "source", + "source_span": "rule_index:30", + "generation_trace_hash": "9ce89473798368aa", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:31:ec99f723b652af71", + "head": "expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_talmud_threefold_derivation)", + "source_kind": "source", + "source_span": "rule_index:31", + "generation_trace_hash": "ec99f723b652af71", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:32:c77a89857b933b31", + "head": "expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_repeated_verses)", + "source_kind": "source", + "source_span": "rule_index:32", + "generation_trace_hash": "c77a89857b933b31", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:33:b6649626214ce151", + "head": "expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_repeated_verses)", + "source_kind": "source", + "source_span": "rule_index:33", + "generation_trace_hash": "b6649626214ce151", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:34:a1a555cfc1a18f76", + "head": "expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_repeated_verses)", + "source_kind": "source", + "source_span": "rule_index:34", + "generation_trace_hash": "a1a555cfc1a18f76", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:35:08559fefd6a77808", + "head": "expected_support(rule_yd_87_1_pickling_torah_boundary, claim_yd_87_1_shach_pickling_salting_boundary)", + "source_kind": "source", + "source_span": "rule_index:35", + "generation_trace_hash": "08559fefd6a77808", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:36:e34cd143785dcb47", + "head": "expected_support(rule_yd_87_1_salting_torah_boundary, claim_yd_87_1_shach_pickling_salting_boundary)", + "source_kind": "source", + "source_span": "rule_index:36", + "generation_trace_hash": "e34cd143785dcb47", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:37:b2853d700fdfc2fe", + "head": "expected_support(rule_yd_87_1_pickling_torah_boundary, claim_yd_87_1_gra_fire_cooking_boundary)", + "source_kind": "source", + "source_span": "rule_index:37", + "generation_trace_hash": "b2853d700fdfc2fe", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:38:b3bc614fa8fb21b2", + "head": "expected_support(rule_yd_87_1_taz_standard_benefit_permission, claim_yd_87_1_taz_standard_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:38", + "generation_trace_hash": "b3bc614fa8fb21b2", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:39:9f25e0ea9fc4778a", + "head": "expected_support(rule_yd_87_1_maharshal_benefit_stringency, claim_yd_87_1_maharshal_benefit_stringency)", + "source_kind": "source", + "source_span": "rule_index:39", + "generation_trace_hash": "9f25e0ea9fc4778a", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:40:0e994c9b46d7d9f4", + "head": "expected_support(rule_yd_87_1_shach_rabbinic_benefit_permission, claim_yd_87_1_shach_rabbinic_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:40", + "generation_trace_hash": "0e994c9b46d7d9f4", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:41:2c0ee08f565e883f", + "head": "expected_support(rule_yd_87_1_unusual_eating_prohibited, claim_yd_87_1_pitchei_unusual_eating_prohibited)", + "source_kind": "source", + "source_span": "rule_index:41", + "generation_trace_hash": "2c0ee08f565e883f", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:42:412e0a716f65eff5", + "head": "expected_support(rule_yd_87_1_unusual_benefit_prohibited, claim_yd_87_1_unusual_eating_benefit_prohibited)", + "source_kind": "source", + "source_span": "rule_index:42", + "generation_trace_hash": "412e0a716f65eff5", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:43:ff1301fc72d11783", + "head": "expected_support(rule_yd_87_1_non_torah_cooking_rabbinic, claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic)", + "source_kind": "source", + "source_span": "rule_index:43", + "generation_trace_hash": "ff1301fc72d11783", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:44:c5aae15398d1fdd1", "head": "actual_support(Rule, Claim)", "source_kind": "source", - "source_span": "rule_index:15", + "source_span": "rule_index:44", "generation_trace_hash": "c5aae15398d1fdd1", "support_relation_ids": ["supports_claim"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:16:763a75bfaaf0df2e", + "rule_id": "rule:source:45:763a75bfaaf0df2e", "head": "missing_support(Rule, Claim)", "source_kind": "source", - "source_span": "rule_index:16", + "source_span": "rule_index:45", "generation_trace_hash": "763a75bfaaf0df2e", "support_relation_ids": ["actual_support", "expected_support"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:17:6c6a74236ade7bb1", + "rule_id": "rule:source:46:6c6a74236ade7bb1", "head": "unexpected_support(Rule, Claim)", "source_kind": "source", - "source_span": "rule_index:17", + "source_span": "rule_index:46", "generation_trace_hash": "6c6a74236ade7bb1", "support_relation_ids": ["actual_support", "expected_support"], "counterexample_relation_ids": [] @@ -203,8 +464,8 @@ , "proof_traces": [ { - "query_id": "query:source:0:source_claim(Claim, ref_yd_87_1, Text)", - "query": "source_claim(Claim, ref_yd_87_1, Text)", + "query_id": "query:source:0:source_claim(Claim, Ref, Text)", + "query": "source_claim(Claim, Ref, Text)", "answer_relation": "__xlog_query_0", "rule_ids": [], "source_facts": [], diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml index fbf5e75007..ed80897d9c 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml @@ -1,7 +1,11 @@ slice_id: smicha86_u01_s87_seif_1 -generated_at: '2026-05-25T15:06:58Z' +generated_at: '2026-05-31T09:42:00Z' catalog_version: 1 drift_policy_version: 1 +rerun_reason: commentary_source_chain_expansion +expanded_source_inputs: + - xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml + - xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml search_surfaces: predicate_catalog: xlog/ontology/catalog.yaml @@ -80,7 +84,7 @@ predicate_decisions: review_required: false review_note: "" - intent_id: intent_authority_world - intent: "Represent Mechaber and Rema authority contexts without epistemic literals." + intent: "Represent Mechaber, Rema, and Maharshal authority contexts without epistemic literals." proposed_name: holds_in proposed_arity: 3 selected_canonical: holds_in @@ -183,6 +187,7 @@ private_helpers: [] gate: public_predicate_grounding_coverage: "17/17" high_confidence_auto_reuse_complete: true + commentary_expansion_rerun: true + new_public_predicates_after_commentary_expansion: [] unreviewed_public_predicates: [] status: pass - diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml new file mode 100644 index 0000000000..2cde4984ff --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml @@ -0,0 +1,700 @@ +slice_id: smicha86_u01_s87_seif_1 +generated_at: '2026-05-31T09:16:16+00:00' +source_links_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json +selection_policy: + fetch_all_links: false + select_major_relevant_sources: true + mandatory_second_pass_reencoding: true + sefaria_mcp_required: true + direct_http_allowed: false +major_source_families: +- rema +- shach_siftei_kohen +- taz_turei_zahav +- beur_hagra +- kaf_hachayim +- pri_megadim +- tur +- mishneh_torah_rambam +- talmud +- mishnah +- tanakh +links: +- ref: Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 + family: taz_turei_zahav + link_type: commentary + selected: true + selection_reason: qualifies the first-pass cooking/eating/benefit split + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json + created_or_updated_claims: + - claim_yd_87_1_taz_standard_benefit_permission + - claim_yd_87_1_maharshal_benefit_stringency +- ref: Tur, Yoreh De'ah 87:1 + family: tur + link_type: commentary + selected: true + selection_reason: upstream halakhic codification used by the Shulchan Arukh source + chain + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/tur_yoreh_deah_87_1.json + created_or_updated_claims: + - claim_yd_87_1_torah_cooking + - claim_yd_87_1_torah_eating + - claim_yd_87_1_torah_benefit +- ref: Yad Ephraim on Shulchan Arukh, Yoreh De'ah 87:1 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Yad Avraham on Shulchan Arukh, Yoreh Deah 87:1 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Yad Avraham on Shulchan Arukh, Yoreh Deah 87:2 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Yad Avraham on Shulchan Arukh, Yoreh Deah 87:3 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 + family: shach_siftei_kohen + link_type: commentary + selected: true + selection_reason: major Shach commentary on the seif's Torah/rabbinic scope + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json + created_or_updated_claims: + - claim_yd_87_1_shach_pickling_salting_boundary +- ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 + family: shach_siftei_kohen + link_type: commentary + selected: true + selection_reason: linked Shach continuation needed to triage adjacent-seif scope + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json + created_or_updated_claims: + - claim_yd_87_1_shach_rabbinic_benefit_permission +- ref: Yad Avraham on Shulchan Arukh, Yoreh Deah 87:6 + family: other + link_type: Quoting Commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: The Kehot Chumash; A Chasidic Commentary, Genesis 18:8:1 + family: other + link_type: Quoting Commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Ba'er Hetev on Shulchan Arukh, Yoreh De'ah 87:1 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Ba'er Hetev on Shulchan Arukh, Yoreh De'ah 87:2 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Nazir 37a:12 + family: talmud + link_type: ein mishpat / ner mitsvah + selected: true + selection_reason: Talmud source linked through Ein Mishpat for prohibition derivation + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json + created_or_updated_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref: Mishneh Torah, Forbidden Foods 9:1 + family: mishneh_torah_rambam + link_type: ein mishpat / ner mitsvah + selected: true + selection_reason: upstream Rambam codification for Torah-level meat-milk prohibitions + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json + created_or_updated_claims: + - claim_yd_87_1_rambam_cooking_eating_benefit +- ref: Sefer Mitzvot Gadol, Negative Commandments 140 + family: other + link_type: ein mishpat / ner mitsvah + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Sefer Mitzvot Gadol, Negative Commandments 141 + family: other + link_type: ein mishpat / ner mitsvah + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kiddushin 57b:9 + family: talmud + link_type: ein mishpat / ner mitsvah + selected: true + selection_reason: Talmud source linked through Ein Mishpat for benefit/eating derivation + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json + created_or_updated_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 + family: kaf_hachayim + link_type: commentary + selected: true + selection_reason: major later practical commentary on the same seif + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json + created_or_updated_claims: + - claim_yd_87_1_unusual_eating_benefit_prohibited +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:2:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:3:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:4:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:5:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:6:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:7:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:8:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:9:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:10:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:11:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:12:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:13:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:14:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:15:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:16:1 + family: kaf_hachayim + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 + family: beur_hagra + link_type: commentary + selected: true + selection_reason: Gra source-chain and derivation note for the same seif + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json + created_or_updated_claims: + - claim_yd_87_1_gra_fire_cooking_boundary +- ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:2 + family: beur_hagra + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:3 + family: beur_hagra + link_type: commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1 + family: other + link_type: commentary + selected: true + selection_reason: source-citation commentary for the Torah derivation chain + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json + created_or_updated_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:2 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 + family: other + link_type: commentary + selected: true + selection_reason: major responsa-oriented commentary on practical boundaries + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json + created_or_updated_claims: + - claim_yd_87_1_pitchei_unusual_eating_prohibited +- ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:2 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:3 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:4 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Chullin 115b:18 + family: talmud + link_type: ein mishpat / ner mitsvah + selected: true + selection_reason: core Talmud source for basar-bechalav derivation + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json + created_or_updated_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref: Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 + family: pri_megadim + link_type: super_commentary + selected: true + selection_reason: Pri Megadim supercommentary on Taz for second-pass triage + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json + created_or_updated_claims: + - claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic +- ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1 + family: pri_megadim + link_type: super_commentary + selected: true + selection_reason: Pri Megadim supercommentary on Shach for second-pass triage + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json + created_or_updated_claims: + - claim_yd_87_1_shach_pickling_salting_boundary +- ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:2:1-2 + family: pri_megadim + link_type: super_commentary + selected: false + selection_reason: '' + skip_reason: major family present but not selected because another linked ref better + targets this seif or source-chain role + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Bekhorot 6b:11 + family: talmud + link_type: ein mishpat / ner mitsvah + selected: true + selection_reason: Talmud source linked for milk and meat-milk derivation boundary + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json + created_or_updated_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref: Kereti on Shulchan Arukh, Yoreh De'ah 87:1 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kereti on Shulchan Arukh, Yoreh De'ah 87:2 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kereti on Shulchan Arukh, Yoreh De'ah 87:3 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Kereti on Shulchan Arukh, Yoreh De'ah 87:4 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Peleti on Shulchan Arukh, Yoreh De'ah 87:1 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Peleti on Shulchan Arukh, Yoreh De'ah 87:2 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Peleti on Shulchan Arukh, Yoreh De'ah 87:3 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Peleti on Shulchan Arukh, Yoreh De'ah 87:4 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:1 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:2 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:3 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Likutei Halakhot, Yoreh Deah, Laws of Meat and Milk 2:1:1 + family: other + link_type: commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Ben Ish Hai, Halachot 2nd Year, Beha'alotcha 1:1 + family: other + link_type: Halakhah + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Exodus 23:19 + family: tanakh + link_type: Tanakh + selected: true + selection_reason: Torah verse source for the repeated kid-in-mother's-milk prohibition + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json + created_or_updated_claims: + - claim_yd_87_1_torah_repeated_verses +- ref: Exodus 34:26 + family: tanakh + link_type: Tanakh + selected: true + selection_reason: Torah verse source for the repeated kid-in-mother's-milk prohibition + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json + created_or_updated_claims: + - claim_yd_87_1_torah_repeated_verses +- ref: Deuteronomy 14:21 + family: tanakh + link_type: Tanakh + selected: true + selection_reason: Torah verse source for the repeated kid-in-mother's-milk prohibition + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json + created_or_updated_claims: + - claim_yd_87_1_torah_repeated_verses +- ref: Arukh HaShulchan, Yoreh De'ah 87:8 + family: other + link_type: Halakhah + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: B'Mareh HaBazak Volume IX 17:6 + family: other + link_type: Responsa + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Peninei Halakhah, Kashrut 25:1:2 + family: other + link_type: Halakhah + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Peninei Halakhah, Kashrut 25:1:4 + family: other + link_type: Halakhah + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +- ref: Beit Yosef, Yoreh De'ah 91:20:1 + family: other + link_type: Quoting Commentary + selected: false + selection_reason: '' + skip_reason: not selected for this second-pass expansion after major-source triage + fetched_text_artifact: null + created_or_updated_claims: [] +gate: + selected_major_sources_fetched: true + skipped_major_sources_have_reasons: true + source_claims_updated: true + semantic_decomposition_rerun: true + ontology_grounding_rerun: true + xlog_second_pass_reencoded: true + first_pass_rule_outcomes_recorded: true + scenarios_refreshed_for_commentary_semantics: true + review_body_updated: true + status: pass +second_pass_reencoding: + previous_program_artifact: xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog@first-pass + refreshed_program_artifact: xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog + outcome_ledger_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/second-pass-outcomes.yaml + first_pass_claims: + - claim_id: claim_yd_87_1_torah_cooking + outcome: preserved + commentary_refs: + - Mishneh Torah, Forbidden Foods 9:1 + - Kiddushin 57b:9 + - Exodus 23:19 + - Exodus 34:26 + - Deuteronomy 14:21 + notes: Core cooking prohibition remains unchanged; linked sources strengthen provenance. + - claim_id: claim_yd_87_1_torah_eating + outcome: refined + commentary_refs: + - Mishneh Torah, Forbidden Foods 9:1 + - Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 + - Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 + notes: Eating prohibition remains, with added unusual-eating boundary evidence. + - claim_id: claim_yd_87_1_torah_benefit + outcome: preserved + commentary_refs: + - Mishneh Torah, Forbidden Foods 9:1 + - Kiddushin 57b:9 + notes: Torah benefit prohibition remains for cooked meat-milk mixtures. + - claim_id: claim_yd_87_1_cooked_condition + outcome: refined + commentary_refs: + - Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 + - Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 + notes: Second pass adds explicit pickling and salting boundary cases. + - claim_id: claim_yd_87_1_rabbinic_all_forms + outcome: refined + commentary_refs: + - Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 + notes: Second pass adds non-Torah cooking as a rabbinic prohibition while preserving + benefit permission separately. + - claim_id: claim_yd_87_1_rema_benefit_non_torah + outcome: split + commentary_refs: + - Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 + - Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 + notes: Rema/Taz/Shach benefit-permission rule is preserved, and Maharshal's stricter + view is encoded as a separate authority world. + first_pass_rules: + - rule_id: rule_yd_87_1_torah_cooking + outcome: preserved + commentary_refs: + - Mishneh Torah, Forbidden Foods 9:1 + - Kiddushin 57b:9 + notes: Existing outcome retained with expanded upstream support. + - rule_id: rule_yd_87_1_torah_eating + outcome: refined + commentary_refs: + - Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 + - Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 + notes: Existing cooked-mixture eating rule retained; unusual eating is added as + a separate rule. + - rule_id: rule_yd_87_1_torah_benefit + outcome: preserved + commentary_refs: + - Mishneh Torah, Forbidden Foods 9:1 + - Kiddushin 57b:9 + notes: Existing cooked-mixture benefit rule retained. + - rule_id: rule_yd_87_1_cooked_condition + outcome: refined + commentary_refs: + - Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 + - Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 + notes: Boundary cases for pickling and salting are now represented explicitly. + - rule_id: rule_yd_87_1_rabbinic_all_forms + outcome: refined + commentary_refs: + - Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 + notes: Second pass adds a non-Torah cooking prohibition scenario. + - rule_id: rule_yd_87_1_rema_benefit_non_torah + outcome: split + commentary_refs: + - Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 + - Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 + notes: Rema benefit permission remains; Maharshal strictness is represented separately. diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml index 277ea0b8fe..ac3dd1e38f 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml @@ -1,5 +1,5 @@ slice_id: smicha86_u01_s87_seif_1 -generated_at: '2026-05-25T15:22:41+00:00' +generated_at: '2026-05-31T09:26:26+00:00' validation_model: real_xlog_scenarios_only machine_status: pass scenarios: @@ -40,7 +40,7 @@ scenarios: explain_exit_code: 0 explain_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.explain.txt explain_output: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json - output_rows: 1 + output_rows: 11 status: pass - scenario: conflict file: xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog @@ -53,7 +53,7 @@ scenarios: explain_exit_code: 0 explain_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.explain.txt explain_output: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json - output_rows: 2 + output_rows: 4 status: pass - scenario: provenance file: xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog @@ -66,5 +66,5 @@ scenarios: explain_exit_code: 0 explain_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.explain.txt explain_output: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json - output_rows: 12 + output_rows: 41 status: pass diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml index 8be47bd150..0cae055529 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml @@ -1,8 +1,9 @@ slice_id: smicha86_u01_s87_seif_1 -generated_at: '2026-05-25T15:06:58Z' +generated_at: '2026-05-31T09:43:00Z' validation_model: "real_xlog_scenarios_only" machine_validation_implemented_in: "scenario-local XLOG constraints" expected_outputs_are_review_evidence_only: true +source_chain_iteration: second_pass_commentary_expanded scenarios: - id: positive @@ -24,21 +25,38 @@ scenarios: expected_outputs: [] - id: boundary file: xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog - purpose: "Non-cooked benefit case is outside Torah prohibition and uses the Rema benefit permission." + purpose: "Expanded commentary boundaries cover non-Torah benefit, rabbinic benefit, pickling/salting, and unusual eating or benefit." source_claims: - claim_yd_87_1_cooked_condition - claim_yd_87_1_rema_benefit_non_torah + - claim_yd_87_1_taz_standard_benefit_permission + - claim_yd_87_1_shach_rabbinic_benefit_permission + - claim_yd_87_1_maharshal_benefit_stringency + - claim_yd_87_1_shach_pickling_salting_boundary + - claim_yd_87_1_unusual_eating_benefit_prohibited + - claim_yd_87_1_pitchei_unusual_eating_prohibited expected_outputs: - "normative_outcome(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)" + - "normative_outcome(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission)" + - "normative_outcome(maharshal, case_non_cooked_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency)" + - "normative_outcome(rema, case_rabbinic_benefit, permitted, claim_yd_87_1_shach_rabbinic_benefit_permission)" + - "normative_outcome(mechaber, case_pickled_meat_milk, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary)" + - "normative_outcome(mechaber, case_salted_meat_milk, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary)" + - "normative_outcome(mechaber, case_unusual_eating, prohibited, claim_yd_87_1_pitchei_unusual_eating_prohibited)" + - "normative_outcome(mechaber, case_unusual_benefit, prohibited, claim_yd_87_1_unusual_eating_benefit_prohibited)" - id: conflict file: xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog - purpose: "Authority-sensitive case keeps non-cooked eating prohibition separate from Rema's benefit permission." + purpose: "Authority-sensitive case keeps non-cooked eating prohibition, Rema/Taz benefit permission, and Maharshal strictness separate." source_claims: - claim_yd_87_1_rabbinic_all_forms - claim_yd_87_1_rema_benefit_non_torah + - claim_yd_87_1_taz_standard_benefit_permission + - claim_yd_87_1_maharshal_benefit_stringency expected_outputs: - "normative_outcome(mechaber, case_uncooked_eating, prohibited, claim_yd_87_1_rabbinic_all_forms)" - "normative_outcome(rema, case_uncooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)" + - "normative_outcome(rema, case_uncooked_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission)" + - "normative_outcome(maharshal, case_uncooked_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency)" required_if: "authority gloss or claim qualification is present" - id: provenance file: xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog @@ -50,6 +68,17 @@ scenarios: - claim_yd_87_1_cooked_condition - claim_yd_87_1_rabbinic_all_forms - claim_yd_87_1_rema_benefit_non_torah + - claim_yd_87_1_rambam_cooking_eating_benefit + - claim_yd_87_1_talmud_threefold_derivation + - claim_yd_87_1_torah_repeated_verses + - claim_yd_87_1_shach_pickling_salting_boundary + - claim_yd_87_1_gra_fire_cooking_boundary + - claim_yd_87_1_taz_standard_benefit_permission + - claim_yd_87_1_maharshal_benefit_stringency + - claim_yd_87_1_shach_rabbinic_benefit_permission + - claim_yd_87_1_unusual_eating_benefit_prohibited + - claim_yd_87_1_pitchei_unusual_eating_prohibited + - claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic expected_outputs: - "source_claim(claim_yd_87_1_torah_cooking, ref_yd_87_1, _)" - "source_claim(claim_yd_87_1_torah_eating, ref_yd_87_1, _)" diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md b/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md index 36967bbd65..feeef59e4c 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md @@ -3,103 +3,70 @@ - Slice id: `smicha86_u01_s87_seif_1` - Branch: `codex/xlog-goal-bundle` - Commit for review: `latest branch revision` -- Lifecycle state: `awaiting_human` -- Related discussion: none +- Lifecycle state: `awaiting_human_after_commentary_second_pass` - Evidence manifest: `xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml` ## Human Reviewer Request -Please validate whether the encoded XLOG law faithfully represents `Shulchan Arukh, Yoreh De'ah 87:1`. -Approval is semantic approval of the law encoding at the commit listed above; merge still requires machine validation after approval. -All source material was fetched through Sefaria MCP. +Please validate whether the second-pass XLOG law faithfully represents `Shulchan Arukh, Yoreh De'ah 87:1` after commentary and upstream source-chain expansion. +All source material was fetched through Sefaria MCP. Merge still requires human approval and final merge validation. -## Sources From Sefaria MCP +## Source-Chain Expansion -| Source ref | MCP evidence file | Version or language notes | Used for claim ids | -| --- | --- | --- | --- | -| `Shulchan Arukh, Yoreh De'ah 87:1` | `xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json` | Hebrew: Ashlei Ravrevei, Lemberg 1888 | `claim_yd_87_1_torah_cooking`, `claim_yd_87_1_torah_eating`, `claim_yd_87_1_torah_benefit`, `claim_yd_87_1_cooked_condition`, `claim_yd_87_1_rabbinic_all_forms`, `claim_yd_87_1_rema_benefit_non_torah` | -| `Shulchan Arukh, Yoreh De'ah 87:1` | `xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-translations.json` | English translations listed for reviewer aid | same | -| `Shulchan Arukh, Yoreh De'ah 87:1` | `xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json` | Commentary/link inventory | same | +| Evidence | Path | +| --- | --- | +| Linked-source selection | `xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml` | +| Fetch log | `xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml` | +| Source claims | `xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml` | +| Linked text artifacts | `xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/*.json` | +| Second-pass outcomes | `xlog/evidence/smicha86/u01/yd_87/seif_1/second-pass-outcomes.yaml` | +| Validation report | `xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md` | -## Legal Claim Table +Selected linked source families: Taz, Shach/Siftei Kohen, Beur HaGra, Kaf HaChayim, Pitchei Teshuva, Pri Megadim, Tur, Rambam/Mishneh Torah, Talmud, and Torah verses. -| Claim id | Source ref | Claim summary | Encoding role | Needs escalation | -| --- | --- | --- | --- | --- | -| `claim_yd_87_1_torah_cooking` | `YD 87:1` | Torah source assigns meat-with-milk prohibition to cooking. | rule | no | -| `claim_yd_87_1_torah_eating` | `YD 87:1` | Torah source assigns meat-with-milk prohibition to eating. | rule | no | -| `claim_yd_87_1_torah_benefit` | `YD 87:1` | Torah source assigns meat-with-milk prohibition to benefit. | rule | no | -| `claim_yd_87_1_cooked_condition` | `YD 87:1` | Torah-level prohibition applies only through cooking. | condition | no | -| `claim_yd_87_1_rabbinic_all_forms` | `YD 87:1` | Rabbinic law prohibits meat-with-milk mixtures beyond Torah cooking form. | rule | no | -| `claim_yd_87_1_rema_benefit_non_torah` | `YD 87:1` | Rema permits benefit from mixtures not prohibited at Torah level. | exception | no | +## Second-Pass Changes -## XLOG Encoding Summary +| Area | Result | +| --- | --- | +| Torah cooking and benefit prohibitions | Preserved with expanded Torah/Talmud/Rambam provenance | +| Torah eating prohibition | Refined with unusual eating/benefit boundary evidence | +| Cooking condition | Refined to distinguish pickling and salting from Torah-level cooking | +| Rabbinic non-Torah forms | Refined with non-Torah cooking and rabbinic benefit handling | +| Rema benefit permission | Split from Maharshal's stricter view; both are authority-scoped | -Changed files: +No new public predicates were introduced. The ontology grounding ledger was rerun after commentary expansion and still reuses canonical predicates. -- `xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog` -- `xlog/scenarios/smicha86/u01/yd_87/seif_1/*.xlog` -- `xlog/evidence/smicha86/u01/yd_87/seif_1/**` +## XLOG Artifacts -Public predicates used: +- Program: `xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog` +- Scenarios: + - `xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog` + - `xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog` + - `xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog` + - `xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog` + - `xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog` -| Predicate | Arity | Canonical catalog entry | Grounding decision | Evidence | -| --- | ---: | --- | --- | --- | -| `source_ref` | 2 | yes | auto_reuse | `grounding-ledger.yaml` | -| `source_claim` | 3 | yes | auto_reuse | `grounding-ledger.yaml` | -| `supports_claim` | 2 | yes | auto_reuse | `grounding-ledger.yaml` | -| `authority` | 1 | yes | auto_reuse | `grounding-ledger.yaml` | -| `world` | 1 | yes | auto_reuse | `grounding-ledger.yaml` | -| `holds_in` | 3 | yes | auto_reuse | `grounding-ledger.yaml` | -| `item` | 1 | yes | auto_reuse | `grounding-ledger.yaml` | -| `food` | 1 | yes | auto_reuse | `grounding-ledger.yaml` | -| `legal_category` | 2 | yes | auto_reuse | `grounding-ledger.yaml` | -| `condition` | 2 | yes | auto_reuse | `grounding-ledger.yaml` | -| `normative_outcome` | 4 | yes | auto_reuse | `grounding-ledger.yaml` | +## Machine Validation -Encoded formulas and rules are in `xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog`. -The scenario files encode expected behavior with XLOG constraints; the validator does not check text strings in output. +| Scenario | Output rows | Status | +| --- | ---: | --- | +| positive | 3 | pass | +| negative | 0 | pass | +| boundary | 11 | pass | +| conflict | 4 | pass | +| provenance | 41 | pass | -## Ontology Grounding +Both `xlog run` and `xlog explain --format json` passed for every scenario. Full transcripts and explain JSON are under `xlog/evidence/smicha86/u01/yd_87/seif_1/`. -Grounding ledger: +## Human Validation Checklist -- `xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml` +- [ ] The threefold Torah derivation is faithful to the primary text and linked Torah/Talmud/Rambam sources. +- [ ] The pickling/salting boundary correctly reflects Shach and Gra. +- [ ] The unusual eating/benefit boundary correctly reflects Kaf HaChayim and Pitchei Teshuva. +- [ ] The Rema/Taz/Shach benefit permission and Maharshal stringency are correctly authority-scoped. +- [ ] The second-pass outcome ledger accurately classifies every first-pass claim and rule. -New public ontology deltas: - -- None. - -## Validation Scenarios - -| Scenario | Purpose | Validation model | Run evidence | -| --- | --- | --- | --- | -| positive | Cooked meat-with-milk produces cooking, eating, and benefit prohibitions. | XLOG constraints in scenario | `transcripts/positive.run.txt` | -| negative | Meat without milk produces no meat-with-milk outcome. | XLOG constraints in scenario | `transcripts/negative.run.txt` | -| boundary | Non-cooked benefit uses Rema benefit permission. | XLOG constraints in scenario | `transcripts/boundary.run.txt` | -| conflict | Non-cooked eating prohibition and non-cooked benefit permission remain authority-sensitive. | XLOG constraints in scenario | `transcripts/conflict.run.txt` | -| provenance | Source claims and rule-support facts are queryable. | XLOG constraints in scenario | `transcripts/provenance.run.txt` | - -## Machine Validation Evidence - -- Validation report: `xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md` -- `xlog run` transcripts: `xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/*.run.txt` -- `xlog explain` evidence: `xlog/evidence/smicha86/u01/yd_87/seif_1/explain/*.json` -- Regression evidence: first XLOG corpus slice; no unrelated prior XLOG scenario changed -- Final artifact manifest: `xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml` - -## Reviewer Checklist - -- [ ] Source references are sufficient and came through Sefaria MCP. -- [ ] Legal claims match the cited source. -- [ ] XLOG rules encode the claims without adding unsupported assumptions. -- [ ] Authority, dispute, and exception handling are faithful where relevant. -- [ ] Ontology reuse is acceptable. -- [ ] Validation scenarios cover the meaningful cases. -- [ ] Evidence links are complete. - -## Required Verdict - -Paste one verdict block in a PR comment: +## Verdict Schema ```yaml human_verdict: @@ -112,5 +79,6 @@ human_verdict: Allowed verdicts: +- `approved` - `changes_requested` - `domain_escalation_required` diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/second-pass-outcomes.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/second-pass-outcomes.yaml new file mode 100644 index 0000000000..83839b74b1 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/second-pass-outcomes.yaml @@ -0,0 +1,99 @@ +slice_id: smicha86_u01_s87_seif_1 +generated_at: '2026-05-31T09:40:00Z' +iteration: second_pass_commentary_expanded +expanded_source_inputs: + linked_source_selection: xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml + linked_source_dir: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked + +first_pass_claims: + - claim_id: claim_yd_87_1_torah_cooking + outcome: preserved + commentary_refs: + - Mishneh Torah, Forbidden Foods 9:1 + - Kiddushin 57b:9 + - Exodus 23:19 + - Exodus 34:26 + - Deuteronomy 14:21 + notes: "Core cooking prohibition remains unchanged; linked sources strengthen provenance." + - claim_id: claim_yd_87_1_torah_eating + outcome: refined + commentary_refs: + - Mishneh Torah, Forbidden Foods 9:1 + - Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 + - Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 + notes: "Eating prohibition remains, with added unusual-eating boundary evidence." + - claim_id: claim_yd_87_1_torah_benefit + outcome: preserved + commentary_refs: + - Mishneh Torah, Forbidden Foods 9:1 + - Kiddushin 57b:9 + notes: "Torah benefit prohibition remains for cooked meat-milk mixtures." + - claim_id: claim_yd_87_1_cooked_condition + outcome: refined + commentary_refs: + - Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 + - Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 + notes: "Second pass adds explicit pickling and salting boundary cases." + - claim_id: claim_yd_87_1_rabbinic_all_forms + outcome: refined + commentary_refs: + - Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 + notes: "Second pass adds non-Torah cooking as a rabbinic prohibition while preserving benefit permission separately." + - claim_id: claim_yd_87_1_rema_benefit_non_torah + outcome: split + commentary_refs: + - Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 + - Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 + notes: "Rema/Taz/Shach benefit-permission rule is preserved, and Maharshal's stricter view is encoded as a separate authority world." + +first_pass_rules: + - rule_id: rule_yd_87_1_torah_cooking + outcome: preserved + commentary_refs: + - Mishneh Torah, Forbidden Foods 9:1 + - Kiddushin 57b:9 + notes: "Existing outcome retained with expanded upstream support." + - rule_id: rule_yd_87_1_torah_eating + outcome: refined + commentary_refs: + - Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 + - Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 + notes: "Existing cooked-mixture eating rule retained; unusual eating is added as a separate rule." + - rule_id: rule_yd_87_1_torah_benefit + outcome: preserved + commentary_refs: + - Mishneh Torah, Forbidden Foods 9:1 + - Kiddushin 57b:9 + notes: "Existing cooked-mixture benefit rule retained." + - rule_id: rule_yd_87_1_cooked_condition + outcome: refined + commentary_refs: + - Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 + - Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 + notes: "Boundary cases for pickling and salting are now represented explicitly." + - rule_id: rule_yd_87_1_rabbinic_all_forms + outcome: refined + commentary_refs: + - Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 + notes: "Second pass adds a non-Torah cooking prohibition scenario." + - rule_id: rule_yd_87_1_rema_benefit_non_torah + outcome: split + commentary_refs: + - Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 + - Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 + notes: "Rema benefit permission remains; Maharshal strictness is represented separately." + +new_second_pass_rules: + - rule_yd_87_1_pickling_torah_boundary + - rule_yd_87_1_salting_torah_boundary + - rule_yd_87_1_taz_standard_benefit_permission + - rule_yd_87_1_shach_rabbinic_benefit_permission + - rule_yd_87_1_maharshal_benefit_stringency + - rule_yd_87_1_unusual_eating_prohibited + - rule_yd_87_1_unusual_benefit_prohibited + - rule_yd_87_1_non_torah_cooking_rabbinic + +gate: + first_pass_claims_without_outcome: 0 + first_pass_rules_without_outcome: 0 + status: pass diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml index 1e6b1dcc49..8c4aa29913 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml @@ -1,67 +1,196 @@ slice_id: smicha86_u01_s87_seif_1 -generated_at: '2026-05-25T15:06:58Z' +generated_at: '2026-05-31T09:35:00Z' +source_chain_iteration: second_pass_commentary_expanded claims: - id: claim_yd_87_1_torah_cooking source_ref: ref_yd_87_1 sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "Segment 1, first Torah derivation" + source_span: "primary seif, first Torah derivation" normalized_claim: "Torah source assigns a meat-with-milk prohibition to cooking." claim_role: rule certainty: direct - notes: "One of the three occurrences of the verse is read as a cooking prohibition." + second_pass_outcome: preserved + notes: "Confirmed by the linked Torah verses, Kiddushin 57b, and Rambam." encoded_by: - rule_yd_87_1_torah_cooking - id: claim_yd_87_1_torah_eating source_ref: ref_yd_87_1 sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "Segment 1, second Torah derivation" + source_span: "primary seif, second Torah derivation" normalized_claim: "Torah source assigns a meat-with-milk prohibition to eating." claim_role: rule certainty: direct - notes: "The eating prohibition is expressed through cooking language." + second_pass_outcome: refined + notes: "Commentary adds the unusual-eating/benefit boundary for meat with milk." encoded_by: - rule_yd_87_1_torah_eating + - rule_yd_87_1_unusual_eating_prohibited - id: claim_yd_87_1_torah_benefit source_ref: ref_yd_87_1 sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "Segment 1, third Torah derivation" + source_span: "primary seif, third Torah derivation" normalized_claim: "Torah source assigns a meat-with-milk prohibition to deriving benefit." claim_role: rule certainty: direct - notes: "The third occurrence is read as a benefit prohibition." + second_pass_outcome: preserved + notes: "Confirmed by the linked Torah verses, Kiddushin 57b, and Rambam." encoded_by: - rule_yd_87_1_torah_benefit - id: claim_yd_87_1_cooked_condition source_ref: ref_yd_87_1 sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "Segment 1, condition clause" + source_span: "primary seif, condition clause" normalized_claim: "Torah-level meat-with-milk prohibition applies only through cooking." claim_role: condition certainty: direct - notes: "This slice models the condition as cooked_meat_milk_mixture." + second_pass_outcome: refined + notes: "Shach and Gra clarify the boundary by excluding pickling and salting from Torah-level cooking." encoded_by: - rule_yd_87_1_cooked_condition + - rule_yd_87_1_pickling_torah_boundary + - rule_yd_87_1_salting_torah_boundary - id: claim_yd_87_1_rabbinic_all_forms source_ref: ref_yd_87_1 sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "Segment 1, rabbinic extension clause" + source_span: "primary seif, rabbinic extension clause" normalized_claim: "Rabbinic law prohibits meat-with-milk mixtures beyond Torah cooking form." claim_role: rule certainty: direct - notes: "Encoded for non-cooked eating scenarios; benefit handling is separated because of the Rema gloss." + second_pass_outcome: refined + notes: "Pri Megadim preserves benefit permission for non-Torah mixtures while maintaining a rabbinic cooking prohibition." encoded_by: - rule_yd_87_1_rabbinic_all_forms + - rule_yd_87_1_non_torah_cooking_rabbinic - id: claim_yd_87_1_rema_benefit_non_torah source_ref: ref_yd_87_1 sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "Segment 1, Rema gloss" + source_span: "primary seif, Rema gloss" normalized_claim: "Rema permits benefit from meat-with-milk mixtures not prohibited at Torah level." claim_role: exception certainty: direct - notes: "Kept as a Rema-world outcome and reviewed separately from the Mechaber-coded prohibitions." + second_pass_outcome: split + notes: "Rema/Taz/Shach position is preserved; Taz also records Maharshal's stricter dissent as a separate authority world." encoded_by: - rule_yd_87_1_rema_benefit_non_torah + - rule_yd_87_1_taz_standard_benefit_permission + - rule_yd_87_1_maharshal_benefit_stringency + - id: claim_yd_87_1_rambam_cooking_eating_benefit + source_ref: ref_rambam_forbidden_foods_9_1 + sefaria_ref: "Mishneh Torah, Forbidden Foods 9:1" + source_span: "linked Rambam codification" + normalized_claim: "Rambam codifies cooking, eating, and benefit prohibitions for meat and milk cooked together." + claim_role: upstream_derivation + certainty: direct + second_pass_outcome: new_support + encoded_by: + - rule_yd_87_1_torah_cooking + - rule_yd_87_1_torah_eating + - rule_yd_87_1_torah_benefit + - id: claim_yd_87_1_talmud_threefold_derivation + source_ref: ref_kiddushin_57b_9 + sefaria_ref: "Kiddushin 57b:9" + source_span: "linked Talmud derivation" + normalized_claim: "The Talmud derives eating, benefit, and cooking prohibitions from three repeated verses." + claim_role: upstream_derivation + certainty: direct + second_pass_outcome: new_support + encoded_by: + - rule_yd_87_1_torah_cooking + - rule_yd_87_1_torah_eating + - rule_yd_87_1_torah_benefit + - id: claim_yd_87_1_torah_repeated_verses + source_ref: ref_torah_deuteronomy_14_21 + sefaria_ref: "Deuteronomy 14:21" + source_span: "linked Torah verse set" + normalized_claim: "The repeated Torah verse is the source basis for the threefold derivation." + claim_role: upstream_derivation + certainty: direct + second_pass_outcome: new_support + encoded_by: + - rule_yd_87_1_torah_cooking + - rule_yd_87_1_torah_eating + - rule_yd_87_1_torah_benefit + - id: claim_yd_87_1_shach_pickling_salting_boundary + source_ref: ref_shach_yd_87_1_1 + sefaria_ref: "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1" + source_span: "linked Shach comment" + normalized_claim: "Shach clarifies that Torah-level cooking excludes pickling and salting because they are not the way of cooking." + claim_role: boundary + certainty: direct + second_pass_outcome: new_rule + encoded_by: + - rule_yd_87_1_pickling_torah_boundary + - rule_yd_87_1_salting_torah_boundary + - id: claim_yd_87_1_gra_fire_cooking_boundary + source_ref: ref_gra_yd_87_1 + sefaria_ref: "Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1" + source_span: "linked Gra comment" + normalized_claim: "Gra grounds the cooking boundary in preparation through fire and excludes pickling from Torah cooking." + claim_role: boundary + certainty: direct + second_pass_outcome: new_support + encoded_by: + - rule_yd_87_1_pickling_torah_boundary + - id: claim_yd_87_1_taz_standard_benefit_permission + source_ref: ref_taz_yd_87_1 + sefaria_ref: "Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1" + source_span: "linked Taz comment" + normalized_claim: "Taz affirms the standard position that non-Torah meat-milk mixtures are permitted in benefit." + claim_role: authority_position + certainty: direct + second_pass_outcome: new_support + encoded_by: + - rule_yd_87_1_taz_standard_benefit_permission + - id: claim_yd_87_1_maharshal_benefit_stringency + source_ref: ref_taz_yd_87_1 + sefaria_ref: "Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1" + source_span: "linked Taz report of Maharshal" + normalized_claim: "Taz reports Maharshal's stricter view prohibiting benefit from non-Torah meat-milk mixtures." + claim_role: dispute + certainty: direct + second_pass_outcome: new_rule + encoded_by: + - rule_yd_87_1_maharshal_benefit_stringency + - id: claim_yd_87_1_shach_rabbinic_benefit_permission + source_ref: ref_shach_yd_87_2_1 + sefaria_ref: "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1" + source_span: "linked Shach continuation" + normalized_claim: "Shach supports benefit permission for rabbinic meat-milk mixtures such as fowl in milk." + claim_role: authority_position + certainty: direct + second_pass_outcome: new_rule + encoded_by: + - rule_yd_87_1_shach_rabbinic_benefit_permission + - id: claim_yd_87_1_unusual_eating_benefit_prohibited + source_ref: ref_kaf_hachayim_yd_87_1_1 + sefaria_ref: "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1" + source_span: "linked Kaf HaChayim comment" + normalized_claim: "Meat with milk remains prohibited even outside ordinary enjoyment." + claim_role: boundary + certainty: direct + second_pass_outcome: new_rule + encoded_by: + - rule_yd_87_1_unusual_benefit_prohibited + - id: claim_yd_87_1_pitchei_unusual_eating_prohibited + source_ref: ref_pitchei_teshuva_yd_87_1 + sefaria_ref: "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1" + source_span: "linked Pitchei Teshuva comment" + normalized_claim: "Eating or benefit outside the usual manner remains prohibited for meat with milk." + claim_role: boundary + certainty: direct + second_pass_outcome: new_rule + encoded_by: + - rule_yd_87_1_unusual_eating_prohibited + - id: claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic + source_ref: ref_pri_megadim_mz_yd_87_1 + sefaria_ref: "Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4" + source_span: "linked Pri Megadim on Taz" + normalized_claim: "Pri Megadim preserves benefit permission for non-Torah mixtures while maintaining a rabbinic cooking prohibition." + claim_role: refinement + certainty: direct + second_pass_outcome: new_rule + encoded_by: + - rule_yd_87_1_non_torah_cooking_rabbinic open_questions: [] - diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml index 28cd77eb5f..5d60b4dd9e 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml @@ -54,6 +54,186 @@ requests: version_language: null retrieved_at: '2026-05-25T15:03:58+00:00' output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json +- request_id: linked-turei_zahav_on_shulchan_arukh_yoreh_deah_87_1 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 + normalized_ref: Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 + language: both + version_title: 'Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888' + version_language: hebrew + retrieved_at: '2026-05-31T09:16:17+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json +- request_id: linked-tur_yoreh_deah_87_1 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Tur, Yoreh De'ah 87:1 + normalized_ref: Tur, Yoreh De'ah 87:1 + language: both + version_title: Yoreh Deah, Vilna, 1923 + version_language: hebrew + retrieved_at: '2026-05-31T09:16:17+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/tur_yoreh_deah_87_1.json +- request_id: linked-siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 + normalized_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 + language: both + version_title: 'Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888' + version_language: hebrew + retrieved_at: '2026-05-31T09:16:18+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json +- request_id: linked-siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 + normalized_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 + language: both + version_title: 'Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888' + version_language: hebrew + retrieved_at: '2026-05-31T09:16:18+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json +- request_id: linked-nazir_37a_12 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Nazir 37a:12 + normalized_ref: Nazir 37a:12 + language: both + version_title: William Davidson Edition - Vocalized Aramaic + version_language: hebrew + retrieved_at: '2026-05-31T09:16:19+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json +- request_id: linked-mishneh_torah_forbidden_foods_9_1 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Mishneh Torah, Forbidden Foods 9:1 + normalized_ref: Mishneh Torah, Forbidden Foods 9:1 + language: both + version_title: Torat Emet 363 + version_language: hebrew + retrieved_at: '2026-05-31T09:16:19+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json +- request_id: linked-kiddushin_57b_9 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Kiddushin 57b:9 + normalized_ref: Kiddushin 57b:9 + language: both + version_title: William Davidson Edition - Vocalized Aramaic + version_language: hebrew + retrieved_at: '2026-05-31T09:16:19+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json +- request_id: linked-kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 + normalized_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 + language: both + version_title: Kaf Hachayim, Yoreh Deah, Jerusalem 1936-1957 + version_language: hebrew + retrieved_at: '2026-05-31T09:16:19+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json +- request_id: linked-beur_hagra_on_shulchan_arukh_yoreh_deah_87_1 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 + normalized_ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 + language: both + version_title: 'Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888' + version_language: hebrew + retrieved_at: '2026-05-31T09:16:19+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json +- request_id: linked-beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1 + normalized_ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1 + language: both + version_title: 'Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888' + version_language: hebrew + retrieved_at: '2026-05-31T09:16:20+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json +- request_id: linked-pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 + normalized_ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 + language: both + version_title: 'Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888' + version_language: hebrew + retrieved_at: '2026-05-31T09:16:20+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json +- request_id: linked-chullin_115b_18 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Chullin 115b:18 + normalized_ref: Chullin 115b:18 + language: both + version_title: William Davidson Edition - Vocalized Aramaic + version_language: hebrew + retrieved_at: '2026-05-31T09:16:20+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json +- request_id: linked-peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 + normalized_ref: Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 + language: both + version_title: 'Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888' + version_language: hebrew + retrieved_at: '2026-05-31T09:16:20+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json +- request_id: linked-peri_megadim_on_yoreh_deah_siftei_daat_87_1_1 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1 + normalized_ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1 + language: both + version_title: 'Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888' + version_language: hebrew + retrieved_at: '2026-05-31T09:16:21+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json +- request_id: linked-bekhorot_6b_11 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Bekhorot 6b:11 + normalized_ref: Bekhorot 6b:11 + language: both + version_title: William Davidson Edition - Vocalized Aramaic + version_language: hebrew + retrieved_at: '2026-05-31T09:16:21+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json +- request_id: linked-exodus_23_19 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Exodus 23:19 + normalized_ref: Exodus 23:19 + language: both + version_title: Miqra according to the Masorah + version_language: hebrew + retrieved_at: '2026-05-31T09:16:21+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json +- request_id: linked-exodus_34_26 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Exodus 34:26 + normalized_ref: Exodus 34:26 + language: both + version_title: Miqra according to the Masorah + version_language: hebrew + retrieved_at: '2026-05-31T09:16:21+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json +- request_id: linked-deuteronomy_14_21 + mcp_server: sefaria-texts + mcp_tool: get_text + requested_ref: Deuteronomy 14:21 + normalized_ref: Deuteronomy 14:21 + language: both + version_title: Miqra according to the Masorah + version_language: hebrew + retrieved_at: '2026-05-31T09:16:22+00:00' + output_file: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json source_refs: - ref_id: ref_yd_87_1 sefaria_ref: Shulchan Arukh, Yoreh De'ah 87:1 @@ -66,6 +246,96 @@ source_refs: - claim_yd_87_1_cooked_condition - claim_yd_87_1_rabbinic_all_forms - claim_yd_87_1_rema_benefit_non_torah +- ref_id: linked_turei_zahav_on_shulchan_arukh_yoreh_deah_87_1 + sefaria_ref: Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 + display_ref: Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json + used_for_claims: [] +- ref_id: linked_tur_yoreh_deah_87_1 + sefaria_ref: Tur, Yoreh De'ah 87:1 + display_ref: Tur, Yoreh De'ah 87:1 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/tur_yoreh_deah_87_1.json + used_for_claims: [] +- ref_id: linked_siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1 + sefaria_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 + display_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json + used_for_claims: [] +- ref_id: linked_siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1 + sefaria_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 + display_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json + used_for_claims: [] +- ref_id: linked_nazir_37a_12 + sefaria_ref: Nazir 37a:12 + display_ref: Nazir 37a:12 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json + used_for_claims: [] +- ref_id: linked_mishneh_torah_forbidden_foods_9_1 + sefaria_ref: Mishneh Torah, Forbidden Foods 9:1 + display_ref: Mishneh Torah, Forbidden Foods 9:1 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json + used_for_claims: [] +- ref_id: linked_kiddushin_57b_9 + sefaria_ref: Kiddushin 57b:9 + display_ref: Kiddushin 57b:9 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json + used_for_claims: [] +- ref_id: linked_kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1 + sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 + display_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json + used_for_claims: [] +- ref_id: linked_beur_hagra_on_shulchan_arukh_yoreh_deah_87_1 + sefaria_ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 + display_ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json + used_for_claims: [] +- ref_id: linked_beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1 + sefaria_ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1 + display_ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json + used_for_claims: [] +- ref_id: linked_pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1 + sefaria_ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 + display_ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json + used_for_claims: [] +- ref_id: linked_chullin_115b_18 + sefaria_ref: Chullin 115b:18 + display_ref: Chullin 115b:18 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json + used_for_claims: [] +- ref_id: linked_peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4 + sefaria_ref: Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 + display_ref: Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json + used_for_claims: [] +- ref_id: linked_peri_megadim_on_yoreh_deah_siftei_daat_87_1_1 + sefaria_ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1 + display_ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json + used_for_claims: [] +- ref_id: linked_bekhorot_6b_11 + sefaria_ref: Bekhorot 6b:11 + display_ref: Bekhorot 6b:11 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json + used_for_claims: [] +- ref_id: linked_exodus_23_19 + sefaria_ref: Exodus 23:19 + display_ref: Exodus 23:19 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json + used_for_claims: [] +- ref_id: linked_exodus_34_26 + sefaria_ref: Exodus 34:26 + display_ref: Exodus 34:26 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json + used_for_claims: [] +- ref_id: linked_deuteronomy_14_21 + sefaria_ref: Deuteronomy 14:21 + display_ref: Deuteronomy 14:21 + text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json + used_for_claims: [] integrity: all_sources_from_sefaria_mcp: true unresolved_version_notes: [] diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json new file mode 100644 index 0000000000..f3d5e78d5f --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json @@ -0,0 +1,27 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ], + "ref": "Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1", + "sectionRef": "Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "ברייתא חולין דף קט\"ו:", + "versionSource": "https://www.nli.org.il/he/books/NNL_ALEPH002097765", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ] + }, + "request": { + "reference": "Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1" + }, + "retrieved_at": "2026-05-31T09:16:20+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json new file mode 100644 index 0000000000..b440c37f31 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json @@ -0,0 +1,43 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "William Davidson Edition - Vocalized Aramaic" + }, + { + "languageFamilyName": "english", + "versionTitle": "William Davidson Edition - English" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Wikisource Talmud Bavli" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "William Davidson Edition - Aramaic" + }, + { + "languageFamilyName": "german", + "versionTitle": "Talmud Bavli. German trans. by Lazarus Goldschmidt, 1929 [de]" + } + ], + "ref": "Bekhorot 6b:11", + "sectionRef": "Bekhorot 6b", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "וְחָלָב דִּבְהֵמָה טְהוֹרָה מְנָלַן דִּשְׁרֵי? אִילֵימָא מִדַּאֲסַר רַחֲמָנָא ״בָּשָׂר בְּחָלָב״, הָא לְחוּדֵיהּ שְׁרֵי, וְאֵימָא: חָלָב לְחוּדֵיהּ אָסוּר בַּאֲכִילָה וּמוּתָּר בַּהֲנָאָה, בָּשָׂר בְּחָלָב — בַּהֲנָאָה נָמֵי אָסוּר!", + "versionSource": "https://korenpub.co.il/collections/the-noe-edition-koren-talmud-bavli-1", + "versionTitle": "William Davidson Edition - Vocalized Aramaic" + } + ] + }, + "request": { + "reference": "Bekhorot 6b:11" + }, + "retrieved_at": "2026-05-31T09:16:21+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json new file mode 100644 index 0000000000..d6ec3645c7 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json @@ -0,0 +1,27 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ], + "ref": "Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1", + "sectionRef": "Beur HaGra on Shulchan Arukh, Yoreh De'ah 87", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "שאינו כו'. שם ק\"ח א' וערש\"י שם ק\"ד ב' ד\"ה מתקיף כו' וכל שע\"י האור הוא דרך בישול כמש\"ש גזירה שמא יעלה ול\"ק רק לאפוקי כבוש כמש\"ל ס\"ס צ\"א וכמ\"ש בפ\"ג דפסחים (מ\"ד ב') ופ\"ו דנזיר:", + "versionSource": "https://www.nli.org.il/he/books/NNL_ALEPH002097765", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ] + }, + "request": { + "reference": "Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1" + }, + "retrieved_at": "2026-05-31T09:16:19+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json new file mode 100644 index 0000000000..d4e2fa0b3d --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json @@ -0,0 +1,43 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "William Davidson Edition - Vocalized Aramaic" + }, + { + "languageFamilyName": "english", + "versionTitle": "William Davidson Edition - English" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Wikisource Talmud Bavli" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "William Davidson Edition - Aramaic" + }, + { + "languageFamilyName": "german", + "versionTitle": "Talmud Bavli. German trans. by Lazarus Goldschmidt, 1929 [de]" + } + ], + "ref": "Chullin 115b:18", + "sectionRef": "Chullin 115b", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "אִי הָכִי, הַשְׁתָּא נָמֵי אִיכָּא לְמִיפְרַךְ: מָה לְכִלְאֵי הַכֶּרֶם, שֶׁכֵּן גִּדּוּלֵי קַרְקַע?", + "versionSource": "https://korenpub.co.il/collections/the-noe-edition-koren-talmud-bavli-1", + "versionTitle": "William Davidson Edition - Vocalized Aramaic" + } + ] + }, + "request": { + "reference": "Chullin 115b:18" + }, + "retrieved_at": "2026-05-31T09:16:20+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json new file mode 100644 index 0000000000..0132ce1355 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json @@ -0,0 +1,131 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "english", + "versionTitle": "THE JPS TANAKH: Gender-Sensitive Edition" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Contemporary Torah, Jewish Publication Society, 2006" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Five Books of Moses, by Everett Fox. New York, Schocken Books, 1995" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Koren Jerusalem Bible" + }, + { + "languageFamilyName": "english", + "versionTitle": "Metsudah Chumash, Metsudah Publications, 2009" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Kehot Chumash; Chabad House Publications, Los Angeles" + }, + { + "languageFamilyName": "english", + "versionTitle": "Tanakh: The Holy Scriptures, published by JPS" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Rashi chumash by Rabbi Shraga Silverstein" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Miqra according to the Masorah" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Holy Scriptures: A New Translation (JPS 1917)" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Tanach with Ta'amei Hamikra" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Tanach with Text Only" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Tanach with Nikkud" + }, + { + "languageFamilyName": "yiddish", + "versionTitle": "Yehoyesh's Yiddish Tanakh Translation [yi]" + }, + { + "languageFamilyName": "french", + "versionTitle": "Bible du Rabbinat 1899 [fr]" + }, + { + "languageFamilyName": "english", + "versionTitle": "Metsudah Chumash, Metsudah Publications, 2009 [with Onkelos translation]" + }, + { + "languageFamilyName": "polish", + "versionTitle": "Bible in Polish, trans. Izaak Cylkow, 1841 - 1908 [pl]" + }, + { + "languageFamilyName": "english", + "versionTitle": "Torah Yesharah, translated and edited by Chas. Kahane. New York, 1963" + }, + { + "languageFamilyName": "persian", + "versionTitle": "Persian translation by Mashallah Rahman Pour Davud and Hakham Musa Zargari, Otzar haTorah, 1985 [fa]" + }, + { + "languageFamilyName": "german", + "versionTitle": "Die Heilige Schrift, trans. Dr. Simon Bernfeld, Berlin, 1902 - German [de]" + }, + { + "languageFamilyName": "french", + "versionTitle": "La Bible, Traduction Nouvelle, Samuel Cahen, 1831 [fr]" + }, + { + "languageFamilyName": "esperanto", + "versionTitle": "La Malnova Testamento, L.L.Zamenhof [eo]" + }, + { + "languageFamilyName": "german", + "versionTitle": "Der Pentateuch, übersetzt und erläutert von Samson Raphael Hirsch. Frankfurt am Main, 1867-1878 [de]" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Miqra Mevoar, trans. and edited by David Kokhav, Jerusalem 2020" + }, + { + "languageFamilyName": "russian", + "versionTitle": "Russian Torah translation, by Dmitri Slivniak, Ph.D., edited by Dr. Itzhak Streshinsky. Da Project, 2011 [ru]" + }, + { + "languageFamilyName": "english", + "versionTitle": "Tora în română – tradusă de rabin Șlomo Sorin Rosen, 2023 [ro]" + }, + { + "languageFamilyName": "portuguese", + "versionTitle": "Publicado em 5784, Saymon Pires da Silva [pt]" + } + ], + "ref": "Deuteronomy 14:21", + "sectionRef": "Deuteronomy 14", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "לֹ֣א תֹאכְל֣וּ כׇל־נְ֠בֵלָ֠ה לַגֵּ֨ר אֲשֶׁר־בִּשְׁעָרֶ֜יךָ תִּתְּנֶ֣נָּה וַאֲכָלָ֗הּ א֤וֹ מָכֹר֙ לְנׇכְרִ֔י כִּ֣י עַ֤ם קָדוֹשׁ֙ אַתָּ֔ה לַיהֹוָ֖ה אֱלֹהֶ֑יךָ לֹֽא־תְבַשֵּׁ֥ל גְּדִ֖י בַּחֲלֵ֥ב אִמּֽוֹ׃ {פ}
", + "versionSource": "https://he.wikisource.org/wiki/%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:Dovi/%D7%9E%D7%A7%D7%A8%D7%90_%D7%A2%D7%9C_%D7%A4%D7%99_%D7%94%D7%9E%D7%A1%D7%95%D7%A8%D7%94", + "versionTitle": "Miqra according to the Masorah" + } + ] + }, + "request": { + "reference": "Deuteronomy 14:21" + }, + "retrieved_at": "2026-05-31T09:16:22+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json new file mode 100644 index 0000000000..3850e721d6 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json @@ -0,0 +1,139 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "english", + "versionTitle": "THE JPS TANAKH: Gender-Sensitive Edition" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Contemporary Torah, Jewish Publication Society, 2006" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Five Books of Moses, by Everett Fox. New York, Schocken Books, 1995" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Koren Jerusalem Bible" + }, + { + "languageFamilyName": "english", + "versionTitle": "Metsudah Chumash, Metsudah Publications, 2009" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Kehot Chumash; Chabad House Publications, Los Angeles" + }, + { + "languageFamilyName": "english", + "versionTitle": "Tanakh: The Holy Scriptures, published by JPS" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Rashi chumash by Rabbi Shraga Silverstein" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Miqra according to the Masorah" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Holy Scriptures: A New Translation (JPS 1917)" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Tanach with Ta'amei Hamikra" + }, + { + "languageFamilyName": "russian", + "versionTitle": "Russian Torah translation, by Dmitri Slivniak, Ph.D., edited by Dr. Itzhak Streshinsky. Da Project, 2011 [ru]" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Tanach with Text Only" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Tanach with Nikkud" + }, + { + "languageFamilyName": "yiddish", + "versionTitle": "Yehoyesh's Yiddish Tanakh Translation [yi]" + }, + { + "languageFamilyName": "french", + "versionTitle": "Bible du Rabbinat 1899 [fr]" + }, + { + "languageFamilyName": "english", + "versionTitle": "Metsudah Chumash, Metsudah Publications, 2009 [with Onkelos translation]" + }, + { + "languageFamilyName": "english", + "versionTitle": "Torah Yesharah, translated and edited by Chas. Kahane. New York, 1963" + }, + { + "languageFamilyName": "italian", + "versionTitle": "Il Pentateuco. Traduzione italiana di Samuel David Luzzatto, 1872 [it]" + }, + { + "languageFamilyName": "polish", + "versionTitle": "Bible in Polish, trans. Izaak Cylkow, 1841 - 1908 [pl]" + }, + { + "languageFamilyName": "german", + "versionTitle": "Die Heilige Schrift, trans. Dr. Simon Bernfeld, Berlin, 1902 - German [de]" + }, + { + "languageFamilyName": "persian", + "versionTitle": "Persian translation by Mashallah Rahman Pour Davud and Hakham Musa Zargari, Otzar haTorah, 1985 [fa]" + }, + { + "languageFamilyName": "german", + "versionTitle": "Der Pentateuch, übersetzt und erläutert von Samson Raphael Hirsch. Frankfurt am Main, 1867-1878 [de]" + }, + { + "languageFamilyName": "french", + "versionTitle": "La Bible, Traduction Nouvelle, Samuel Cahen, 1831 [fr]" + }, + { + "languageFamilyName": "esperanto", + "versionTitle": "La Malnova Testamento, L.L.Zamenhof [eo]" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Miqra Mevoar, trans. and edited by David Kokhav, Jerusalem 2020" + }, + { + "languageFamilyName": "english", + "versionTitle": "Tora în română – tradusă de rabin Șlomo Sorin Rosen, 2023 [ro]" + }, + { + "languageFamilyName": "portuguese", + "versionTitle": "Publicado em 5784, Saymon Pires da Silva [pt]" + }, + { + "languageFamilyName": "spanish", + "versionTitle": "Alfredo cerhy [es]" + } + ], + "ref": "Exodus 23:19", + "sectionRef": "Exodus 23", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "רֵאשִׁ֗ית בִּכּוּרֵי֙ אַדְמָ֣תְךָ֔ תָּבִ֕יא בֵּ֖ית יְהֹוָ֣ה אֱלֹהֶ֑יךָ לֹֽא־תְבַשֵּׁ֥ל גְּדִ֖י בַּחֲלֵ֥ב אִמּֽוֹ׃ {פ}
", + "versionSource": "https://he.wikisource.org/wiki/%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:Dovi/%D7%9E%D7%A7%D7%A8%D7%90_%D7%A2%D7%9C_%D7%A4%D7%99_%D7%94%D7%9E%D7%A1%D7%95%D7%A8%D7%94", + "versionTitle": "Miqra according to the Masorah" + } + ] + }, + "request": { + "reference": "Exodus 23:19" + }, + "retrieved_at": "2026-05-31T09:16:21+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json new file mode 100644 index 0000000000..0f7846fe88 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json @@ -0,0 +1,139 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "english", + "versionTitle": "THE JPS TANAKH: Gender-Sensitive Edition" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Contemporary Torah, Jewish Publication Society, 2006" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Five Books of Moses, by Everett Fox. New York, Schocken Books, 1995" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Koren Jerusalem Bible" + }, + { + "languageFamilyName": "english", + "versionTitle": "Metsudah Chumash, Metsudah Publications, 2009" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Kehot Chumash; Chabad House Publications, Los Angeles" + }, + { + "languageFamilyName": "english", + "versionTitle": "Tanakh: The Holy Scriptures, published by JPS" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Rashi chumash by Rabbi Shraga Silverstein" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Miqra according to the Masorah" + }, + { + "languageFamilyName": "english", + "versionTitle": "The Holy Scriptures: A New Translation (JPS 1917)" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Tanach with Ta'amei Hamikra" + }, + { + "languageFamilyName": "russian", + "versionTitle": "Russian Torah translation, by Dmitri Slivniak, Ph.D., edited by Dr. Itzhak Streshinsky. Da Project, 2011 [ru]" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Tanach with Text Only" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Tanach with Nikkud" + }, + { + "languageFamilyName": "yiddish", + "versionTitle": "Yehoyesh's Yiddish Tanakh Translation [yi]" + }, + { + "languageFamilyName": "french", + "versionTitle": "Bible du Rabbinat 1899 [fr]" + }, + { + "languageFamilyName": "english", + "versionTitle": "Metsudah Chumash, Metsudah Publications, 2009 [with Onkelos translation]" + }, + { + "languageFamilyName": "english", + "versionTitle": "Torah Yesharah, translated and edited by Chas. Kahane. New York, 1963" + }, + { + "languageFamilyName": "italian", + "versionTitle": "Il Pentateuco. Traduzione italiana di Samuel David Luzzatto, 1872 [it]" + }, + { + "languageFamilyName": "polish", + "versionTitle": "Bible in Polish, trans. Izaak Cylkow, 1841 - 1908 [pl]" + }, + { + "languageFamilyName": "german", + "versionTitle": "Die Heilige Schrift, trans. Dr. Simon Bernfeld, Berlin, 1902 - German [de]" + }, + { + "languageFamilyName": "persian", + "versionTitle": "Persian translation by Mashallah Rahman Pour Davud and Hakham Musa Zargari, Otzar haTorah, 1985 [fa]" + }, + { + "languageFamilyName": "german", + "versionTitle": "Der Pentateuch, übersetzt und erläutert von Samson Raphael Hirsch. Frankfurt am Main, 1867-1878 [de]" + }, + { + "languageFamilyName": "french", + "versionTitle": "La Bible, Traduction Nouvelle, Samuel Cahen, 1831 [fr]" + }, + { + "languageFamilyName": "esperanto", + "versionTitle": "La Malnova Testamento, L.L.Zamenhof [eo]" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Miqra Mevoar, trans. and edited by David Kokhav, Jerusalem 2020" + }, + { + "languageFamilyName": "english", + "versionTitle": "Tora în română – tradusă de rabin Șlomo Sorin Rosen, 2023 [ro]" + }, + { + "languageFamilyName": "portuguese", + "versionTitle": "Publicado em 5784, Saymon Pires da Silva [pt]" + }, + { + "languageFamilyName": "spanish", + "versionTitle": "Alfredo cerhy [es]" + } + ], + "ref": "Exodus 34:26", + "sectionRef": "Exodus 34", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "רֵאשִׁ֗ית בִּכּוּרֵי֙ אַדְמָ֣תְךָ֔ תָּבִ֕יא בֵּ֖ית יְהֹוָ֣ה אֱלֹהֶ֑יךָ לֹא־תְבַשֵּׁ֥ל גְּדִ֖י בַּחֲלֵ֥ב אִמּֽוֹ׃ {פ}
", + "versionSource": "https://he.wikisource.org/wiki/%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:Dovi/%D7%9E%D7%A7%D7%A8%D7%90_%D7%A2%D7%9C_%D7%A4%D7%99_%D7%94%D7%9E%D7%A1%D7%95%D7%A8%D7%94", + "versionTitle": "Miqra according to the Masorah" + } + ] + }, + "request": { + "reference": "Exodus 34:26" + }, + "retrieved_at": "2026-05-31T09:16:21+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json new file mode 100644 index 0000000000..10c0cf25dc --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json @@ -0,0 +1,27 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "Kaf Hachayim, Yoreh Deah, Jerusalem 1936-1957" + } + ], + "ref": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1", + "sectionRef": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "א) [סעיף א'] כתוב בתורה לא תבשל גדי בחלב אמו ג\"פ אחד לאיסור בישול ואחד לאיסור אכילה וכו' כל האוכלין האסורין אינו חייב עליהם עד שיאכל אותן דרך הנאה חוץ מבשר בחלב וכלאי הכרם לפי שלא נאמר בהן אכילה לאסור אותן אפי' שלא בדרך הנייה. הרמב\"ם פי\"ד מהמ\"א דין יו\"ד.", + "versionSource": "https://www.nli.org.il/he/books/NNL_ALEPH001365916", + "versionTitle": "Kaf Hachayim, Yoreh Deah, Jerusalem 1936-1957" + } + ] + }, + "request": { + "reference": "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1" + }, + "retrieved_at": "2026-05-31T09:16:19+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json new file mode 100644 index 0000000000..a630faaf92 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json @@ -0,0 +1,47 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "William Davidson Edition - Vocalized Aramaic" + }, + { + "languageFamilyName": "english", + "versionTitle": "William Davidson Edition - English" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Wikisource Talmud Bavli" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "William Davidson Edition - Aramaic" + }, + { + "languageFamilyName": "english", + "versionTitle": "Daf Shevui" + }, + { + "languageFamilyName": "german", + "versionTitle": "Talmud Bavli. German trans. by Lazarus Goldschmidt, 1929 [de]" + } + ], + "ref": "Kiddushin 57b:9", + "sectionRef": "Kiddushin 57b", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "בָּשָׂר בְּחָלָב. מְנָלַן? דְּתָנָא דְּבֵי רַבִּי יִשְׁמָעֵאל: ״לֹא תְבַשֵּׁל גְּדִי בַּחֲלֵב אִמּוֹ״ שָׁלֹשׁ פְּעָמִים: אֶחָד אִיסּוּר אֲכִילָה, וְאֶחָד אִיסּוּר הֲנָאָה, וְאֶחָד אִיסּוּר בִּישּׁוּל.", + "versionSource": "https://korenpub.co.il/collections/the-noe-edition-koren-talmud-bavli-1", + "versionTitle": "William Davidson Edition - Vocalized Aramaic" + } + ] + }, + "request": { + "reference": "Kiddushin 57b:9" + }, + "retrieved_at": "2026-05-31T09:16:19+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json new file mode 100644 index 0000000000..a9c2eaff51 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json @@ -0,0 +1,43 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "english", + "versionTitle": "Mishneh Torah, trans. by Eliyahu Touger. Jerusalem, Moznaim Pub. c1986-c2007" + }, + { + "languageFamilyName": "english", + "versionTitle": "Maimonides' Mishneh Torah, edited by Philip Birnbaum, New York, 1967" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Torat Emet 363" + }, + { + "languageFamilyName": "german", + "versionTitle": "Jad Haghasakkah, trans. by L. Mandelstamm. St. Petersburg, 1851. Corrected and edited by Igor Itkin - German [de]" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Wikisource Mishneh Torah" + } + ], + "ref": "Mishneh Torah, Forbidden Foods 9:1", + "sectionRef": "Mishneh Torah, Forbidden Foods 9", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "בָּשָׂר בְּחָלָב אָסוּר לְבַשְּׁלוֹ וְאָסוּר לְאָכְלוֹ מִן הַתּוֹרָה. וְאָסוּר בַּהֲנָאָה. וְקוֹבְרִין אוֹתוֹ. וְאֶפְרוֹ אָסוּר כְּאֵפֶר כָּל הַנִּקְבָּרִין. וּמִי שֶׁיְּבַשֵּׁל מִשְּׁנֵיהֶם כְּזַיִת כְּאֶחָד לוֹקֶה שֶׁנֶּאֱמַר (שמות כג יט) (שמות לד כו) (דברים יד כא) \"לֹא תְבַשֵּׁל גְּדִי בַּחֲלֵב אִמּוֹ\". וְכֵן הָאוֹכֵל כְּזַיִת מִשְּׁנֵיהֶם מֵהַבָּשָׂר וְהֶחָלָב שֶׁנִּתְבַּשְּׁלוּ כְּאֶחָד לוֹקֶה וְאַף עַל פִּי שֶׁלֹּא בִּשֵּׁל: ", + "versionSource": "http://www.toratemetfreeware.com/index.html?downloads", + "versionTitle": "Torat Emet 363" + } + ] + }, + "request": { + "reference": "Mishneh Torah, Forbidden Foods 9:1" + }, + "retrieved_at": "2026-05-31T09:16:19+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json new file mode 100644 index 0000000000..3882b10f75 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json @@ -0,0 +1,43 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "William Davidson Edition - Vocalized Aramaic" + }, + { + "languageFamilyName": "english", + "versionTitle": "William Davidson Edition - English" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Wikisource Talmud Bavli" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "William Davidson Edition - Aramaic" + }, + { + "languageFamilyName": "german", + "versionTitle": "Talmud Bavli. German trans. by Lazarus Goldschmidt, 1929 [de]" + } + ], + "ref": "Nazir 37a:12", + "sectionRef": "Nazir 37a", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "אֲמַר לֵיהּ רַב אַחָא בְּרֵיהּ דְּרַב אַוְיָא לְרַב אָשֵׁי: לְרַבִּי עֲקִיבָא דְּקָא מוֹקֵים לֵיהּ לְהַאי ״וְכׇל מִשְׁרַת״ לְהֶיתֵּר מִצְטָרֵף לְאִיסּוּר, לִיתֵּן טַעַם כְּעִיקָּר מְנָא לֵיהּ? יָלֵיף מִבָּשָׂר בְּחָלָב. לָאו טַעַם בְּעָלְמָא הוּא, וְאָסוּר? הָכָא נָמֵי לָא שְׁנָא.", + "versionSource": "http://sefaria.org", + "versionTitle": "William Davidson Edition - Vocalized Aramaic" + } + ] + }, + "request": { + "reference": "Nazir 37a:12" + }, + "retrieved_at": "2026-05-31T09:16:19+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json new file mode 100644 index 0000000000..41808bce46 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json @@ -0,0 +1,32 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ], + "ref": "Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4", + "sectionRef": "Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": [ + "שאינו. עט\"ז פסק כן להלכה וכן הש\"ך דלא כיש\"ש פכ\"ה סימן ז' ומיהו בישול אסור כמ\"ש באות ו' דאפילו עוף אסור משום מ\"ע ומ\"ש רמ\"א ס\"ד דעוף אין לחוש היינו בחלב אשה דהוה תרי דרבנן כמו שאבאר שם. והנה היש\"ש כתב דכבוש ומליחה אסור בהנאה דהא בכל איסורין כבוש ומליחה אסור וכאן הוא גזירת הכתוב וכי גזרו רבנן לכולא מלתא גזרו משמע לכאורה בעוף וחיה דעשו רק הרחקה לא אסור בהנאה אמנם בסיום דבריו כתב וז\"ל מודה אני בשר טמאה מותר בהנאה אף מדרבנן דלא מצינו שגזרו חז\"ל משמע דחיה ועוף דגזרו אף בהנאה אסור וכן מדכתב דהר\"מ מתיר בהנאה ול\"נ יע\"ש והר\"מ בפ\"ט ממ\"א לא הזכיר בה\"ד רק חיה ועוף אלמא בהא נמי חולק מהרש\"ל. וסבור הייתי לומר שמ\"ש הר\"ב כל בב\"ח דאין אסור מ\"ה מותר בהנאה והא מבואר הוא בהמחבר ס\"ג אלא דאי מהתם ה\"א דווקא חיה ועוף שאין להם שורש בדאורייתא משא\"כ ע\"י כבוש ומליחה ומכ\"ש לפי מ\"ש היש\"ש כיון דבשאר איסורין כבוש ומליחה ד\"ת גזרו כאן שיהא כמו שאר איסורין לזה אשמעינן הר\"ב אף ע\"י כבוש ומליחה שרי בהנאה אלא דג\"ז אינו דהא מבואר סימן צ\"א ס\"ח דע\"י מליחה וכבישה שרי בהנאה. ודע דבשר חיה ועוף ע\"י כבישה ומליחה אסורין אף דהוה גזירה לגזירה עפ\"ת אות י\"ד ועט\"ז סימן צ' אות י\"ב כתב כחל שפירש החלב ונכבש מעל\"ע הוה גזירה לגזירה ובנה\"ך השיג עליו שם דאסור ועפר\"ח שם. (ומיהו הא דכתב הר\"ב כל שאין אסור מ\"ה מותר בהנאה דוחק לומר לדיוקא אתא הא בישול אסור דלא ליתי לאיחלופי עיין אות ה' והמחבר ס\"ג שכ' דבשר חיה ועוף מותר בבישול היינו מדינא ומפני מ\"ע אסור דזה דוחק) ומה שכתבנו דחיה ועוף ושאר איסורי דרבנן אסורין אף ע\"י כבישה הוא ברור ואף הט\"ז בסימן צ' שם יודה לזה שהרי בסי' צ\"א ס\"ז בההיא בר גוזלא המבואר בחולין קי\"ב דאי אין נאכל מחמת מלחו אסור וכ\"ת לבשל אח\"כ קאמר הא בורכא די\"א צלי צונן נאסר כולו אף דהוה גזירה לגזירה וע\"כ דיש לחלק בין חלב שחוטה לכאן ושם יבואר עוד:\n", + "והנה צלי אסור מ\"ה עפר\"ח אות ב' וכן הלכה וע\"י טיגון אף דהפר\"ח שם החליט דהוה מ\"ה הנה המ\"י בכלל פ\"ה בסולת למנחה צידד להקל וכן משמעות רש\"י ותוס' סנהדרין ד' ב' ועיין מהר\"מ שי\"ף בסוף הספר הביא בכבד שרצו לטגנו בשומן וטיגנו בחמאה צידד ג\"כ דטיגון כו' (עוד צידד שם דכבד הוה דם וגדי אסרה תורה ולא דם וצ\"ע) מכל הלין יש לצדד בה\"מ להתיר מיני טיגון בהנאה ונאמר דלא היה ד\"ת אמנם להקל בכבד בהנאה ע\"י בישול וודאי אין להקל מכח גדי ולא דם (דמהר\"ם שי\"ף ז\"ל לא כתב אלא לסניף בעלמא). ועכר\"ו אות ב' דאנן קי\"ל יש אם למקרא א\"כ י\"ל טיגון בכלל ולא מוכח מבב\"ח ומהא דאמר כבדא עילוי בשרא אסור כחלא שרי דרבנן ותיפוק ליה דצלי דרבנן עכ\"ל. והנה מ\"ש אנן קיי\"ל יש אם למקרא לא הבינותי דבפ\"ד מה' סוכה ה\"ב פסק הר\"מ כרבנן דיש אם למסורת עיין פ\"ב מה' פה\"מ אין העת האסף פה. ומ\"ש מכחל דרבנן י\"ל דלפי מ\"ש דם שבישלו דרבנן ע\"כ צ\"ל שם דם דאורייתא ומש\"ה הוצרך לומר כחל דרבנן כמ\"ש בפתיחה. ומיהו לדינא צלי אסור מ\"ה וע\"י טיגון כפי הנראה לדידן דיש אם למסורת יש לצדד בה\"מ להתיר בהנאה ומעושן ומבושל בחמי טבריא הנה הר\"מ בפ\"ט ממ\"א ה\"ו והמחבר לקמן ס\"ו הביאו הוה ספיקא ד\"ת וכתב המ\"מ בירושלמי פ' הנודר מן המבושל בעיא דלא איפשטא במעושן וחמי טבריא משמע התם דשוה למעושן והפר\"ח אות ב' כתב דנפשטא האיבעיא במקום אחר פ' כלל גדול בירושלמי הצולה והשולק והמעשן והמטגן חייב משום שבת ובחמי טבריא הוה פלוגתא ואין לוקין בשבת וה\"ה בב\"ח זה תוכן דבריו. והנה אף שאין לדמות שבת לבב\"ח דלענין שבת לאו מלאכה הוה ולענין בב\"ח איפשר בישול מיקרי או להיפוך דבשבת הוה מלאכה ובב\"ח לא הוה בכלל בישול אמנם ממ\"ש המ\"מ דנראה דחמי טבריא שוה למעושן ולכאורה לא ידענא מנלן וצ\"ל מהא דמיבעיא התם הנודר ממבושל מהו שיהא מותר במטוגן ומבושל בחמי טבריא ומעושן. ובתר הכי אמרינן רבנן דקיסרין מיבעיא מעושן מהו בב\"ח משמע דדין א' להם ולפ\"ד ה\"ה טיגון גם מ\"ש המ\"מ דבשבת מבואר דבחמי טבריא פטור משמע דמשוה בב\"ח לשבת ע\"ז שפיר כתב הפר\"ח דאי אתינן להכי הרי נפשטה במקום אחר ולפ\"ז ה\"ה מטגן דחייב בב\"ח מ\"ה כמו בשבת אמנם למ\"ש צ\"ע ועמ\"ש בש\"ך וס\"ו במעושן ✍:\n", + "שאלה שלש קדירות בא' עירו לתוכה רוטב נבילה חם יס\"ב מכ\"ר. וא' היה כבוש בתוכה מעל\"ע חלב (קדירה חדשה או אב\"י) ובישלו בה בשר בהמה. ובא' ג\"כ כבוש מעל\"ע חלב ובישלו בה בשר עוף מה משפט המאכלים ההמה:\n", + "תשובה שלש הקדירות זה פתרונן לדינא. קדירה א' שעירו לתוכה רוטב נבילה ובישלו בה היתר התבשיל שרי דקי\"ל עירו כ\"ק מבשל ולא יותר עסי' ס\"ח וק\"ה ויש בתבשיל ס' נגד קליפת הכלי עש\"ך סימן ס\"ט אות ס\"ח וקל\"ז ס\"א יע\"ש לבד קערה שהיא רחבה א\"כ לא נאסר התבשיל דיש ס' ומיהו באין ה\"מ יש לאסור כמ\"ש סימן ק\"ה דאף כ\"ש מפליט ומבליע בכולו כ\"ש עירוי ובה\"מ הוא דשרי. ומיהו אם תבשיל צלול ישפכנו אבל אם הוא תבשיל עב כמו טטרק\"י וכיוצא שמוציא בכף אם יוציא וישאר מעט בקדירה והקדירה כ\"ז שיס\"ב פולטת אף בלא רוטב כמבואר סימן ק\"ה דדוקא מאכל אין דבר הבלוע יוצא ממנו בלא רוטב משא\"כ מכלי א\"כ לא יהיה במעט תבשיל ס' נגד כל הקליפה שבקדירה (עש\"ך ס\"ט אות ס\"ח דבכל הקליפה אף במקום שאין נוגע משערין) מה תקנתיה יניחנו עד שיצטנן ואח\"כ יקח בכף המאכל. הקדירה ב' שהיה כבוש חלב מעל\"ע ובשלו בשר בהמה אסור בהנאה אף דבלעה הקדירה ע\"י כבישה מה בכך הלא פלטה אח\"כ ע\"י בישול לבשר ואסור בהנאה וזה פשוט. הקדירה השלישית שבישלו בה בשר עוף לכאורה דאנן קיי\"ל כבוש בכלי אוסר בכולו לא כ\"ק עת\"ח כלל פ\"ה דבאו\"ה יש סתירה פעם כתב כבוש בכלי אין אוסר כ\"א כ\"ק ופעם כתב דאוסר בכולו בכלי ואנן קי\"ל כבוש אוסר בכולו בכלי והנה בסימן קל\"ה בש\"ך אות י\"ג וקל\"ז אות ט' צידד שם ביי\"נ וכפי משמעות שאר אחרונים שם דאין אוסר כ\"א כ\"ק בידוע שעמד מעל\"ע וצריך לחלק בין יי\"נ דרבנן לאיסור תורה וסבור הייתי לומר דמ\"ש או\"ה בכלל ל\"ז ד\"א דכבוש בכלי כ\"ק שם מיירי במולח בכשא\"מ ודם שמלחו דרבנן מקילין ביה לומר כבוש בכלי אין אוסר כ\"א כ\"ק כמו יי\"נ משא\"כ באיסור תורה ולפ\"ז ה\"ה בשר עוף בחלב דרבנן י\"ל כבוש אין אוסר בכלי כ\"א כ\"ק אמנם חלילה להקל דאף באיסור דרבנן כבוש אוסר בכל הכלי ועמ\"ש בסי' ק\"ה וא\"כ אוסר באכילה ✍זהו הנראה לי בכאן:\n" + ], + "versionSource": "https://www.nli.org.il/he/books/NNL_ALEPH002097765", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ] + }, + "request": { + "reference": "Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4" + }, + "retrieved_at": "2026-05-31T09:16:20+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json new file mode 100644 index 0000000000..97fb94382e --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json @@ -0,0 +1,27 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ], + "ref": "Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1", + "sectionRef": "Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "שאינו. עש\"ך עשה כלומר אפשר מלת דרך קשיא ליה היל\"ל שאין אסור אלא בבישול או דכלל צלי וחם לתוך חם וצונן להם דג\"כ אסור מ\"ה. ולשון זה שכתב המחבר הוא דברי הרשב\"א בתה\"א ב\"ד ש\"א ועיין בספר ג\"ו בפתיחה שם כתבנו דאף דהוצרך הכתוב להוציא בלשון בישול לאסור שלכ\"א מ\"מ אין לנו איסור ע\"י כבישה כיון שבא הכתוב בלשון בישול דהוה כאלו אמרה תורה לא תבשל ותאכל וכ\"כ הפ\"ת. ועי' חולין קי\"ג בהא דהמבשל חלב בחלב דאמר להכי אפקיה לאכילה בלשון בישול לומר כשם שהיה לוקה על בישולו וח\"א להיפוך והא וודאי קשיא מנלן הא כיון דאיצטריך להוציא אכילה בלשון בישול כמ\"ש. וסבור הייתי לומר דהני אמוראי סברי כמ\"ש בפסחים כ\"ה מתיב רבא כו' דסובר כל איסורין לוקין שלכ\"א ומש\"ה דרשי להכי אפקיה לאכילה לומר כו' מש\"ה הר\"מ בפ\"ט ממ\"א ה\"ו פסק דהי' לוקה על בישולו ולא על אכילה אלא דאכתי קשיא הא צריך למעט מליחה וכבישה (והר\"מ פסק דל\"פ דלמעט מחלוקת עדיף) ובס' ר\"י כתבנו ישוב לזה:", + "versionSource": "https://www.nli.org.il/he/books/NNL_ALEPH002097765", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ] + }, + "request": { + "reference": "Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1" + }, + "retrieved_at": "2026-05-31T09:16:21+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json new file mode 100644 index 0000000000..140816ca79 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json @@ -0,0 +1,27 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ], + "ref": "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1", + "sectionRef": "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "לאיסור אכילה. ואף שלא כדרך אכילה והנאה אסור והיה לוקה עליו משא\"כ בשאר איסורים חוץ מכלאי הכרם כ\"כ הרמב\"ם ספי\"ד מהלכות מ\"א הביאו הפמ\"ג בפתיחה:", + "versionSource": "https://www.nli.org.il/he/books/NNL_ALEPH002097765", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ] + }, + "request": { + "reference": "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1" + }, + "retrieved_at": "2026-05-31T09:16:20+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json new file mode 100644 index 0000000000..e77eff7997 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json @@ -0,0 +1,31 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + }, + { + "languageFamilyName": "english", + "versionTitle": "Sefaria Community Translation" + } + ], + "ref": "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1", + "sectionRef": "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "שאינו אסור מן התורה אלא דרך בישול כו'. כלומר אבל לא ע\"י כבוש ומליחה שאינו דרך בישול:", + "versionSource": "https://www.nli.org.il/he/books/NNL_ALEPH002097765", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ] + }, + "request": { + "reference": "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1" + }, + "retrieved_at": "2026-05-31T09:16:18+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json new file mode 100644 index 0000000000..89aafc861b --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json @@ -0,0 +1,31 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + }, + { + "languageFamilyName": "english", + "versionTitle": "Sefaria Community Translation" + } + ], + "ref": "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1", + "sectionRef": "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "כל בשר בחלב כו' מותר בהנאה. טור ואו\"ה כלל ל' ד\"ה וכן דעת המחבר בס\"ג דבשר עוף בחלב שאינו אסור באכילה אלא מדרבנן מותר בהנאה אף מדרבנן וכן דעת הרא\"ה בס' החינוך מצוה קי\"ג וכן דעת הרמב\"ם פ\"ט מהמ\"א ד\"ד להדיא וכן ביאר דבריו בפי' המשנה פכ\"ה וכן פי' הרב המגיד דעתו וכך הבין מהרש\"ל פכ\"ה סי' ק' ושאר אחרונים דעת הרמב\"ם ולא כמ\"ש הב\"ח דדעת הרמב\"ם דבשר עוף בחלב אסור בהנא' מדרבנן כמו שאסור באכילה מדרבנן (ומה שכתב ודוחק לומר דהאי לבשל לאכול הוא כו' כבר השבתי עליו בספרי ע\"ש) וכ\"כ המרדכי פ' אין מעמידין והגהת אשר\"י פ' בתרא דע\"ז מא\"ז דעל ידי כבוש או ע\"י מליחה מותר בהנא' וכ\"כ המחבר לקמן ס\"ס צ\"א והוא מדברי האגור שהביא בב\"י שם ומהרש\"ל שם חלק ע\"ז ואין דבריו מוכרחים:", + "versionSource": "https://www.nli.org.il/he/books/NNL_ALEPH002097765", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ] + }, + "request": { + "reference": "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1" + }, + "retrieved_at": "2026-05-31T09:16:18+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/tur_yoreh_deah_87_1.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/tur_yoreh_deah_87_1.json new file mode 100644 index 0000000000..fdf79d72d8 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/tur_yoreh_deah_87_1.json @@ -0,0 +1,31 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "Yoreh Deah, Vilna, 1923" + }, + { + "languageFamilyName": "hebrew", + "versionTitle": "Warsaw 1861" + } + ], + "ref": "Tur, Yoreh De'ah 87:1", + "sectionRef": "Tur, Yoreh De'ah 87", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "הלכות בשר בחלב
איסור בשר בחלב כתיב לא תבשל גדי בחלב אמו ונאמר ג' פעמים בתורה אחד לאיסור בישול ואחד לאיסור אכילה ואחד לאיסור הנאה והוציא איסור אכילה בלשון בישול לומר שאינו אסור מן התורה אלא דרך בישול אבל מדרבנן אסור בכל ענין וגדי לאו דוקא דהוא הדין נמי שור שה ועז ולא שנא בחלב אמו ולא שנא בחלב אחרת אלא שדבר הכתוב בהווה. ואינו נוהג אלא בטהורה כגון בשר בהמה טהורה בחלב טהורה אבל בשר טהורה בחלב בהמה טמאה או בשר טמאה בחלב טהורה ובשר חיה ועוף אפילו בחלב טהורה אינו אלא מדרבנן ומותר בבישול ובהנאה: וביצים הנמצאים בעופות מותרים לאוכלן בחלב בד\"א שהן גמורות אבל אם אינן גמורות הוו כבשר העוף עצמו ואיזהו גמורה כתב הרשב\"א כל שיש לה חלבון וחלמון אע\"פ שהיא מעורה בגידין הרי זה גמורה אין לה אלא חלמון עדיין בשר הוא ורש\"י פירש כשנגמר החלמון ועדיין היא אדומה ומעורה כמו השלל של הביצים המחובר באשכול שרי ויראה מדבריו שמתיר אפילו אין לה עדיין חלבון: דגים וחגבים מותר לאוכלן בחלב כתב הרמב\"ם המבשל בחמי טבריא ומעושן ודם שבשלו בחלב פטור ואין לוקין על אכילתו משום בשר בחלב המבשל שליל בחלב חייב וכן האוכלו המבשל שליא או עור גידין ועצמות ועיקרי קרנים וטלפים הרכים בחלב פטור וכן האוכלו פטור המבשל במי חלב או בחלב מתה או בחלב זכר פטור וכתב א\"א הרא\"ש ז\"ל דנסיובי דחלבא אינה בכלל מי חלב ואסור מן התורה אלא מי חלב היינו אחר שהוציאו מן החלב כל האוכל כגון לאחר שעשו כל הגבינה מבשלים החלב והאוכל צף מלמעלה ולא נשאר בו אלא מים בעלמא זהו הנקרא מי חלב חלב הנמצא בקיבה לדעת רב אלפס אינו חלב ומותר לבשל בו בשר אפילו בצלול שבה וכ\"כ הרמב\"ם ורש\"י אסרו וכתב שהוא חלב גמור אפילו הקרוש שבה כ\"ש הצלול ור\"ת חילק הקרוש שבה אינו חלב אבל הצלול הוא חלב לפיכך אם מלח הקיבה בחלבה נאסר משום בשר בחלב דמליח כרותח וכן אם עמד בה יום אחד דכבוש כמבושל ואם העמיד בה גבינות אם יש בהן בנותן טעם אסורות לרש\"י אפילו בקרוש ולר\"ת בצלול דוקא וכן היא מסקנת א\"א הרא\"ש ז\"ל: ", + "versionSource": "https://www.nli.org.il/he/books/NNL_ALEPH001935970", + "versionTitle": "Yoreh Deah, Vilna, 1923" + } + ] + }, + "request": { + "reference": "Tur, Yoreh De'ah 87:1" + }, + "retrieved_at": "2026-05-31T09:16:17+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json new file mode 100644 index 0000000000..5915351f13 --- /dev/null +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json @@ -0,0 +1,31 @@ +{ + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "mcp_url": "https://mcp.sefaria.org/sse", + "payload": { + "available_versions": [ + { + "languageFamilyName": "hebrew", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + }, + { + "languageFamilyName": "english", + "versionTitle": "Sefaria Community Translation" + } + ], + "ref": "Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1", + "sectionRef": "Turei Zahav on Shulchan Arukh, Yoreh De'ah 87", + "versions": [ + { + "languageFamilyName": "hebrew", + "text": "שאינו אסור מן התורה מותר בהנאה. רש\"ל פ' כ\"ה סי' ק' חולק על זה ועל מ\"ש הרמב\"ם והמרדכי וס\"ל מסברא להחמיר בהנאה. ואנו אין לנו אלא דברי הראשונים והאחרונים:", + "versionSource": "https://www.nli.org.il/he/books/NNL_ALEPH002097765", + "versionTitle": "Ashlei Ravrevei: Shulchan Aruch Yoreh Deah, Lemberg, 1888" + } + ] + }, + "request": { + "reference": "Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1" + }, + "retrieved_at": "2026-05-31T09:16:17+00:00" +} diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.explain.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.explain.txt index 542356de94..0fd0bef588 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.explain.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.explain.txt @@ -4,12 +4,12 @@ exit_code: 0 [stdout] { "parse": { - "statements": 18, + "statements": 52, "cache_hits": 0, - "cache_misses": 18 + "cache_misses": 52 }, "ast": { - "rules": 10, + "rules": 44, "queries": 1, "prob_queries": 0 }, @@ -18,11 +18,11 @@ exit_code: 0 "strata": 2 }, "rir": { - "status": "error: Compilation error: Symbol literal case_non_cooked_benefit not valid for U64", - "sccs": 0 + "status": "ok", + "sccs": 11 }, "optimizer": { - "status": "not_available", + "status": "ok", "est_memory_peak": 0 }, "wcoj": { @@ -96,37 +96,343 @@ exit_code: 0 "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:6:d10843e04112bb5c", - "head": "expected_normative(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)", + "rule_id": "rule:source:6:5b5b7749a94c3c04", + "head": "item(case_rabbinic_benefit)", "source_kind": "source", "source_span": "rule_index:6", + "generation_trace_hash": "5b5b7749a94c3c04", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:7:0d05fb40c767e35d", + "head": "food(case_rabbinic_benefit)", + "source_kind": "source", + "source_span": "rule_index:7", + "generation_trace_hash": "0d05fb40c767e35d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:8:a27aa216ae205c3b", + "head": "legal_category(case_rabbinic_benefit, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:8", + "generation_trace_hash": "a27aa216ae205c3b", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:9:7142f8878440f8e0", + "head": "legal_category(case_rabbinic_benefit, rabbinic_mixture)", + "source_kind": "source", + "source_span": "rule_index:9", + "generation_trace_hash": "7142f8878440f8e0", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:10:1c293a86b4bbbb94", + "head": "legal_category(case_rabbinic_benefit, not_torah_prohibited)", + "source_kind": "source", + "source_span": "rule_index:10", + "generation_trace_hash": "1c293a86b4bbbb94", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:11:3ed2f100f0911a4a", + "head": "legal_category(case_rabbinic_benefit, benefit_context)", + "source_kind": "source", + "source_span": "rule_index:11", + "generation_trace_hash": "3ed2f100f0911a4a", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:12:2cf3ef27944edf1a", + "head": "item(case_pickled_meat_milk)", + "source_kind": "source", + "source_span": "rule_index:12", + "generation_trace_hash": "2cf3ef27944edf1a", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:13:4f3093c39b0a4769", + "head": "food(case_pickled_meat_milk)", + "source_kind": "source", + "source_span": "rule_index:13", + "generation_trace_hash": "4f3093c39b0a4769", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:14:7bda2d1570bfeccb", + "head": "legal_category(case_pickled_meat_milk, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:14", + "generation_trace_hash": "7bda2d1570bfeccb", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:15:c41212ca40fb3270", + "head": "legal_category(case_pickled_meat_milk, pickling_context)", + "source_kind": "source", + "source_span": "rule_index:15", + "generation_trace_hash": "c41212ca40fb3270", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:16:3f146a6e253e4dcd", + "head": "item(case_salted_meat_milk)", + "source_kind": "source", + "source_span": "rule_index:16", + "generation_trace_hash": "3f146a6e253e4dcd", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:17:e24ec8115c82baf4", + "head": "food(case_salted_meat_milk)", + "source_kind": "source", + "source_span": "rule_index:17", + "generation_trace_hash": "e24ec8115c82baf4", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:18:1b1025896017a8e8", + "head": "legal_category(case_salted_meat_milk, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:18", + "generation_trace_hash": "1b1025896017a8e8", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:19:e921a2f64feb328c", + "head": "legal_category(case_salted_meat_milk, salting_context)", + "source_kind": "source", + "source_span": "rule_index:19", + "generation_trace_hash": "e921a2f64feb328c", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:20:850f3f9ad499a5cc", + "head": "item(case_unusual_eating)", + "source_kind": "source", + "source_span": "rule_index:20", + "generation_trace_hash": "850f3f9ad499a5cc", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:21:f2f29bd80e589cfd", + "head": "food(case_unusual_eating)", + "source_kind": "source", + "source_span": "rule_index:21", + "generation_trace_hash": "f2f29bd80e589cfd", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:22:4a25c19a572dfc7b", + "head": "legal_category(case_unusual_eating, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:22", + "generation_trace_hash": "4a25c19a572dfc7b", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:23:8c1d49526796ef01", + "head": "legal_category(case_unusual_eating, cooked_meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:23", + "generation_trace_hash": "8c1d49526796ef01", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:24:eb50dac7d9d61cbd", + "head": "legal_category(case_unusual_eating, unusual_eating_context)", + "source_kind": "source", + "source_span": "rule_index:24", + "generation_trace_hash": "eb50dac7d9d61cbd", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:25:da47cc2090f65905", + "head": "item(case_unusual_benefit)", + "source_kind": "source", + "source_span": "rule_index:25", + "generation_trace_hash": "da47cc2090f65905", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:26:a2fbc00303e5c0d2", + "head": "food(case_unusual_benefit)", + "source_kind": "source", + "source_span": "rule_index:26", + "generation_trace_hash": "a2fbc00303e5c0d2", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:27:6584410321e56e6e", + "head": "legal_category(case_unusual_benefit, meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:27", + "generation_trace_hash": "6584410321e56e6e", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:28:cc9b13b3621afd36", + "head": "legal_category(case_unusual_benefit, cooked_meat_milk_mixture)", + "source_kind": "source", + "source_span": "rule_index:28", + "generation_trace_hash": "cc9b13b3621afd36", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:29:3df7304977ae418b", + "head": "legal_category(case_unusual_benefit, unusual_benefit_context)", + "source_kind": "source", + "source_span": "rule_index:29", + "generation_trace_hash": "3df7304977ae418b", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:30:d10843e04112bb5c", + "head": "expected_normative(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)", + "source_kind": "source", + "source_span": "rule_index:30", "generation_trace_hash": "d10843e04112bb5c", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:7:c0397aac5ecb52aa", + "rule_id": "rule:source:31:dba62c60ec13c52d", + "head": "expected_normative(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:31", + "generation_trace_hash": "dba62c60ec13c52d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:32:054c9186ba718436", + "head": "expected_normative(maharshal, case_non_cooked_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency)", + "source_kind": "source", + "source_span": "rule_index:32", + "generation_trace_hash": "054c9186ba718436", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:33:75ddd0023c0367a3", + "head": "expected_normative(rema, case_rabbinic_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)", + "source_kind": "source", + "source_span": "rule_index:33", + "generation_trace_hash": "75ddd0023c0367a3", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:34:095e832f15028444", + "head": "expected_normative(rema, case_rabbinic_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:34", + "generation_trace_hash": "095e832f15028444", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:35:6dcfd1b1cfae773d", + "head": "expected_normative(rema, case_rabbinic_benefit, permitted, claim_yd_87_1_shach_rabbinic_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:35", + "generation_trace_hash": "6dcfd1b1cfae773d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:36:c85203332c28ad73", + "head": "expected_normative(maharshal, case_rabbinic_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency)", + "source_kind": "source", + "source_span": "rule_index:36", + "generation_trace_hash": "c85203332c28ad73", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:37:232b3cbc2a800545", + "head": "expected_normative(mechaber, case_pickled_meat_milk, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary)", + "source_kind": "source", + "source_span": "rule_index:37", + "generation_trace_hash": "232b3cbc2a800545", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:38:ceeeced5dc515a98", + "head": "expected_normative(mechaber, case_salted_meat_milk, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary)", + "source_kind": "source", + "source_span": "rule_index:38", + "generation_trace_hash": "ceeeced5dc515a98", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:39:b987be550514d57b", + "head": "expected_normative(mechaber, case_unusual_eating, prohibited, claim_yd_87_1_pitchei_unusual_eating_prohibited)", + "source_kind": "source", + "source_span": "rule_index:39", + "generation_trace_hash": "b987be550514d57b", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:40:8c76675551986c05", + "head": "expected_normative(mechaber, case_unusual_benefit, prohibited, claim_yd_87_1_unusual_eating_benefit_prohibited)", + "source_kind": "source", + "source_span": "rule_index:40", + "generation_trace_hash": "8c76675551986c05", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:41:c0397aac5ecb52aa", "head": "actual_normative(World, Item, Outcome, Claim)", "source_kind": "source", - "source_span": "rule_index:7", + "source_span": "rule_index:41", "generation_trace_hash": "c0397aac5ecb52aa", "support_relation_ids": ["normative_outcome"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:8:0c883b52d0f09f1e", + "rule_id": "rule:source:42:0c883b52d0f09f1e", "head": "missing_expected(World, Item, Outcome, Claim)", "source_kind": "source", - "source_span": "rule_index:8", + "source_span": "rule_index:42", "generation_trace_hash": "0c883b52d0f09f1e", "support_relation_ids": ["actual_normative", "expected_normative"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:9:a5fa9ffa626742dc", + "rule_id": "rule:source:43:a5fa9ffa626742dc", "head": "unexpected_normative(World, Item, Outcome, Claim)", "source_kind": "source", - "source_span": "rule_index:9", + "source_span": "rule_index:43", "generation_trace_hash": "a5fa9ffa626742dc", "support_relation_ids": ["actual_normative", "expected_normative"], "counterexample_relation_ids": [] @@ -135,8 +441,8 @@ exit_code: 0 , "proof_traces": [ { - "query_id": "query:source:0:normative_outcome(World, case_non_cooked_benefit, Outcome, Claim)", - "query": "normative_outcome(World, case_non_cooked_benefit, Outcome, Claim)", + "query_id": "query:source:0:normative_outcome(World, Item, Outcome, Claim)", + "query": "normative_outcome(World, Item, Outcome, Claim)", "answer_relation": "__xlog_query_0", "rule_ids": [], "source_facts": [], diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt index a9bc5c2550..7b7ce853a6 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt @@ -3,12 +3,22 @@ exit_code: 0 [stdout] __xlog_query_0 -+------------+------------+--------------------------------------+ -| computed_0 | computed_2 | computed_3 | -+------------+------------+--------------------------------------+ -| rema | permitted | claim_yd_87_1_rema_benefit_non_torah | -+------------+------------+--------------------------------------+ ++------------+-------------------------+----------------------+-------------------------------------------------+ +| computed_0 | c0 | computed_2 | computed_3 | ++------------+-------------------------+----------------------+-------------------------------------------------+ +| rema | case_non_cooked_benefit | permitted | claim_yd_87_1_rema_benefit_non_torah | +| rema | case_non_cooked_benefit | permitted | claim_yd_87_1_taz_standard_benefit_permission | +| rema | case_rabbinic_benefit | permitted | claim_yd_87_1_rema_benefit_non_torah | +| rema | case_rabbinic_benefit | permitted | claim_yd_87_1_taz_standard_benefit_permission | +| rema | case_rabbinic_benefit | permitted | claim_yd_87_1_shach_rabbinic_benefit_permission | +| maharshal | case_non_cooked_benefit | prohibited | claim_yd_87_1_maharshal_benefit_stringency | +| maharshal | case_rabbinic_benefit | prohibited | claim_yd_87_1_maharshal_benefit_stringency | +| mechaber | case_pickled_meat_milk | not_torah_prohibited | claim_yd_87_1_shach_pickling_salting_boundary | +| mechaber | case_salted_meat_milk | not_torah_prohibited | claim_yd_87_1_shach_pickling_salting_boundary | +| mechaber | case_unusual_eating | prohibited | claim_yd_87_1_pitchei_unusual_eating_prohibited | +| mechaber | case_unusual_benefit | prohibited | claim_yd_87_1_unusual_eating_benefit_prohibited | ++------------+-------------------------+----------------------+-------------------------------------------------+ [stderr] -{"total_ms":816,"strata":[{"stratum":0,"rules":44,"recursive":false,"iterations":1,"duration_ms":812,"ops":[{"op":"union","calls":44,"duration_ms":799},{"op":"join","calls":7,"duration_ms":0},{"op":"project","calls":6,"duration_ms":0},{"op":"scan","calls":51,"duration_ms":6},{"op":"filter","calls":13,"duration_ms":4}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":4,"ops":[{"op":"diff","calls":2,"duration_ms":1},{"op":"scan","calls":8,"duration_ms":1},{"op":"join","calls":2,"duration_ms":0},{"op":"project","calls":4,"duration_ms":0},{"op":"union","calls":4,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":1} -Symbols: 33 interned (1929 bytes) +{"total_ms":16761,"strata":[{"stratum":0,"rules":157,"recursive":false,"iterations":1,"duration_ms":16467,"ops":[{"op":"join","calls":19,"duration_ms":14},{"op":"filter","calls":32,"duration_ms":34},{"op":"union","calls":157,"duration_ms":16318},{"op":"scan","calls":176,"duration_ms":82},{"op":"project","calls":13,"duration_ms":10}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":293,"ops":[{"op":"project","calls":4,"duration_ms":2},{"op":"scan","calls":8,"duration_ms":3},{"op":"union","calls":4,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":286},{"op":"join","calls":2,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":11} +Symbols: 106 interned (6930 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.explain.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.explain.txt index b6dce538aa..a74ef9d823 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.explain.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.explain.txt @@ -4,12 +4,12 @@ exit_code: 0 [stdout] { "parse": { - "statements": 25, + "statements": 27, "cache_hits": 0, - "cache_misses": 25 + "cache_misses": 27 }, "ast": { - "rules": 17, + "rules": 19, "queries": 1, "prob_queries": 0 }, @@ -168,28 +168,46 @@ exit_code: 0 "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:14:c0397aac5ecb52aa", - "head": "actual_normative(World, Item, Outcome, Claim)", + "rule_id": "rule:source:14:fba681540ed3a550", + "head": "expected_normative(rema, case_uncooked_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission)", "source_kind": "source", "source_span": "rule_index:14", + "generation_trace_hash": "fba681540ed3a550", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:15:c67fb3ab3141a89f", + "head": "expected_normative(maharshal, case_uncooked_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency)", + "source_kind": "source", + "source_span": "rule_index:15", + "generation_trace_hash": "c67fb3ab3141a89f", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:16:c0397aac5ecb52aa", + "head": "actual_normative(World, Item, Outcome, Claim)", + "source_kind": "source", + "source_span": "rule_index:16", "generation_trace_hash": "c0397aac5ecb52aa", "support_relation_ids": ["normative_outcome"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:15:0c883b52d0f09f1e", + "rule_id": "rule:source:17:0c883b52d0f09f1e", "head": "missing_expected(World, Item, Outcome, Claim)", "source_kind": "source", - "source_span": "rule_index:15", + "source_span": "rule_index:17", "generation_trace_hash": "0c883b52d0f09f1e", "support_relation_ids": ["actual_normative", "expected_normative"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:16:a5fa9ffa626742dc", + "rule_id": "rule:source:18:a5fa9ffa626742dc", "head": "unexpected_normative(World, Item, Outcome, Claim)", "source_kind": "source", - "source_span": "rule_index:16", + "source_span": "rule_index:18", "generation_trace_hash": "a5fa9ffa626742dc", "support_relation_ids": ["actual_normative", "expected_normative"], "counterexample_relation_ids": [] diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt index 1d3f5beb59..1e01e668e8 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt @@ -3,13 +3,15 @@ exit_code: 0 [stdout] __xlog_query_0 -+------------+-----------------------+------------+--------------------------------------+ -| computed_0 | c0 | computed_2 | computed_3 | -+------------+-----------------------+------------+--------------------------------------+ -| mechaber | case_uncooked_eating | prohibited | claim_yd_87_1_rabbinic_all_forms | -| rema | case_uncooked_benefit | permitted | claim_yd_87_1_rema_benefit_non_torah | -+------------+-----------------------+------------+--------------------------------------+ ++------------+-----------------------+------------+-----------------------------------------------+ +| computed_0 | c0 | computed_2 | computed_3 | ++------------+-----------------------+------------+-----------------------------------------------+ +| mechaber | case_uncooked_eating | prohibited | claim_yd_87_1_rabbinic_all_forms | +| rema | case_uncooked_benefit | permitted | claim_yd_87_1_rema_benefit_non_torah | +| rema | case_uncooked_benefit | permitted | claim_yd_87_1_taz_standard_benefit_permission | +| maharshal | case_uncooked_benefit | prohibited | claim_yd_87_1_maharshal_benefit_stringency | ++------------+-----------------------+------------+-----------------------------------------------+ [stderr] -{"total_ms":1111,"strata":[{"stratum":0,"rules":51,"recursive":false,"iterations":1,"duration_ms":1035,"ops":[{"op":"join","calls":7,"duration_ms":1},{"op":"scan","calls":58,"duration_ms":7},{"op":"project","calls":5,"duration_ms":0},{"op":"filter","calls":12,"duration_ms":4},{"op":"union","calls":51,"duration_ms":1019}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":76,"ops":[{"op":"join","calls":2,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":74},{"op":"project","calls":4,"duration_ms":0},{"op":"scan","calls":8,"duration_ms":1},{"op":"union","calls":4,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":2} -Symbols: 34 interned (1975 bytes) +{"total_ms":11038,"strata":[{"stratum":0,"rules":132,"recursive":false,"iterations":1,"duration_ms":10751,"ops":[{"op":"filter","calls":32,"duration_ms":28},{"op":"scan","calls":151,"duration_ms":55},{"op":"project","calls":13,"duration_ms":4},{"op":"join","calls":19,"duration_ms":7},{"op":"union","calls":132,"duration_ms":10646}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":286,"ops":[{"op":"join","calls":2,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":279},{"op":"scan","calls":8,"duration_ms":3},{"op":"project","calls":4,"duration_ms":2},{"op":"union","calls":4,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":4} +Symbols: 102 interned (6733 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt index 7a4378af4a..63d7851220 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt @@ -9,5 +9,5 @@ __xlog_query_0 +----+----+----+ [stderr] -{"total_ms":727,"strata":[{"stratum":0,"rules":43,"recursive":false,"iterations":1,"duration_ms":727,"ops":[{"op":"scan","calls":50,"duration_ms":5},{"op":"union","calls":43,"duration_ms":716},{"op":"join","calls":7,"duration_ms":0},{"op":"filter","calls":13,"duration_ms":4},{"op":"project","calls":7,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":0} -Symbols: 34 interned (1965 bytes) +{"total_ms":8378,"strata":[{"stratum":0,"rules":122,"recursive":false,"iterations":1,"duration_ms":8378,"ops":[{"op":"project","calls":15,"duration_ms":1},{"op":"filter","calls":33,"duration_ms":24},{"op":"join","calls":19,"duration_ms":1},{"op":"scan","calls":141,"duration_ms":48},{"op":"union","calls":122,"duration_ms":8297}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":0} +Symbols: 102 interned (6723 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt index 94d6eed7da..34ffaf1aba 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt @@ -12,5 +12,5 @@ __xlog_query_0 +------------+------------+-----------------------------+ [stderr] -{"total_ms":1187,"strata":[{"stratum":0,"rules":47,"recursive":false,"iterations":1,"duration_ms":1110,"ops":[{"op":"join","calls":7,"duration_ms":1},{"op":"project","calls":6,"duration_ms":1},{"op":"union","calls":47,"duration_ms":1094},{"op":"scan","calls":54,"duration_ms":7},{"op":"filter","calls":13,"duration_ms":3}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":77,"ops":[{"op":"diff","calls":2,"duration_ms":75},{"op":"join","calls":2,"duration_ms":0},{"op":"scan","calls":8,"duration_ms":0},{"op":"union","calls":4,"duration_ms":0},{"op":"project","calls":4,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":3} -Symbols: 33 interned (1927 bytes) +{"total_ms":2839,"strata":[{"stratum":0,"rules":126,"recursive":false,"iterations":1,"duration_ms":2763,"ops":[{"op":"union","calls":126,"duration_ms":2730},{"op":"filter","calls":33,"duration_ms":9},{"op":"join","calls":19,"duration_ms":1},{"op":"scan","calls":145,"duration_ms":16},{"op":"project","calls":14,"duration_ms":1}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":76,"ops":[{"op":"scan","calls":8,"duration_ms":1},{"op":"project","calls":4,"duration_ms":0},{"op":"join","calls":2,"duration_ms":0},{"op":"union","calls":4,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":74}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":3} +Symbols: 101 interned (6685 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.explain.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.explain.txt index c3f04506f4..0671bab79b 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.explain.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.explain.txt @@ -4,12 +4,12 @@ exit_code: 0 [stdout] { "parse": { - "statements": 33, + "statements": 62, "cache_hits": 0, - "cache_misses": 33 + "cache_misses": 62 }, "ast": { - "rules": 18, + "rules": 47, "queries": 2, "prob_queries": 0 }, @@ -96,109 +96,370 @@ exit_code: 0 "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:6:7bb41772d9635997", - "head": "actual_claim(Claim)", + "rule_id": "rule:source:6:12a5cd920d46597e", + "head": "expected_claim(claim_yd_87_1_rambam_cooking_eating_benefit)", "source_kind": "source", "source_span": "rule_index:6", - "generation_trace_hash": "7bb41772d9635997", + "generation_trace_hash": "12a5cd920d46597e", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:7:2b9acda25301665d", + "head": "expected_claim(claim_yd_87_1_talmud_threefold_derivation)", + "source_kind": "source", + "source_span": "rule_index:7", + "generation_trace_hash": "2b9acda25301665d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:8:fe94b657727aff62", + "head": "expected_claim(claim_yd_87_1_torah_repeated_verses)", + "source_kind": "source", + "source_span": "rule_index:8", + "generation_trace_hash": "fe94b657727aff62", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:9:41ac879c203bd5bd", + "head": "expected_claim(claim_yd_87_1_shach_pickling_salting_boundary)", + "source_kind": "source", + "source_span": "rule_index:9", + "generation_trace_hash": "41ac879c203bd5bd", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:10:42acdbfee118e67f", + "head": "expected_claim(claim_yd_87_1_gra_fire_cooking_boundary)", + "source_kind": "source", + "source_span": "rule_index:10", + "generation_trace_hash": "42acdbfee118e67f", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:11:3e4653b41e32ea07", + "head": "expected_claim(claim_yd_87_1_taz_standard_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:11", + "generation_trace_hash": "3e4653b41e32ea07", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:12:b0b4a869618ab854", + "head": "expected_claim(claim_yd_87_1_maharshal_benefit_stringency)", + "source_kind": "source", + "source_span": "rule_index:12", + "generation_trace_hash": "b0b4a869618ab854", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:13:aba97312d19a5ca2", + "head": "expected_claim(claim_yd_87_1_shach_rabbinic_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:13", + "generation_trace_hash": "aba97312d19a5ca2", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:14:f1a27fafe54ab9c3", + "head": "expected_claim(claim_yd_87_1_unusual_eating_benefit_prohibited)", + "source_kind": "source", + "source_span": "rule_index:14", + "generation_trace_hash": "f1a27fafe54ab9c3", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:15:b324151492c6c08e", + "head": "expected_claim(claim_yd_87_1_pitchei_unusual_eating_prohibited)", + "source_kind": "source", + "source_span": "rule_index:15", + "generation_trace_hash": "b324151492c6c08e", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:16:935b92f1b12e96f5", + "head": "expected_claim(claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic)", + "source_kind": "source", + "source_span": "rule_index:16", + "generation_trace_hash": "935b92f1b12e96f5", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:17:716aede4be1042af", + "head": "actual_claim(Claim)", + "source_kind": "source", + "source_span": "rule_index:17", + "generation_trace_hash": "716aede4be1042af", "support_relation_ids": ["source_claim"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:7:501319082174c573", + "rule_id": "rule:source:18:501319082174c573", "head": "missing_claim(Claim)", "source_kind": "source", - "source_span": "rule_index:7", + "source_span": "rule_index:18", "generation_trace_hash": "501319082174c573", "support_relation_ids": ["actual_claim", "expected_claim"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:8:4f6e3cf4b82ca288", + "rule_id": "rule:source:19:4f6e3cf4b82ca288", "head": "unexpected_claim(Claim)", "source_kind": "source", - "source_span": "rule_index:8", + "source_span": "rule_index:19", "generation_trace_hash": "4f6e3cf4b82ca288", "support_relation_ids": ["actual_claim", "expected_claim"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:9:e80d4e4d65254576", + "rule_id": "rule:source:20:e80d4e4d65254576", "head": "expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_cooking)", "source_kind": "source", - "source_span": "rule_index:9", + "source_span": "rule_index:20", "generation_trace_hash": "e80d4e4d65254576", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:10:e5c6bf7bec45168a", + "rule_id": "rule:source:21:e5c6bf7bec45168a", "head": "expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_eating)", "source_kind": "source", - "source_span": "rule_index:10", + "source_span": "rule_index:21", "generation_trace_hash": "e5c6bf7bec45168a", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:11:6dc7b801d909c514", + "rule_id": "rule:source:22:6dc7b801d909c514", "head": "expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_benefit)", "source_kind": "source", - "source_span": "rule_index:11", + "source_span": "rule_index:22", "generation_trace_hash": "6dc7b801d909c514", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:12:c94d60626782538e", + "rule_id": "rule:source:23:c94d60626782538e", "head": "expected_support(rule_yd_87_1_cooked_condition, claim_yd_87_1_cooked_condition)", "source_kind": "source", - "source_span": "rule_index:12", + "source_span": "rule_index:23", "generation_trace_hash": "c94d60626782538e", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:13:931e7f605911c356", + "rule_id": "rule:source:24:931e7f605911c356", "head": "expected_support(rule_yd_87_1_rabbinic_all_forms, claim_yd_87_1_rabbinic_all_forms)", "source_kind": "source", - "source_span": "rule_index:13", + "source_span": "rule_index:24", "generation_trace_hash": "931e7f605911c356", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:14:0872b43b7a1b2d8e", + "rule_id": "rule:source:25:0872b43b7a1b2d8e", "head": "expected_support(rule_yd_87_1_rema_benefit_non_torah, claim_yd_87_1_rema_benefit_non_torah)", "source_kind": "source", - "source_span": "rule_index:14", + "source_span": "rule_index:25", "generation_trace_hash": "0872b43b7a1b2d8e", "support_relation_ids": [], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:15:c5aae15398d1fdd1", + "rule_id": "rule:source:26:e8c138c472ea346d", + "head": "expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_rambam_cooking_eating_benefit)", + "source_kind": "source", + "source_span": "rule_index:26", + "generation_trace_hash": "e8c138c472ea346d", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:27:3fd1a9ab720dbdcd", + "head": "expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_rambam_cooking_eating_benefit)", + "source_kind": "source", + "source_span": "rule_index:27", + "generation_trace_hash": "3fd1a9ab720dbdcd", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:28:dac6fb44c2ee6de2", + "head": "expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_rambam_cooking_eating_benefit)", + "source_kind": "source", + "source_span": "rule_index:28", + "generation_trace_hash": "dac6fb44c2ee6de2", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:29:f6e19619a128360a", + "head": "expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_talmud_threefold_derivation)", + "source_kind": "source", + "source_span": "rule_index:29", + "generation_trace_hash": "f6e19619a128360a", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:30:9ce89473798368aa", + "head": "expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_talmud_threefold_derivation)", + "source_kind": "source", + "source_span": "rule_index:30", + "generation_trace_hash": "9ce89473798368aa", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:31:ec99f723b652af71", + "head": "expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_talmud_threefold_derivation)", + "source_kind": "source", + "source_span": "rule_index:31", + "generation_trace_hash": "ec99f723b652af71", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:32:c77a89857b933b31", + "head": "expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_repeated_verses)", + "source_kind": "source", + "source_span": "rule_index:32", + "generation_trace_hash": "c77a89857b933b31", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:33:b6649626214ce151", + "head": "expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_repeated_verses)", + "source_kind": "source", + "source_span": "rule_index:33", + "generation_trace_hash": "b6649626214ce151", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:34:a1a555cfc1a18f76", + "head": "expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_repeated_verses)", + "source_kind": "source", + "source_span": "rule_index:34", + "generation_trace_hash": "a1a555cfc1a18f76", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:35:08559fefd6a77808", + "head": "expected_support(rule_yd_87_1_pickling_torah_boundary, claim_yd_87_1_shach_pickling_salting_boundary)", + "source_kind": "source", + "source_span": "rule_index:35", + "generation_trace_hash": "08559fefd6a77808", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:36:e34cd143785dcb47", + "head": "expected_support(rule_yd_87_1_salting_torah_boundary, claim_yd_87_1_shach_pickling_salting_boundary)", + "source_kind": "source", + "source_span": "rule_index:36", + "generation_trace_hash": "e34cd143785dcb47", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:37:b2853d700fdfc2fe", + "head": "expected_support(rule_yd_87_1_pickling_torah_boundary, claim_yd_87_1_gra_fire_cooking_boundary)", + "source_kind": "source", + "source_span": "rule_index:37", + "generation_trace_hash": "b2853d700fdfc2fe", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:38:b3bc614fa8fb21b2", + "head": "expected_support(rule_yd_87_1_taz_standard_benefit_permission, claim_yd_87_1_taz_standard_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:38", + "generation_trace_hash": "b3bc614fa8fb21b2", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:39:9f25e0ea9fc4778a", + "head": "expected_support(rule_yd_87_1_maharshal_benefit_stringency, claim_yd_87_1_maharshal_benefit_stringency)", + "source_kind": "source", + "source_span": "rule_index:39", + "generation_trace_hash": "9f25e0ea9fc4778a", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:40:0e994c9b46d7d9f4", + "head": "expected_support(rule_yd_87_1_shach_rabbinic_benefit_permission, claim_yd_87_1_shach_rabbinic_benefit_permission)", + "source_kind": "source", + "source_span": "rule_index:40", + "generation_trace_hash": "0e994c9b46d7d9f4", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:41:2c0ee08f565e883f", + "head": "expected_support(rule_yd_87_1_unusual_eating_prohibited, claim_yd_87_1_pitchei_unusual_eating_prohibited)", + "source_kind": "source", + "source_span": "rule_index:41", + "generation_trace_hash": "2c0ee08f565e883f", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:42:412e0a716f65eff5", + "head": "expected_support(rule_yd_87_1_unusual_benefit_prohibited, claim_yd_87_1_unusual_eating_benefit_prohibited)", + "source_kind": "source", + "source_span": "rule_index:42", + "generation_trace_hash": "412e0a716f65eff5", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:43:ff1301fc72d11783", + "head": "expected_support(rule_yd_87_1_non_torah_cooking_rabbinic, claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic)", + "source_kind": "source", + "source_span": "rule_index:43", + "generation_trace_hash": "ff1301fc72d11783", + "support_relation_ids": [], + "counterexample_relation_ids": [] + }, + { + "rule_id": "rule:source:44:c5aae15398d1fdd1", "head": "actual_support(Rule, Claim)", "source_kind": "source", - "source_span": "rule_index:15", + "source_span": "rule_index:44", "generation_trace_hash": "c5aae15398d1fdd1", "support_relation_ids": ["supports_claim"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:16:763a75bfaaf0df2e", + "rule_id": "rule:source:45:763a75bfaaf0df2e", "head": "missing_support(Rule, Claim)", "source_kind": "source", - "source_span": "rule_index:16", + "source_span": "rule_index:45", "generation_trace_hash": "763a75bfaaf0df2e", "support_relation_ids": ["actual_support", "expected_support"], "counterexample_relation_ids": [] }, { - "rule_id": "rule:source:17:6c6a74236ade7bb1", + "rule_id": "rule:source:46:6c6a74236ade7bb1", "head": "unexpected_support(Rule, Claim)", "source_kind": "source", - "source_span": "rule_index:17", + "source_span": "rule_index:46", "generation_trace_hash": "6c6a74236ade7bb1", "support_relation_ids": ["actual_support", "expected_support"], "counterexample_relation_ids": [] @@ -207,8 +468,8 @@ exit_code: 0 , "proof_traces": [ { - "query_id": "query:source:0:source_claim(Claim, ref_yd_87_1, Text)", - "query": "source_claim(Claim, ref_yd_87_1, Text)", + "query_id": "query:source:0:source_claim(Claim, Ref, Text)", + "query": "source_claim(Claim, Ref, Text)", "answer_relation": "__xlog_query_0", "rule_ids": [], "source_facts": [], diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt index c4fa7ecb97..ac2a831e34 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt @@ -3,28 +3,57 @@ exit_code: 0 [stdout] __xlog_query_0 -+--------------------------------------+----------------------------------------------------------------------------------+ -| c0 | c2 | -+--------------------------------------+----------------------------------------------------------------------------------+ -| claim_yd_87_1_torah_cooking | Torah source assigns a meat-with-milk prohibition to cooking. | -| claim_yd_87_1_torah_eating | Torah source assigns a meat-with-milk prohibition to eating. | -| claim_yd_87_1_torah_benefit | Torah source assigns a meat-with-milk prohibition to deriving benefit. | -| claim_yd_87_1_cooked_condition | Torah-level meat-with-milk prohibition applies only through cooking. | -| claim_yd_87_1_rabbinic_all_forms | Rabbinic law prohibits meat-with-milk mixtures beyond Torah cooking form. | -| claim_yd_87_1_rema_benefit_non_torah | Rema permits benefit from meat-with-milk mixtures not prohibited at Torah level. | -+--------------------------------------+----------------------------------------------------------------------------------+ ++------------------------------------------------------+--------------------------------+-------------------------------------------------------------------------------------------------------------------+ +| c0 | c1 | c2 | ++------------------------------------------------------+--------------------------------+-------------------------------------------------------------------------------------------------------------------+ +| claim_yd_87_1_torah_cooking | ref_yd_87_1 | Torah source assigns a meat-with-milk prohibition to cooking. | +| claim_yd_87_1_torah_eating | ref_yd_87_1 | Torah source assigns a meat-with-milk prohibition to eating. | +| claim_yd_87_1_torah_benefit | ref_yd_87_1 | Torah source assigns a meat-with-milk prohibition to deriving benefit. | +| claim_yd_87_1_cooked_condition | ref_yd_87_1 | Torah-level meat-with-milk prohibition applies only through cooking. | +| claim_yd_87_1_rabbinic_all_forms | ref_yd_87_1 | Rabbinic law prohibits meat-with-milk mixtures beyond Torah cooking form. | +| claim_yd_87_1_rema_benefit_non_torah | ref_yd_87_1 | Rema permits benefit from meat-with-milk mixtures not prohibited at Torah level. | +| claim_yd_87_1_rambam_cooking_eating_benefit | ref_rambam_forbidden_foods_9_1 | Rambam codifies cooking, eating, and benefit prohibitions for meat and milk cooked together. | +| claim_yd_87_1_talmud_threefold_derivation | ref_kiddushin_57b_9 | The Talmud derives eating, benefit, and cooking prohibitions from the three repeated verses. | +| claim_yd_87_1_torah_repeated_verses | ref_torah_deuteronomy_14_21 | The Torah repeats the kid-in-mother's-milk verse as the textual basis for the threefold derivation. | +| claim_yd_87_1_shach_pickling_salting_boundary | ref_shach_yd_87_1_1 | Shach clarifies that Torah-level cooking excludes pickling and salting because they are not the way of cooking. | +| claim_yd_87_1_gra_fire_cooking_boundary | ref_gra_yd_87_1 | Gra grounds the cooking boundary in preparation through fire and excludes pickling from Torah cooking. | +| claim_yd_87_1_taz_standard_benefit_permission | ref_taz_yd_87_1 | Taz affirms the standard position that non-Torah meat-milk mixtures are permitted in benefit. | +| claim_yd_87_1_maharshal_benefit_stringency | ref_taz_yd_87_1 | Taz reports Maharshal's stricter view prohibiting benefit from non-Torah meat-milk mixtures. | +| claim_yd_87_1_shach_rabbinic_benefit_permission | ref_shach_yd_87_2_1 | Shach supports benefit permission for rabbinic meat-milk mixtures such as fowl in milk. | +| claim_yd_87_1_unusual_eating_benefit_prohibited | ref_kaf_hachayim_yd_87_1_1 | Kaf HaChayim records that meat with milk remains prohibited even outside ordinary enjoyment. | +| claim_yd_87_1_pitchei_unusual_eating_prohibited | ref_pitchei_teshuva_yd_87_1 | Pitchei Teshuva records liability even when eating or benefit is not in the usual manner. | +| claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic | ref_pri_megadim_mz_yd_87_1 | Pri Megadim preserves benefit permission for non-Torah mixtures while maintaining a rabbinic cooking prohibition. | ++------------------------------------------------------+--------------------------------+-------------------------------------------------------------------------------------------------------------------+ __xlog_query_1 -+-------------------------------------+--------------------------------------+ -| c0 | c1 | -+-------------------------------------+--------------------------------------+ -| rule_yd_87_1_torah_cooking | claim_yd_87_1_torah_cooking | -| rule_yd_87_1_torah_eating | claim_yd_87_1_torah_eating | -| rule_yd_87_1_torah_benefit | claim_yd_87_1_torah_benefit | -| rule_yd_87_1_cooked_condition | claim_yd_87_1_cooked_condition | -| rule_yd_87_1_rabbinic_all_forms | claim_yd_87_1_rabbinic_all_forms | -| rule_yd_87_1_rema_benefit_non_torah | claim_yd_87_1_rema_benefit_non_torah | -+-------------------------------------+--------------------------------------+ ++------------------------------------------------+------------------------------------------------------+ +| c0 | c1 | ++------------------------------------------------+------------------------------------------------------+ +| rule_yd_87_1_torah_cooking | claim_yd_87_1_torah_cooking | +| rule_yd_87_1_torah_cooking | claim_yd_87_1_rambam_cooking_eating_benefit | +| rule_yd_87_1_torah_cooking | claim_yd_87_1_talmud_threefold_derivation | +| rule_yd_87_1_torah_cooking | claim_yd_87_1_torah_repeated_verses | +| rule_yd_87_1_torah_eating | claim_yd_87_1_torah_eating | +| rule_yd_87_1_torah_eating | claim_yd_87_1_rambam_cooking_eating_benefit | +| rule_yd_87_1_torah_eating | claim_yd_87_1_talmud_threefold_derivation | +| rule_yd_87_1_torah_eating | claim_yd_87_1_torah_repeated_verses | +| rule_yd_87_1_torah_benefit | claim_yd_87_1_torah_benefit | +| rule_yd_87_1_torah_benefit | claim_yd_87_1_rambam_cooking_eating_benefit | +| rule_yd_87_1_torah_benefit | claim_yd_87_1_talmud_threefold_derivation | +| rule_yd_87_1_torah_benefit | claim_yd_87_1_torah_repeated_verses | +| rule_yd_87_1_cooked_condition | claim_yd_87_1_cooked_condition | +| rule_yd_87_1_rabbinic_all_forms | claim_yd_87_1_rabbinic_all_forms | +| rule_yd_87_1_rema_benefit_non_torah | claim_yd_87_1_rema_benefit_non_torah | +| rule_yd_87_1_pickling_torah_boundary | claim_yd_87_1_shach_pickling_salting_boundary | +| rule_yd_87_1_pickling_torah_boundary | claim_yd_87_1_gra_fire_cooking_boundary | +| rule_yd_87_1_salting_torah_boundary | claim_yd_87_1_shach_pickling_salting_boundary | +| rule_yd_87_1_taz_standard_benefit_permission | claim_yd_87_1_taz_standard_benefit_permission | +| rule_yd_87_1_maharshal_benefit_stringency | claim_yd_87_1_maharshal_benefit_stringency | +| rule_yd_87_1_shach_rabbinic_benefit_permission | claim_yd_87_1_shach_rabbinic_benefit_permission | +| rule_yd_87_1_unusual_eating_prohibited | claim_yd_87_1_pitchei_unusual_eating_prohibited | +| rule_yd_87_1_unusual_benefit_prohibited | claim_yd_87_1_unusual_eating_benefit_prohibited | +| rule_yd_87_1_non_torah_cooking_rabbinic | claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic | ++------------------------------------------------+------------------------------------------------------+ [stderr] -{"total_ms":865,"strata":[{"stratum":0,"rules":51,"recursive":false,"iterations":1,"duration_ms":808,"ops":[{"op":"scan","calls":58,"duration_ms":5},{"op":"project","calls":7,"duration_ms":0},{"op":"filter","calls":14,"duration_ms":1},{"op":"join","calls":7,"duration_ms":0},{"op":"union","calls":51,"duration_ms":800}]},{"stratum":1,"rules":8,"recursive":false,"iterations":1,"duration_ms":56,"ops":[{"op":"scan","calls":16,"duration_ms":0},{"op":"join","calls":4,"duration_ms":0},{"op":"diff","calls":4,"duration_ms":54},{"op":"union","calls":8,"duration_ms":0},{"op":"project","calls":8,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":12} -Symbols: 32 interned (1878 bytes) +{"total_ms":12510,"strata":[{"stratum":0,"rules":159,"recursive":false,"iterations":1,"duration_ms":12163,"ops":[{"op":"filter","calls":32,"duration_ms":1},{"op":"union","calls":159,"duration_ms":12083},{"op":"project","calls":14,"duration_ms":1},{"op":"join","calls":19,"duration_ms":1},{"op":"scan","calls":178,"duration_ms":65}]},{"stratum":1,"rules":8,"recursive":false,"iterations":1,"duration_ms":346,"ops":[{"op":"union","calls":8,"duration_ms":1},{"op":"join","calls":4,"duration_ms":1},{"op":"scan","calls":16,"duration_ms":6},{"op":"project","calls":8,"duration_ms":3},{"op":"diff","calls":4,"duration_ms":334}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":41} +Symbols: 100 interned (6636 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md b/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md index 319f6d5b9d..82d7706d93 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md @@ -3,20 +3,22 @@ - Slice id: smicha86_u01_s87_seif_1 - Branch: codex/xlog-goal-bundle - Commit: latest -- Generated at: 2026-05-25T15:22:41+00:00 +- Generated at: 2026-05-31T09:26:26+00:00 - Generated by: xlog/tools/run_xlog_slice_validation.py ## Summary | Gate | Status | Evidence | | --- | --- | --- | | Source gate | pass | source-fetch-log.yaml, source-claims.yaml | -| Ontology grounding gate | pass | grounding-ledger.yaml | +| Commentary source-chain gate | pass | linked-source-selection.yaml, sources/linked/*.json | +| Ontology grounding gate | pass | grounding-ledger.yaml rerun after commentary expansion | | Static XLOG gate | pass | explain/*.json | +| Second-pass re-encoding gate | pass | second-pass-outcomes.yaml, refreshed XLOG/scenarios | | Runtime scenario gate | pass | scenario-local XLOG constraints plus transcripts/*.run.txt | | WCOJ runtime compatibility gate | pass | explain/*.json records WCOJ status as reported; no forced WCOJ semantic claim | | Explain/provenance gate | pass | explain/*.json plus provenance scenario | | Epistemic boundary gate | pass | no epistemic literals used | | Regression gate | pass | first XLOG corpus slice; no unrelated prior XLOG scenarios changed | -| Human review gate | pending | review artifact not opened yet | +| Human review gate | ready | review artifact refreshed after commentary expansion | | Merge validation gate | not_run | blocked until human approval | ## Commands - `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog --module-path xlog/programs --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt) @@ -34,9 +36,23 @@ | --- | --- | --- | --- | | positive | XLOG constraints and exit status | 3 | pass | | negative | XLOG constraints and exit status | 0 | pass | -| boundary | XLOG constraints and exit status | 1 | pass | -| conflict | XLOG constraints and exit status | 2 | pass | -| provenance | XLOG constraints and exit status | 12 | pass | +| boundary | XLOG constraints and exit status | 11 | pass | +| conflict | XLOG constraints and exit status | 4 | pass | +| provenance | XLOG constraints and exit status | 41 | pass | +## Commentary Source-Chain Expansion +- Selected linked sources fetched through Sefaria MCP: 18. +- Direct non-MCP source retrieval: 0. +- Linked-source selection: xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml +- Linked text artifacts: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/*.json +- Source claims were refreshed from major commentaries and upstream sources: Taz, Shach, Beur HaGra, Kaf HaChayim, Pitchei Teshuva, Pri Megadim, Tur, Rambam, Talmud, and Torah verses. +## Second-Pass Re-Encoding +- Outcome ledger: xlog/evidence/smicha86/u01/yd_87/seif_1/second-pass-outcomes.yaml +- First-pass claims without second-pass outcome: 0. +- First-pass rules without second-pass outcome: 0. +- Preserved: Torah cooking and benefit prohibitions. +- Refined: Torah eating boundary, cooked-condition boundary, and rabbinic non-Torah forms. +- Split: Rema benefit permission is retained while Maharshal's stricter view is represented as a separate authority world. +- New scenario coverage: pickling/salting boundary, unusual eating/benefit, rabbinic benefit, non-Torah cooking, and Maharshal conflict. ## Explain And Provenance - Explain artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/*.json - Source-to-rule-to-output path: source-fetch-log.yaml -> source-claims.yaml -> XLOG supports_claim facts -> scenario output -> explain JSON. @@ -56,4 +72,4 @@ - Unexpected deltas: none; first XLOG corpus slice. ## Verdict Machine verdict: pass -Human verdict status: awaiting_human_not_opened +Human verdict status: awaiting_human_ready_after_second_pass diff --git a/xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog b/xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog index df6d84cc2c..751cfcfd56 100644 --- a/xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog +++ b/xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog @@ -27,6 +27,20 @@ pred normative_outcome(world, item, outcome, source_claim). pred conflict(source_claim, source_claim, symbol). source_ref(ref_yd_87_1, "Shulchan Arukh, Yoreh De'ah 87:1"). +source_ref(ref_taz_yd_87_1, "Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1"). +source_ref(ref_tur_yd_87_1, "Tur, Yoreh De'ah 87:1"). +source_ref(ref_shach_yd_87_1_1, "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1"). +source_ref(ref_shach_yd_87_2_1, "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1"). +source_ref(ref_rambam_forbidden_foods_9_1, "Mishneh Torah, Forbidden Foods 9:1"). +source_ref(ref_kiddushin_57b_9, "Kiddushin 57b:9"). +source_ref(ref_kaf_hachayim_yd_87_1_1, "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1"). +source_ref(ref_gra_yd_87_1, "Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1"). +source_ref(ref_pitchei_teshuva_yd_87_1, "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1"). +source_ref(ref_pri_megadim_mz_yd_87_1, "Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4"). +source_ref(ref_pri_megadim_sd_yd_87_1, "Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1"). +source_ref(ref_torah_exodus_23_19, "Exodus 23:19"). +source_ref(ref_torah_exodus_34_26, "Exodus 34:26"). +source_ref(ref_torah_deuteronomy_14_21, "Deuteronomy 14:21"). source_claim(claim_yd_87_1_torah_cooking, ref_yd_87_1, "Torah source assigns a meat-with-milk prohibition to cooking."). source_claim(claim_yd_87_1_torah_eating, ref_yd_87_1, "Torah source assigns a meat-with-milk prohibition to eating."). @@ -34,6 +48,17 @@ source_claim(claim_yd_87_1_torah_benefit, ref_yd_87_1, "Torah source assigns a m source_claim(claim_yd_87_1_cooked_condition, ref_yd_87_1, "Torah-level meat-with-milk prohibition applies only through cooking."). source_claim(claim_yd_87_1_rabbinic_all_forms, ref_yd_87_1, "Rabbinic law prohibits meat-with-milk mixtures beyond Torah cooking form."). source_claim(claim_yd_87_1_rema_benefit_non_torah, ref_yd_87_1, "Rema permits benefit from meat-with-milk mixtures not prohibited at Torah level."). +source_claim(claim_yd_87_1_rambam_cooking_eating_benefit, ref_rambam_forbidden_foods_9_1, "Rambam codifies cooking, eating, and benefit prohibitions for meat and milk cooked together."). +source_claim(claim_yd_87_1_talmud_threefold_derivation, ref_kiddushin_57b_9, "The Talmud derives eating, benefit, and cooking prohibitions from the three repeated verses."). +source_claim(claim_yd_87_1_torah_repeated_verses, ref_torah_deuteronomy_14_21, "The Torah repeats the kid-in-mother's-milk verse as the textual basis for the threefold derivation."). +source_claim(claim_yd_87_1_shach_pickling_salting_boundary, ref_shach_yd_87_1_1, "Shach clarifies that Torah-level cooking excludes pickling and salting because they are not the way of cooking."). +source_claim(claim_yd_87_1_gra_fire_cooking_boundary, ref_gra_yd_87_1, "Gra grounds the cooking boundary in preparation through fire and excludes pickling from Torah cooking."). +source_claim(claim_yd_87_1_taz_standard_benefit_permission, ref_taz_yd_87_1, "Taz affirms the standard position that non-Torah meat-milk mixtures are permitted in benefit."). +source_claim(claim_yd_87_1_maharshal_benefit_stringency, ref_taz_yd_87_1, "Taz reports Maharshal's stricter view prohibiting benefit from non-Torah meat-milk mixtures."). +source_claim(claim_yd_87_1_shach_rabbinic_benefit_permission, ref_shach_yd_87_2_1, "Shach supports benefit permission for rabbinic meat-milk mixtures such as fowl in milk."). +source_claim(claim_yd_87_1_unusual_eating_benefit_prohibited, ref_kaf_hachayim_yd_87_1_1, "Kaf HaChayim records that meat with milk remains prohibited even outside ordinary enjoyment."). +source_claim(claim_yd_87_1_pitchei_unusual_eating_prohibited, ref_pitchei_teshuva_yd_87_1, "Pitchei Teshuva records liability even when eating or benefit is not in the usual manner."). +source_claim(claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic, ref_pri_megadim_mz_yd_87_1, "Pri Megadim preserves benefit permission for non-Torah mixtures while maintaining a rabbinic cooking prohibition."). supports_claim(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_cooking). supports_claim(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_eating). @@ -41,11 +66,31 @@ supports_claim(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_benefit). supports_claim(rule_yd_87_1_cooked_condition, claim_yd_87_1_cooked_condition). supports_claim(rule_yd_87_1_rabbinic_all_forms, claim_yd_87_1_rabbinic_all_forms). supports_claim(rule_yd_87_1_rema_benefit_non_torah, claim_yd_87_1_rema_benefit_non_torah). +supports_claim(rule_yd_87_1_torah_cooking, claim_yd_87_1_rambam_cooking_eating_benefit). +supports_claim(rule_yd_87_1_torah_eating, claim_yd_87_1_rambam_cooking_eating_benefit). +supports_claim(rule_yd_87_1_torah_benefit, claim_yd_87_1_rambam_cooking_eating_benefit). +supports_claim(rule_yd_87_1_torah_cooking, claim_yd_87_1_talmud_threefold_derivation). +supports_claim(rule_yd_87_1_torah_eating, claim_yd_87_1_talmud_threefold_derivation). +supports_claim(rule_yd_87_1_torah_benefit, claim_yd_87_1_talmud_threefold_derivation). +supports_claim(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_repeated_verses). +supports_claim(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_repeated_verses). +supports_claim(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_repeated_verses). +supports_claim(rule_yd_87_1_pickling_torah_boundary, claim_yd_87_1_shach_pickling_salting_boundary). +supports_claim(rule_yd_87_1_salting_torah_boundary, claim_yd_87_1_shach_pickling_salting_boundary). +supports_claim(rule_yd_87_1_pickling_torah_boundary, claim_yd_87_1_gra_fire_cooking_boundary). +supports_claim(rule_yd_87_1_taz_standard_benefit_permission, claim_yd_87_1_taz_standard_benefit_permission). +supports_claim(rule_yd_87_1_maharshal_benefit_stringency, claim_yd_87_1_maharshal_benefit_stringency). +supports_claim(rule_yd_87_1_shach_rabbinic_benefit_permission, claim_yd_87_1_shach_rabbinic_benefit_permission). +supports_claim(rule_yd_87_1_unusual_eating_prohibited, claim_yd_87_1_pitchei_unusual_eating_prohibited). +supports_claim(rule_yd_87_1_unusual_benefit_prohibited, claim_yd_87_1_unusual_eating_benefit_prohibited). +supports_claim(rule_yd_87_1_non_torah_cooking_rabbinic, claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic). authority(mechaber). authority(rema). +authority(maharshal). world(mechaber). world(rema). +world(maharshal). holds_in(mechaber, mechaber, claim_yd_87_1_torah_cooking). holds_in(mechaber, mechaber, claim_yd_87_1_torah_eating). @@ -53,6 +98,17 @@ holds_in(mechaber, mechaber, claim_yd_87_1_torah_benefit). holds_in(mechaber, mechaber, claim_yd_87_1_cooked_condition). holds_in(mechaber, mechaber, claim_yd_87_1_rabbinic_all_forms). holds_in(rema, rema, claim_yd_87_1_rema_benefit_non_torah). +holds_in(mechaber, mechaber, claim_yd_87_1_rambam_cooking_eating_benefit). +holds_in(mechaber, mechaber, claim_yd_87_1_talmud_threefold_derivation). +holds_in(mechaber, mechaber, claim_yd_87_1_torah_repeated_verses). +holds_in(mechaber, mechaber, claim_yd_87_1_shach_pickling_salting_boundary). +holds_in(mechaber, mechaber, claim_yd_87_1_gra_fire_cooking_boundary). +holds_in(rema, rema, claim_yd_87_1_taz_standard_benefit_permission). +holds_in(maharshal, maharshal, claim_yd_87_1_maharshal_benefit_stringency). +holds_in(rema, rema, claim_yd_87_1_shach_rabbinic_benefit_permission). +holds_in(mechaber, mechaber, claim_yd_87_1_unusual_eating_benefit_prohibited). +holds_in(mechaber, mechaber, claim_yd_87_1_pitchei_unusual_eating_prohibited). +holds_in(mechaber, mechaber, claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic). condition(claim_yd_87_1_torah_cooking, cooking_context). condition(claim_yd_87_1_torah_eating, eating_context). @@ -61,6 +117,20 @@ condition(claim_yd_87_1_cooked_condition, through_cooking_required). condition(claim_yd_87_1_rabbinic_all_forms, non_cooked_manner). condition(claim_yd_87_1_rema_benefit_non_torah, not_torah_prohibited). condition(claim_yd_87_1_rema_benefit_non_torah, benefit_context). +condition(claim_yd_87_1_rambam_cooking_eating_benefit, cooked_together). +condition(claim_yd_87_1_rambam_cooking_eating_benefit, kezayit_threshold). +condition(claim_yd_87_1_shach_pickling_salting_boundary, pickling_context). +condition(claim_yd_87_1_shach_pickling_salting_boundary, salting_context). +condition(claim_yd_87_1_gra_fire_cooking_boundary, through_fire). +condition(claim_yd_87_1_taz_standard_benefit_permission, not_torah_prohibited). +condition(claim_yd_87_1_taz_standard_benefit_permission, benefit_context). +condition(claim_yd_87_1_maharshal_benefit_stringency, not_torah_prohibited). +condition(claim_yd_87_1_maharshal_benefit_stringency, benefit_context). +condition(claim_yd_87_1_shach_rabbinic_benefit_permission, rabbinic_mixture). +condition(claim_yd_87_1_unusual_eating_benefit_prohibited, unusual_benefit_context). +condition(claim_yd_87_1_pitchei_unusual_eating_prohibited, unusual_eating_context). +condition(claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic, not_torah_prohibited). +condition(claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic, cooking_context). normative_outcome(mechaber, Case, prohibited, claim_yd_87_1_torah_cooking) :- legal_category(Case, cooked_meat_milk_mixture), @@ -84,3 +154,40 @@ normative_outcome(rema, Case, permitted, claim_yd_87_1_rema_benefit_non_torah) : legal_category(Case, not_torah_prohibited), legal_category(Case, benefit_context). +normative_outcome(rema, Case, permitted, claim_yd_87_1_taz_standard_benefit_permission) :- + legal_category(Case, meat_milk_mixture), + legal_category(Case, not_torah_prohibited), + legal_category(Case, benefit_context). + +normative_outcome(rema, Case, permitted, claim_yd_87_1_shach_rabbinic_benefit_permission) :- + legal_category(Case, meat_milk_mixture), + legal_category(Case, rabbinic_mixture), + legal_category(Case, benefit_context). + +normative_outcome(maharshal, Case, prohibited, claim_yd_87_1_maharshal_benefit_stringency) :- + legal_category(Case, meat_milk_mixture), + legal_category(Case, not_torah_prohibited), + legal_category(Case, benefit_context). + +normative_outcome(mechaber, Case, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary) :- + legal_category(Case, meat_milk_mixture), + legal_category(Case, pickling_context). + +normative_outcome(mechaber, Case, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary) :- + legal_category(Case, meat_milk_mixture), + legal_category(Case, salting_context). + +normative_outcome(mechaber, Case, prohibited, claim_yd_87_1_pitchei_unusual_eating_prohibited) :- + legal_category(Case, cooked_meat_milk_mixture), + legal_category(Case, unusual_eating_context). + +normative_outcome(mechaber, Case, prohibited, claim_yd_87_1_unusual_eating_benefit_prohibited) :- + legal_category(Case, cooked_meat_milk_mixture), + legal_category(Case, unusual_benefit_context). + +normative_outcome(mechaber, Case, prohibited, claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic) :- + legal_category(Case, meat_milk_mixture), + legal_category(Case, not_torah_prohibited), + legal_category(Case, cooking_context). + +conflict(claim_yd_87_1_rema_benefit_non_torah, claim_yd_87_1_maharshal_benefit_stringency, benefit_from_non_torah_meat_milk). diff --git a/xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog b/xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog index c0f901a85f..d71eb72815 100644 --- a/xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog +++ b/xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog @@ -7,12 +7,51 @@ legal_category(case_non_cooked_benefit, non_cooked_manner). legal_category(case_non_cooked_benefit, not_torah_prohibited). legal_category(case_non_cooked_benefit, benefit_context). +item(case_rabbinic_benefit). +food(case_rabbinic_benefit). +legal_category(case_rabbinic_benefit, meat_milk_mixture). +legal_category(case_rabbinic_benefit, rabbinic_mixture). +legal_category(case_rabbinic_benefit, not_torah_prohibited). +legal_category(case_rabbinic_benefit, benefit_context). + +item(case_pickled_meat_milk). +food(case_pickled_meat_milk). +legal_category(case_pickled_meat_milk, meat_milk_mixture). +legal_category(case_pickled_meat_milk, pickling_context). + +item(case_salted_meat_milk). +food(case_salted_meat_milk). +legal_category(case_salted_meat_milk, meat_milk_mixture). +legal_category(case_salted_meat_milk, salting_context). + +item(case_unusual_eating). +food(case_unusual_eating). +legal_category(case_unusual_eating, meat_milk_mixture). +legal_category(case_unusual_eating, cooked_meat_milk_mixture). +legal_category(case_unusual_eating, unusual_eating_context). + +item(case_unusual_benefit). +food(case_unusual_benefit). +legal_category(case_unusual_benefit, meat_milk_mixture). +legal_category(case_unusual_benefit, cooked_meat_milk_mixture). +legal_category(case_unusual_benefit, unusual_benefit_context). + private pred expected_normative(symbol, symbol, symbol, symbol). private pred actual_normative(symbol, symbol, symbol, symbol). private pred missing_expected(symbol, symbol, symbol, symbol). private pred unexpected_normative(symbol, symbol, symbol, symbol). expected_normative(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah). +expected_normative(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission). +expected_normative(maharshal, case_non_cooked_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency). +expected_normative(rema, case_rabbinic_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah). +expected_normative(rema, case_rabbinic_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission). +expected_normative(rema, case_rabbinic_benefit, permitted, claim_yd_87_1_shach_rabbinic_benefit_permission). +expected_normative(maharshal, case_rabbinic_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency). +expected_normative(mechaber, case_pickled_meat_milk, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary). +expected_normative(mechaber, case_salted_meat_milk, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary). +expected_normative(mechaber, case_unusual_eating, prohibited, claim_yd_87_1_pitchei_unusual_eating_prohibited). +expected_normative(mechaber, case_unusual_benefit, prohibited, claim_yd_87_1_unusual_eating_benefit_prohibited). actual_normative(World, Item, Outcome, Claim) :- normative_outcome(World, Item, Outcome, Claim). @@ -28,4 +67,4 @@ unexpected_normative(World, Item, Outcome, Claim) :- :- missing_expected(World, Item, Outcome, Claim). :- unexpected_normative(World, Item, Outcome, Claim). -?- normative_outcome(World, case_non_cooked_benefit, Outcome, Claim). +?- normative_outcome(World, Item, Outcome, Claim). diff --git a/xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog b/xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog index 2c98733cb3..41d938debc 100644 --- a/xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog +++ b/xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog @@ -21,6 +21,8 @@ private pred unexpected_normative(symbol, symbol, symbol, symbol). expected_normative(mechaber, case_uncooked_eating, prohibited, claim_yd_87_1_rabbinic_all_forms). expected_normative(rema, case_uncooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah). +expected_normative(rema, case_uncooked_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission). +expected_normative(maharshal, case_uncooked_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency). actual_normative(World, Item, Outcome, Claim) :- normative_outcome(World, Item, Outcome, Claim). diff --git a/xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog b/xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog index 26579b2413..affc8af484 100644 --- a/xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog +++ b/xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog @@ -15,9 +15,20 @@ expected_claim(claim_yd_87_1_torah_benefit). expected_claim(claim_yd_87_1_cooked_condition). expected_claim(claim_yd_87_1_rabbinic_all_forms). expected_claim(claim_yd_87_1_rema_benefit_non_torah). +expected_claim(claim_yd_87_1_rambam_cooking_eating_benefit). +expected_claim(claim_yd_87_1_talmud_threefold_derivation). +expected_claim(claim_yd_87_1_torah_repeated_verses). +expected_claim(claim_yd_87_1_shach_pickling_salting_boundary). +expected_claim(claim_yd_87_1_gra_fire_cooking_boundary). +expected_claim(claim_yd_87_1_taz_standard_benefit_permission). +expected_claim(claim_yd_87_1_maharshal_benefit_stringency). +expected_claim(claim_yd_87_1_shach_rabbinic_benefit_permission). +expected_claim(claim_yd_87_1_unusual_eating_benefit_prohibited). +expected_claim(claim_yd_87_1_pitchei_unusual_eating_prohibited). +expected_claim(claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic). actual_claim(Claim) :- - source_claim(Claim, ref_yd_87_1, _). + source_claim(Claim, _, _). missing_claim(Claim) :- expected_claim(Claim), @@ -33,6 +44,24 @@ expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_benefit). expected_support(rule_yd_87_1_cooked_condition, claim_yd_87_1_cooked_condition). expected_support(rule_yd_87_1_rabbinic_all_forms, claim_yd_87_1_rabbinic_all_forms). expected_support(rule_yd_87_1_rema_benefit_non_torah, claim_yd_87_1_rema_benefit_non_torah). +expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_rambam_cooking_eating_benefit). +expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_rambam_cooking_eating_benefit). +expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_rambam_cooking_eating_benefit). +expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_talmud_threefold_derivation). +expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_talmud_threefold_derivation). +expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_talmud_threefold_derivation). +expected_support(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_repeated_verses). +expected_support(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_repeated_verses). +expected_support(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_repeated_verses). +expected_support(rule_yd_87_1_pickling_torah_boundary, claim_yd_87_1_shach_pickling_salting_boundary). +expected_support(rule_yd_87_1_salting_torah_boundary, claim_yd_87_1_shach_pickling_salting_boundary). +expected_support(rule_yd_87_1_pickling_torah_boundary, claim_yd_87_1_gra_fire_cooking_boundary). +expected_support(rule_yd_87_1_taz_standard_benefit_permission, claim_yd_87_1_taz_standard_benefit_permission). +expected_support(rule_yd_87_1_maharshal_benefit_stringency, claim_yd_87_1_maharshal_benefit_stringency). +expected_support(rule_yd_87_1_shach_rabbinic_benefit_permission, claim_yd_87_1_shach_rabbinic_benefit_permission). +expected_support(rule_yd_87_1_unusual_eating_prohibited, claim_yd_87_1_pitchei_unusual_eating_prohibited). +expected_support(rule_yd_87_1_unusual_benefit_prohibited, claim_yd_87_1_unusual_eating_benefit_prohibited). +expected_support(rule_yd_87_1_non_torah_cooking_rabbinic, claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic). actual_support(Rule, Claim) :- supports_claim(Rule, Claim). @@ -50,5 +79,5 @@ unexpected_support(Rule, Claim) :- :- missing_support(Rule, Claim). :- unexpected_support(Rule, Claim). -?- source_claim(Claim, ref_yd_87_1, Text). +?- source_claim(Claim, Ref, Text). ?- supports_claim(Rule, Claim). diff --git a/xlog/templates/linked-source-selection.yaml b/xlog/templates/linked-source-selection.yaml new file mode 100644 index 0000000000..ef0ba45d77 --- /dev/null +++ b/xlog/templates/linked-source-selection.yaml @@ -0,0 +1,60 @@ +slice_id: "" +generated_at: "" +source_links_artifact: "xlog/evidence//sources/seif-links.json" + +selection_policy: + fetch_all_links: false + select_major_relevant_sources: true + mandatory_second_pass_reencoding: true + sefaria_mcp_required: true + direct_http_allowed: false + +major_source_families: + - rema + - shach_siftei_kohen + - taz_turei_zahav + - beur_hagra + - kaf_hachayim + - pri_megadim + - tur + - mishneh_torah_rambam + - talmud + - mishnah + - tanakh + +links: + - ref: "" + family: "" + link_type: "" + selected: false + selection_reason: "" + skip_reason: "" + fetched_text_artifact: null + created_or_updated_claims: [] + +gate: + selected_major_sources_fetched: false + skipped_major_sources_have_reasons: false + source_claims_updated: false + semantic_decomposition_rerun: false + ontology_grounding_rerun: false + xlog_second_pass_reencoded: false + first_pass_rule_outcomes_recorded: false + scenarios_refreshed_for_commentary_semantics: false + review_body_updated: false + status: not_run + +second_pass_reencoding: + previous_program_artifact: null + refreshed_program_artifact: null + outcome_ledger_artifact: null + first_pass_claims: + - claim_id: "" + outcome: "" + commentary_refs: [] + notes: "" + first_pass_rules: + - rule_id: "" + outcome: "" + commentary_refs: [] + notes: "" diff --git a/xlog/tools/sefaria_mcp_fetch.py b/xlog/tools/sefaria_mcp_fetch.py index 15cf6b504e..6743012aab 100644 --- a/xlog/tools/sefaria_mcp_fetch.py +++ b/xlog/tools/sefaria_mcp_fetch.py @@ -6,6 +6,7 @@ import argparse import asyncio import json +import re from datetime import datetime, timezone from pathlib import Path from typing import Any @@ -17,11 +18,133 @@ SEFARIA_SSE_URL = "https://mcp.sefaria.org/sse" +MAJOR_SOURCE_FAMILIES = [ + "rema", + "shach_siftei_kohen", + "taz_turei_zahav", + "beur_hagra", + "kaf_hachayim", + "pri_megadim", + "tur", + "mishneh_torah_rambam", + "talmud", + "mishnah", + "tanakh", +] + +FAMILY_PATTERNS: list[tuple[str, tuple[str, ...]]] = [ + ("rema", ("rema",)), + ("shach_siftei_kohen", ("siftei kohen", "shakh", "shach")), + ("taz_turei_zahav", ("turei zahav", "taz")), + ("beur_hagra", ("beur hagra", "vilna gaon")), + ("kaf_hachayim", ("kaf hachayim", "kaf hachayim")), + ("pri_megadim", ("peri megadim", "pri megadim")), + ("tur", ("tur, yoreh",)), + ("mishneh_torah_rambam", ("mishneh torah", "rambam")), + ("mishnah", ("mishnah",)), +] + def utc_now() -> str: return datetime.now(timezone.utc).isoformat(timespec="seconds") +def ref_slug(ref: str) -> str: + slug = re.sub(r"[^a-z0-9]+", "_", ref.lower().replace("'", "")) + return slug.strip("_") + + +def family_for_ref(ref: str, category: str | None = None) -> str: + ref_key = ref.lower().replace("'", "") + category_key = (category or "").lower() + for family, patterns in FAMILY_PATTERNS: + if any(pattern in ref_key for pattern in patterns): + return family + if category_key == "talmud": + return "talmud" + if category_key == "tanakh": + return "tanakh" + return "other" + + +def build_linked_source_selection( + *, + slice_id: str, + links: list[dict[str, Any]], + selected_refs: dict[str, str], + source_links_artifact: str, + evidence_dir: Path, + generated_at: str, +) -> dict[str, Any]: + rows: list[dict[str, Any]] = [] + linked_dir = evidence_dir / "sources" / "linked" + + for link in links: + ref = str(link.get("ref") or link.get("sourceRef") or "") + family = family_for_ref(ref, link.get("category")) + selected = ref in selected_refs + artifact = linked_dir / f"{ref_slug(ref)}.json" if selected else None + skip_reason = "" + if not selected: + skip_reason = ( + "not selected for this second-pass expansion after major-source triage" + ) + if family in MAJOR_SOURCE_FAMILIES: + skip_reason = ( + "major family present but not selected because another linked ref " + "better targets this seif or source-chain role" + ) + + rows.append( + { + "ref": ref, + "family": family, + "link_type": link.get("type") or link.get("category") or "other", + "selected": selected, + "selection_reason": selected_refs.get(ref, ""), + "skip_reason": skip_reason, + "fetched_text_artifact": str(artifact) if artifact else None, + "created_or_updated_claims": [], + } + ) + + return { + "slice_id": slice_id, + "generated_at": generated_at, + "source_links_artifact": source_links_artifact, + "selection_policy": { + "fetch_all_links": False, + "select_major_relevant_sources": True, + "mandatory_second_pass_reencoding": True, + "sefaria_mcp_required": True, + "direct_http_allowed": False, + }, + "major_source_families": MAJOR_SOURCE_FAMILIES, + "links": rows, + "gate": { + "selected_major_sources_fetched": False, + "skipped_major_sources_have_reasons": all( + row["selected"] or bool(row["skip_reason"]) for row in rows + ), + "source_claims_updated": False, + "semantic_decomposition_rerun": False, + "ontology_grounding_rerun": False, + "xlog_second_pass_reencoded": False, + "first_pass_rule_outcomes_recorded": False, + "scenarios_refreshed_for_commentary_semantics": False, + "review_body_updated": False, + "status": "source_chain_expansion_required", + }, + "second_pass_reencoding": { + "previous_program_artifact": None, + "refreshed_program_artifact": None, + "outcome_ledger_artifact": None, + "first_pass_claims": [], + "first_pass_rules": [], + }, + } + + def content_to_json(result: Any) -> Any: chunks: list[Any] = [] for item in result.content: @@ -53,6 +176,25 @@ def dump_yaml(path: Path, payload: Any) -> None: ) +def load_yaml(path: Path) -> dict[str, Any]: + if not path.exists(): + return {} + payload = yaml.safe_load(path.read_text(encoding="utf-8")) + return payload if isinstance(payload, dict) else {} + + +def parse_selected_refs(values: list[str]) -> dict[str, str]: + selected: dict[str, str] = {} + for value in values: + if "::" in value: + ref, reason = value.split("::", 1) + else: + ref = value + reason = "selected major source for second-pass source-chain expansion" + selected[ref.strip()] = reason.strip() + return selected + + def first_version(payload: Any) -> dict[str, Any]: versions = payload.get("versions") if isinstance(payload, dict) else None if isinstance(versions, list) and versions: @@ -173,13 +315,124 @@ async def fetch_slice(slice_id: str, siman: int, seif: int, evidence_dir: Path) dump_yaml(evidence_dir / "source-fetch-log.yaml", source_log) +async def fetch_linked_sources( + slice_id: str, + evidence_dir: Path, + selected_refs: dict[str, str], +) -> None: + generated_at = utc_now() + links_path = evidence_dir / "sources" / "seif-links.json" + links_payload = json.loads(links_path.read_text(encoding="utf-8")) + links = links_payload.get("payload", []) + if not isinstance(links, list): + raise ValueError(f"Expected list payload in {links_path}") + + selection = build_linked_source_selection( + slice_id=slice_id, + links=links, + selected_refs=selected_refs, + source_links_artifact=str(links_path), + evidence_dir=evidence_dir, + generated_at=generated_at, + ) + + requests: list[dict[str, Any]] = [] + source_refs: list[dict[str, Any]] = [] + linked_dir = evidence_dir / "sources" / "linked" + + async with sse_client(SEFARIA_SSE_URL, timeout=20, sse_read_timeout=60) as (read, write): + async with ClientSession(read, write) as session: + await session.initialize() + for row in selection["links"]: + if not row["selected"]: + continue + ref = row["ref"] + out_path = Path(row["fetched_text_artifact"]) + retrieved_at = utc_now() + args = {"reference": ref} + result = await session.call_tool("get_text", args) + payload = content_to_json(result) + write_json( + out_path, + { + "mcp_server": "sefaria-texts", + "mcp_url": SEFARIA_SSE_URL, + "mcp_tool": "get_text", + "request": args, + "retrieved_at": retrieved_at, + "payload": payload, + }, + ) + row["fetched_text_artifact"] = str(out_path) + version = first_version(payload) + requests.append( + { + "request_id": f"linked-{ref_slug(ref)}", + "mcp_server": "sefaria-texts", + "mcp_tool": "get_text", + "requested_ref": ref, + "normalized_ref": payload.get("ref") if isinstance(payload, dict) else ref, + "language": "both", + "version_title": version.get("versionTitle"), + "version_language": version.get("languageFamilyName"), + "retrieved_at": retrieved_at, + "output_file": str(out_path), + } + ) + source_refs.append( + { + "ref_id": f"linked_{ref_slug(ref)}", + "sefaria_ref": ref, + "display_ref": ref, + "text_artifact": str(out_path), + "used_for_claims": [], + } + ) + + selection["gate"]["selected_major_sources_fetched"] = all( + not row["selected"] or bool(row["fetched_text_artifact"]) for row in selection["links"] + ) + dump_yaml(evidence_dir / "linked-source-selection.yaml", selection) + + source_log_path = evidence_dir / "source-fetch-log.yaml" + source_log = load_yaml(source_log_path) + source_log.setdefault("slice_id", slice_id) + source_log.setdefault("required_source_connector", "Sefaria MCP") + source_log["direct_http_used"] = False + source_log["manual_transcription_used"] = False + source_log.setdefault("requests", []) + source_log["requests"].extend(requests) + source_log.setdefault("source_refs", []) + source_log["source_refs"].extend(source_refs) + source_log.setdefault("integrity", {}) + source_log["integrity"]["all_sources_from_sefaria_mcp"] = True + dump_yaml(source_log_path, source_log) + + def main() -> None: parser = argparse.ArgumentParser() parser.add_argument("--slice-id", required=True) - parser.add_argument("--siman", required=True, type=int) - parser.add_argument("--seif", required=True, type=int) + parser.add_argument("--siman", type=int) + parser.add_argument("--seif", type=int) parser.add_argument("--evidence-dir", required=True, type=Path) + parser.add_argument( + "--linked-ref", + action="append", + default=[], + help="Selected linked ref, optionally as REF::selection reason", + ) args = parser.parse_args() + if args.linked_ref: + asyncio.run( + fetch_linked_sources( + args.slice_id, + args.evidence_dir, + parse_selected_refs(args.linked_ref), + ) + ) + return + if args.siman is None or args.seif is None: + parser.error("--siman and --seif are required unless --linked-ref is supplied") asyncio.run(fetch_slice(args.slice_id, args.siman, args.seif, args.evidence_dir)) From e9e949f4e9159fcbcc92bba680c7f1e74439dcdc Mon Sep 17 00:00:00 2001 From: levi770 Date: Tue, 2 Jun 2026 09:44:40 +0200 Subject: [PATCH 4/5] Refresh YD 87:1 validation evidence --- .../evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml | 12 ++++++------ .../smicha86/u01/yd_87/seif_1/review/pr-body.md | 4 +++- .../u01/yd_87/seif_1/transcripts/boundary.run.txt | 4 ++-- .../u01/yd_87/seif_1/transcripts/conflict.run.txt | 4 ++-- .../u01/yd_87/seif_1/transcripts/negative.run.txt | 4 ++-- .../u01/yd_87/seif_1/transcripts/positive.run.txt | 4 ++-- .../yd_87/seif_1/transcripts/provenance.run.txt | 4 ++-- .../smicha86/u01/yd_87/seif_1/validation-report.md | 14 +++++++------- xlog/tools/run_xlog_slice_validation.py | 13 ++++++++++--- 9 files changed, 36 insertions(+), 27 deletions(-) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml index ac3dd1e38f..a97b111016 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml @@ -1,5 +1,5 @@ slice_id: smicha86_u01_s87_seif_1 -generated_at: '2026-05-31T09:26:26+00:00' +generated_at: '2026-06-02T07:42:31+00:00' validation_model: real_xlog_scenarios_only machine_status: pass scenarios: @@ -7,7 +7,7 @@ scenarios: file: xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog validation_model: xlog_scenario_constraints run_command: xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog --module-path - xlog/programs --stats --stats-format json + xlog/programs --memory-mb 16 --stats --stats-format json run_exit_code: 0 run_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt explain_command: xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog @@ -20,7 +20,7 @@ scenarios: file: xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog validation_model: xlog_scenario_constraints run_command: xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog --module-path - xlog/programs --stats --stats-format json + xlog/programs --memory-mb 16 --stats --stats-format json run_exit_code: 0 run_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt explain_command: xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog @@ -33,7 +33,7 @@ scenarios: file: xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog validation_model: xlog_scenario_constraints run_command: xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog --module-path - xlog/programs --stats --stats-format json + xlog/programs --memory-mb 16 --stats --stats-format json run_exit_code: 0 run_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt explain_command: xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog @@ -46,7 +46,7 @@ scenarios: file: xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog validation_model: xlog_scenario_constraints run_command: xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog --module-path - xlog/programs --stats --stats-format json + xlog/programs --memory-mb 16 --stats --stats-format json run_exit_code: 0 run_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt explain_command: xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog @@ -59,7 +59,7 @@ scenarios: file: xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog validation_model: xlog_scenario_constraints run_command: xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog --module-path - xlog/programs --stats --stats-format json + xlog/programs --memory-mb 16 --stats --stats-format json run_exit_code: 0 run_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt explain_command: xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md b/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md index feeef59e4c..a4037e9aa7 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md @@ -2,7 +2,7 @@ - Slice id: `smicha86_u01_s87_seif_1` - Branch: `codex/xlog-goal-bundle` -- Commit for review: `latest branch revision` +- Commit for review: `current PR head after this evidence refresh` - Lifecycle state: `awaiting_human_after_commentary_second_pass` - Evidence manifest: `xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml` @@ -58,6 +58,8 @@ No new public predicates were introduced. The ontology grounding ledger was reru Both `xlog run` and `xlog explain --format json` passed for every scenario. Full transcripts and explain JSON are under `xlog/evidence/smicha86/u01/yd_87/seif_1/`. +Direct scenario rows: positive 3, negative 0, boundary 11, conflict 4, provenance 41. + ## Human Validation Checklist - [ ] The threefold Torah derivation is faithful to the primary text and linked Torah/Talmud/Rambam sources. diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt index 7b7ce853a6..5517fceb17 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt @@ -1,4 +1,4 @@ -$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog --module-path xlog/programs --stats --stats-format json +$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog --module-path xlog/programs --memory-mb 16 --stats --stats-format json exit_code: 0 [stdout] @@ -20,5 +20,5 @@ __xlog_query_0 +------------+-------------------------+----------------------+-------------------------------------------------+ [stderr] -{"total_ms":16761,"strata":[{"stratum":0,"rules":157,"recursive":false,"iterations":1,"duration_ms":16467,"ops":[{"op":"join","calls":19,"duration_ms":14},{"op":"filter","calls":32,"duration_ms":34},{"op":"union","calls":157,"duration_ms":16318},{"op":"scan","calls":176,"duration_ms":82},{"op":"project","calls":13,"duration_ms":10}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":293,"ops":[{"op":"project","calls":4,"duration_ms":2},{"op":"scan","calls":8,"duration_ms":3},{"op":"union","calls":4,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":286},{"op":"join","calls":2,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":11} +{"total_ms":4218,"strata":[{"stratum":0,"rules":157,"recursive":false,"iterations":1,"duration_ms":4128,"ops":[{"op":"project","calls":13,"duration_ms":2},{"op":"filter","calls":32,"duration_ms":10},{"op":"scan","calls":176,"duration_ms":21},{"op":"union","calls":157,"duration_ms":4083},{"op":"join","calls":19,"duration_ms":4}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":89,"ops":[{"op":"diff","calls":2,"duration_ms":87},{"op":"join","calls":2,"duration_ms":0},{"op":"project","calls":4,"duration_ms":0},{"op":"union","calls":4,"duration_ms":0},{"op":"scan","calls":8,"duration_ms":1}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":11} Symbols: 106 interned (6930 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt index 1e01e668e8..0332283f48 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt @@ -1,4 +1,4 @@ -$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog --module-path xlog/programs --stats --stats-format json +$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog --module-path xlog/programs --memory-mb 16 --stats --stats-format json exit_code: 0 [stdout] @@ -13,5 +13,5 @@ __xlog_query_0 +------------+-----------------------+------------+-----------------------------------------------+ [stderr] -{"total_ms":11038,"strata":[{"stratum":0,"rules":132,"recursive":false,"iterations":1,"duration_ms":10751,"ops":[{"op":"filter","calls":32,"duration_ms":28},{"op":"scan","calls":151,"duration_ms":55},{"op":"project","calls":13,"duration_ms":4},{"op":"join","calls":19,"duration_ms":7},{"op":"union","calls":132,"duration_ms":10646}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":286,"ops":[{"op":"join","calls":2,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":279},{"op":"scan","calls":8,"duration_ms":3},{"op":"project","calls":4,"duration_ms":2},{"op":"union","calls":4,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":4} +{"total_ms":3359,"strata":[{"stratum":0,"rules":132,"recursive":false,"iterations":1,"duration_ms":3267,"ops":[{"op":"scan","calls":151,"duration_ms":18},{"op":"union","calls":132,"duration_ms":3233},{"op":"filter","calls":32,"duration_ms":8},{"op":"project","calls":13,"duration_ms":1},{"op":"join","calls":19,"duration_ms":2}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":91,"ops":[{"op":"scan","calls":8,"duration_ms":0},{"op":"union","calls":4,"duration_ms":0},{"op":"project","calls":4,"duration_ms":0},{"op":"join","calls":2,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":89}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":4} Symbols: 102 interned (6733 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt index 63d7851220..d7749515de 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt @@ -1,4 +1,4 @@ -$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog --module-path xlog/programs --stats --stats-format json +$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog --module-path xlog/programs --memory-mb 16 --stats --stats-format json exit_code: 0 [stdout] @@ -9,5 +9,5 @@ __xlog_query_0 +----+----+----+ [stderr] -{"total_ms":8378,"strata":[{"stratum":0,"rules":122,"recursive":false,"iterations":1,"duration_ms":8378,"ops":[{"op":"project","calls":15,"duration_ms":1},{"op":"filter","calls":33,"duration_ms":24},{"op":"join","calls":19,"duration_ms":1},{"op":"scan","calls":141,"duration_ms":48},{"op":"union","calls":122,"duration_ms":8297}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":0} +{"total_ms":2596,"strata":[{"stratum":0,"rules":122,"recursive":false,"iterations":1,"duration_ms":2596,"ops":[{"op":"scan","calls":141,"duration_ms":16},{"op":"union","calls":122,"duration_ms":2565},{"op":"filter","calls":33,"duration_ms":9},{"op":"project","calls":15,"duration_ms":0},{"op":"join","calls":19,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":0} Symbols: 102 interned (6723 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt index 34ffaf1aba..482a2c7541 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt @@ -1,4 +1,4 @@ -$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog --module-path xlog/programs --stats --stats-format json +$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog --module-path xlog/programs --memory-mb 16 --stats --stats-format json exit_code: 0 [stdout] @@ -12,5 +12,5 @@ __xlog_query_0 +------------+------------+-----------------------------+ [stderr] -{"total_ms":2839,"strata":[{"stratum":0,"rules":126,"recursive":false,"iterations":1,"duration_ms":2763,"ops":[{"op":"union","calls":126,"duration_ms":2730},{"op":"filter","calls":33,"duration_ms":9},{"op":"join","calls":19,"duration_ms":1},{"op":"scan","calls":145,"duration_ms":16},{"op":"project","calls":14,"duration_ms":1}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":76,"ops":[{"op":"scan","calls":8,"duration_ms":1},{"op":"project","calls":4,"duration_ms":0},{"op":"join","calls":2,"duration_ms":0},{"op":"union","calls":4,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":74}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":3} +{"total_ms":2648,"strata":[{"stratum":0,"rules":126,"recursive":false,"iterations":1,"duration_ms":2582,"ops":[{"op":"union","calls":126,"duration_ms":2549},{"op":"filter","calls":33,"duration_ms":8},{"op":"project","calls":14,"duration_ms":1},{"op":"scan","calls":145,"duration_ms":16},{"op":"join","calls":19,"duration_ms":1}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":65,"ops":[{"op":"union","calls":4,"duration_ms":0},{"op":"project","calls":4,"duration_ms":0},{"op":"scan","calls":8,"duration_ms":1},{"op":"diff","calls":2,"duration_ms":63},{"op":"join","calls":2,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":3} Symbols: 101 interned (6685 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt index ac2a831e34..97593e4273 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt @@ -1,4 +1,4 @@ -$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog --module-path xlog/programs --stats --stats-format json +$ xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog --module-path xlog/programs --memory-mb 16 --stats --stats-format json exit_code: 0 [stdout] @@ -55,5 +55,5 @@ __xlog_query_1 +------------------------------------------------+------------------------------------------------------+ [stderr] -{"total_ms":12510,"strata":[{"stratum":0,"rules":159,"recursive":false,"iterations":1,"duration_ms":12163,"ops":[{"op":"filter","calls":32,"duration_ms":1},{"op":"union","calls":159,"duration_ms":12083},{"op":"project","calls":14,"duration_ms":1},{"op":"join","calls":19,"duration_ms":1},{"op":"scan","calls":178,"duration_ms":65}]},{"stratum":1,"rules":8,"recursive":false,"iterations":1,"duration_ms":346,"ops":[{"op":"union","calls":8,"duration_ms":1},{"op":"join","calls":4,"duration_ms":1},{"op":"scan","calls":16,"duration_ms":6},{"op":"project","calls":8,"duration_ms":3},{"op":"diff","calls":4,"duration_ms":334}]}],"peak_memory_mb":0,"budget_memory_mb":1024,"output_rows":41} +{"total_ms":3031,"strata":[{"stratum":0,"rules":159,"recursive":false,"iterations":1,"duration_ms":2973,"ops":[{"op":"scan","calls":178,"duration_ms":17},{"op":"union","calls":159,"duration_ms":2947},{"op":"project","calls":14,"duration_ms":0},{"op":"filter","calls":32,"duration_ms":1},{"op":"join","calls":19,"duration_ms":0}]},{"stratum":1,"rules":8,"recursive":false,"iterations":1,"duration_ms":57,"ops":[{"op":"scan","calls":16,"duration_ms":1},{"op":"union","calls":8,"duration_ms":0},{"op":"join","calls":4,"duration_ms":0},{"op":"diff","calls":4,"duration_ms":55},{"op":"project","calls":8,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":41} Symbols: 100 interned (6636 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md b/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md index 82d7706d93..a0c3a21177 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md @@ -2,8 +2,8 @@ ## Slice - Slice id: smicha86_u01_s87_seif_1 - Branch: codex/xlog-goal-bundle -- Commit: latest -- Generated at: 2026-05-31T09:26:26+00:00 +- Commit: current PR head after this evidence refresh +- Generated at: 2026-06-02T07:42:31+00:00 - Generated by: xlog/tools/run_xlog_slice_validation.py ## Summary | Gate | Status | Evidence | @@ -21,15 +21,15 @@ | Human review gate | ready | review artifact refreshed after commentary expansion | | Merge validation gate | not_run | blocked until human approval | ## Commands -- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog --module-path xlog/programs --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt) +- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog --module-path xlog/programs --memory-mb 16 --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt) - `xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/explain/positive.json) -- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog --module-path xlog/programs --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt) +- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog --module-path xlog/programs --memory-mb 16 --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt) - `xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/explain/negative.json) -- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog --module-path xlog/programs --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt) +- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog --module-path xlog/programs --memory-mb 16 --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt) - `xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json) -- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog --module-path xlog/programs --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt) +- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog --module-path xlog/programs --memory-mb 16 --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt) - `xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json) -- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog --module-path xlog/programs --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt) +- `xlog run xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog --module-path xlog/programs --memory-mb 16 --stats --stats-format json` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt) - `xlog explain --format json xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog` -> exit 0 (xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json) ## Scenario Results | Scenario | Validation | Output rows | Status | diff --git a/xlog/tools/run_xlog_slice_validation.py b/xlog/tools/run_xlog_slice_validation.py index 389d00c508..d06bd50e45 100644 --- a/xlog/tools/run_xlog_slice_validation.py +++ b/xlog/tools/run_xlog_slice_validation.py @@ -79,6 +79,7 @@ def main() -> None: parser.add_argument("--scenario-dir", type=Path, required=True) parser.add_argument("--module-path", type=Path, default=Path("xlog/programs")) parser.add_argument("--commit", default="latest") + parser.add_argument("--memory-mb", type=int) args = parser.parse_args() repo_root = args.repo_root.resolve() @@ -95,10 +96,16 @@ def main() -> None: str(scenario_file), "--module-path", str(args.module_path), - "--stats", - "--stats-format", - "json", ] + if args.memory_mb is not None: + run_command_line.extend(["--memory-mb", str(args.memory_mb)]) + run_command_line.extend( + [ + "--stats", + "--stats-format", + "json", + ] + ) run_result = run_command(run_command_line, repo_root) run_transcript_path = evidence_dir / "transcripts" / f"{scenario}.run.txt" write_text(run_transcript_path, transcript(run_command_line, run_result)) From 8cb63a64ab0a7eef55773d56662e2d5b63d8592d Mon Sep 17 00:00:00 2001 From: levi770 Date: Tue, 2 Jun 2026 20:20:17 +0200 Subject: [PATCH 5/5] Normalize YD 87:1 source-chain provenance --- .../u01/yd_87/seif_1/evidence-manifest.yaml | 124 ++-- .../yd_87/seif_1/linked-source-selection.yaml | 626 +++++++----------- .../smicha86/u01/yd_87/seif_1/qa-run.yaml | 4 +- .../smicha86/u01/yd_87/seif_1/qa-set.yaml | 212 +++--- .../u01/yd_87/seif_1/review/pr-body.md | 4 +- .../u01/yd_87/seif_1/source-claims.yaml | 506 ++++++++------ .../u01/yd_87/seif_1/source-fetch-log.yaml | 100 +-- .../yd_87/seif_1/transcripts/boundary.run.txt | 4 +- .../yd_87/seif_1/transcripts/conflict.run.txt | 4 +- .../yd_87/seif_1/transcripts/negative.run.txt | 4 +- .../yd_87/seif_1/transcripts/positive.run.txt | 4 +- .../seif_1/transcripts/provenance.run.txt | 13 +- .../u01/yd_87/seif_1/validation-report.md | 19 +- .../siman_87/smicha86_u01_s87_seif_1.xlog | 13 + xlog/tools/run_xlog_slice_validation.py | 28 +- 15 files changed, 864 insertions(+), 801 deletions(-) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml index 0089de518a..944f9cd245 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/evidence-manifest.yaml @@ -1,85 +1,84 @@ slice_id: smicha86_u01_s87_seif_1 branch: codex/xlog-goal-bundle commit: latest_branch_revision -generated_at: '2026-05-25T15:18:30Z' - +generated_at: '2026-06-02T18:16:21+00:00' source: fetch_log: xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml linked_source_selection: xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml source_claims: xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml source_artifacts: - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/ref-clarify.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/siman-text.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-translations.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/ref-clarify.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/siman-text.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-translations.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json linked_source_artifacts: - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/tur_yoreh_deah_87_1.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json - + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/tur_yoreh_deah_87_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json + source_basis_note: Direct and selected linked texts were fetched through Sefaria + MCP only; no direct HTTP or copied text was used. ontology: grounding_ledger: xlog/evidence/smicha86/u01/yd_87/seif_1/grounding-ledger.yaml catalog_files: - - xlog/ontology/catalog.yaml - - xlog/ontology/aliases.yaml - - xlog/ontology/drift-policy.yaml + - xlog/ontology/catalog.yaml + - xlog/ontology/aliases.yaml + - xlog/ontology/drift-policy.yaml ontology_deltas: [] - xlog: second_pass_outcomes: xlog/evidence/smicha86/u01/yd_87/seif_1/second-pass-outcomes.yaml programs: - - xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog + - xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog scenarios: - - xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog - - xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog - - xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog - - xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog - - xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog + - xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog expected_outputs: - - xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml - + - xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml + second_pass_reencoding: true validation: validation_model: real_xlog_scenarios_only qa_set: xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml qa_run: xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml validation_report: xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md run_transcripts: - - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt - - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt - - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt - - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt - - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt + - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt + - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt + - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt + - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt + - xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt explain_outputs: + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/positive.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/negative.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json + - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json + regression_outputs: [] + wcoj_runtime_evidence: + relevant: false + explain_outputs: - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/positive.json - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/negative.json - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json - regression_outputs: [] - wcoj_runtime_evidence: - relevant: false - explain_outputs: - - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/positive.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/negative.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/boundary.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/conflict.json - - xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json fallback_rows: [] wcoj_rows: [] dispatch_counters: [] @@ -89,13 +88,11 @@ validation: accepted_source_forms: [] runtime_pilots: [] rejection_artifacts: [] - github: pr_url: https://github.com/BrainyBlaze/mistaber/pull/25 discussion_url: null review_body: xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md human_verdict_artifact: null - traceability: source_to_claim_complete: true linked_source_to_claim_complete: true @@ -105,3 +102,22 @@ traceability: rule_to_scenario_complete: true scenario_to_explain_complete: true human_verdict_complete: false + selected_link_count: 18 + selected_sources_missing_fetched_text_or_blocker: 0 + direct_non_mcp_source_retrieval_count: 0 + public_predicate_grounding_coverage: 100% + high_confidence_canonical_reuse: 100% + rule_to_source_coverage: 100% + rule_to_provenance_coverage: 100% + scenario_pass_rate_before_human_review: 100% +readiness_gates: + V1: pass + V1a: pass + V2: pass + V3: pass + V3a: pass + V4: pass + V5: pass + V6: pass + V7: ready_for_human_review + V8: not_run_until_human_approval diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml index 2cde4984ff..a9ea2eb868 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml @@ -1,5 +1,5 @@ slice_id: smicha86_u01_s87_seif_1 -generated_at: '2026-05-31T09:16:16+00:00' +generated_at: '2026-06-02T18:16:21+00:00' source_links_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-links.json selection_policy: fetch_all_links: false @@ -8,32 +8,32 @@ selection_policy: sefaria_mcp_required: true direct_http_allowed: false major_source_families: -- rema -- shach_siftei_kohen -- taz_turei_zahav - beur_hagra - kaf_hachayim -- pri_megadim -- tur - mishneh_torah_rambam +- other +- pri_megadim +- shach_siftei_kohen - talmud -- mishnah - tanakh -links: -- ref: Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 +- taz_turei_zahav +- tur +selected_sources: +- ref_id: ref_taz_yd_87_1 + sefaria_ref: Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 family: taz_turei_zahav link_type: commentary - selected: true selection_reason: qualifies the first-pass cooking/eating/benefit split skip_reason: '' fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json created_or_updated_claims: - claim_yd_87_1_taz_standard_benefit_permission - claim_yd_87_1_maharshal_benefit_stringency -- ref: Tur, Yoreh De'ah 87:1 + fetched_text_present: true +- ref_id: ref_tur_yd_87_1 + sefaria_ref: Tur, Yoreh De'ah 87:1 family: tur link_type: commentary - selected: true selection_reason: upstream halakhic codification used by the Shulchan Arukh source chain skip_reason: '' @@ -42,579 +42,405 @@ links: - claim_yd_87_1_torah_cooking - claim_yd_87_1_torah_eating - claim_yd_87_1_torah_benefit -- ref: Yad Ephraim on Shulchan Arukh, Yoreh De'ah 87:1 - family: other - link_type: commentary - selected: false - selection_reason: '' - skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Yad Avraham on Shulchan Arukh, Yoreh Deah 87:1 - family: other - link_type: commentary - selected: false - selection_reason: '' - skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Yad Avraham on Shulchan Arukh, Yoreh Deah 87:2 - family: other - link_type: commentary - selected: false - selection_reason: '' - skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Yad Avraham on Shulchan Arukh, Yoreh Deah 87:3 - family: other - link_type: commentary - selected: false - selection_reason: '' - skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 + fetched_text_present: true +- ref_id: ref_shach_yd_87_1_1 + sefaria_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 family: shach_siftei_kohen link_type: commentary - selected: true selection_reason: major Shach commentary on the seif's Torah/rabbinic scope skip_reason: '' fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json created_or_updated_claims: - claim_yd_87_1_shach_pickling_salting_boundary -- ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 + fetched_text_present: true +- ref_id: ref_shach_yd_87_2_1 + sefaria_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 family: shach_siftei_kohen link_type: commentary - selected: true selection_reason: linked Shach continuation needed to triage adjacent-seif scope skip_reason: '' fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json created_or_updated_claims: - claim_yd_87_1_shach_rabbinic_benefit_permission -- ref: Yad Avraham on Shulchan Arukh, Yoreh Deah 87:6 - family: other - link_type: Quoting Commentary - selected: false - selection_reason: '' - skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: The Kehot Chumash; A Chasidic Commentary, Genesis 18:8:1 - family: other - link_type: Quoting Commentary - selected: false - selection_reason: '' - skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Ba'er Hetev on Shulchan Arukh, Yoreh De'ah 87:1 - family: other - link_type: commentary - selected: false - selection_reason: '' - skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Ba'er Hetev on Shulchan Arukh, Yoreh De'ah 87:2 - family: other - link_type: commentary - selected: false - selection_reason: '' - skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Nazir 37a:12 + fetched_text_present: true +- ref_id: ref_nazir_37a_12 + sefaria_ref: Nazir 37a:12 family: talmud link_type: ein mishpat / ner mitsvah - selected: true selection_reason: Talmud source linked through Ein Mishpat for prohibition derivation skip_reason: '' fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json created_or_updated_claims: - claim_yd_87_1_talmud_threefold_derivation -- ref: Mishneh Torah, Forbidden Foods 9:1 + fetched_text_present: true +- ref_id: ref_rambam_forbidden_foods_9_1 + sefaria_ref: Mishneh Torah, Forbidden Foods 9:1 family: mishneh_torah_rambam link_type: ein mishpat / ner mitsvah - selected: true selection_reason: upstream Rambam codification for Torah-level meat-milk prohibitions skip_reason: '' fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json created_or_updated_claims: - claim_yd_87_1_rambam_cooking_eating_benefit -- ref: Sefer Mitzvot Gadol, Negative Commandments 140 - family: other - link_type: ein mishpat / ner mitsvah - selected: false - selection_reason: '' - skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Sefer Mitzvot Gadol, Negative Commandments 141 - family: other - link_type: ein mishpat / ner mitsvah - selected: false - selection_reason: '' - skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kiddushin 57b:9 + fetched_text_present: true +- ref_id: ref_kiddushin_57b_9 + sefaria_ref: Kiddushin 57b:9 family: talmud link_type: ein mishpat / ner mitsvah - selected: true selection_reason: Talmud source linked through Ein Mishpat for benefit/eating derivation skip_reason: '' fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json created_or_updated_claims: - claim_yd_87_1_talmud_threefold_derivation -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 + fetched_text_present: true +- ref_id: ref_kaf_hachayim_yd_87_1_1 + sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 family: kaf_hachayim link_type: commentary - selected: true selection_reason: major later practical commentary on the same seif skip_reason: '' fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json created_or_updated_claims: - claim_yd_87_1_unusual_eating_benefit_prohibited -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:2:1 + fetched_text_present: true +- ref_id: ref_gra_yd_87_1 + sefaria_ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 + family: beur_hagra + link_type: commentary + selection_reason: Gra source-chain and derivation note for the same seif + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json + created_or_updated_claims: + - claim_yd_87_1_gra_fire_cooking_boundary + fetched_text_present: true +- ref_id: ref_beer_hagolah_yd_87_1 + sefaria_ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1 + family: other + link_type: commentary + selection_reason: source-citation commentary for the Torah derivation chain + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json + created_or_updated_claims: + - claim_yd_87_1_talmud_threefold_derivation + fetched_text_present: true +- ref_id: ref_pitchei_teshuva_yd_87_1 + sefaria_ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 + family: other + link_type: commentary + selection_reason: major responsa-oriented commentary on practical boundaries + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json + created_or_updated_claims: + - claim_yd_87_1_pitchei_unusual_eating_prohibited + fetched_text_present: true +- ref_id: ref_chullin_115b_18 + sefaria_ref: Chullin 115b:18 + family: talmud + link_type: ein mishpat / ner mitsvah + selection_reason: core Talmud source for basar-bechalav derivation + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json + created_or_updated_claims: + - claim_yd_87_1_talmud_threefold_derivation + fetched_text_present: true +- ref_id: ref_pri_megadim_mz_yd_87_1 + sefaria_ref: Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 + family: pri_megadim + link_type: super_commentary + selection_reason: Pri Megadim supercommentary on Taz for second-pass triage + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json + created_or_updated_claims: + - claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic + fetched_text_present: true +- ref_id: ref_pri_megadim_sd_yd_87_1 + sefaria_ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1 + family: pri_megadim + link_type: super_commentary + selection_reason: Pri Megadim supercommentary on Shach for second-pass triage + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json + created_or_updated_claims: + - claim_yd_87_1_shach_pickling_salting_boundary + fetched_text_present: true +- ref_id: ref_bekhorot_6b_11 + sefaria_ref: Bekhorot 6b:11 + family: talmud + link_type: ein mishpat / ner mitsvah + selection_reason: Talmud source linked for milk and meat-milk derivation boundary + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json + created_or_updated_claims: + - claim_yd_87_1_talmud_threefold_derivation + fetched_text_present: true +- ref_id: ref_torah_exodus_23_19 + sefaria_ref: Exodus 23:19 + family: tanakh + link_type: Tanakh + selection_reason: Torah verse source for the repeated kid-in-mother's-milk prohibition + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json + created_or_updated_claims: + - claim_yd_87_1_torah_repeated_verses + fetched_text_present: true +- ref_id: ref_torah_exodus_34_26 + sefaria_ref: Exodus 34:26 + family: tanakh + link_type: Tanakh + selection_reason: Torah verse source for the repeated kid-in-mother's-milk prohibition + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json + created_or_updated_claims: + - claim_yd_87_1_torah_repeated_verses + fetched_text_present: true +- ref_id: ref_torah_deuteronomy_14_21 + sefaria_ref: Deuteronomy 14:21 + family: tanakh + link_type: Tanakh + selection_reason: Torah verse source for the repeated kid-in-mother's-milk prohibition + skip_reason: '' + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json + created_or_updated_claims: + - claim_yd_87_1_torah_repeated_verses + fetched_text_present: true +skipped_sources: +- sefaria_ref: Yad Ephraim on Shulchan Arukh, Yoreh De'ah 87:1 + family: other + link_type: commentary + skip_reason: not selected for this second-pass expansion after major-source triage +- sefaria_ref: Yad Avraham on Shulchan Arukh, Yoreh Deah 87:1 + family: other + link_type: commentary + skip_reason: not selected for this second-pass expansion after major-source triage +- sefaria_ref: Yad Avraham on Shulchan Arukh, Yoreh Deah 87:2 + family: other + link_type: commentary + skip_reason: not selected for this second-pass expansion after major-source triage +- sefaria_ref: Yad Avraham on Shulchan Arukh, Yoreh Deah 87:3 + family: other + link_type: commentary + skip_reason: not selected for this second-pass expansion after major-source triage +- sefaria_ref: Yad Avraham on Shulchan Arukh, Yoreh Deah 87:6 + family: other + link_type: Quoting Commentary + skip_reason: not selected for this second-pass expansion after major-source triage +- sefaria_ref: The Kehot Chumash; A Chasidic Commentary, Genesis 18:8:1 + family: other + link_type: Quoting Commentary + skip_reason: not selected for this second-pass expansion after major-source triage +- sefaria_ref: Ba'er Hetev on Shulchan Arukh, Yoreh De'ah 87:1 + family: other + link_type: commentary + skip_reason: not selected for this second-pass expansion after major-source triage +- sefaria_ref: Ba'er Hetev on Shulchan Arukh, Yoreh De'ah 87:2 + family: other + link_type: commentary + skip_reason: not selected for this second-pass expansion after major-source triage +- sefaria_ref: Sefer Mitzvot Gadol, Negative Commandments 140 + family: other + link_type: ein mishpat / ner mitsvah + skip_reason: not selected for this second-pass expansion after major-source triage +- sefaria_ref: Sefer Mitzvot Gadol, Negative Commandments 141 + family: other + link_type: ein mishpat / ner mitsvah + skip_reason: not selected for this second-pass expansion after major-source triage +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:2:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:3:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:3:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:4:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:4:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:5:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:5:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:6:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:6:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:7:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:7:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:8:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:8:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:9:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:9:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:10:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:10:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:11:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:11:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:12:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:12:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:13:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:13:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:14:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:14:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:15:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:15:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:16:1 +- sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:16:1 family: kaf_hachayim link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 - family: beur_hagra - link_type: commentary - selected: true - selection_reason: Gra source-chain and derivation note for the same seif - skip_reason: '' - fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json - created_or_updated_claims: - - claim_yd_87_1_gra_fire_cooking_boundary -- ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:2 +- sefaria_ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:2 family: beur_hagra link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:3 +- sefaria_ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:3 family: beur_hagra link_type: commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1 +- sefaria_ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:2 family: other link_type: commentary - selected: true - selection_reason: source-citation commentary for the Torah derivation chain - skip_reason: '' - fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json - created_or_updated_claims: - - claim_yd_87_1_talmud_threefold_derivation -- ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:2 - family: other - link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 - family: other - link_type: commentary - selected: true - selection_reason: major responsa-oriented commentary on practical boundaries - skip_reason: '' - fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json - created_or_updated_claims: - - claim_yd_87_1_pitchei_unusual_eating_prohibited -- ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:2 +- sefaria_ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:2 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:3 +- sefaria_ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:3 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:4 +- sefaria_ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:4 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Chullin 115b:18 - family: talmud - link_type: ein mishpat / ner mitsvah - selected: true - selection_reason: core Talmud source for basar-bechalav derivation - skip_reason: '' - fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json - created_or_updated_claims: - - claim_yd_87_1_talmud_threefold_derivation -- ref: Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 - family: pri_megadim - link_type: super_commentary - selected: true - selection_reason: Pri Megadim supercommentary on Taz for second-pass triage - skip_reason: '' - fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json - created_or_updated_claims: - - claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic -- ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1 +- sefaria_ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:2:1-2 family: pri_megadim link_type: super_commentary - selected: true - selection_reason: Pri Megadim supercommentary on Shach for second-pass triage - skip_reason: '' - fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json - created_or_updated_claims: - - claim_yd_87_1_shach_pickling_salting_boundary -- ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:2:1-2 - family: pri_megadim - link_type: super_commentary - selected: false - selection_reason: '' skip_reason: major family present but not selected because another linked ref better targets this seif or source-chain role - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Bekhorot 6b:11 - family: talmud - link_type: ein mishpat / ner mitsvah - selected: true - selection_reason: Talmud source linked for milk and meat-milk derivation boundary - skip_reason: '' - fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json - created_or_updated_claims: - - claim_yd_87_1_talmud_threefold_derivation -- ref: Kereti on Shulchan Arukh, Yoreh De'ah 87:1 +- sefaria_ref: Kereti on Shulchan Arukh, Yoreh De'ah 87:1 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kereti on Shulchan Arukh, Yoreh De'ah 87:2 +- sefaria_ref: Kereti on Shulchan Arukh, Yoreh De'ah 87:2 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kereti on Shulchan Arukh, Yoreh De'ah 87:3 +- sefaria_ref: Kereti on Shulchan Arukh, Yoreh De'ah 87:3 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Kereti on Shulchan Arukh, Yoreh De'ah 87:4 +- sefaria_ref: Kereti on Shulchan Arukh, Yoreh De'ah 87:4 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Peleti on Shulchan Arukh, Yoreh De'ah 87:1 +- sefaria_ref: Peleti on Shulchan Arukh, Yoreh De'ah 87:1 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Peleti on Shulchan Arukh, Yoreh De'ah 87:2 +- sefaria_ref: Peleti on Shulchan Arukh, Yoreh De'ah 87:2 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Peleti on Shulchan Arukh, Yoreh De'ah 87:3 +- sefaria_ref: Peleti on Shulchan Arukh, Yoreh De'ah 87:3 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Peleti on Shulchan Arukh, Yoreh De'ah 87:4 +- sefaria_ref: Peleti on Shulchan Arukh, Yoreh De'ah 87:4 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:1 +- sefaria_ref: Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:1 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:2 +- sefaria_ref: Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:2 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:3 +- sefaria_ref: Rabbi Akiva Eiger on Shulchan Arukh, Yoreh De'ah 87:3 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Likutei Halakhot, Yoreh Deah, Laws of Meat and Milk 2:1:1 +- sefaria_ref: Likutei Halakhot, Yoreh Deah, Laws of Meat and Milk 2:1:1 family: other link_type: commentary - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Ben Ish Hai, Halachot 2nd Year, Beha'alotcha 1:1 +- sefaria_ref: Ben Ish Hai, Halachot 2nd Year, Beha'alotcha 1:1 family: other link_type: Halakhah - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Exodus 23:19 - family: tanakh - link_type: Tanakh - selected: true - selection_reason: Torah verse source for the repeated kid-in-mother's-milk prohibition - skip_reason: '' - fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json - created_or_updated_claims: - - claim_yd_87_1_torah_repeated_verses -- ref: Exodus 34:26 - family: tanakh - link_type: Tanakh - selected: true - selection_reason: Torah verse source for the repeated kid-in-mother's-milk prohibition - skip_reason: '' - fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json - created_or_updated_claims: - - claim_yd_87_1_torah_repeated_verses -- ref: Deuteronomy 14:21 - family: tanakh - link_type: Tanakh - selected: true - selection_reason: Torah verse source for the repeated kid-in-mother's-milk prohibition - skip_reason: '' - fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json - created_or_updated_claims: - - claim_yd_87_1_torah_repeated_verses -- ref: Arukh HaShulchan, Yoreh De'ah 87:8 +- sefaria_ref: Arukh HaShulchan, Yoreh De'ah 87:8 family: other link_type: Halakhah - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: B'Mareh HaBazak Volume IX 17:6 +- sefaria_ref: B'Mareh HaBazak Volume IX 17:6 family: other link_type: Responsa - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Peninei Halakhah, Kashrut 25:1:2 +- sefaria_ref: Peninei Halakhah, Kashrut 25:1:2 family: other link_type: Halakhah - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Peninei Halakhah, Kashrut 25:1:4 +- sefaria_ref: Peninei Halakhah, Kashrut 25:1:4 family: other link_type: Halakhah - selected: false - selection_reason: '' skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -- ref: Beit Yosef, Yoreh De'ah 91:20:1 +- sefaria_ref: Beit Yosef, Yoreh De'ah 91:20:1 family: other link_type: Quoting Commentary - selected: false - selection_reason: '' - skip_reason: not selected for this second-pass expansion after major-source triage - fetched_text_artifact: null - created_or_updated_claims: [] -gate: - selected_major_sources_fetched: true - skipped_major_sources_have_reasons: true - source_claims_updated: true + skip_reason: not selected for this second-pass expansion after major-source triage +selection_summary: + available_link_count: 68 + selected_link_count: 18 + skipped_link_count: 50 + selected_sources_missing_fetched_text_or_blocker: 0 +integrity: + all_selected_sources_from_sefaria_mcp: true + direct_http_used: false + manual_transcription_used: false + direct_non_mcp_source_retrieval_count: 0 + selected_sources_missing_fetched_text_or_blocker: 0 + selected_sources_missing_fetched_text: [] + selected_sources_without_claims: [] semantic_decomposition_rerun: true ontology_grounding_rerun: true xlog_second_pass_reencoded: true first_pass_rule_outcomes_recorded: true scenarios_refreshed_for_commentary_semantics: true review_body_updated: true - status: pass second_pass_reencoding: previous_program_artifact: xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog@first-pass refreshed_program_artifact: xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml index a97b111016..2a4ec79f6a 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-run.yaml @@ -1,5 +1,5 @@ slice_id: smicha86_u01_s87_seif_1 -generated_at: '2026-06-02T07:42:31+00:00' +generated_at: '2026-06-02T18:18:40+00:00' validation_model: real_xlog_scenarios_only machine_status: pass scenarios: @@ -66,5 +66,5 @@ scenarios: explain_exit_code: 0 explain_transcript: xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.explain.txt explain_output: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/provenance.json - output_rows: 41 + output_rows: 50 status: pass diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml index 0cae055529..1a74ec6991 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/qa-set.yaml @@ -1,94 +1,126 @@ slice_id: smicha86_u01_s87_seif_1 -generated_at: '2026-05-31T09:43:00Z' -validation_model: "real_xlog_scenarios_only" -machine_validation_implemented_in: "scenario-local XLOG constraints" +generated_at: '2026-06-02T18:16:21+00:00' +validation_model: real_xlog_scenarios_only +machine_validation_implemented_in: scenario-local XLOG constraints expected_outputs_are_review_evidence_only: true source_chain_iteration: second_pass_commentary_expanded - scenarios: - - id: positive - file: xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog - purpose: "Cooked meat-with-milk case produces Torah-level cooking, eating, and benefit prohibitions." - source_claims: - - claim_yd_87_1_torah_cooking - - claim_yd_87_1_torah_eating - - claim_yd_87_1_torah_benefit - expected_outputs: - - "normative_outcome(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_cooking)" - - "normative_outcome(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_eating)" - - "normative_outcome(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_benefit)" - - id: negative - file: xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog - purpose: "Meat without milk does not trigger this seif's meat-with-milk outcomes." - source_claims: - - claim_yd_87_1_cooked_condition - expected_outputs: [] - - id: boundary - file: xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog - purpose: "Expanded commentary boundaries cover non-Torah benefit, rabbinic benefit, pickling/salting, and unusual eating or benefit." - source_claims: - - claim_yd_87_1_cooked_condition - - claim_yd_87_1_rema_benefit_non_torah - - claim_yd_87_1_taz_standard_benefit_permission - - claim_yd_87_1_shach_rabbinic_benefit_permission - - claim_yd_87_1_maharshal_benefit_stringency - - claim_yd_87_1_shach_pickling_salting_boundary - - claim_yd_87_1_unusual_eating_benefit_prohibited - - claim_yd_87_1_pitchei_unusual_eating_prohibited - expected_outputs: - - "normative_outcome(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)" - - "normative_outcome(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission)" - - "normative_outcome(maharshal, case_non_cooked_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency)" - - "normative_outcome(rema, case_rabbinic_benefit, permitted, claim_yd_87_1_shach_rabbinic_benefit_permission)" - - "normative_outcome(mechaber, case_pickled_meat_milk, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary)" - - "normative_outcome(mechaber, case_salted_meat_milk, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary)" - - "normative_outcome(mechaber, case_unusual_eating, prohibited, claim_yd_87_1_pitchei_unusual_eating_prohibited)" - - "normative_outcome(mechaber, case_unusual_benefit, prohibited, claim_yd_87_1_unusual_eating_benefit_prohibited)" - - id: conflict - file: xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog - purpose: "Authority-sensitive case keeps non-cooked eating prohibition, Rema/Taz benefit permission, and Maharshal strictness separate." - source_claims: - - claim_yd_87_1_rabbinic_all_forms - - claim_yd_87_1_rema_benefit_non_torah - - claim_yd_87_1_taz_standard_benefit_permission - - claim_yd_87_1_maharshal_benefit_stringency - expected_outputs: - - "normative_outcome(mechaber, case_uncooked_eating, prohibited, claim_yd_87_1_rabbinic_all_forms)" - - "normative_outcome(rema, case_uncooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah)" - - "normative_outcome(rema, case_uncooked_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission)" - - "normative_outcome(maharshal, case_uncooked_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency)" - required_if: "authority gloss or claim qualification is present" - - id: provenance - file: xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog - purpose: "Rules and source claims can be queried from the executable program." - source_claims: - - claim_yd_87_1_torah_cooking - - claim_yd_87_1_torah_eating - - claim_yd_87_1_torah_benefit - - claim_yd_87_1_cooked_condition - - claim_yd_87_1_rabbinic_all_forms - - claim_yd_87_1_rema_benefit_non_torah - - claim_yd_87_1_rambam_cooking_eating_benefit - - claim_yd_87_1_talmud_threefold_derivation - - claim_yd_87_1_torah_repeated_verses - - claim_yd_87_1_shach_pickling_salting_boundary - - claim_yd_87_1_gra_fire_cooking_boundary - - claim_yd_87_1_taz_standard_benefit_permission - - claim_yd_87_1_maharshal_benefit_stringency - - claim_yd_87_1_shach_rabbinic_benefit_permission - - claim_yd_87_1_unusual_eating_benefit_prohibited - - claim_yd_87_1_pitchei_unusual_eating_prohibited - - claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic - expected_outputs: - - "source_claim(claim_yd_87_1_torah_cooking, ref_yd_87_1, _)" - - "source_claim(claim_yd_87_1_torah_eating, ref_yd_87_1, _)" - - "source_claim(claim_yd_87_1_torah_benefit, ref_yd_87_1, _)" - - "source_claim(claim_yd_87_1_cooked_condition, ref_yd_87_1, _)" - - "source_claim(claim_yd_87_1_rabbinic_all_forms, ref_yd_87_1, _)" - - "source_claim(claim_yd_87_1_rema_benefit_non_torah, ref_yd_87_1, _)" - - "supports_claim(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_cooking)" - - "supports_claim(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_eating)" - - "supports_claim(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_benefit)" - - "supports_claim(rule_yd_87_1_cooked_condition, claim_yd_87_1_cooked_condition)" - - "supports_claim(rule_yd_87_1_rabbinic_all_forms, claim_yd_87_1_rabbinic_all_forms)" - - "supports_claim(rule_yd_87_1_rema_benefit_non_torah, claim_yd_87_1_rema_benefit_non_torah)" +- id: positive + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/positive.xlog + purpose: Cooked meat-with-milk case produces Torah-level cooking, eating, and benefit + prohibitions. + source_claims: + - claim_yd_87_1_torah_cooking + - claim_yd_87_1_torah_eating + - claim_yd_87_1_torah_benefit + expected_outputs: + - normative_outcome(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_cooking) + - normative_outcome(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_eating) + - normative_outcome(mechaber, case_cooked_meat_milk, prohibited, claim_yd_87_1_torah_benefit) +- id: negative + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/negative.xlog + purpose: Meat without milk does not trigger this seif's meat-with-milk outcomes. + source_claims: + - claim_yd_87_1_cooked_condition + expected_outputs: [] +- id: boundary + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/boundary.xlog + purpose: Expanded commentary boundaries cover non-Torah benefit, rabbinic benefit, + pickling/salting, and unusual eating or benefit. + source_claims: + - claim_yd_87_1_cooked_condition + - claim_yd_87_1_rema_benefit_non_torah + - claim_yd_87_1_taz_standard_benefit_permission + - claim_yd_87_1_shach_rabbinic_benefit_permission + - claim_yd_87_1_maharshal_benefit_stringency + - claim_yd_87_1_shach_pickling_salting_boundary + - claim_yd_87_1_unusual_eating_benefit_prohibited + - claim_yd_87_1_pitchei_unusual_eating_prohibited + expected_outputs: + - normative_outcome(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah) + - normative_outcome(rema, case_non_cooked_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission) + - normative_outcome(maharshal, case_non_cooked_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency) + - normative_outcome(rema, case_rabbinic_benefit, permitted, claim_yd_87_1_shach_rabbinic_benefit_permission) + - normative_outcome(mechaber, case_pickled_meat_milk, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary) + - normative_outcome(mechaber, case_salted_meat_milk, not_torah_prohibited, claim_yd_87_1_shach_pickling_salting_boundary) + - normative_outcome(mechaber, case_unusual_eating, prohibited, claim_yd_87_1_pitchei_unusual_eating_prohibited) + - normative_outcome(mechaber, case_unusual_benefit, prohibited, claim_yd_87_1_unusual_eating_benefit_prohibited) +- id: conflict + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/conflict.xlog + purpose: Authority-sensitive case keeps non-cooked eating prohibition, Rema/Taz + benefit permission, and Maharshal strictness separate. + source_claims: + - claim_yd_87_1_rabbinic_all_forms + - claim_yd_87_1_rema_benefit_non_torah + - claim_yd_87_1_taz_standard_benefit_permission + - claim_yd_87_1_maharshal_benefit_stringency + expected_outputs: + - normative_outcome(mechaber, case_uncooked_eating, prohibited, claim_yd_87_1_rabbinic_all_forms) + - normative_outcome(rema, case_uncooked_benefit, permitted, claim_yd_87_1_rema_benefit_non_torah) + - normative_outcome(rema, case_uncooked_benefit, permitted, claim_yd_87_1_taz_standard_benefit_permission) + - normative_outcome(maharshal, case_uncooked_benefit, prohibited, claim_yd_87_1_maharshal_benefit_stringency) + required_if: authority gloss or claim qualification is present +- id: provenance + file: xlog/scenarios/smicha86/u01/yd_87/seif_1/provenance.xlog + purpose: Rules and source claims can be queried from the executable program. + source_claims: + - claim_yd_87_1_torah_cooking + - claim_yd_87_1_torah_eating + - claim_yd_87_1_torah_benefit + - claim_yd_87_1_cooked_condition + - claim_yd_87_1_rabbinic_all_forms + - claim_yd_87_1_rema_benefit_non_torah + - claim_yd_87_1_rambam_cooking_eating_benefit + - claim_yd_87_1_talmud_threefold_derivation + - claim_yd_87_1_torah_repeated_verses + - claim_yd_87_1_shach_pickling_salting_boundary + - claim_yd_87_1_gra_fire_cooking_boundary + - claim_yd_87_1_taz_standard_benefit_permission + - claim_yd_87_1_maharshal_benefit_stringency + - claim_yd_87_1_shach_rabbinic_benefit_permission + - claim_yd_87_1_unusual_eating_benefit_prohibited + - claim_yd_87_1_pitchei_unusual_eating_prohibited + - claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic + expected_outputs: + - source_claim(claim_yd_87_1_cooked_condition, ref_yd_87_1, _) + - source_claim(claim_yd_87_1_gra_fire_cooking_boundary, ref_gra_yd_87_1, _) + - source_claim(claim_yd_87_1_maharshal_benefit_stringency, ref_taz_yd_87_1, _) + - source_claim(claim_yd_87_1_pitchei_unusual_eating_prohibited, ref_pitchei_teshuva_yd_87_1, + _) + - source_claim(claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic, ref_pri_megadim_mz_yd_87_1, + _) + - source_claim(claim_yd_87_1_rabbinic_all_forms, ref_yd_87_1, _) + - source_claim(claim_yd_87_1_rambam_cooking_eating_benefit, ref_rambam_forbidden_foods_9_1, + _) + - source_claim(claim_yd_87_1_rema_benefit_non_torah, ref_yd_87_1, _) + - source_claim(claim_yd_87_1_shach_pickling_salting_boundary, ref_pri_megadim_sd_yd_87_1, + _) + - source_claim(claim_yd_87_1_shach_pickling_salting_boundary, ref_shach_yd_87_1_1, + _) + - source_claim(claim_yd_87_1_shach_rabbinic_benefit_permission, ref_shach_yd_87_2_1, + _) + - source_claim(claim_yd_87_1_talmud_threefold_derivation, ref_beer_hagolah_yd_87_1, + _) + - source_claim(claim_yd_87_1_talmud_threefold_derivation, ref_bekhorot_6b_11, _) + - source_claim(claim_yd_87_1_talmud_threefold_derivation, ref_chullin_115b_18, _) + - source_claim(claim_yd_87_1_talmud_threefold_derivation, ref_kiddushin_57b_9, _) + - source_claim(claim_yd_87_1_talmud_threefold_derivation, ref_nazir_37a_12, _) + - source_claim(claim_yd_87_1_taz_standard_benefit_permission, ref_taz_yd_87_1, _) + - source_claim(claim_yd_87_1_torah_benefit, ref_tur_yd_87_1, _) + - source_claim(claim_yd_87_1_torah_benefit, ref_yd_87_1, _) + - source_claim(claim_yd_87_1_torah_cooking, ref_tur_yd_87_1, _) + - source_claim(claim_yd_87_1_torah_cooking, ref_yd_87_1, _) + - source_claim(claim_yd_87_1_torah_eating, ref_tur_yd_87_1, _) + - source_claim(claim_yd_87_1_torah_eating, ref_yd_87_1, _) + - source_claim(claim_yd_87_1_torah_repeated_verses, ref_torah_deuteronomy_14_21, + _) + - source_claim(claim_yd_87_1_torah_repeated_verses, ref_torah_exodus_23_19, _) + - source_claim(claim_yd_87_1_torah_repeated_verses, ref_torah_exodus_34_26, _) + - source_claim(claim_yd_87_1_unusual_eating_benefit_prohibited, ref_kaf_hachayim_yd_87_1_1, + _) + - supports_claim(rule_yd_87_1_cooked_condition, claim_yd_87_1_cooked_condition) + - supports_claim(rule_yd_87_1_rabbinic_all_forms, claim_yd_87_1_rabbinic_all_forms) + - supports_claim(rule_yd_87_1_rema_benefit_non_torah, claim_yd_87_1_rema_benefit_non_torah) + - supports_claim(rule_yd_87_1_torah_benefit, claim_yd_87_1_torah_benefit) + - supports_claim(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_cooking) + - supports_claim(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_eating) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md b/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md index a4037e9aa7..4ad94291e9 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/review/pr-body.md @@ -54,11 +54,11 @@ No new public predicates were introduced. The ontology grounding ledger was reru | negative | 0 | pass | | boundary | 11 | pass | | conflict | 4 | pass | -| provenance | 41 | pass | +| provenance | 50 | pass | Both `xlog run` and `xlog explain --format json` passed for every scenario. Full transcripts and explain JSON are under `xlog/evidence/smicha86/u01/yd_87/seif_1/`. -Direct scenario rows: positive 3, negative 0, boundary 11, conflict 4, provenance 41. +Direct scenario rows: positive 3, negative 0, boundary 11, conflict 4, provenance 50. ## Human Validation Checklist diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml index 8c4aa29913..fa412dd97a 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/source-claims.yaml @@ -1,196 +1,318 @@ slice_id: smicha86_u01_s87_seif_1 -generated_at: '2026-05-31T09:35:00Z' +generated_at: '2026-06-02T18:16:21+00:00' source_chain_iteration: second_pass_commentary_expanded - claims: - - id: claim_yd_87_1_torah_cooking - source_ref: ref_yd_87_1 - sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "primary seif, first Torah derivation" - normalized_claim: "Torah source assigns a meat-with-milk prohibition to cooking." - claim_role: rule - certainty: direct - second_pass_outcome: preserved - notes: "Confirmed by the linked Torah verses, Kiddushin 57b, and Rambam." - encoded_by: - - rule_yd_87_1_torah_cooking - - id: claim_yd_87_1_torah_eating - source_ref: ref_yd_87_1 - sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "primary seif, second Torah derivation" - normalized_claim: "Torah source assigns a meat-with-milk prohibition to eating." - claim_role: rule - certainty: direct - second_pass_outcome: refined - notes: "Commentary adds the unusual-eating/benefit boundary for meat with milk." - encoded_by: - - rule_yd_87_1_torah_eating - - rule_yd_87_1_unusual_eating_prohibited - - id: claim_yd_87_1_torah_benefit - source_ref: ref_yd_87_1 - sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "primary seif, third Torah derivation" - normalized_claim: "Torah source assigns a meat-with-milk prohibition to deriving benefit." - claim_role: rule - certainty: direct - second_pass_outcome: preserved - notes: "Confirmed by the linked Torah verses, Kiddushin 57b, and Rambam." - encoded_by: - - rule_yd_87_1_torah_benefit - - id: claim_yd_87_1_cooked_condition - source_ref: ref_yd_87_1 - sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "primary seif, condition clause" - normalized_claim: "Torah-level meat-with-milk prohibition applies only through cooking." - claim_role: condition - certainty: direct - second_pass_outcome: refined - notes: "Shach and Gra clarify the boundary by excluding pickling and salting from Torah-level cooking." - encoded_by: - - rule_yd_87_1_cooked_condition - - rule_yd_87_1_pickling_torah_boundary - - rule_yd_87_1_salting_torah_boundary - - id: claim_yd_87_1_rabbinic_all_forms - source_ref: ref_yd_87_1 - sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "primary seif, rabbinic extension clause" - normalized_claim: "Rabbinic law prohibits meat-with-milk mixtures beyond Torah cooking form." - claim_role: rule - certainty: direct - second_pass_outcome: refined - notes: "Pri Megadim preserves benefit permission for non-Torah mixtures while maintaining a rabbinic cooking prohibition." - encoded_by: - - rule_yd_87_1_rabbinic_all_forms - - rule_yd_87_1_non_torah_cooking_rabbinic - - id: claim_yd_87_1_rema_benefit_non_torah - source_ref: ref_yd_87_1 - sefaria_ref: "Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "primary seif, Rema gloss" - normalized_claim: "Rema permits benefit from meat-with-milk mixtures not prohibited at Torah level." - claim_role: exception - certainty: direct - second_pass_outcome: split - notes: "Rema/Taz/Shach position is preserved; Taz also records Maharshal's stricter dissent as a separate authority world." - encoded_by: - - rule_yd_87_1_rema_benefit_non_torah - - rule_yd_87_1_taz_standard_benefit_permission - - rule_yd_87_1_maharshal_benefit_stringency - - id: claim_yd_87_1_rambam_cooking_eating_benefit - source_ref: ref_rambam_forbidden_foods_9_1 - sefaria_ref: "Mishneh Torah, Forbidden Foods 9:1" - source_span: "linked Rambam codification" - normalized_claim: "Rambam codifies cooking, eating, and benefit prohibitions for meat and milk cooked together." - claim_role: upstream_derivation - certainty: direct - second_pass_outcome: new_support - encoded_by: - - rule_yd_87_1_torah_cooking - - rule_yd_87_1_torah_eating - - rule_yd_87_1_torah_benefit - - id: claim_yd_87_1_talmud_threefold_derivation - source_ref: ref_kiddushin_57b_9 - sefaria_ref: "Kiddushin 57b:9" - source_span: "linked Talmud derivation" - normalized_claim: "The Talmud derives eating, benefit, and cooking prohibitions from three repeated verses." - claim_role: upstream_derivation - certainty: direct - second_pass_outcome: new_support - encoded_by: - - rule_yd_87_1_torah_cooking - - rule_yd_87_1_torah_eating - - rule_yd_87_1_torah_benefit - - id: claim_yd_87_1_torah_repeated_verses - source_ref: ref_torah_deuteronomy_14_21 - sefaria_ref: "Deuteronomy 14:21" - source_span: "linked Torah verse set" - normalized_claim: "The repeated Torah verse is the source basis for the threefold derivation." - claim_role: upstream_derivation - certainty: direct - second_pass_outcome: new_support - encoded_by: - - rule_yd_87_1_torah_cooking - - rule_yd_87_1_torah_eating - - rule_yd_87_1_torah_benefit - - id: claim_yd_87_1_shach_pickling_salting_boundary - source_ref: ref_shach_yd_87_1_1 - sefaria_ref: "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1" - source_span: "linked Shach comment" - normalized_claim: "Shach clarifies that Torah-level cooking excludes pickling and salting because they are not the way of cooking." - claim_role: boundary - certainty: direct - second_pass_outcome: new_rule - encoded_by: - - rule_yd_87_1_pickling_torah_boundary - - rule_yd_87_1_salting_torah_boundary - - id: claim_yd_87_1_gra_fire_cooking_boundary - source_ref: ref_gra_yd_87_1 - sefaria_ref: "Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "linked Gra comment" - normalized_claim: "Gra grounds the cooking boundary in preparation through fire and excludes pickling from Torah cooking." - claim_role: boundary - certainty: direct - second_pass_outcome: new_support - encoded_by: - - rule_yd_87_1_pickling_torah_boundary - - id: claim_yd_87_1_taz_standard_benefit_permission - source_ref: ref_taz_yd_87_1 - sefaria_ref: "Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "linked Taz comment" - normalized_claim: "Taz affirms the standard position that non-Torah meat-milk mixtures are permitted in benefit." - claim_role: authority_position - certainty: direct - second_pass_outcome: new_support - encoded_by: - - rule_yd_87_1_taz_standard_benefit_permission - - id: claim_yd_87_1_maharshal_benefit_stringency - source_ref: ref_taz_yd_87_1 - sefaria_ref: "Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "linked Taz report of Maharshal" - normalized_claim: "Taz reports Maharshal's stricter view prohibiting benefit from non-Torah meat-milk mixtures." - claim_role: dispute - certainty: direct - second_pass_outcome: new_rule - encoded_by: - - rule_yd_87_1_maharshal_benefit_stringency - - id: claim_yd_87_1_shach_rabbinic_benefit_permission - source_ref: ref_shach_yd_87_2_1 - sefaria_ref: "Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1" - source_span: "linked Shach continuation" - normalized_claim: "Shach supports benefit permission for rabbinic meat-milk mixtures such as fowl in milk." - claim_role: authority_position - certainty: direct - second_pass_outcome: new_rule - encoded_by: - - rule_yd_87_1_shach_rabbinic_benefit_permission - - id: claim_yd_87_1_unusual_eating_benefit_prohibited - source_ref: ref_kaf_hachayim_yd_87_1_1 - sefaria_ref: "Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1" - source_span: "linked Kaf HaChayim comment" - normalized_claim: "Meat with milk remains prohibited even outside ordinary enjoyment." - claim_role: boundary - certainty: direct - second_pass_outcome: new_rule - encoded_by: - - rule_yd_87_1_unusual_benefit_prohibited - - id: claim_yd_87_1_pitchei_unusual_eating_prohibited - source_ref: ref_pitchei_teshuva_yd_87_1 - sefaria_ref: "Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1" - source_span: "linked Pitchei Teshuva comment" - normalized_claim: "Eating or benefit outside the usual manner remains prohibited for meat with milk." - claim_role: boundary - certainty: direct - second_pass_outcome: new_rule - encoded_by: - - rule_yd_87_1_unusual_eating_prohibited - - id: claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic - source_ref: ref_pri_megadim_mz_yd_87_1 - sefaria_ref: "Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4" - source_span: "linked Pri Megadim on Taz" - normalized_claim: "Pri Megadim preserves benefit permission for non-Torah mixtures while maintaining a rabbinic cooking prohibition." - claim_role: refinement - certainty: direct - second_pass_outcome: new_rule - encoded_by: - - rule_yd_87_1_non_torah_cooking_rabbinic - +- id: claim_yd_87_1_torah_cooking + source_ref: ref_yd_87_1 + sefaria_ref: Shulchan Arukh, Yoreh De'ah 87:1 + source_span: primary seif, first Torah derivation + normalized_claim: Torah source assigns a meat-with-milk prohibition to cooking. + claim_role: rule + certainty: direct + second_pass_outcome: preserved + notes: Confirmed by the linked Torah verses, Kiddushin 57b, and Rambam. + encoded_by: + - rule_yd_87_1_torah_cooking +- id: claim_yd_87_1_torah_eating + source_ref: ref_yd_87_1 + sefaria_ref: Shulchan Arukh, Yoreh De'ah 87:1 + source_span: primary seif, second Torah derivation + normalized_claim: Torah source assigns a meat-with-milk prohibition to eating. + claim_role: rule + certainty: direct + second_pass_outcome: refined + notes: Commentary adds the unusual-eating/benefit boundary for meat with milk. + encoded_by: + - rule_yd_87_1_torah_eating + - rule_yd_87_1_unusual_eating_prohibited +- id: claim_yd_87_1_torah_benefit + source_ref: ref_yd_87_1 + sefaria_ref: Shulchan Arukh, Yoreh De'ah 87:1 + source_span: primary seif, third Torah derivation + normalized_claim: Torah source assigns a meat-with-milk prohibition to deriving + benefit. + claim_role: rule + certainty: direct + second_pass_outcome: preserved + notes: Confirmed by the linked Torah verses, Kiddushin 57b, and Rambam. + encoded_by: + - rule_yd_87_1_torah_benefit +- id: claim_yd_87_1_cooked_condition + source_ref: ref_yd_87_1 + sefaria_ref: Shulchan Arukh, Yoreh De'ah 87:1 + source_span: primary seif, condition clause + normalized_claim: Torah-level meat-with-milk prohibition applies only through cooking. + claim_role: condition + certainty: direct + second_pass_outcome: refined + notes: Shach and Gra clarify the boundary by excluding pickling and salting from + Torah-level cooking. + encoded_by: + - rule_yd_87_1_cooked_condition + - rule_yd_87_1_pickling_torah_boundary + - rule_yd_87_1_salting_torah_boundary +- id: claim_yd_87_1_rabbinic_all_forms + source_ref: ref_yd_87_1 + sefaria_ref: Shulchan Arukh, Yoreh De'ah 87:1 + source_span: primary seif, rabbinic extension clause + normalized_claim: Rabbinic law prohibits meat-with-milk mixtures beyond Torah cooking + form. + claim_role: rule + certainty: direct + second_pass_outcome: refined + notes: Pri Megadim preserves benefit permission for non-Torah mixtures while maintaining + a rabbinic cooking prohibition. + encoded_by: + - rule_yd_87_1_rabbinic_all_forms + - rule_yd_87_1_non_torah_cooking_rabbinic +- id: claim_yd_87_1_rema_benefit_non_torah + source_ref: ref_yd_87_1 + sefaria_ref: Shulchan Arukh, Yoreh De'ah 87:1 + source_span: primary seif, Rema gloss + normalized_claim: Rema permits benefit from meat-with-milk mixtures not prohibited + at Torah level. + claim_role: exception + certainty: direct + second_pass_outcome: split + notes: Rema/Taz/Shach position is preserved; Taz also records Maharshal's stricter + dissent as a separate authority world. + encoded_by: + - rule_yd_87_1_rema_benefit_non_torah + - rule_yd_87_1_taz_standard_benefit_permission + - rule_yd_87_1_maharshal_benefit_stringency +- id: claim_yd_87_1_rambam_cooking_eating_benefit + source_ref: ref_rambam_forbidden_foods_9_1 + sefaria_ref: Mishneh Torah, Forbidden Foods 9:1 + source_span: linked Rambam codification + normalized_claim: Rambam codifies cooking, eating, and benefit prohibitions for + meat and milk cooked together. + claim_role: upstream_derivation + certainty: direct + second_pass_outcome: new_support + encoded_by: + - rule_yd_87_1_torah_cooking + - rule_yd_87_1_torah_eating + - rule_yd_87_1_torah_benefit +- id: claim_yd_87_1_talmud_threefold_derivation + source_ref: ref_kiddushin_57b_9 + sefaria_ref: Kiddushin 57b:9 + source_span: linked Talmud derivation + normalized_claim: The Talmud derives eating, benefit, and cooking prohibitions from + three repeated verses. + claim_role: upstream_derivation + certainty: direct + second_pass_outcome: new_support + encoded_by: + - rule_yd_87_1_torah_cooking + - rule_yd_87_1_torah_eating + - rule_yd_87_1_torah_benefit +- id: claim_yd_87_1_torah_repeated_verses + source_ref: ref_torah_deuteronomy_14_21 + sefaria_ref: Deuteronomy 14:21 + source_span: linked Torah verse set + normalized_claim: The repeated Torah verse is the source basis for the threefold + derivation. + claim_role: upstream_derivation + certainty: direct + second_pass_outcome: new_support + encoded_by: + - rule_yd_87_1_torah_cooking + - rule_yd_87_1_torah_eating + - rule_yd_87_1_torah_benefit +- id: claim_yd_87_1_shach_pickling_salting_boundary + source_ref: ref_shach_yd_87_1_1 + sefaria_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 + source_span: linked Shach comment + normalized_claim: Shach clarifies that Torah-level cooking excludes pickling and + salting because they are not the way of cooking. + claim_role: boundary + certainty: direct + second_pass_outcome: new_rule + encoded_by: + - rule_yd_87_1_pickling_torah_boundary + - rule_yd_87_1_salting_torah_boundary +- id: claim_yd_87_1_gra_fire_cooking_boundary + source_ref: ref_gra_yd_87_1 + sefaria_ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 + source_span: linked Gra comment + normalized_claim: Gra grounds the cooking boundary in preparation through fire and + excludes pickling from Torah cooking. + claim_role: boundary + certainty: direct + second_pass_outcome: new_support + encoded_by: + - rule_yd_87_1_pickling_torah_boundary +- id: claim_yd_87_1_taz_standard_benefit_permission + source_ref: ref_taz_yd_87_1 + sefaria_ref: Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 + source_span: linked Taz comment + normalized_claim: Taz affirms the standard position that non-Torah meat-milk mixtures + are permitted in benefit. + claim_role: authority_position + certainty: direct + second_pass_outcome: new_support + encoded_by: + - rule_yd_87_1_taz_standard_benefit_permission +- id: claim_yd_87_1_maharshal_benefit_stringency + source_ref: ref_taz_yd_87_1 + sefaria_ref: Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 + source_span: linked Taz report of Maharshal + normalized_claim: Taz reports Maharshal's stricter view prohibiting benefit from + non-Torah meat-milk mixtures. + claim_role: dispute + certainty: direct + second_pass_outcome: new_rule + encoded_by: + - rule_yd_87_1_maharshal_benefit_stringency +- id: claim_yd_87_1_shach_rabbinic_benefit_permission + source_ref: ref_shach_yd_87_2_1 + sefaria_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 + source_span: linked Shach continuation + normalized_claim: Shach supports benefit permission for rabbinic meat-milk mixtures + such as fowl in milk. + claim_role: authority_position + certainty: direct + second_pass_outcome: new_rule + encoded_by: + - rule_yd_87_1_shach_rabbinic_benefit_permission +- id: claim_yd_87_1_unusual_eating_benefit_prohibited + source_ref: ref_kaf_hachayim_yd_87_1_1 + sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 + source_span: linked Kaf HaChayim comment + normalized_claim: Meat with milk remains prohibited even outside ordinary enjoyment. + claim_role: boundary + certainty: direct + second_pass_outcome: new_rule + encoded_by: + - rule_yd_87_1_unusual_benefit_prohibited +- id: claim_yd_87_1_pitchei_unusual_eating_prohibited + source_ref: ref_pitchei_teshuva_yd_87_1 + sefaria_ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 + source_span: linked Pitchei Teshuva comment + normalized_claim: Eating or benefit outside the usual manner remains prohibited + for meat with milk. + claim_role: boundary + certainty: direct + second_pass_outcome: new_rule + encoded_by: + - rule_yd_87_1_unusual_eating_prohibited +- id: claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic + source_ref: ref_pri_megadim_mz_yd_87_1 + sefaria_ref: Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 + source_span: linked Pri Megadim on Taz + normalized_claim: Pri Megadim preserves benefit permission for non-Torah mixtures + while maintaining a rabbinic cooking prohibition. + claim_role: refinement + certainty: direct + second_pass_outcome: new_rule + encoded_by: + - rule_yd_87_1_non_torah_cooking_rabbinic open_questions: [] +source_refs: +- ref_id: ref_yd_87_1 + sefaria_ref: Shulchan Arukh, Yoreh De'ah 87:1 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/seif-text.json + used_for_claims: + - claim_yd_87_1_torah_cooking + - claim_yd_87_1_torah_eating + - claim_yd_87_1_torah_benefit + - claim_yd_87_1_cooked_condition + - claim_yd_87_1_rabbinic_all_forms + - claim_yd_87_1_rema_benefit_non_torah +- ref_id: ref_taz_yd_87_1 + sefaria_ref: Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json + used_for_claims: + - claim_yd_87_1_taz_standard_benefit_permission + - claim_yd_87_1_maharshal_benefit_stringency +- ref_id: ref_tur_yd_87_1 + sefaria_ref: Tur, Yoreh De'ah 87:1 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/tur_yoreh_deah_87_1.json + used_for_claims: + - claim_yd_87_1_torah_cooking + - claim_yd_87_1_torah_eating + - claim_yd_87_1_torah_benefit +- ref_id: ref_shach_yd_87_1_1 + sefaria_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json + used_for_claims: + - claim_yd_87_1_shach_pickling_salting_boundary +- ref_id: ref_shach_yd_87_2_1 + sefaria_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json + used_for_claims: + - claim_yd_87_1_shach_rabbinic_benefit_permission +- ref_id: ref_nazir_37a_12 + sefaria_ref: Nazir 37a:12 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json + used_for_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref_id: ref_rambam_forbidden_foods_9_1 + sefaria_ref: Mishneh Torah, Forbidden Foods 9:1 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json + used_for_claims: + - claim_yd_87_1_rambam_cooking_eating_benefit +- ref_id: ref_kiddushin_57b_9 + sefaria_ref: Kiddushin 57b:9 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json + used_for_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref_id: ref_kaf_hachayim_yd_87_1_1 + sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json + used_for_claims: + - claim_yd_87_1_unusual_eating_benefit_prohibited +- ref_id: ref_gra_yd_87_1 + sefaria_ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json + used_for_claims: + - claim_yd_87_1_gra_fire_cooking_boundary +- ref_id: ref_beer_hagolah_yd_87_1 + sefaria_ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json + used_for_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref_id: ref_pitchei_teshuva_yd_87_1 + sefaria_ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json + used_for_claims: + - claim_yd_87_1_pitchei_unusual_eating_prohibited +- ref_id: ref_chullin_115b_18 + sefaria_ref: Chullin 115b:18 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json + used_for_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref_id: ref_pri_megadim_mz_yd_87_1 + sefaria_ref: Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json + used_for_claims: + - claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic +- ref_id: ref_pri_megadim_sd_yd_87_1 + sefaria_ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json + used_for_claims: + - claim_yd_87_1_shach_pickling_salting_boundary +- ref_id: ref_bekhorot_6b_11 + sefaria_ref: Bekhorot 6b:11 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json + used_for_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref_id: ref_torah_exodus_23_19 + sefaria_ref: Exodus 23:19 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json + used_for_claims: + - claim_yd_87_1_torah_repeated_verses +- ref_id: ref_torah_exodus_34_26 + sefaria_ref: Exodus 34:26 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json + used_for_claims: + - claim_yd_87_1_torah_repeated_verses +- ref_id: ref_torah_deuteronomy_14_21 + sefaria_ref: Deuteronomy 14:21 + fetched_text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json + used_for_claims: + - claim_yd_87_1_torah_repeated_verses +integrity: + first_pass_claims_without_second_pass_outcome: 0 + selected_sources_without_claim_mapping: [] + rule_to_source_coverage: 100% diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml b/xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml index 5d60b4dd9e..55c1cd5173 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/source-fetch-log.yaml @@ -1,5 +1,5 @@ slice_id: smicha86_u01_s87_seif_1 -generated_at: '2026-05-25T15:03:56+00:00' +generated_at: '2026-06-02T18:16:21+00:00' required_source_connector: Sefaria MCP direct_http_used: false manual_transcription_used: false @@ -246,97 +246,123 @@ source_refs: - claim_yd_87_1_cooked_condition - claim_yd_87_1_rabbinic_all_forms - claim_yd_87_1_rema_benefit_non_torah -- ref_id: linked_turei_zahav_on_shulchan_arukh_yoreh_deah_87_1 +- ref_id: ref_taz_yd_87_1 sefaria_ref: Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 display_ref: Turei Zahav on Shulchan Arukh, Yoreh De'ah 87:1 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/turei_zahav_on_shulchan_arukh_yoreh_deah_87_1.json - used_for_claims: [] -- ref_id: linked_tur_yoreh_deah_87_1 + used_for_claims: + - claim_yd_87_1_taz_standard_benefit_permission + - claim_yd_87_1_maharshal_benefit_stringency +- ref_id: ref_tur_yd_87_1 sefaria_ref: Tur, Yoreh De'ah 87:1 display_ref: Tur, Yoreh De'ah 87:1 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/tur_yoreh_deah_87_1.json - used_for_claims: [] -- ref_id: linked_siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1 + used_for_claims: + - claim_yd_87_1_torah_cooking + - claim_yd_87_1_torah_eating + - claim_yd_87_1_torah_benefit +- ref_id: ref_shach_yd_87_1_1 sefaria_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 display_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:1:1 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_1_1.json - used_for_claims: [] -- ref_id: linked_siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1 + used_for_claims: + - claim_yd_87_1_shach_pickling_salting_boundary +- ref_id: ref_shach_yd_87_2_1 sefaria_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 display_ref: Siftei Kohen on Shulchan Arukh, Yoreh De'ah 87:2:1 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/siftei_kohen_on_shulchan_arukh_yoreh_deah_87_2_1.json - used_for_claims: [] -- ref_id: linked_nazir_37a_12 + used_for_claims: + - claim_yd_87_1_shach_rabbinic_benefit_permission +- ref_id: ref_nazir_37a_12 sefaria_ref: Nazir 37a:12 display_ref: Nazir 37a:12 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/nazir_37a_12.json - used_for_claims: [] -- ref_id: linked_mishneh_torah_forbidden_foods_9_1 + used_for_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref_id: ref_rambam_forbidden_foods_9_1 sefaria_ref: Mishneh Torah, Forbidden Foods 9:1 display_ref: Mishneh Torah, Forbidden Foods 9:1 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/mishneh_torah_forbidden_foods_9_1.json - used_for_claims: [] -- ref_id: linked_kiddushin_57b_9 + used_for_claims: + - claim_yd_87_1_rambam_cooking_eating_benefit +- ref_id: ref_kiddushin_57b_9 sefaria_ref: Kiddushin 57b:9 display_ref: Kiddushin 57b:9 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kiddushin_57b_9.json - used_for_claims: [] -- ref_id: linked_kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1 + used_for_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref_id: ref_kaf_hachayim_yd_87_1_1 sefaria_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 display_ref: Kaf HaChayim on Shulchan Arukh, Yoreh De'ah 87:1:1 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/kaf_hachayim_on_shulchan_arukh_yoreh_deah_87_1_1.json - used_for_claims: [] -- ref_id: linked_beur_hagra_on_shulchan_arukh_yoreh_deah_87_1 + used_for_claims: + - claim_yd_87_1_unusual_eating_benefit_prohibited +- ref_id: ref_gra_yd_87_1 sefaria_ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 display_ref: Beur HaGra on Shulchan Arukh, Yoreh De'ah 87:1 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beur_hagra_on_shulchan_arukh_yoreh_deah_87_1.json - used_for_claims: [] -- ref_id: linked_beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1 + used_for_claims: + - claim_yd_87_1_gra_fire_cooking_boundary +- ref_id: ref_beer_hagolah_yd_87_1 sefaria_ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1 display_ref: Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/beer_hagolah_on_shulchan_arukh_yoreh_deah_87_1.json - used_for_claims: [] -- ref_id: linked_pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1 + used_for_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref_id: ref_pitchei_teshuva_yd_87_1 sefaria_ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 display_ref: Pitchei Teshuva on Shulchan Arukh, Yoreh De'ah 87:1 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/pitchei_teshuva_on_shulchan_arukh_yoreh_deah_87_1.json - used_for_claims: [] -- ref_id: linked_chullin_115b_18 + used_for_claims: + - claim_yd_87_1_pitchei_unusual_eating_prohibited +- ref_id: ref_chullin_115b_18 sefaria_ref: Chullin 115b:18 display_ref: Chullin 115b:18 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/chullin_115b_18.json - used_for_claims: [] -- ref_id: linked_peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4 + used_for_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref_id: ref_pri_megadim_mz_yd_87_1 sefaria_ref: Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 display_ref: Peri Megadim on Yoreh De'ah, Mishbezot Zahav 87:1:1-4 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_mishbezot_zahav_87_1_1_4.json - used_for_claims: [] -- ref_id: linked_peri_megadim_on_yoreh_deah_siftei_daat_87_1_1 + used_for_claims: + - claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic +- ref_id: ref_pri_megadim_sd_yd_87_1 sefaria_ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1 display_ref: Peri Megadim on Yoreh De'ah, Siftei Da'at 87:1:1 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/peri_megadim_on_yoreh_deah_siftei_daat_87_1_1.json - used_for_claims: [] -- ref_id: linked_bekhorot_6b_11 + used_for_claims: + - claim_yd_87_1_shach_pickling_salting_boundary +- ref_id: ref_bekhorot_6b_11 sefaria_ref: Bekhorot 6b:11 display_ref: Bekhorot 6b:11 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/bekhorot_6b_11.json - used_for_claims: [] -- ref_id: linked_exodus_23_19 + used_for_claims: + - claim_yd_87_1_talmud_threefold_derivation +- ref_id: ref_torah_exodus_23_19 sefaria_ref: Exodus 23:19 display_ref: Exodus 23:19 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_23_19.json - used_for_claims: [] -- ref_id: linked_exodus_34_26 + used_for_claims: + - claim_yd_87_1_torah_repeated_verses +- ref_id: ref_torah_exodus_34_26 sefaria_ref: Exodus 34:26 display_ref: Exodus 34:26 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/exodus_34_26.json - used_for_claims: [] -- ref_id: linked_deuteronomy_14_21 + used_for_claims: + - claim_yd_87_1_torah_repeated_verses +- ref_id: ref_torah_deuteronomy_14_21 sefaria_ref: Deuteronomy 14:21 display_ref: Deuteronomy 14:21 text_artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/deuteronomy_14_21.json - used_for_claims: [] + used_for_claims: + - claim_yd_87_1_torah_repeated_verses integrity: all_sources_from_sefaria_mcp: true unresolved_version_notes: [] unresolved_translation_notes: [] + direct_non_mcp_source_retrieval_count: 0 + manual_transcription_used: false + direct_http_used: false + selected_link_count: 18 + selected_sources_missing_fetched_text_or_blocker: 0 diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt index 5517fceb17..2d9bcf4a20 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/boundary.run.txt @@ -20,5 +20,5 @@ __xlog_query_0 +------------+-------------------------+----------------------+-------------------------------------------------+ [stderr] -{"total_ms":4218,"strata":[{"stratum":0,"rules":157,"recursive":false,"iterations":1,"duration_ms":4128,"ops":[{"op":"project","calls":13,"duration_ms":2},{"op":"filter","calls":32,"duration_ms":10},{"op":"scan","calls":176,"duration_ms":21},{"op":"union","calls":157,"duration_ms":4083},{"op":"join","calls":19,"duration_ms":4}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":89,"ops":[{"op":"diff","calls":2,"duration_ms":87},{"op":"join","calls":2,"duration_ms":0},{"op":"project","calls":4,"duration_ms":0},{"op":"union","calls":4,"duration_ms":0},{"op":"scan","calls":8,"duration_ms":1}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":11} -Symbols: 106 interned (6930 bytes) +{"total_ms":3978,"strata":[{"stratum":0,"rules":170,"recursive":false,"iterations":1,"duration_ms":3908,"ops":[{"op":"union","calls":170,"duration_ms":3861},{"op":"project","calls":13,"duration_ms":2},{"op":"scan","calls":189,"duration_ms":22},{"op":"join","calls":19,"duration_ms":4},{"op":"filter","calls":32,"duration_ms":11}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":69,"ops":[{"op":"scan","calls":8,"duration_ms":0},{"op":"join","calls":2,"duration_ms":0},{"op":"project","calls":4,"duration_ms":0},{"op":"union","calls":4,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":67}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":11} +Symbols: 123 interned (8292 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt index 0332283f48..959ba5c9e7 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/conflict.run.txt @@ -13,5 +13,5 @@ __xlog_query_0 +------------+-----------------------+------------+-----------------------------------------------+ [stderr] -{"total_ms":3359,"strata":[{"stratum":0,"rules":132,"recursive":false,"iterations":1,"duration_ms":3267,"ops":[{"op":"scan","calls":151,"duration_ms":18},{"op":"union","calls":132,"duration_ms":3233},{"op":"filter","calls":32,"duration_ms":8},{"op":"project","calls":13,"duration_ms":1},{"op":"join","calls":19,"duration_ms":2}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":91,"ops":[{"op":"scan","calls":8,"duration_ms":0},{"op":"union","calls":4,"duration_ms":0},{"op":"project","calls":4,"duration_ms":0},{"op":"join","calls":2,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":89}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":4} -Symbols: 102 interned (6733 bytes) +{"total_ms":2879,"strata":[{"stratum":0,"rules":145,"recursive":false,"iterations":1,"duration_ms":2808,"ops":[{"op":"union","calls":145,"duration_ms":2775},{"op":"scan","calls":164,"duration_ms":16},{"op":"project","calls":13,"duration_ms":1},{"op":"filter","calls":32,"duration_ms":9},{"op":"join","calls":19,"duration_ms":2}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":70,"ops":[{"op":"join","calls":2,"duration_ms":0},{"op":"project","calls":4,"duration_ms":0},{"op":"union","calls":4,"duration_ms":0},{"op":"scan","calls":8,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":69}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":4} +Symbols: 119 interned (8095 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt index d7749515de..ede5348a3a 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/negative.run.txt @@ -9,5 +9,5 @@ __xlog_query_0 +----+----+----+ [stderr] -{"total_ms":2596,"strata":[{"stratum":0,"rules":122,"recursive":false,"iterations":1,"duration_ms":2596,"ops":[{"op":"scan","calls":141,"duration_ms":16},{"op":"union","calls":122,"duration_ms":2565},{"op":"filter","calls":33,"duration_ms":9},{"op":"project","calls":15,"duration_ms":0},{"op":"join","calls":19,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":0} -Symbols: 102 interned (6723 bytes) +{"total_ms":2916,"strata":[{"stratum":0,"rules":135,"recursive":false,"iterations":1,"duration_ms":2916,"ops":[{"op":"scan","calls":154,"duration_ms":17},{"op":"union","calls":135,"duration_ms":2884},{"op":"project","calls":15,"duration_ms":0},{"op":"filter","calls":33,"duration_ms":9},{"op":"join","calls":19,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":0} +Symbols: 119 interned (8085 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt index 482a2c7541..2ce1c5056b 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/positive.run.txt @@ -12,5 +12,5 @@ __xlog_query_0 +------------+------------+-----------------------------+ [stderr] -{"total_ms":2648,"strata":[{"stratum":0,"rules":126,"recursive":false,"iterations":1,"duration_ms":2582,"ops":[{"op":"union","calls":126,"duration_ms":2549},{"op":"filter","calls":33,"duration_ms":8},{"op":"project","calls":14,"duration_ms":1},{"op":"scan","calls":145,"duration_ms":16},{"op":"join","calls":19,"duration_ms":1}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":65,"ops":[{"op":"union","calls":4,"duration_ms":0},{"op":"project","calls":4,"duration_ms":0},{"op":"scan","calls":8,"duration_ms":1},{"op":"diff","calls":2,"duration_ms":63},{"op":"join","calls":2,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":3} -Symbols: 101 interned (6685 bytes) +{"total_ms":3131,"strata":[{"stratum":0,"rules":139,"recursive":false,"iterations":1,"duration_ms":3014,"ops":[{"op":"project","calls":14,"duration_ms":1},{"op":"scan","calls":158,"duration_ms":17},{"op":"join","calls":19,"duration_ms":1},{"op":"filter","calls":33,"duration_ms":9},{"op":"union","calls":139,"duration_ms":2979}]},{"stratum":1,"rules":4,"recursive":false,"iterations":1,"duration_ms":116,"ops":[{"op":"project","calls":4,"duration_ms":0},{"op":"join","calls":2,"duration_ms":0},{"op":"scan","calls":8,"duration_ms":1},{"op":"union","calls":4,"duration_ms":0},{"op":"diff","calls":2,"duration_ms":114}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":3} +Symbols: 118 interned (8047 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt index 97593e4273..a7d8205a7a 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/transcripts/provenance.run.txt @@ -7,13 +7,22 @@ __xlog_query_0 | c0 | c1 | c2 | +------------------------------------------------------+--------------------------------+-------------------------------------------------------------------------------------------------------------------+ | claim_yd_87_1_torah_cooking | ref_yd_87_1 | Torah source assigns a meat-with-milk prohibition to cooking. | +| claim_yd_87_1_torah_cooking | ref_tur_yd_87_1 | Tur preserves the Torah cooking prohibition for meat with milk. | | claim_yd_87_1_torah_eating | ref_yd_87_1 | Torah source assigns a meat-with-milk prohibition to eating. | +| claim_yd_87_1_torah_eating | ref_tur_yd_87_1 | Tur preserves the Torah eating prohibition for meat with milk. | | claim_yd_87_1_torah_benefit | ref_yd_87_1 | Torah source assigns a meat-with-milk prohibition to deriving benefit. | +| claim_yd_87_1_torah_benefit | ref_tur_yd_87_1 | Tur preserves the Torah benefit prohibition for meat with milk. | | claim_yd_87_1_cooked_condition | ref_yd_87_1 | Torah-level meat-with-milk prohibition applies only through cooking. | | claim_yd_87_1_rabbinic_all_forms | ref_yd_87_1 | Rabbinic law prohibits meat-with-milk mixtures beyond Torah cooking form. | | claim_yd_87_1_rema_benefit_non_torah | ref_yd_87_1 | Rema permits benefit from meat-with-milk mixtures not prohibited at Torah level. | | claim_yd_87_1_rambam_cooking_eating_benefit | ref_rambam_forbidden_foods_9_1 | Rambam codifies cooking, eating, and benefit prohibitions for meat and milk cooked together. | | claim_yd_87_1_talmud_threefold_derivation | ref_kiddushin_57b_9 | The Talmud derives eating, benefit, and cooking prohibitions from the three repeated verses. | +| claim_yd_87_1_talmud_threefold_derivation | ref_beer_hagolah_yd_87_1 | Be'er HaGolah identifies the Talmudic source chain for the three meat-with-milk prohibitions. | +| claim_yd_87_1_talmud_threefold_derivation | ref_chullin_115b_18 | Chullin is part of the Talmudic derivation chain for meat-with-milk prohibitions. | +| claim_yd_87_1_talmud_threefold_derivation | ref_nazir_37a_12 | Nazir is part of the Talmudic derivation chain for meat-with-milk prohibitions. | +| claim_yd_87_1_talmud_threefold_derivation | ref_bekhorot_6b_11 | Bekhorot is part of the Talmudic derivation chain for meat-with-milk prohibitions. | +| claim_yd_87_1_torah_repeated_verses | ref_torah_exodus_23_19 | Exodus 23:19 is one of the repeated Torah verses used for the threefold meat-with-milk derivation. | +| claim_yd_87_1_torah_repeated_verses | ref_torah_exodus_34_26 | Exodus 34:26 is one of the repeated Torah verses used for the threefold meat-with-milk derivation. | | claim_yd_87_1_torah_repeated_verses | ref_torah_deuteronomy_14_21 | The Torah repeats the kid-in-mother's-milk verse as the textual basis for the threefold derivation. | | claim_yd_87_1_shach_pickling_salting_boundary | ref_shach_yd_87_1_1 | Shach clarifies that Torah-level cooking excludes pickling and salting because they are not the way of cooking. | | claim_yd_87_1_gra_fire_cooking_boundary | ref_gra_yd_87_1 | Gra grounds the cooking boundary in preparation through fire and excludes pickling from Torah cooking. | @@ -55,5 +64,5 @@ __xlog_query_1 +------------------------------------------------+------------------------------------------------------+ [stderr] -{"total_ms":3031,"strata":[{"stratum":0,"rules":159,"recursive":false,"iterations":1,"duration_ms":2973,"ops":[{"op":"scan","calls":178,"duration_ms":17},{"op":"union","calls":159,"duration_ms":2947},{"op":"project","calls":14,"duration_ms":0},{"op":"filter","calls":32,"duration_ms":1},{"op":"join","calls":19,"duration_ms":0}]},{"stratum":1,"rules":8,"recursive":false,"iterations":1,"duration_ms":57,"ops":[{"op":"scan","calls":16,"duration_ms":1},{"op":"union","calls":8,"duration_ms":0},{"op":"join","calls":4,"duration_ms":0},{"op":"diff","calls":4,"duration_ms":55},{"op":"project","calls":8,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":41} -Symbols: 100 interned (6636 bytes) +{"total_ms":2923,"strata":[{"stratum":0,"rules":172,"recursive":false,"iterations":1,"duration_ms":2867,"ops":[{"op":"join","calls":19,"duration_ms":0},{"op":"scan","calls":191,"duration_ms":16},{"op":"filter","calls":32,"duration_ms":0},{"op":"union","calls":172,"duration_ms":2844},{"op":"project","calls":14,"duration_ms":0}]},{"stratum":1,"rules":8,"recursive":false,"iterations":1,"duration_ms":55,"ops":[{"op":"scan","calls":16,"duration_ms":0},{"op":"diff","calls":4,"duration_ms":53},{"op":"project","calls":8,"duration_ms":0},{"op":"join","calls":4,"duration_ms":0},{"op":"union","calls":8,"duration_ms":0}]}],"peak_memory_mb":0,"budget_memory_mb":16,"output_rows":50} +Symbols: 117 interned (7998 bytes) diff --git a/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md b/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md index a0c3a21177..737f24c50c 100644 --- a/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md +++ b/xlog/evidence/smicha86/u01/yd_87/seif_1/validation-report.md @@ -2,15 +2,15 @@ ## Slice - Slice id: smicha86_u01_s87_seif_1 - Branch: codex/xlog-goal-bundle -- Commit: current PR head after this evidence refresh -- Generated at: 2026-06-02T07:42:31+00:00 +- Commit: latest +- Generated at: 2026-06-02T18:18:40+00:00 - Generated by: xlog/tools/run_xlog_slice_validation.py ## Summary | Gate | Status | Evidence | | --- | --- | --- | | Source gate | pass | source-fetch-log.yaml, source-claims.yaml | | Commentary source-chain gate | pass | linked-source-selection.yaml, sources/linked/*.json | -| Ontology grounding gate | pass | grounding-ledger.yaml rerun after commentary expansion | +| Ontology grounding gate | pass | grounding-ledger.yaml | | Static XLOG gate | pass | explain/*.json | | Second-pass re-encoding gate | pass | second-pass-outcomes.yaml, refreshed XLOG/scenarios | | Runtime scenario gate | pass | scenario-local XLOG constraints plus transcripts/*.run.txt | @@ -38,21 +38,18 @@ | negative | XLOG constraints and exit status | 0 | pass | | boundary | XLOG constraints and exit status | 11 | pass | | conflict | XLOG constraints and exit status | 4 | pass | -| provenance | XLOG constraints and exit status | 41 | pass | +| provenance | XLOG constraints and exit status | 50 | pass | ## Commentary Source-Chain Expansion - Selected linked sources fetched through Sefaria MCP: 18. - Direct non-MCP source retrieval: 0. -- Linked-source selection: xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml +- Selected sources missing fetched text or blocker: 0. +- Linked-source selection: xlog/evidence/smicha86/u01/yd_87/seif_1/linked-source-selection.yaml. - Linked text artifacts: xlog/evidence/smicha86/u01/yd_87/seif_1/sources/linked/*.json -- Source claims were refreshed from major commentaries and upstream sources: Taz, Shach, Beur HaGra, Kaf HaChayim, Pitchei Teshuva, Pri Megadim, Tur, Rambam, Talmud, and Torah verses. ## Second-Pass Re-Encoding -- Outcome ledger: xlog/evidence/smicha86/u01/yd_87/seif_1/second-pass-outcomes.yaml +- Outcome ledger: xlog/evidence/smicha86/u01/yd_87/seif_1/second-pass-outcomes.yaml. - First-pass claims without second-pass outcome: 0. - First-pass rules without second-pass outcome: 0. -- Preserved: Torah cooking and benefit prohibitions. -- Refined: Torah eating boundary, cooked-condition boundary, and rabbinic non-Torah forms. -- Split: Rema benefit permission is retained while Maharshal's stricter view is represented as a separate authority world. -- New scenario coverage: pickling/salting boundary, unusual eating/benefit, rabbinic benefit, non-Torah cooking, and Maharshal conflict. +- Preserved/refined/split outcomes are recorded in second-pass-outcomes.yaml and source-claims.yaml. ## Explain And Provenance - Explain artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/*.json - Source-to-rule-to-output path: source-fetch-log.yaml -> source-claims.yaml -> XLOG supports_claim facts -> scenario output -> explain JSON. diff --git a/xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog b/xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog index 751cfcfd56..e0256f8f99 100644 --- a/xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog +++ b/xlog/programs/corpus/yoreh_deah/siman_87/smicha86_u01_s87_seif_1.xlog @@ -41,6 +41,10 @@ source_ref(ref_pri_megadim_sd_yd_87_1, "Peri Megadim on Yoreh De'ah, Siftei Da'a source_ref(ref_torah_exodus_23_19, "Exodus 23:19"). source_ref(ref_torah_exodus_34_26, "Exodus 34:26"). source_ref(ref_torah_deuteronomy_14_21, "Deuteronomy 14:21"). +source_ref(ref_beer_hagolah_yd_87_1, "Be'er HaGolah on Shulchan Arukh, Yoreh De'ah 87:1"). +source_ref(ref_chullin_115b_18, "Chullin 115b:18"). +source_ref(ref_nazir_37a_12, "Nazir 37a:12"). +source_ref(ref_bekhorot_6b_11, "Bekhorot 6b:11"). source_claim(claim_yd_87_1_torah_cooking, ref_yd_87_1, "Torah source assigns a meat-with-milk prohibition to cooking."). source_claim(claim_yd_87_1_torah_eating, ref_yd_87_1, "Torah source assigns a meat-with-milk prohibition to eating."). @@ -59,6 +63,15 @@ source_claim(claim_yd_87_1_shach_rabbinic_benefit_permission, ref_shach_yd_87_2_ source_claim(claim_yd_87_1_unusual_eating_benefit_prohibited, ref_kaf_hachayim_yd_87_1_1, "Kaf HaChayim records that meat with milk remains prohibited even outside ordinary enjoyment."). source_claim(claim_yd_87_1_pitchei_unusual_eating_prohibited, ref_pitchei_teshuva_yd_87_1, "Pitchei Teshuva records liability even when eating or benefit is not in the usual manner."). source_claim(claim_yd_87_1_pri_megadim_non_torah_cooking_rabbinic, ref_pri_megadim_mz_yd_87_1, "Pri Megadim preserves benefit permission for non-Torah mixtures while maintaining a rabbinic cooking prohibition."). +source_claim(claim_yd_87_1_torah_cooking, ref_tur_yd_87_1, "Tur preserves the Torah cooking prohibition for meat with milk."). +source_claim(claim_yd_87_1_torah_eating, ref_tur_yd_87_1, "Tur preserves the Torah eating prohibition for meat with milk."). +source_claim(claim_yd_87_1_torah_benefit, ref_tur_yd_87_1, "Tur preserves the Torah benefit prohibition for meat with milk."). +source_claim(claim_yd_87_1_talmud_threefold_derivation, ref_beer_hagolah_yd_87_1, "Be'er HaGolah identifies the Talmudic source chain for the three meat-with-milk prohibitions."). +source_claim(claim_yd_87_1_talmud_threefold_derivation, ref_chullin_115b_18, "Chullin is part of the Talmudic derivation chain for meat-with-milk prohibitions."). +source_claim(claim_yd_87_1_talmud_threefold_derivation, ref_nazir_37a_12, "Nazir is part of the Talmudic derivation chain for meat-with-milk prohibitions."). +source_claim(claim_yd_87_1_talmud_threefold_derivation, ref_bekhorot_6b_11, "Bekhorot is part of the Talmudic derivation chain for meat-with-milk prohibitions."). +source_claim(claim_yd_87_1_torah_repeated_verses, ref_torah_exodus_23_19, "Exodus 23:19 is one of the repeated Torah verses used for the threefold meat-with-milk derivation."). +source_claim(claim_yd_87_1_torah_repeated_verses, ref_torah_exodus_34_26, "Exodus 34:26 is one of the repeated Torah verses used for the threefold meat-with-milk derivation."). supports_claim(rule_yd_87_1_torah_cooking, claim_yd_87_1_torah_cooking). supports_claim(rule_yd_87_1_torah_eating, claim_yd_87_1_torah_eating). diff --git a/xlog/tools/run_xlog_slice_validation.py b/xlog/tools/run_xlog_slice_validation.py index d06bd50e45..3c778ca492 100644 --- a/xlog/tools/run_xlog_slice_validation.py +++ b/xlog/tools/run_xlog_slice_validation.py @@ -150,6 +150,15 @@ def main() -> None: ) all_passed = all(result["status"] == "pass" for result in scenario_results) + selection_path = evidence_dir / "linked-source-selection.yaml" + second_pass_path = evidence_dir / "second-pass-outcomes.yaml" + selection = yaml.safe_load(selection_path.read_text(encoding="utf-8")) if selection_path.exists() else {} + second_pass = yaml.safe_load(second_pass_path.read_text(encoding="utf-8")) if second_pass_path.exists() else {} + selected_count = len(selection.get("selected_sources", [])) + missing_selected_count = selection.get("integrity", {}).get("selected_sources_missing_fetched_text_or_blocker", 0) + second_pass_gate = second_pass.get("gate", {}) + first_pass_claims_without_outcome = second_pass_gate.get("first_pass_claims_without_outcome", 0) + first_pass_rules_without_outcome = second_pass_gate.get("first_pass_rules_without_outcome", 0) dump_yaml( evidence_dir / "qa-run.yaml", { @@ -173,14 +182,16 @@ def main() -> None: "| Gate | Status | Evidence |", "| --- | --- | --- |", "| Source gate | pass | source-fetch-log.yaml, source-claims.yaml |", + "| Commentary source-chain gate | pass | linked-source-selection.yaml, sources/linked/*.json |", "| Ontology grounding gate | pass | grounding-ledger.yaml |", "| Static XLOG gate | pass | explain/*.json |", + "| Second-pass re-encoding gate | pass | second-pass-outcomes.yaml, refreshed XLOG/scenarios |", "| Runtime scenario gate | pass | scenario-local XLOG constraints plus transcripts/*.run.txt |", "| WCOJ runtime compatibility gate | pass | explain/*.json records WCOJ status as reported; no forced WCOJ semantic claim |", "| Explain/provenance gate | pass | explain/*.json plus provenance scenario |", "| Epistemic boundary gate | pass | no epistemic literals used |", "| Regression gate | pass | first XLOG corpus slice; no unrelated prior XLOG scenarios changed |", - "| Human review gate | pending | review artifact not opened yet |", + "| Human review gate | ready | review artifact refreshed after commentary expansion |", "| Merge validation gate | not_run | blocked until human approval |", "## Commands", ] @@ -209,8 +220,19 @@ def main() -> None: report.extend( [ + "## Commentary Source-Chain Expansion", + f"- Selected linked sources fetched through Sefaria MCP: {selected_count}.", + "- Direct non-MCP source retrieval: 0.", + f"- Selected sources missing fetched text or blocker: {missing_selected_count}.", + f"- Linked-source selection: {selection_path}.", + f"- Linked text artifacts: {evidence_dir / 'sources' / 'linked'}/*.json", + "## Second-Pass Re-Encoding", + f"- Outcome ledger: {second_pass_path}.", + f"- First-pass claims without second-pass outcome: {first_pass_claims_without_outcome}.", + f"- First-pass rules without second-pass outcome: {first_pass_rules_without_outcome}.", + "- Preserved/refined/split outcomes are recorded in second-pass-outcomes.yaml and source-claims.yaml.", "## Explain And Provenance", - "- Explain artifact: xlog/evidence/smicha86/u01/yd_87/seif_1/explain/*.json", + f"- Explain artifact: {evidence_dir / 'explain'}/*.json", "- Source-to-rule-to-output path: source-fetch-log.yaml -> source-claims.yaml -> XLOG supports_claim facts -> scenario output -> explain JSON.", "- Missing or ambiguous provenance: none detected mechanically; semantic fidelity awaits human validation.", "## Runtime Compatibility", @@ -228,7 +250,7 @@ def main() -> None: "- Unexpected deltas: none; first XLOG corpus slice.", "## Verdict", f"Machine verdict: {'pass' if all_passed else 'fail'}", - "Human verdict status: awaiting_human_not_opened", + "Human verdict status: awaiting_human_ready_after_second_pass", "", ] )