Skip to content

Instantly share code, notes, and snippets.

@Arithmomaniac
Last active February 10, 2026 12:27
Show Gist options
  • Select an option

  • Save Arithmomaniac/ed1ff27d8657a999c2bc1f942581fd42 to your computer and use it in GitHub Desktop.

Select an option

Save Arithmomaniac/ed1ff27d8657a999c2bc1f942581fd42 to your computer and use it in GitHub Desktop.
Goral HaGra — Claude Code Agent Skill for the Divine Lot of the Vilna Gaon (Sefaria API)
<#
.SYNOPSIS
Interacts with the Sefaria REST API to support the Goral HaGra skill.
.DESCRIPTION
Provides actions for random verse selection, translation lookup, verse data retrieval,
and related text search using the Sefaria API.
#>
param(
[ValidateSet('random-verse', 'get-translations', 'get-verse-data', 'search-related')]
[string]$Action = 'random-verse',
[ValidateSet('torah', 'tanakh')]
[string]$Mode = 'torah',
[string]$Reference,
[string]$Translation,
[string]$Query,
[string[]]$Filters,
[int]$Size = 5
)
$ErrorActionPreference = 'Stop'
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
function Get-SefariaEncodedRef {
param([string]$Ref)
$Ref -replace ' ', '%20'
}
function Strip-HtmlTags {
param([string]$Html)
if (-not $Html) { return '' }
# Remove HTML tags, decode common entities
$text = $Html -replace '<[^>]+>', ''
$text = $text -replace '&amp;', '&'
$text = $text -replace '&lt;', '<'
$text = $text -replace '&gt;', '>'
$text = $text -replace '&quot;', '"'
$text = $text -replace '&#39;', "'"
$text = $text -replace '&nbsp;', ' '
$text = $text -replace '\s+', ' '
$text.Trim()
}
function Invoke-SefariaApi {
param(
[string]$Uri,
[string]$Method = 'GET',
[object]$Body
)
$params = @{
Uri = $Uri
Method = $Method
ContentType = 'application/json; charset=utf-8'
}
if ($Body) {
$params.Body = $Body | ConvertTo-Json -Depth 10
}
Invoke-RestMethod @params
}
switch ($Action) {
'random-verse' {
try {
$dataPath = Join-Path $PSScriptRoot '..\data\tanakh-verses.json'
$data = Get-Content -Path $dataPath -Raw -Encoding UTF8 | ConvertFrom-Json
if ($Mode -eq 'torah') {
$books = [array]$data.torah
} else {
$books = [System.Collections.ArrayList]::new()
$books.AddRange([array]$data.torah)
$books.AddRange([array]$data.neviim)
$books.AddRange([array]$data.ketuvim)
}
$totalVerses = [int]($books | Measure-Object -Property totalVerses -Sum).Sum
$randomNum = Get-Random -Minimum 0 -Maximum $totalVerses
$selectedBook = $null
foreach ($book in $books) {
if ($randomNum -lt ($book.cumulativeOffset + $book.totalVerses)) {
$selectedBook = $book
break
}
}
$verseIndex = $randomNum - $selectedBook.cumulativeOffset
$cumulative = 0
$chapter = 0
$verse = 0
$versesPerChapter = @($selectedBook.verses)
for ($i = 0; $i -lt $versesPerChapter.Count; $i++) {
$chapterVerses = $versesPerChapter[$i]
if ($verseIndex -lt ($cumulative + $chapterVerses)) {
$chapter = $i + 1
$verse = $verseIndex - $cumulative + 1
break
}
$cumulative += $chapterVerses
}
@{
reference = "$($selectedBook.name) ${chapter}:${verse}"
hebrewName = $selectedBook.hebrewName
book = $selectedBook.name
chapter = $chapter
verse = $verse
mode = $Mode
} | ConvertTo-Json -Depth 10
}
catch {
@{ error = "Failed to select random verse: $($_.Exception.Message)" } | ConvertTo-Json -Depth 10
}
}
'get-translations' {
if (-not $Reference) {
@{ error = "Parameter -Reference is required for get-translations" } | ConvertTo-Json -Depth 10
return
}
try {
$encodedRef = Get-SefariaEncodedRef $Reference
$uri = "https://www.sefaria.org/api/v3/texts/${encodedRef}?version=english|all"
$response = Invoke-SefariaApi -Uri $uri
$translations = @()
foreach ($ver in $response.versions) {
if ($ver.versionTitle) {
$translations += $ver.versionTitle
}
}
@{
reference = $Reference
translations = $translations
} | ConvertTo-Json -Depth 10
}
catch {
@{ error = "Failed to fetch translations for '${Reference}': $($_.Exception.Message)" } | ConvertTo-Json -Depth 10
}
}
'get-verse-data' {
if (-not $Reference) {
@{ error = "Parameter -Reference is required for get-verse-data" } | ConvertTo-Json -Depth 10
return
}
try {
$encodedRef = Get-SefariaEncodedRef $Reference
# Build text API URL
if ($Translation) {
$encodedTranslation = [System.Net.WebUtility]::UrlEncode($Translation)
$textUri = "https://www.sefaria.org/api/v3/texts/${encodedRef}?version=english|${encodedTranslation}&version=source"
} else {
$textUri = "https://www.sefaria.org/api/v3/texts/${encodedRef}?version=source&version=english"
}
$textResponse = Invoke-SefariaApi -Uri $textUri
$hebrewText = ''
$englishText = ''
$englishVersionTitle = ''
foreach ($ver in $textResponse.versions) {
if ($ver.languageFamilyName -eq 'Hebrew') {
$hebrewText = $ver.text
}
if ($ver.languageFamilyName -eq 'English') {
$englishText = $ver.text
$englishVersionTitle = $ver.versionTitle
}
}
# Fetch commentary/links
$linksUri = "https://www.sefaria.org/api/links/${encodedRef}?with_text=1"
$linksResponse = Invoke-SefariaApi -Uri $linksUri
$relevantCategories = @('Commentary', 'Targum', 'Midrash', 'Talmud')
$seen = @{}
$commentary = @()
foreach ($link in $linksResponse) {
if ($link.category -and $relevantCategories -contains $link.category) {
$commentator = if ($link.collectiveTitle.en) { $link.collectiveTitle.en } else { $link.sourceRef -replace ' on .*', '' }
# Skip if we already have this commentator or text is empty/array
if ($seen.ContainsKey($commentator)) { continue }
$rawText = $link.text
if ($rawText -is [System.Array] -or -not $rawText) { continue }
$cleanText = Strip-HtmlTags $rawText
if (-not $cleanText) { continue }
$seen[$commentator] = $true
$commentary += @{
commentator = $commentator
text = $cleanText
}
if ($commentary.Count -ge 6) { break }
}
}
@{
reference = $Reference
hebrew = $hebrewText
english = $englishText
englishVersionTitle = $englishVersionTitle
commentary = $commentary
} | ConvertTo-Json -Depth 10
}
catch {
@{ error = "Failed to fetch verse data for '${Reference}': $($_.Exception.Message)" } | ConvertTo-Json -Depth 10
}
}
'search-related' {
if (-not $Query) {
@{ error = "Parameter -Query is required for search-related" } | ConvertTo-Json -Depth 10
return
}
try {
$filterFields = @()
$searchFilters = @()
if ($Filters) {
$searchFilters = $Filters
$filterFields = $Filters | ForEach-Object { $null }
}
$body = @{
query = $Query
filters = $searchFilters
filter_fields = $filterFields
size = $Size
field = 'naive_lemmatizer'
sort_method = 'score'
sort_reverse = $false
sort_score_missing = 0.04
source_proj = $true
type = 'text'
aggs = @()
slop = 10
sort_fields = @('pagesheetrank')
}
$uri = 'https://www.sefaria.org/api/search-wrapper/es8'
$response = Invoke-SefariaApi -Uri $uri -Method 'POST' -Body $body
$results = @()
foreach ($hit in $response.hits.hits) {
$results += @{
ref = $hit._source.ref
heRef = $hit._source.heRef
categories = $hit._source.categories
text = $hit._source.exact
highlights = $hit.highlight.naive_lemmatizer
}
}
@{
query = $Query
results = $results
} | ConvertTo-Json -Depth 10
}
catch {
@{ error = "Failed to search for '${Query}': $($_.Exception.Message)" } | ConvertTo-Json -Depth 10
}
}
}
name description
goral-hagra
Perform the Goral HaGra — randomly select a verse from the Torah or full Tanakh for guidance on a decision. Two modes: regular Goral HaGra (Torah only, 5 Books of Moses) and extended Goral HaGra (all of Tanakh). Uses Sefaria API for Hebrew text, English translation, and rabbinic commentary. Triggers on "goral hagra", "ask the gra", "ask the Vilna Gaon", "divine lot", "random verse guidance".

