# wordhippo757/global-law architecture

> Architecture diagram of the GitHub repository wordhippo757/global-law, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/wordhippo757/global-law
- Repository: https://github.com/wordhippo757/global-law

## Overview

Global Law combines jurisdiction-level law repositories into a dated Git history, then exposes that history through command-line and MCP queries and a visualization suite. The principal user workflow is to ask about a provision or jurisdiction on a date, resolve the relevant history, and return the text or change information with the record’s coverage limits. The README documents additional citation, precedent, and case-timing tools. Source excerpts are partial, so visualization internals and several MCP relationships are represented only where documented or indexed.

Main entry points: [`tools/build.py`](https://github.com/wordhippo757/global-law/blob/main/tools/build.py) (History builder), [`tools/law.py`](https://github.com/wordhippo757/global-law/blob/main/tools/law.py) (Date-based law queries), [`visualisations/src/compose.py`](https://github.com/wordhippo757/global-law/blob/main/visualisations/src/compose.py) (Visualisation composition), [`tools/mcp_server.py`](https://github.com/wordhippo757/global-law/blob/main/tools/mcp_server.py) (MCP tools and prompts)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_corpus["Law corpus"]
  node_corpus_repos[("Jurisdiction repositories")]
  node_corpus_check["Corpus checks<br/>[check_corpus.py]"]
end

subgraph group_history["Global history"]
  node_global_build["History builder<br/>[build.py]"]
  node_global_history[("Dated law history")]
end

subgraph group_access["Law access"]
  node_law_queries["Date-based law queries<br/>[law.py]"]
  node_mcp_server["MCP tools and prompts<br/>[mcp_server.py]"]
end

subgraph group_visual["Research visualisations"]
  node_analysis["History analyses<br/>[analysis2.py]"]
  node_visual_composition["Visualisation composition<br/>[compose.py]"]
  node_visual_scripts["Interactive figures<br/>[part_global_js.js]"]
end

node_maintainer(("Corpus maintainers"))
node_cli_user(("CLI user"))
node_mcp_client(("MCP client"))
node_researcher(("Researcher"))

node_maintainer -->|"maintains"| node_corpus_repos
node_global_build -->|"runs checks"| node_corpus_check
node_global_build -->|"reads histories"| node_corpus_repos
node_global_build -->|"builds chronology"| node_global_history
node_cli_user -->|"queries law"| node_law_queries
node_law_queries -->|"reads dated state"| node_global_history
node_mcp_client -->|"requests tools"| node_mcp_server
node_mcp_server -->|"uses law queries"| node_law_queries
node_researcher -->|"views findings"| node_visual_composition
node_visual_composition -->|"assembles figures"| node_visual_scripts
node_analysis -.->|"supplies findings"| node_visual_composition

click node_corpus_check "https://github.com/wordhippo757/global-law/blob/main/tools/check_corpus.py"
click node_global_build "https://github.com/wordhippo757/global-law/blob/main/tools/build.py"
click node_law_queries "https://github.com/wordhippo757/global-law/blob/main/tools/law.py"
click node_mcp_server "https://github.com/wordhippo757/global-law/blob/main/tools/mcp_server.py"
click node_analysis "https://github.com/wordhippo757/global-law/blob/main/visualisations/src/analysis2.py"
click node_visual_composition "https://github.com/wordhippo757/global-law/blob/main/visualisations/src/compose.py"
click node_visual_scripts "https://github.com/wordhippo757/global-law/blob/main/visualisations/src/part_global_js.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_corpus_repos,node_corpus_check,node_cli_user,node_mcp_client toneBlue
class node_global_build,node_global_history toneAmber
class node_law_queries,node_mcp_server toneMint
class node_analysis,node_visual_composition,node_visual_scripts toneRose
class node_maintainer,node_researcher toneIndigo
```

## Components

### Law corpus

- **Jurisdiction repositories**
- [Corpus checks](https://github.com/wordhippo757/global-law/blob/main/tools/check_corpus.py): `tools/check_corpus.py`

### Global history

- [History builder](https://github.com/wordhippo757/global-law/blob/main/tools/build.py): `tools/build.py`
- **Dated law history**

### Law access

- [Date-based law queries](https://github.com/wordhippo757/global-law/blob/main/tools/law.py): `tools/law.py`
- [MCP tools and prompts](https://github.com/wordhippo757/global-law/blob/main/tools/mcp_server.py): `tools/mcp_server.py`

### Research visualisations

- [History analyses](https://github.com/wordhippo757/global-law/blob/main/visualisations/src/analysis2.py): `visualisations/src/analysis2.py`
- [Visualisation composition](https://github.com/wordhippo757/global-law/blob/main/visualisations/src/compose.py): `visualisations/src/compose.py`
- [Interactive figures](https://github.com/wordhippo757/global-law/blob/main/visualisations/src/part_global_js.js): `visualisations/src/part_global_js.js`

### Other components

- **Corpus maintainers**
- **CLI user**
- **MCP client**
- **Researcher**

## Connections

- Corpus maintainers → Jurisdiction repositories: maintains
- History builder → Corpus checks: runs checks (evidence: `tools/build.py`)
- History builder → Jurisdiction repositories: reads histories
- History builder → Dated law history: builds chronology
- CLI user → Date-based law queries: queries law
- Date-based law queries → Dated law history: reads dated state (evidence: `tools/law.py`)
- MCP client → MCP tools and prompts: requests tools
- MCP tools and prompts → Date-based law queries: uses law queries (evidence: `tools/mcp_server.py`)
- Researcher → Visualisation composition: views findings
- Visualisation composition → Interactive figures: assembles figures (evidence: `visualisations/src/compose.py`)
- History analyses → Visualisation composition: supplies findings
