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
+33
-1
@@ -75,7 +75,7 @@ test('found a holding, then birth, award, decide, graduate and close at the defa
|
||||
await expect(page.locator('#timeline-list')).toContainText('graduate studio from acme-holdings');
|
||||
await row(page, 'bot').click();
|
||||
await verb(page, 'birth');
|
||||
await expect(page.locator('#act-why')).toHaveText('Agents do not give birth.');
|
||||
await expect(page.locator('#act-why')).toHaveText('Agents give birth only once they graduate.');
|
||||
expect(problems).toEqual([]);
|
||||
});
|
||||
|
||||
@@ -357,3 +357,35 @@ test('a node publishes its keyring; a graduation retires it, and the graduate pu
|
||||
expect(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true);
|
||||
expect(problems).toEqual([]);
|
||||
});
|
||||
|
||||
test('a holding is a series LLC with its ventures as series, and a seat graduates to go independent', async ({ page }) => {
|
||||
const problems = await open(page), inspect = page.locator('#inspect-body');
|
||||
await page.locator('#sample').click();
|
||||
await expect(say(page)).toContainText('Loaded the yolopreneur sample', { timeout: 20_000 });
|
||||
await expect(row(page, 'yolopreneur')).toContainText('series llc');
|
||||
await row(page, 'lineage').click();
|
||||
await expect(inspect).toContainText('LLC · US-WY · Lineage LLC · via doola');
|
||||
await row(page, 'docscope').click();
|
||||
await verb(page, 'charter');
|
||||
await expect(page.locator('#charter-forms input[value="series"]')).toBeChecked();
|
||||
await expect(page.locator('#act-key')).toContainText('Signs as yolopreneur');
|
||||
await submit(page, 'charter');
|
||||
await expect(say(page)).toHaveText('docscope is a series of yolopreneur, at beat 8.');
|
||||
await row(page, 'yolopreneur').click();
|
||||
await expect(inspect.locator('.f', { has: page.locator('dt', { hasText: /^Series$/ }) })).toContainText('well-known, time, docscope');
|
||||
await row(page, 'sol').click();
|
||||
await verb(page, 'graduate');
|
||||
await submit(page, 'graduate');
|
||||
await expect(say(page)).toContainText('sol graduates from time');
|
||||
await expect(row(page, 'sol')).toContainText('graduated');
|
||||
await verb(page, 'charter');
|
||||
await page.locator('#charter-forms input[value="llc"]').check();
|
||||
await page.locator('#charter-jurisdiction').fill('US-DE');
|
||||
await page.locator('#charter-legal').fill('Sol LLC');
|
||||
await submit(page, 'charter');
|
||||
await expect(say(page)).toContainText('sol is chartered as an LLC in US-DE');
|
||||
await verb(page, 'birth');
|
||||
await expect(page.locator('#f-birth')).toBeVisible();
|
||||
expect(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true);
|
||||
expect(problems).toEqual([]);
|
||||
});
|
||||
Reference in new issue
Block a user