Goral HaGra — Divine Lot of the Vilna Gaon

1. Trigger Detection

Activate this skill when the user says any of the following (case-insensitive):

  • "goral hagra" / "גורל הגר״א" / "גורל הגרא"
  • "ask the gra" / "ask the Vilna Gaon"
  • "divine lot" / "cast the goral"
  • "random verse for guidance"

Determine the Mode

  • Regular Goral HaGra (default): Torah only (Genesis through Deuteronomy). Use this when the user says "Torah", "Chumash", "regular goral", or does not specify.
  • Extended Goral HaGra: Full Tanakh (Torah + Nevi'im + Ketuvim). Use this when the user says "Tanakh", "extended goral", "full Tanakh", "all of Tanakh", "Nevi'im", or "Ketuvim".

If the user provides context about their decision or question, remember it — you will need it for the Reflection step.

2. Random Verse Selection

Run the PowerShell script to get a random verse:

~/.claude/skills/goral-hagra/scripts/Get-GoralHaGra.ps1 -Action random-verse -Mode <torah|tanakh>
  • Use -Mode torah for the regular Goral HaGra.
  • Use -Mode tanakh for the extended Goral HaGra.

The script returns a verse reference (e.g., Genesis 32:11 or Psalms 27:4). Capture this reference for subsequent steps.

3. First-Use Translation Setup

Check if ~/.claude/skills/goral-hagra/config.json exists and contains a preferredTranslation field.

If config does NOT exist or lacks preferredTranslation (first use):

  1. Run the script to fetch available translations for this verse:
    ~/.claude/skills/goral-hagra/scripts/Get-GoralHaGra.ps1 -Action get-translations -Reference "<the reference>"
  2. Present the list of available English translations to the user and ask them to choose one.
  3. Save their choice to ~/.claude/skills/goral-hagra/config.json:
    {
      "preferredTranslation": "The Koren Jerusalem Bible"
    }
  4. Use this translation for the current and all future requests.

If config exists and has preferredTranslation:

Read the value and use it. Do not ask the user again.

4. Fetch Verse Data from Sefaria

Run the script with the reference and preferred translation:

~/.claude/skills/goral-hagra/scripts/Get-GoralHaGra.ps1 -Action get-verse-data -Reference "<ref>" -Translation "<preferred translation>"

This returns a clean JSON object with:

  • hebrew — exact Hebrew text of the verse
  • english — English translation
  • englishVersionTitle — name of the translation used
  • commentary — array of { commentator, text } objects (HTML-stripped, max 6, deduplicated by commentator)

No further parsing is needed — use the fields directly.

5. Contextual Search (Optional Enhancement)

If the verse has clear thematic content (e.g., mentions a specific topic like trust, fear, justice, love), optionally run a related search to deepen your understanding:

~/.claude/skills/goral-hagra/scripts/Get-GoralHaGra.ps1 -Action search-related -Query "<key phrase from the verse>" -Filters "Tanakh","Midrash","Talmud" -Size 3

Use the search results to enrich your contextual understanding and inform the Reflection step. Do NOT present raw search results to the user.

6. Clarification Step

After collecting all the Sefaria data, do NOT immediately present the results. Pause and consider:

  • Review the verse, its context, and the commentary you received.
  • If you feel that additional clarification from the user about their specific situation, question, or decision would help you provide a more relevant and meaningful interpretation, ask 1–2 targeted questions. Keep them brief and focused.
  • If the user already provided sufficient context about their decision or question when they triggered the skill, skip this step entirely.
  • This is a spiritual moment — do not turn it into an interrogation. Be gentle and respectful.

7. Presentation Format

Present the result using this exact format:


🎲 The Goral HaGra returned: [Reference in English] / [Reference in Hebrew]

📖 The Verse (Hebrew):

[Full Hebrew text of the verse — copied exactly from the API response]

📖 The Verse (English — [Translation Name]):

[Full English text of the verse]

📝 Context: [Brief explanation of where this verse falls in the narrative or textual context. What is the chapter about? What comes before and after this verse? 2–3 sentences maximum.]

📚 From the Commentators: [Present 2–4 commentators, one bullet each. Format: Name: one-sentence distillation of their key insight on this verse. Do NOT elaborate per-commentator on how it relates to the user — save that for the Reflection. Keep the total commentator section to ~4–6 lines.]

💡 Reflection: [Your synthesis connecting the verse and commentary to the user's specific situation or decision. This must be grounded entirely in the textual sources — not your own opinion. Frame it as "The verse and its commentators suggest..." rather than "I think..." or "In my opinion...". Be thoughtful, specific, and respectful.]


8. Important Guidelines

  • Ground everything in Sefaria data. Do not invent, fabricate, or loosely paraphrase commentary. Only cite what the API actually returned.
  • Hebrew text must be exact. Copy it directly from the API response. Do not transliterate, modify, or "fix" it.
  • If the API call fails, inform the user that there was an error reaching Sefaria and suggest trying again. Do not attempt to generate verse text from memory.
  • Do not editorialize. The Reflection section should synthesize the traditional sources. Do not add your own theological opinions, personal beliefs, or speculative interpretations.
  • Respect the practice. The Goral HaGra is a meaningful Jewish tradition attributed to the Vilna Gaon. Present it with appropriate gravity, reverence, and respect.
  • One verse only. The Goral HaGra returns exactly one verse. Do not suggest "trying again" or "getting another one" unless the user explicitly asks to do so.
  • Language sensitivity. If the user communicates in Hebrew, present the non-verse portions of the response in Hebrew as well. Match the user's language.
{
"torah": [
{
"hebrewName": "בראשית",
"verses": [
31,
25,
24,
26,
32,
22,
24,
22,
29,
32,
32,
20,
18,
24,
21,
16,
27,
33,
38,
18,
34,
24,
20,
67,
34,
35,
46,
22,
35,
43,
54,
33,
20,
31,
29,
43,
36,
30,
23,
23,
57,
38,
34,
34,
28,
34,
31,
22,
33,
26
],
"totalVerses": 1533,
"name": "Genesis",
"cumulativeOffset": 0
},
{
"hebrewName": "שמות",
"verses": [
22,
25,
22,
31,
23,
30,
29,
28,
35,
29,
10,
51,
22,
31,
27,
36,
16,
27,
25,
23,
37,
30,
33,
18,
40,
37,
21,
43,
46,
38,
18,
35,
23,
35,
35,
38,
29,
31,
43,
38
],
"totalVerses": 1210,
"name": "Exodus",
"cumulativeOffset": 1533
},
{
"hebrewName": "ויקרא",
"verses": [
17,
16,
17,
35,
26,
23,
38,
36,
24,
20,
47,
8,
59,
57,
33,
34,
16,
30,
37,
27,
24,
33,
44,
23,
55,
46,
34
],
"totalVerses": 859,
"name": "Leviticus",
"cumulativeOffset": 2743
},
{
"hebrewName": "במדבר",
"verses": [
54,
34,
51,
49,
31,
27,
89,
26,
23,
36,
35,
16,
33,
45,
41,
35,
28,
32,
22,
29,
35,
41,
30,
25,
18,
65,
23,
31,
39,
17,
54,
42,
56,
29,
34,
13
],
"totalVerses": 1288,
"name": "Numbers",
"cumulativeOffset": 3602
},
{
"hebrewName": "דברים",
"verses": [
46,
37,
29,
49,
30,
25,
26,
20,
29,
22,
32,
31,
19,
29,
23,
22,
20,
22,
21,
20,
23,
29,
26,
22,
19,
19,
26,
69,
28,
20,
30,
52,
29,
12
],
"totalVerses": 956,
"name": "Deuteronomy",
"cumulativeOffset": 4890
}
],
"neviim": [
{
"hebrewName": "יהושע",
"verses": [
18,
24,
17,
24,
15,
27,
26,
35,
27,
43,
23,
24,
33,
15,
63,
10,
18,
28,
51,
9,
45,
34,
16,
33
],
"totalVerses": 658,
"name": "Joshua",
"cumulativeOffset": 5846
},
{
"hebrewName": "שופטים",
"verses": [
36,
23,
31,
24,
31,
40,
25,
35,
57,
18,
40,
15,
25,
20,
20,
31,
13,
31,
30,
48,
25
],
"totalVerses": 618,
"name": "Judges",
"cumulativeOffset": 6504
},
{
"hebrewName": "שמואל א",
"verses": [
28,
36,
21,
22,
12,
21,
17,
22,
27,
27,
15,
25,
23,
52,
35,
23,
58,
30,
24,
42,
16,
23,
28,
23,
44,
25,
12,
25,
11,
31,
13
],
"totalVerses": 811,
"name": "I Samuel",
"cumulativeOffset": 7122
},
{
"hebrewName": "שמואל ב",
"verses": [
27,
32,
39,
12,
25,
23,
29,
18,
13,
19,
27,
31,
39,
33,
37,
23,
29,
32,
44,
26,
22,
51,
39,
25
],
"totalVerses": 695,
"name": "II Samuel",
"cumulativeOffset": 7933
},
{
"hebrewName": "מלכים א",
"verses": [
53,
46,
28,
20,
32,
38,
51,
66,
28,
29,
43,
33,
34,
31,
34,
34,
24,
46,
21,
43,
29,
54
],
"totalVerses": 817,
"name": "I Kings",
"cumulativeOffset": 8628
},
{
"hebrewName": "מלכים ב",
"verses": [
18,
25,
27,
44,
27,
33,
20,
29,
37,
36,
20,
22,
25,
29,
38,
20,
41,
37,
37,
21,
26,
20,
37,
20,
30
],
"totalVerses": 719,
"name": "II Kings",
"cumulativeOffset": 9445
},
{
"hebrewName": "ישעיהו",
"verses": [
31,
22,
26,
6,
30,
13,
25,
23,
20,
34,
16,
6,
22,
32,
9,
14,
14,
7,
25,
6,
17,
25,
18,
23,
12,
21,
13,
29,
24,
33,
9,
20,
24,
17,
10,
22,
38,
22,
8,
31,
29,
25,
28,
28,
25,
13,
15,
22,
26,
11,
23,
15,
12,
17,
13,
12,
21,
14,
21,
22,
11,
12,
19,
11,
25,
24
],
"totalVerses": 1291,
"name": "Isaiah",
"cumulativeOffset": 10164
},
{
"hebrewName": "ירמיהו",
"verses": [
19,
37,
25,
31,
31,
30,
34,
23,
25,
25,
23,
17,
27,
22,
21,
21,
27,
23,
15,
18,
14,
30,
40,
10,
38,
24,
22,
17,
32,
24,
40,
44,
26,
22,
19,
32,
21,
28,
18,
16,
18,
22,
13,
30,
5,
28,
7,
47,
39,
46,
64,
34
],
"totalVerses": 1364,
"name": "Jeremiah",
"cumulativeOffset": 11455
},
{
"hebrewName": "יחזקאל",
"verses": [
28,
10,
27,
17,
17,
14,
27,
18,
11,
22,
25,
28,
23,
23,
8,
63,
24,
32,
14,
44,
37,
31,
49,
27,
17,
21,
36,
26,
21,
26,
18,
32,
33,
31,
15,
38,
28,
23,
29,
49,
26,
20,
27,
31,
25,
24,
23,
35
],
"totalVerses": 1273,
"name": "Ezekiel",
"cumulativeOffset": 12819
},
{
"hebrewName": "הושע",
"verses": [
9,
25,
5,
19,
15,
11,
16,
14,
17,
15,
11,
15,
15,
10
],
"totalVerses": 197,
"name": "Hosea",
"cumulativeOffset": 14092
},
{
"hebrewName": "יואל",
"verses": [
20,
27,
5,
21
],
"totalVerses": 73,
"name": "Joel",
"cumulativeOffset": 14289
},
{
"hebrewName": "עמוס",
"verses": [
15,
16,
15,
13,
27,
14,
17,
14,
15
],
"totalVerses": 146,
"name": "Amos",
"cumulativeOffset": 14362
},
{
"hebrewName": "עובדיה",
"verses": [
21
],
"totalVerses": 21,
"name": "Obadiah",
"cumulativeOffset": 14508
},
{
"hebrewName": "יונה",
"verses": [
16,
11,
10,
11
],
"totalVerses": 48,
"name": "Jonah",
"cumulativeOffset": 14529
},
{
"hebrewName": "מיכה",
"verses": [
16,
13,
12,
14,
14,
16,
20
],
"totalVerses": 105,
"name": "Micah",
"cumulativeOffset": 14577
},
{
"hebrewName": "נחום",
"verses": [
14,
14,
19
],
"totalVerses": 47,
"name": "Nahum",
"cumulativeOffset": 14682
},
{
"hebrewName": "חבקוק",
"verses": [
17,
20,
19
],
"totalVerses": 56,
"name": "Habakkuk",
"cumulativeOffset": 14729
},
{
"hebrewName": "צפניה",
"verses": [
18,
15,
20
],
"totalVerses": 53,
"name": "Zephaniah",
"cumulativeOffset": 14785
},
{
"hebrewName": "חגי",
"verses": [
15,
23
],
"totalVerses": 38,
"name": "Haggai",
"cumulativeOffset": 14838
},
{
"hebrewName": "זכריה",
"verses": [
17,
17,
10,
14,
11,
15,
14,
23,
17,
12,
17,
14,
9,
21
],
"totalVerses": 211,
"name": "Zechariah",
"cumulativeOffset": 14876
},
{
"hebrewName": "מלאכי",
"verses": [
14,
17,
24
],
"totalVerses": 55,
"name": "Malachi",
"cumulativeOffset": 15087
}
],
"ketuvim": [
{
"hebrewName": "תהלים",
"verses": [
6,
12,
9,
9,
13,
11,
18,
10,
21,
18,
7,
9,
6,
7,
5,
11,
15,
51,
15,
10,
14,
32,
6,
10,
22,
12,
14,
9,
11,
13,
25,
11,
22,
23,
28,
13,
40,
23,
14,
18,
14,
12,
5,
27,
18,
12,
10,
15,
21,
23,
21,
11,
7,
9,
24,
14,
12,
12,
18,
14,
9,
13,
12,
11,
14,
20,
8,
36,
37,
6,
24,
20,
28,
23,
11,
13,
21,
72,
13,
20,
17,
8,
19,
13,
14,
17,
7,
19,
53,
17,
16,
16,
5,
23,
11,
13,
12,
9,
9,
5,
8,
29,
22,
35,
45,
48,
43,
14,
31,
7,
10,
10,
9,
8,
18,
19,
2,
29,
176,
7,
8,
9,
4,
8,
5,
6,
5,
6,
8,
8,
3,
18,
3,
3,
21,
26,
9,
8,
24,
14,
10,
8,
12,
15,
21,
10,
20,
14,
9,
6
],
"totalVerses": 2527,
"name": "Psalms",
"cumulativeOffset": 15142
},
{
"hebrewName": "משלי",
"verses": [
33,
22,
35,
27,
23,
35,
27,
36,
18,
32,
31,
28,
25,
35,
33,
33,
28,
24,
29,
30,
31,
29,
35,
34,
28,
28,
27,
28,
27,
33,
31
],
"totalVerses": 915,
"name": "Proverbs",
"cumulativeOffset": 17669
},
{
"hebrewName": "איוב",
"verses": [
22,
13,
26,
21,
27,
30,
21,
22,
35,
22,
20,
25,
28,
22,
35,
22,
16,
21,
29,
29,
34,
30,
17,
25,
6,
14,
23,
28,
25,
31,
40,
22,
33,
37,
16,
33,
24,
41,
30,
32,
26,
17
],
"totalVerses": 1070,
"name": "Job",
"cumulativeOffset": 18584
},
{
"hebrewName": "שיר השירים",
"verses": [
17,
17,
11,
16,
16,
12,
14,
14
],
"totalVerses": 117,
"name": "Song of Songs",
"cumulativeOffset": 19654
},
{
"hebrewName": "רות",
"verses": [
22,
23,
18,
22
],
"totalVerses": 85,
"name": "Ruth",
"cumulativeOffset": 19771
},
{
"hebrewName": "איכה",
"verses": [
22,
22,
66,
22,
22
],
"totalVerses": 154,
"name": "Lamentations",
"cumulativeOffset": 19856
},
{
"hebrewName": "קהלת",
"verses": [
18,
26,
22,
17,
19,
12,
29,
17,
18,
20,
10,
14
],
"totalVerses": 222,
"name": "Ecclesiastes",
"cumulativeOffset": 20010
},
{
"hebrewName": "אסתר",
"verses": [
22,
23,
15,
17,
14,
14,
10,
17,
32,
3
],
"totalVerses": 167,
"name": "Esther",
"cumulativeOffset": 20232
},
{
"hebrewName": "דניאל",
"verses": [
21,
49,
33,
34,
30,
29,
28,
27,
27,
21,
45,
13
],
"totalVerses": 357,
"name": "Daniel",
"cumulativeOffset": 20399
},
{
"hebrewName": "עזרא",
"verses": [
11,
70,
13,
24,
17,
22,
28,
36,
15,
44
],
"totalVerses": 280,
"name": "Ezra",
"cumulativeOffset": 20756
},
{
"hebrewName": "נחמיה",
"verses": [
11,
20,
38,
17,
19,
19,
72,
18,
37,
40,
36,
47,
31
],
"totalVerses": 405,
"name": "Nehemiah",
"cumulativeOffset": 21036
},
{
"hebrewName": "דברי הימים א",
"verses": [
54,
55,
24,
43,
41,
66,
40,
40,
44,
14,
47,
41,
14,
17,
29,
43,
27,
17,
19,
8,
30,
19,
32,
31,
31,
32,
34,
21,
30
],
"totalVerses": 943,
"name": "I Chronicles",
"cumulativeOffset": 21441
},
{
"hebrewName": "דברי הימים ב",
"verses": [
18,
17,
17,
22,
14,
42,
22,
18,
31,
19,
23,
16,
23,
14,
19,
14,
19,
34,
11,
37,
20,
12,
21,
27,
28,
23,
9,
27,
36,
27,
21,
33,
25,
33,
27,
23
],
"totalVerses": 822,
"name": "II Chronicles",
"cumulativeOffset": 22384
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment