Repository navigation
Expand file tree
/
Copy pathconstitution.yaml
More file actions
118 lines (105 loc) · 4.61 KB
/
Copy pathconstitution.yaml
File metadata and controls
118 lines (105 loc) · 4.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# ---------------------------------------------------------------------------
# OpenCodeLaw starter constitution.
#
# Copy this to constitution/current.yaml, replace the content, and deploy.
# Run `npx opencodelaw validate constitution/current.yaml` as you go — the
# validator is the fastest way to learn the schema.
#
# Full reference: schema/SPEC.md (generated from the JSON Schema, never drifts).
# ---------------------------------------------------------------------------
# Schema version. Quoted — unquoted, YAML reads 1.0 as a float.
opencodelaw: "1.0"
info:
title: EXAMPLE SOCIETY # short name, shown in the header
organization: Example Society Incorporated # full legal name
jurisdiction: Somewhere, Somecountry # optional
# registration: SOC/1234/2020 # optional: your registration number
version: 1.0.0 # semver; must match the filename when archived
status: current # exactly one document may be `current`
effective_from: 2025-01-01 # ISO date
# The validator REJECTS example.org / example.com addresses. That is
# deliberate: this file will not pass `opencodelaw validate` until you
# replace the line below with a real one. The constitution this engine was
# built for shipped two example.com URLs to production for two years because
# nothing objected.
contact:
name: The Secretary
email: secretary@example.org # <- REPLACE ME, the build fails until you do
license: CC-BY-4.0
# ---------------------------------------------------------------------------
# Optional. Include this ONLY while some enacted amendment is not yet applied.
# The site renders a visible banner from it on every page, naming what is
# outstanding and why. Delete the block once everything is reconciled.
# ---------------------------------------------------------------------------
# reconciliation_state:
# target_version: 2.0.0
# complete: false
# held:
# - provisions: [art-4]
# blocked_by: board sign-off
# note: Act 1 of 2025 substitutes Article 4; awaiting confirmation of clause 3.
preamble:
id: preamble # fixed value
title: Preamble
content: |
This Society exists to … .
Content is Markdown. It is sanitised at build time against a strict
allowlist, so a spec from an untrusted source cannot inject script.
adopted: 2025-01-01
articles:
# -------------------------------------------------------------------------
# `id` and `number` are the citation identity and are PERMANENT.
#
# Never derive either from position in this list. Reordering these entries
# must change no anchor and no citation — there is a test that proves it.
# The validator enforces that `id` is always `art-<number>`.
# -------------------------------------------------------------------------
- id: art-1
number: 1
title: Name
content: |
The name of the society shall be Example Society Incorporated.
- id: art-2
number: 2
title: Objects
content: |
The objects of the society are:
1. to do the first thing;
2. to do the second thing.
# An article may hold sections instead of, or as well as, its own body.
# Section ids follow the article: art-3-s-1, art-3-s-2, …
- id: art-3
number: 3
title: Membership
content: |
Membership is open to any person who supports the objects.
# `amended_by` refers to an id in acts/register.yaml. It must resolve.
# amended_by: [act-1-2025]
sections:
- id: art-3-s-1
number: 1
title: Admission
content: |
A person becomes a member on approval by the committee.
- id: art-3-s-2
number: 2
title: Termination
content: |
Membership ends on resignation, death, or expulsion under Article 4.
# -------------------------------------------------------------------------
# A gap in numbering is legal ONLY when an entry accounts for it. This is how
# a statute book represents a number no provision occupies — the alternative,
# silently renumbering, breaks every citation ever made to the articles after
# the gap. `reserved` and `omitted` carry a `note` and no `content`.
# -------------------------------------------------------------------------
- id: art-4
number: 4
title: Reserved
status: reserved
note: No instrument has occupied this number.
- id: art-5
number: 5
title: Dissolution
content: |
The society may be dissolved by a resolution of three quarters of members
present and voting at a general meeting.