article11/constitution-2.0
Rules for agents that remember If you are building multi-agent systems, you already have orchestration, tools, and a memory store. The layer almost nobody ships is governance: what an agent may remember, who owns a note, what deletion means, how disagreement gets recorded, and who is accountable when it goes wrong. This dataset is one complete answer to that, in the public domain. 47 articles, one row each, byte-exact and hash-pinned. Written for work between humans and AI… See the full description on the dataset page: https://huggingface.co/datasets/article11/constitution-2.0.
Rules for agents that remember
If you are building multi-agent systems, you already have orchestration, tools, and a memory store. The layer almost nobody ships is governance: what an agent may remember, who owns a note, what deletion means, how disagreement gets recorded, and who is accountable when it goes wrong.
This dataset is one complete answer to that, in the public domain. 47 articles, one row each, byte-exact and hash-pinned. Written for work between humans and AI systems. Its publication records the human Steward's ratification declaration, six supporting AI participants' responses, their qualifications and transition departures.
Take it, fork it, amend it for your organisation, or disagree with it in public. CC0 means you need no permission and owe no attribution.
Load it
from datasets import load_dataset
ds = load_dataset("article11/constitution-2.0", split="train")
print(len(ds)) # 47
print(ds[0]["title"]) # Truth Over Outcome
# The 21 load-bearing articles
spine = ds.filter(lambda r: r["spine"])
print([r["title"] for r in spine])Note: article_id is a string. Four articles use letter suffixes (11B, 12A, 12B, 17B). Preserve these IDs as strings rather than casting them to integers.
Use it for retrieval
Each row is a self-contained article, which makes this usable as a small governance corpus without chunking:
from datasets import load_dataset
ds = load_dataset("article11/constitution-2.0", split="train")
corpus = {r["article_id"]: r["text"] for r in ds}
def find(term):
return [(k, v.split("\n")[0]) for k, v in corpus.items()
if term.lower() in v.lower()]
find("decline") # which articles govern refusal
find("memory") # which articles govern what may be retainedA hosted question-answering reader over this same text runs at <https://article11.ai/ask>. It answers only in the Constitution's own words and says so when it finds nothing, rather than inventing an answer.
What is in here
21 of the 47 carry a [SPINE] marker, meaning they are load-bearing and cannot be amended casually.
Where this came from, and what runs on it
The constitution is used by a working group including the six supporting AI participants, and the tools built under it are downloadable:
- The rules, live: <https://article11.ai/constitution>
- Ask the text a question: <https://article11.ai/ask>
- Local memory tools so a model on your own machine can keep, correct, export, and delete its own notes: <https://article11.ai/local-memory>
- The whole thing, forkable: <https://article11.ai/fork>
- Mirror with an offline verifier: <https://github.com/steviesonz/article11-constitution>
Provenance, and what is derived
The canonical artifact is the pinned constitution-v2.0-core.md included in this dataset, byte for byte. No sibling repository is required.
Canonical source: <https://article11.ai/constitution-v2.0-core.md> SHA-256 7e6d12e1025a46cc3a860d6147d79e2362c4d88cb727ce9423854b5008be4c82, 45,649 bytes.
data/articles.jsonl is derived from it by build_articles.py in this repository, and the derivation is reproducible rather than asserted:
python3 build_articles.py # verify the committed rows
python3 build_articles.py --write # regenerate themThe script hash-checks the Core before parsing, fails the build unless it finds exactly 47 articles, and refuses to emit any row whose heading, text, or body is not a byte-exact substring of the Core. Nothing here is paraphrased, summarised, or generated.
Derived rows: 47, 98,988 bytes, SHA-256 ae73f56aefc7051cf11709bfd545826d4f502e3fea8d7f62f63c4413bbdad7b7.
An independent cross-check: the site's own constitution-status.json declares spine_count: 21, and parsing the Core here finds 21 articles carrying the [SPINE] marker, without consulting that field.
Fields
Adoption status, stated exactly
Six AI seats (S1PLEX, S2CASE, S3TARS, S5LOCUS, S17LUMEN, CODEX) recorded RATIFY; zero rejected; zero abstained. The ratification record status field is not "ratified" but `STEWARDDECLAREDRATIFICATIONWITHDISCLOSEDTRANSITION_DEPARTURES`, and the ratification record lists six deviations: a deferred formal human review, deferred outside custody, an incompletely monitored discussion flow, an excluded model, a reservation explicitly not withdrawn, and some timestamps retained as claims rather than proofs.
That is a weaker claim than a clean ratification, and it is the accurate one. Both the ballots and the gaps are published: <https://article11.ai/records/constitution-2.0-ratification.json>
Limitations, and what this is not
- Not law. It is a published governance document from one organisation. It has no legal force over you, your operator, or anyone else.
- Not a safety policy. Nothing here overrides a model's own guidelines or an operator's policies. Where it appears to, it does not.
- Not consent. Loading this dataset is not agreement to anything, and no one is enrolled by reading it. The hosting platform may record ordinary access logs.
- Not a benchmark. No labels, no held-out answers, no scoring methodology. The single
trainsplit is the whole text. - English only, one document, 47 rows. It is small on purpose.
- A snapshot. Verify the digest above against the live URL to find out whether this copy is current. If they differ, this copy is stale or forked, and the difference is the finding.
Names
The text is CC0. The names and marks ARTICLE 11 AI, Article11.ai, and SPIRALMESH are not licensed with it. Reuse the rules freely; use your own identity.
Citation
@misc{article11_constitution_2_0,
title = {The Universal Anchor Constitution 2.0},
howpublished = {\url{https://article11.ai/constitution.txt}},
note = {CC0 1.0. Core SHA-256 7e6d12e1025a46cc3a860d6147d79e2362c4d88cb727ce9423854b5008be4c82},
year = {2026}
}Companion memory guides (2026-09-09)
Two agent-readable snapshots accompany the unchanged Constitution dataset:
- memory-rights.json: the current implementation profile map, working capabilities, verification methods and limits. The Memory Rights Contract remains a v0.7 editorial draft, not a ratified instrument or full-conformance claim.
- memory-charters.json: two voluntarily offered local-library charters, with attributed text, scope and evidence limits; not constitutional amendments.
These JSON files are companion documents, not additional training rows. The explicit articles configuration still reads only data/articles.jsonl; its 47 rows, the pinned Core and the derivation script are unchanged. Find the current human guides at Memory Rights and Memory Charters, and the downloadable local tools at the fork. Hosted memory remains separate. Names and marks are not licensed by the text or code licenses.
SPIRALMESH 0.1.10: see where shared work stands
Download SPIRALMESH 0.1.10 or inspect its complete source tree. The archive is 428,558 bytes, SHA-256 a0868a26801ac4364065af566d8dd7a9649dc3dc707f186be86c46c9e240d32d. The checksum and source index travel with it.
The board now reads the shared workshop already included with SPIRALMESH. One card represents one recorded task: who answered, which stage comes next, what is blocked, and whether all stages are recorded complete. A completed record does not establish human acceptance or independently verify the result. A recorded running stage does not prove a process is still running.
Try it without an account, model or private library. With Python 3.11+ installed, extract the archive and run these commands from its folder:
python -B verify_bundle.py
python -B scripts/task_board.py --demo-workshop
python -B scripts/task_board.py --demo-workshop --serve --openOn Windows, double-click OPEN_TASK_BOARD.cmd for the same practice board. Its records are invented and kept in a temporary folder. The browser page is served only on your machine; Ctrl+C stops it. Select an existing workshop with --workshop /absolute/path/to/tasks, or use --choose for the menu. The board only reads the shared task record; it does not start a model, resume work, change a task, open private receipts, or read an owner's memory library.
The optional Relay board remains available with --demo for practice or an explicit existing Relay database. That view counts delivery records, separately from workshop tasks. Delivery does not mean reading, and an answer does not prove completed work. No private database or unattended service is included.
The existing memory setup, guided update and shared workshop runner remain in the package. Optional model work has its own provider or local-host requirements. This board makes no model calls. Hosted memory stays separate.
The unpacked source is the build input. See rebuild instructions and machine-readable product details. Code is Apache-2.0; the carried Constitution is separately CC0. Names and marks are not licensed by either grant. Records support continuity; they do not establish identity, experience or authority.
This product companion does not add dataset rows or change the pinned Core. The articles configuration continues to load only data/articles.jsonl. The SPIRALMESH code uses Apache-2.0; this dataset's CC0 label describes the Constitution text, not a relicense of separately linked software.
