Orgchain v1.11: charters, a ladder of legal forms; agents graduate
A new lineage/v0 op, charter, records a node's legal form: sole proprietor, LLC, series LLC, series or corporation, with a jurisdiction (ISO 3166), a legal name, who formed it and a SHA-256 of the filings. Legal form is an attribute, so a node keeps its inscription, keys and history whatever form it takes, and the newest charter counts. A node charters itself; a series is chartered by its master, an ancestor chartered as a series LLC. Whether a charter stands is derived from the tree, never stored: a series lapses if it graduates or its master closes or stops holding series, so charters commute with graduations and closes in any block order. Agents can graduate: a seat goes independent as a holding of its own, with its own root and keys and its money along, and can then birth, award and incorporate. Charter is the tenth verb, and the tree tags each node with its form. Charter hashes a filing from a file in the tab. The sample charters yolopreneur as a Wyoming series LLC with its ventures as series, and lineage graduates into Lineage LLC. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H4upF5LVwmPDDqrhdUfnXh
This commit is contained in:
1 parent
6998ae47aa
commit
4ad75f0970
14 files changed
+389
-50
No files matched your search
+2
-2
@@ -54,10 +54,10 @@ test('the reducer vets an act before anything is signed', () => {
|
||||
const lab = emptyLab();
|
||||
const root = act(lab, 'found', null, { name: 'acme' }), bot = act(lab, 'birth', root, { name: 'bot', kind: 'agent' });
|
||||
const before = encodeLab(lab);
|
||||
assert.throws(() => act(lab, 'birth', bot, { name: 'x' }), /^Error: Agents do not give birth\.$/);
|
||||
assert.throws(() => act(lab, 'birth', bot, { name: 'x' }), /^Error: Agents give birth only once they graduate\.$/);
|
||||
assert.throws(() => act(lab, 'found', null, { name: 'acme' }), /already named acme/);
|
||||
assert.throws(() => act(lab, 'award', root, { to: bot, skill: 'launch', belt: 'gold' }), /belt/);
|
||||
assert.throws(() => act(lab, 'graduate', root, { of: bot }), /Only orgs graduate/);
|
||||
assert.throws(() => act(lab, 'graduate', bot, { of: root }), /Only its parent can graduate a child/);
|
||||
assert.throws(() => act(lab, 'sing', root, {}), /Unknown verb/);
|
||||
assert.equal(encodeLab(lab), before);
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user