From 7a8c54e91e938a04c4eca936d9194e1d7553888e Mon Sep 17 00:00:00 2001 From: daniel Date: Mon, 23 Feb 2026 00:06:33 +0000 Subject: [PATCH] Improve Code of Hammurabi: fix duplicate title, remove review queue, enrich with Shamash relief, plunder history, scribal transmission, Louvre source --- .automate/.improve-state.tsv | 1 + .automate/continuous-improve.log | 8 +++ .automate/improve-history.log | 3 + .factbase/factbase.db-shm | Bin 32768 -> 32768 bytes .factbase/factbase.db-wal | Bin 0 -> 65952 bytes legal-codes/code-of-hammurabi.md | 97 ++++++------------------------ logs/mcp-puppeteer-2026-02-23.log | 2 + 7 files changed, 34 insertions(+), 77 deletions(-) diff --git a/.automate/.improve-state.tsv b/.automate/.improve-state.tsv index b0bef85..1796c70 100644 --- a/.automate/.improve-state.tsv +++ b/.automate/.improve-state.tsv @@ -16,3 +16,4 @@ 177c6a 1771804724 229f8a 1771804801 2ac383 1771804961 +2eca19 1771805104 diff --git a/.automate/continuous-improve.log b/.automate/continuous-improve.log index 018e483..5b5983f 100644 --- a/.automate/continuous-improve.log +++ b/.automate/continuous-improve.log @@ -2909,3 +2909,11 @@ To https://gitea.home.everyonce.com/daniel/factbase-ancient-history.git [?25h status: UPDATED | Battle of Gaugamela | changes: Fixed duplicate title heading; enriched with Encyclopaedia Iranica (Badian) scholarship adding astronomical date confirmation, location clarification, Mazaeus detail, lunar eclipse omen, Persian sarissae, unreliable ancient troop numbers note, Persepolis capture date, and new [^3] reference; filed bug for apply_review_answers silent failure +[main ce99401] improve: Battle of Gaugamela + 2 files changed, 497 insertions(+) +[2026-02-23 00:05:04] ✅ Committed: improve: Battle of Gaugamela +[2026-02-23 00:05:04] Done (137s) — UPDATED +[2026-02-23 00:05:09] [11/66] Next up... +[2026-02-23 00:05:09] ━━━ [Code of Hammurabi] (31de03) reviews=0 garbage=0 ━━━ +[2026-02-23 00:05:09] 🧹 Bash cleanup applied +[2026-02-23 00:05:09] 🔍 Enrichment + review pass diff --git a/.automate/improve-history.log b/.automate/improve-history.log index 880a64f..a18cea0 100644 --- a/.automate/improve-history.log +++ b/.automate/improve-history.log @@ -52,3 +52,6 @@ [2026-02-23T00:02:41+00:00] 2ac383 | Ancient Egypt status: UPDATED | Ancient Egypt | changes: fixed duplicate heading; added First Intermediate Period, Second Intermediate Period, Third Intermediate Period, Late Period to Major Periods with temporal tags; added Narmer Palette to Achievements; added Shaw (2000) as [^2] source; filed Vikunja bug #89 for MCP transport closed error duration: 154s +[2026-02-23T00:05:04+00:00] 2eca19 | Battle of Gaugamela + status: UPDATED | Battle of Gaugamela | changes: Fixed duplicate title heading; enriched with Encyclopaedia Iranica (Badian) scholarship adding astronomical date confirmation, location clarification, Mazaeus detail, lunar eclipse omen, Persian sarissae, unreliable ancient troop numbers note, Persepolis capture date, and new [^3] reference; filed bug for apply_review_answers silent failure + duration: 137s diff --git a/.factbase/factbase.db-shm b/.factbase/factbase.db-shm index fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10..b859bf267e0e4c7b92b9751b723c5d09f03a5c47 100644 GIT binary patch delta 299 zcmZo@U}|V!s+V}A%K!pQK+MR%ARqvwt2r4M9zJVpoo(A^@5Jd*Q}o-pW|PGqpUdAR z9+9dZWHtzZ%>9o9z=8}66YDu`fz~p}0kJ#~D*&+~5NoqAFqi`IWFWo?#NU9JiMuCluAGsMhHa7aRF#=7lXJTaA*ci$V E0A&(TU;qFB delta 80 zcmZo@U}|V!;+1%$%K!t66E8}OTChv7nNGgVi7p`mlYpuI4+Il)WHvs?bJ+NR%N_u+ C{S?Ij diff --git a/.factbase/factbase.db-wal b/.factbase/factbase.db-wal index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0cedf8de01d58910f9810d8df689f97d991e4339 100644 GIT binary patch literal 65952 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 # Code of Hammurabi -# Code of Hammurabi - ## Overview The Code of Hammurabi (~1754 BCE) is one of the most complete and well-known ancient legal codes, inscribed on a basalt stele and containing 282 laws governing Babylonian society. @t[~1754 BCE] ## Key Facts -- Date: ~1754 BCE @t[~1754 BCE] -- Issuer: Hammurabi, King of Babylon -- Language: Akkadian (Babylonian dialect) -- Medium: Basalt stele, 2.25 m tall -- Current location: Louvre Museum, Paris (discovered at Susa, 1901) +- Date: ~1754 BCE (Wikipedia/Roth give range 1755–1751 BCE) @t[~1754 BCE] +- Issuer: Hammurabi, sixth king of the First Babylonian Dynasty +- Language: Akkadian (Old Babylonian dialect), written in cuneiform script +- Medium: Black basalt stele, 2.25 m tall (some older sources describe the material as diorite) [^3] +- Current location: Louvre Museum, Paris (discovered at Susa, Iran, 1901–1902) [^3] +- Weight: approximately 4 tons ## Structure -- Prologue: Hammurabi as divinely appointed shepherd of his people -- 282 laws organized by topic +- Prologue: Hammurabi as divinely appointed shepherd of his people; relief at top depicts Hammurabi receiving authority from Shamash, the sun god [^1] +- 282 laws organized by topic, written vertically in cuneiform - Epilogue: Blessings for those who uphold the laws, curses for those who deface the stele [^1] ## Legal Principles -- *Lex talionis*: "An eye for an eye, a tooth for a tooth" (with class-based modifications) +- *Lex talionis*: "An eye for an eye, a tooth for a tooth" (with class-based modifications) [^2] - Three social classes: *awilum* (free), *mushkenum* (dependent), *wardum* (slave) - Covers: Property, trade, family law, labor, personal injury, agriculture - Presumption of innocence in some cases; trial by ordeal in others [^2] +- Prescribed specific penalties for each crime; limited retribution to proportional response + +## Discovery and Transmission +- The stele was taken as plunder to Susa by the Elamite king Shutruk-Nahhunte around 1158 BCE, approximately 600 years after its creation +- Rediscovered by French archaeologists at Susa in 1901–1902 +- The text was copied and studied by Mesopotamian scribes for over a millennium after its creation, attesting to its lasting authority [^4] ## Significance -- Not the earliest code (preceded by Code of Ur-Nammu) but the most complete +- Not the earliest code (preceded by Code of Ur-Nammu, ~2100–2050 BCE) but the longest, best-organized, and best-preserved legal text from the ancient Near East [^4] - Provides detailed picture of Old Babylonian society -- Influenced later Near Eastern legal traditions +- Influenced later Near Eastern legal traditions; parallels noted with the Law of Moses in the Torah [^4] +- Continues to be studied for its influence on modern legal jurisprudence --- [^1]: Roth, M.T. *Law Collections from Mesopotamia and Asia Minor* (1997) [^2]: Driver, G.R. & Miles, J.C. *The Babylonian Laws* (Oxford, 1952–1955) ---- - -## Review Queue - - -- [x] `@q[temporal]` Line 10: "Date: ~1754 BCE" - when was this true? -> 1754 BCE event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. BCE temporal tags not yet supported by factbase. -- [x] `@q[temporal]` Line 11: "Issuer: Hammurabi, King of Babylon" - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 12: "Language: Akkadian (Babylonian dialect)" - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 13: "Medium: Basalt stele, 2.25 m tall" - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 14: "Current location: Louvre Museum, Paris (discovered at Susa, 1901)" - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 17: "Prologue: Hammurabi as divinely appointed shepherd of his people" - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 18: "282 laws organized by topic" - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 19: "Epilogue: Blessings for those who uphold the laws, curses for those who defac..." - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 22: "*Lex talionis*: "An eye for an eye, a tooth for a tooth" (with class-based mo..." - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 23: "Three social classes: *awilum* (free), *mushkenum* (dependent), *wardum* (slave)" - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 24: "Covers: Property, trade, family law, labor, personal injury, agriculture" - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 25: "Presumption of innocence in some cases; trial by ordeal in others [^2]" - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 28: "Not the earliest code (preceded by Code of Ur-Nammu) but the most complete" - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 29: "Provides detailed picture of Old Babylonian society" - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[temporal]` Line 30: "Influenced later Near Eastern legal traditions" - when was this true? -> Historical event. Attested by Roth (1997) [^1]; Driver (1952) [^2]. -- [x] `@q[missing]` Line 10: "Date: ~1754 BCE" - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[missing]` Line 11: "Issuer: Hammurabi, King of Babylon" - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[missing]` Line 12: "Language: Akkadian (Babylonian dialect)" - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[missing]` Line 13: "Medium: Basalt stele, 2.25 m tall" - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[missing]` Line 14: "Current location: Louvre Museum, Paris (discovered at Susa, 1901)" - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[missing]` Line 17: "Prologue: Hammurabi as divinely appointed shepherd of his people" - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[missing]` Line 18: "282 laws organized by topic" - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[missing]` Line 22: "*Lex talionis*: "An eye for an eye, a tooth for a tooth" (with class-based mo..." - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[missing]` Line 23: "Three social classes: *awilum* (free), *mushkenum* (dependent), *wardum* (slave)" - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[missing]` Line 24: "Covers: Property, trade, family law, labor, personal injury, agriculture" - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[missing]` Line 28: "Not the earliest code (preceded by Code of Ur-Nammu) but the most complete" - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[missing]` Line 29: "Provides detailed picture of Old Babylonian society" - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[missing]` Line 30: "Influenced later Near Eastern legal traditions" - what is the source? -> Roth (1997) [^1], Driver & Miles (1952-1955) [^2] -- [x] `@q[stale]` Line 19: "Epilogue: Blessings for those who uphold the laws, curses for those who defac..." - Roth source from 1997 may be outdated, is this still accurate? -> Scholarship remains current. Roth's work on ancient law codes is still authoritative. -- [x] `@q[stale]` Line 25: "Presumption of innocence in some cases; trial by ordeal in others [^2]" - Driver source from 1952 may be outdated, is this still accurate? -> Scholarship remains current. Driver & Miles' work on Babylonian law is still foundational. \ No newline at end of file +[^3]: Louvre Museum. "The Code of Hammurabi." louvre.fr (accessed 2026) +[^4]: Wikipedia contributors. "Code of Hammurabi." *Wikipedia* (accessed 2026-02-23) \ No newline at end of file diff --git a/logs/mcp-puppeteer-2026-02-23.log b/logs/mcp-puppeteer-2026-02-23.log index 3da8652..b9f7f13 100644 --- a/logs/mcp-puppeteer-2026-02-23.log +++ b/logs/mcp-puppeteer-2026-02-23.log @@ -4,3 +4,5 @@ {"level":"info","message":"Starting MCP server","service":"mcp-puppeteer","timestamp":"2026-02-23 00:02:49.390"} {"level":"info","message":"MCP server started successfully","service":"mcp-puppeteer","timestamp":"2026-02-23 00:02:49.393"} {"level":"info","message":"Puppeteer MCP Server closing","service":"mcp-puppeteer","timestamp":"2026-02-23 00:05:02.917"} +{"level":"info","message":"Starting MCP server","service":"mcp-puppeteer","timestamp":"2026-02-23 00:05:12.076"} +{"level":"info","message":"MCP server started successfully","service":"mcp-puppeteer","timestamp":"2026-02-23 00:05:12.078"}