LangGraph structure export — governance-agent-graphs
The actual compiled node graphs — exported directly from each graph's
get_graph().draw_mermaid(), not redrawn by hand. No LLM calls, no
petition, no content — just the wiring. Imperial Chinese and Chumash 'Antap can
each run in either mode: prose deliberation, or real tool-using agents that write
files and run shell commands. Haudenosaunee and Venetian are text-only so far.
Send fan-out)Grand Secretariat routes to any subset of Six Ministries; each Ministry now fans out to 2 subordinate Bureaus (a real historical layer — the Six Ministries had subordinate specialized bureaus beneath them) who each report a narrow finding in parallel. The Ministry synthesizes its Bureaus' reports into one memorial. The Censorate can send any Ministry's synthesis back for revision (bounded to 2 rounds) before the Emperor is ever reached — the Emperor always fires; there is no path that ends without a decision. 23 nodes total, up from the original 9.
---
config:
flowchart:
curve: linear
---
graph TD;
__start__([<p>__start__</p>]):::first
grand_secretariat(grand_secretariat)
personnel__records(personnel__records)
personnel__conduct(personnel__conduct)
synthesize__personnel(synthesize__personnel)
revenue__accounts(revenue__accounts)
revenue__land(revenue__land)
synthesize__revenue(synthesize__revenue)
rites__ceremony(rites__ceremony)
rites__examinations(rites__examinations)
synthesize__rites(synthesize__rites)
war__logistics(war__logistics)
war__garrison(war__garrison)
synthesize__war(synthesize__war)
justice__review(justice__review)
justice__records(justice__records)
synthesize__justice(synthesize__justice)
works__construction(works__construction)
works__waterways(works__waterways)
synthesize__works(synthesize__works)
censorate(censorate)
emperor(emperor)
__end__([<p>__end__</p>]):::last
__start__ --> grand_secretariat;
censorate -.-> emperor;
censorate -.-> synthesize__justice;
censorate -.-> synthesize__personnel;
censorate -.-> synthesize__revenue;
censorate -.-> synthesize__rites;
censorate -.-> synthesize__war;
censorate -.-> synthesize__works;
grand_secretariat -.-> justice__records;
grand_secretariat -.-> justice__review;
grand_secretariat -.-> personnel__conduct;
grand_secretariat -.-> personnel__records;
grand_secretariat -.-> revenue__accounts;
grand_secretariat -.-> revenue__land;
grand_secretariat -.-> rites__ceremony;
grand_secretariat -.-> rites__examinations;
grand_secretariat -.-> war__garrison;
grand_secretariat -.-> war__logistics;
grand_secretariat -.-> works__construction;
grand_secretariat -.-> works__waterways;
justice__records --> synthesize__justice;
justice__review --> synthesize__justice;
personnel__conduct --> synthesize__personnel;
personnel__records --> synthesize__personnel;
revenue__accounts --> synthesize__revenue;
revenue__land --> synthesize__revenue;
rites__ceremony --> synthesize__rites;
rites__examinations --> synthesize__rites;
synthesize__justice --> censorate;
synthesize__personnel --> censorate;
synthesize__revenue --> censorate;
synthesize__rites --> censorate;
synthesize__war --> censorate;
synthesize__works --> censorate;
war__garrison --> synthesize__war;
war__logistics --> synthesize__war;
works__construction --> synthesize__works;
works__waterways --> synthesize__works;
emperor --> __end__;
All Five Nations are polled in parallel every round. The Firekeeper is a process-only
node — it never votes, only checks for unanimity. A split council can trigger a one-time
outside-voice adoption; if unanimity still isn't reached within 3 rounds, the graph ends
at no_consensus — a legitimate terminal state, not an error path.
---
config:
flowchart:
curve: linear
---
graph TD;
__start__([<p>__start__</p>]):::first
mohawk(mohawk)
oneida(oneida)
onondaga(onondaga)
cayuga(cayuga)
seneca(seneca)
firekeeper(firekeeper)
adopt_outside_voice(adopt_outside_voice)
unify(unify)
no_consensus(no_consensus)
__end__([<p>__end__</p>]):::last
__start__ -.-> cayuga;
__start__ -.-> mohawk;
__start__ -.-> oneida;
__start__ -.-> onondaga;
__start__ -.-> seneca;
adopt_outside_voice -.-> cayuga;
adopt_outside_voice -.-> mohawk;
adopt_outside_voice -.-> oneida;
adopt_outside_voice -.-> onondaga;
adopt_outside_voice -.-> seneca;
cayuga --> firekeeper;
firekeeper -.-> adopt_outside_voice;
firekeeper -.-> cayuga;
firekeeper -.-> mohawk;
firekeeper -.-> no_consensus;
firekeeper -.-> oneida;
firekeeper -.-> onondaga;
firekeeper -.-> seneca;
firekeeper -.-> unify;
mohawk --> firekeeper;
oneida --> firekeeper;
onondaga --> firekeeper;
seneca --> firekeeper;
no_consensus --> __end__;
unify --> __end__;
Rialto (outside trade intelligence) and the Doge always fire first, unconditionally. Five patrician voters decide by simple majority; a rejection routes to the Senate for one revision and a second vote. Only a passed vote reaches the Council of Ten, which can still veto on security grounds even after the Council has approved.
---
config:
flowchart:
curve: linear
---
graph TD;
__start__([<p>__start__</p>]):::first
rialto(rialto)
doge(doge)
mercantile(mercantile)
naval(naval)
landed(landed)
clergy(clergy)
popolo(popolo)
tally(tally)
council_of_ten(council_of_ten)
senate_revise(senate_revise)
senate_finalize(senate_finalize)
rejected_final(rejected_final)
vetoed_final(vetoed_final)
__end__([<p>__end__</p>]):::last
__start__ --> rialto;
clergy --> tally;
council_of_ten -.-> senate_finalize;
council_of_ten -.-> vetoed_final;
doge -.-> clergy;
doge -.-> landed;
doge -.-> mercantile;
doge -.-> naval;
doge -.-> popolo;
landed --> tally;
mercantile --> tally;
naval --> tally;
popolo --> tally;
rialto --> doge;
senate_revise -.-> clergy;
senate_revise -.-> landed;
senate_revise -.-> mercantile;
senate_revise -.-> naval;
senate_revise -.-> popolo;
tally -.-> council_of_ten;
tally -.-> rejected_final;
tally -.-> senate_revise;
rejected_final --> __end__;
senate_finalize --> __end__;
vetoed_final --> __end__;
The Alchuklash (astronomer-priest — authority from calculation, not politics) plans shared interfaces up front so up to 4 Villages (real rancherías: Syuxtun, Mishopshno, Mikiw, Helo') can build in parallel with real file-write and shell-execution tools, unsupervised. The paxa — the 'antap's leader, whose authority can exceed any wot's — actually reads the code and runs the tests before approving or forcing revision (bounded to 3 attempts; the last is framed as the paxa replacing the wot outright). 'Altipateswe checks whether one village hoarded scope that belongs to the others and rebalances it. Shan documents every file "born" into the project. 'Alaxlapsh returns to call Kakunupmawa: one last objective test run, and the final report.
---
config:
flowchart:
curve: linear
---
graph TD;
__start__([<p>__start__</p>]):::first
alaxlapsh_plan(alaxlapsh_plan)
syuxtun(syuxtun)
mishopshno(mishopshno)
mikiw(mikiw)
helo(helo)
paxa_review(paxa_review)
altipateswe_rebalance(altipateswe_rebalance)
shan_naming(shan_naming)
kakunupmawa(kakunupmawa)
__end__([<p>__end__</p>]):::last
__start__ --> alaxlapsh_plan;
alaxlapsh_plan -.-> syuxtun;
alaxlapsh_plan -.-> mishopshno;
alaxlapsh_plan -.-> mikiw;
alaxlapsh_plan -.-> helo;
paxa_review -.-> altipateswe_rebalance;
paxa_review -.-> syuxtun;
paxa_review -.-> mishopshno;
paxa_review -.-> mikiw;
paxa_review -.-> helo;
syuxtun --> paxa_review;
mishopshno --> paxa_review;
mikiw --> paxa_review;
helo --> paxa_review;
altipateswe_rebalance --> shan_naming;
shan_naming --> kakunupmawa;
kakunupmawa --> __end__;
Not a graph that answers one question and stops. Seasons pass, the acorn harvest lands or fails, tomols cross the channel or are kept ashore by weather, Hutash and Kakunupmawa redistribute wealth from the richest towns to the hungriest, and disputes flare. The simulation core is plain Python and costs nothing to run; only asking a person a question spends anything. Twenty-one real villages, placed by their historic locations.
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░◇░S'isa░░░░░░░░░░░░░░░░░░░◇░Heqep░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ▄▄▄▄▄▄▄▄░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ▄▄▄▄▄▄▄•▄Xalam░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ · · ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ · · · •▄'Upop▄▄Miciw▄•Qasil▄◇Kuyamu▄◆◆▄Mikiw▄▄▄▄▄▄▄▄Syuxtun░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ · · · · · · · · · · · · · ∙ ·▄▄◆▄Helo'▄▄◆▄▄◇▄Shalawa░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ · · · · · · · · · · · · ·∙ · · · · · · · ▄▄▄◆▄Mishopshno░░░░░░░░░░░░░░░░░░░░ · · · · · · · · · · · · ·∙ · · · · · · · · ·▄◇▄Suku▄▄▄░░░░░░░░░░░░░░░░░░░░░ · · · · · · · · · · · · ·∙ · · · · · · · · · ∙· ▄▄▄▄▄▄▄▄▄▄░░░░░░░░░░░░░░░░░ · · · · · · · · · · · · ∙· · · · · · · · ·∙∙· · · ·▄▄◆▄Shisholop░░░░░░░░ · · · · · · · · · · · · ∙· · · · · · · · ·∙ · · · ·∙∙· ▄▄▄▄░░░░░░░░░░░░░ · · · · · · · · · · · · ∙ · · · · · · · ·∙ · · · ∙∙ · · ▄▄▄▄░░░░░░░░░░░ · · · · · · · · · · · ∙ · · · · · · · ·∙ · · · ∙∙ · · · ▄▄▄▄░░░░░░░░░ · · · · · · · · · · · ∙ · · · · · · · ·∙ · · ∙∙∙· · · · · ▄▄▄▄░░░░░░░ · · · · · · · · · · · ·∙ · · · · · · · ·∙ · · ∙∙ · · · · · · ▄▄▄▄▄▄▄▄▄ · · · · · · · · · · ·∙ · · · · · · · ∙∙ ·░░░∙∙· · · · · · · Muwu▄◇▄▄▄▄▄ · · · · ░░░· · · · · ·∙ · · · · · · ·░░░ ·░░◇░Swaxil ░░░· · · · · · · · · · · · ░░•░Tuqan· · · ░░░· · · · · · ·░░◇░Liyam · · ░░•░'Anyapax· · · · · · · · · · · · · · ░░◇░Silimihi· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
The offices are the real ones. The wot (hereditary chief) keeps the stores that feed visitors, aid the needy, and pay for fiestas, and decides whether trespass is punished by war. The paxa initiates the 'antap, organises ceremony, and chooses new chiefs from the legitimate candidates — authority equal to, sometimes above, the wot's. The 'antap dance and make the music, collect contributions, and point out who has not given enough. Two ksen carry word between villages. The 'alaxlapsh reads the sky to set the calendar — and stands outside the 'antap entirely, holding no village affiliation, travelling freely, and as often a woman as a man.
Where the numbers come from. A tomol holds ~319 L, about 214 kg of whole acorns yielding ~127 kg processed (Fauvelle). Fauvelle's actual conclusion is that bulk acorn shipment to the islands was not routine — so in this model islanders live mostly off the sea and trade 'alchum for the margin, which is why a stormy channel pinches them but does not starve them. Contact population 18,000–20,000 with the Goleta Slough cluster near 2,000 (Gamble). Bead money is Olivella biplicata worked with chert microdrills on the Northern Channel Islands (Arnold & Munns).
A caution carried from the source. Dr. John R. Johnson (Santa Barbara Museum of Natural History), interviewed for this project, notes that nearly everything known about the 'antap descends from a single narrator — Fernando Librado — to J. P. Harrington: "you have to take some of this with a grain of salt." The simulation's people are instructed not to invent ceremonies or offices beyond what the record supports. This is a model of relationships, not a reconstruction of any real village's ledger. The Chumash are a living people.