From e8f2d35f82cb0d12fa68c07e96a178ba74b82007 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 11:49:59 -0400 Subject: [PATCH 01/46] Defer the six unauthored network-society families. The nine families already in the pilot and batch 2 are enough for now. --- .../network-societies-campaign-plan.md | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 62898c81..9a51abe0 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -1,6 +1,6 @@ # Network societies fake-data campaign -Status: partial local campaign, updated 2026-10-16. This document is the target for the whole fifteen-family world. It does not generate data or authorize a remote deployment. The live ids are `network-societies-v1-pilot` and `network-societies-v1-b2`, not one `network-societies-v1` manifest. +Status: partial local campaign, updated 2026-10-19. The nine families that already have campaign content are enough for now. Six named families still have no fake content, and we are not authoring them yet. This document does not generate data or authorize a remote deployment. The live ids are `network-societies-v1-pilot` and `network-societies-v1-b2`, not one `network-societies-v1` manifest. ## Where the work stands @@ -14,13 +14,15 @@ The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli' **Decided out of this campaign for now.** Delegated spending and a recurring monthly pledge. Pat already delegates a note, and revocation is a real action. Nothing spends a delegated note or repeats a pledge. Journey 5 below is therefore only partly demonstrated, and the "$20/month" filter is still a product gap. -**Not started as families.** Six of the fifteen rows below are not campaign manifests: low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, and less regulation. US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. +**Deferred, 2026-10-19.** Six of the fifteen rows below still have no campaign content: low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, and less regulation. Leave them. The nine that already have statements, boards, or projects are enough for now: crypto-friendly checkout, Grey County civic life, Christian teaching, home learning, the abortion settlement, schools and conduct, the Owen Sound voting trial, US-friendly Canadians, and the AI-pause board. Do not open a content batch for the six empty rows. + +US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. **Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. A declined bridge is authored for batch 2 (Eli) and is in the new plan, not in the mined output. Verified implication paths are planned for batch 2. Early-risk reimbursement, a friend actually spending a delegated note, recurring pledges, and the independent-reviewer walkthrough are not campaign demonstrations yet. ## Purpose -Build a substantial, believable synthetic world around **all fifteen named areas in [the brainstorming notes](./README.md)**. A prospective cause founder should see concrete work worth organizing, the people needed to do it, and how Commonality can bring together funding that would otherwise remain fragmented. +Build a substantial, believable synthetic world around the network-society areas in [the brainstorming notes](./README.md). The notes name fifteen. Nine already have fake content, and that set is the campaign for now. A prospective cause founder should see concrete work worth organizing, the people needed to do it, and how Commonality can bring together funding that would otherwise remain fragmented. The central story is overlapping constituencies funding particular outcomes without joining one organization. Show separate organizers, competing publications, practical disagreements, independent judgment, and people who decline to participate. Preserve the author's selection of causes and interest in bridges; do not replace it with a generic politically balanced charity catalog. Give dissenters plausible beliefs, rather than making them foils who inevitably convert. @@ -42,7 +44,7 @@ Some older summaries are stale: the October step-14 report and current adapter a ## Scope and scale -Aim for **240 users, roughly 150–210 unique statements, and 75–90 projects** across fifteen topic families. These are authoring targets, not reasons to manufacture weak statements or meaningless transactions. Count unique statements/projects separately from their appearances on multiple boards. +The original full-catalog aim was **240 users, roughly 150–210 unique statements, and 75–90 projects** across fifteen topic families. That scale waits with the six deferred families. Batch 2 is already 72 users, 124 statements, and 62 projects, and that is enough content to keep working from. These figures are authoring targets, not reasons to manufacture weak statements or meaningless transactions. Count unique statements/projects separately from their appearances on multiple boards. Each family should have: @@ -52,11 +54,11 @@ Each family should have: - At least two constituencies with different motivations, plus people who reject part or all of the proposed program. - A named organizer, credible project founders, contributors, an independent reviewer, and a plausible funding director. People can hold several roles, but no single person should fill every role on their own project. -Use 20–30 editorial cause boards across the fifteen families, including alternative organizers and a few shared boards. Families are authoring categories, not compulsory membership organizations or single canonical statements. Pilot/full scale must be explicit configuration, not a collection of hard-coded exceptions. +The full catalog would use 20–30 editorial cause boards across the fifteen families, including alternative organizers and a few shared boards. Stay inside the nine families that already have content. Families are authoring categories, not compulsory membership organizations or single canonical statements. Pilot/full scale must be explicit configuration, not a collection of hard-coded exceptions. ## Content map -These are project briefs and constituency suggestions, not finished statement wording. For each row, expand to the per-family minimum above. Make deliverables bounded and inspectable: a named place, duration, artifact or service, budget, completion criterion, and responsible fictional person. +These are project briefs and constituency suggestions, not finished statement wording. The six rows with no campaign content yet — low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, and less regulation — stay briefs. Do not expand them until someone decides to resume those families. For a family that is in the campaign, make deliverables bounded and inspectable: a named place, duration, artifact or service, budget, completion criterion, and responsible fictional person. | Family | Base-level projects to develop | Organizing work | Coalition and disagreement to portray | | --- | --- | --- | --- | @@ -129,7 +131,7 @@ The brainstorming's “$20/month, fire-and-forget” and “delivered but not re ## Implementation sequence -Steps 1–3 are done for the pilot, and step 3 is also done for batch 2 on the pre-pin plan. Step 4 has the six draft bridges and the AI-pause board in the manifest. Seven families are still unauthored. Step 5 is not started. The notes under each step stay as the original instructions. +Steps 1–3 are done for the pilot, and step 3 is also done for batch 2 on the pre-pin plan. Step 4 has the six draft bridges and the AI-pause board in the manifest. Six families are still unauthored, and on 2026-10-19 they were deferred: low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, and less regulation. Step 5 is a local demonstration of the nine families we have, not a wait for those six. The notes under each step stay as the original instructions. ### 1. Make a capability and content inventory @@ -155,7 +157,7 @@ Fix failures before scaling. The first executed pilot is the point to discover t ### 4. Expand in bounded content batches -Add the remaining eleven families in batches of three or four. First reuse accepted statements where they mean exactly what is needed; then generate new campaign-local planks and validate new edges. Add the accepted abortion bridge as a full spotlight story. Complete all fifteen families rather than declaring the pilot the finished campaign. +The original instruction was to add the remaining families in batches of three or four, reuse accepted statements where they mean exactly what is needed, then generate new campaign-local planks and validate new edges. The accepted abortion bridge is already in batch 2. Do not add the six families that still have no content. The nine we have are the campaign for now. Scale to the target population with deterministic generation around authored constraints. Review a content matrix showing family, statements, dissenters, projects, organizers, funding stages, and shared projects. Uneven activity is desirable; an accidentally empty family is not. @@ -167,7 +169,7 @@ Remote/testnet publication is a separate later step using existing preflight, bu ## Acceptance and handoff checklist -- All fifteen families have several signable planks, incompatible positions, at least five substantive projects, and people whose actions match their stated preferences. +- Each of the nine families already in the campaign has several signable planks, incompatible positions, substantive projects, and people whose actions match their stated preferences. The six deferred families are not part of this checklist. - Organizing work has concrete outputs and a term; no generic “fund our movement” pots. Each project explains the coordination problem it addresses: fragmented constituencies, threshold risk, maintenance nobody owns, discovery, or independent verification. Ordinary crowdfunding could still fund some projects; do not claim Commonality is uniquely necessary for every one. - Every published implication has fresh, affirmative model evidence from the actual attester prompt. Negative controls, failed candidates, and routing/shape decisions remain inspectable. - New campaign text stays outside the accepted real-statement catalog. Reused canonical bridge wording is referenced rather than silently rewritten. @@ -175,4 +177,4 @@ Remote/testnet publication is a separate later step using existing preflight, bu - Required journeys have reconciled state and browser observations. Unsupported behaviors are listed as specific gaps, never counted as demonstrated; the full demo is not called complete while a required journey is silently missing. - The report identifies synthetic users/activity/deliverables, actual amounts and outcomes, exact reproduction steps, and the next unfinished task if work spans sessions. -**Next task:** author the next content batch from the six families that are not manifests yet (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, and less regulation), skipping overlaps that already share a concrete want. Apply the pilot persona belief choices the same way batch 2 pins them, or leave that file marked unapplied. Do not regenerate `output/campaigns/network-societies-v1-b2/` or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not start a bulk random run or draft all remaining statements at once. US-friendly Canadians is no longer a missing family. +**Next task:** keep working from the nine families already in the pilot and batch 2. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Apply the pilot persona belief choices the same way batch 2 pins them, or leave that file marked unapplied. Do not regenerate `output/campaigns/network-societies-v1-b2/` or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not start a bulk random run. From fbdda7fefaaa7d92c46410aba45865829e185ba2 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 11:56:31 -0400 Subject: [PATCH 02/46] Pin the network-societies pilot persona beliefs. The planner now applies the pilot signs and rejects the same way as batch 2. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 4 +-- .../network-societies-v1-pilot-decisions.json | 2 +- .../campaigns/network-societies-v1-pilot.json | 1 + .../campaigns/network-societies-v1-pilot.md | 4 +-- .../test/campaignPlanner.test.ts | 25 +++++++++++++++++++ 6 files changed, 32 insertions(+), 6 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 70f42cd5..eef2311c 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -80,7 +80,7 @@ Do these in order unless Adam names a different one. Each item is a session-size ### F — Network societies pilot -The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. +The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 9a51abe0..013ed063 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -6,7 +6,7 @@ Status: partial local campaign, updated 2026-10-19. The nine families that alrea Two local campaigns exist. Neither is the finished fifteen-family world, and neither has been published to testnet. -**Pilot** ([`network-societies-v1-pilot.md`](../campaigns/network-societies-v1-pilot.md)). Four families: Owen Sound checkout, Grey County civic life, Christian teaching, home learning. About 40 users, 40 statements, 20 projects. A local run on 2026-10-16 mined and reconciled 207/207. No implication edges. The class-host directory is one statement on two boards. Pat delegates a note to Ned; the adapter can revoke a delegation. Persona belief choices in the pilot decisions file are still not applied by the planner. +**Pilot** ([`network-societies-v1-pilot.md`](../campaigns/network-societies-v1-pilot.md)). Four families: Owen Sound checkout, Grey County civic life, Christian teaching, home learning. About 40 users, 40 statements, 20 projects. A local run on 2026-10-16 mined and reconciled 207/207. No implication edges. The class-host directory is one statement on two boards. Pat delegates a note to Ned; the adapter can revoke a delegation. Persona belief choices in the pilot decisions file are pinned the same way as batch 2. The mined pilot output is the plan from before those pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. **Batch 2** ([`network-societies-v1-b2.md`](../campaigns/network-societies-v1-b2.md)). Keeps those four families and adds the accepted abortion settlement, the accepted schools-and-pushing bridge, an Owen Sound voting trial, six draft bridges (assimilation sessions, dual-count poll, checkout trial, minors' medicine, ordinary opinions and employment, Canada–US ties), and a plain AI-pause board. Canada–US is past the five-statement draft: five work planks, a boycott, and a narrower-ties sentence sit on the commonality board. The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed: four accepted bridge pairs and seventeen live attester blesses, including five AI-pause modifieds. The Canada–US boycott and narrower sentence were refused and stay unpublished. Designed-negative pairs stay unpublished. The other five draft clusters and the AI-pause board are not accepted seed. Canada–US is not accepted seed either. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That output is the plan from before the belief pins and before the AI-pause arrows. Do not regenerate into it. Do not regenerate into `output/campaigns/network-societies-v1-b2-ai-pause/`. A later plan belongs in a fresh directory such as `output/campaigns/network-societies-v1-b2-canada-us/`. @@ -177,4 +177,4 @@ Remote/testnet publication is a separate later step using existing preflight, bu - Required journeys have reconciled state and browser observations. Unsupported behaviors are listed as specific gaps, never counted as demonstrated; the full demo is not called complete while a required journey is silently missing. - The report identifies synthetic users/activity/deliverables, actual amounts and outcomes, exact reproduction steps, and the next unfinished task if work spans sessions. -**Next task:** keep working from the nine families already in the pilot and batch 2. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Apply the pilot persona belief choices the same way batch 2 pins them, or leave that file marked unapplied. Do not regenerate `output/campaigns/network-societies-v1-b2/` or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not start a bulk random run. +**Next task:** keep working from the nine families already in the pilot and batch 2. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Pilot and batch 2 both pin `signs` and `rejects`. The mined outputs predate those pins. Do not regenerate `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not start a bulk random run. A later plan belongs in a fresh output directory. The local demonstration in step 5 is still not done. diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json b/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json index 85c57f5c..00905e87 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json @@ -1,5 +1,5 @@ { - "note": "Authored persona decisions for the pilot. The planner does not yet apply these belief choices. Unsigned is not the same as an explicit rejection.", + "note": "Authored persona decisions for the pilot. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection.", "people": [ { "userId": "user-001", "name": "Ruth", "signs": ["refundable-checkout", "published-trial-record", "fee-schedule", "keep-cash-and-card"], "rejects": ["refuse-crypto-payments"], "funds": "Six-shop refundable checkout trial" }, { "userId": "user-003", "name": "Imani", "signs": ["language-sessions", "welcome-signage", "session-limit"], "rejects": ["housing-before-recruiting"], "funds": "Twelve conversation sessions" }, diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot.json b/fake-data-generation/campaigns/network-societies-v1-pilot.json index 30cbb2dd..d0aeb9b0 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot.json @@ -22,6 +22,7 @@ "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-pilot-projects.json", + "beliefDecisions": "network-societies-v1-pilot-decisions.json", "causes": [ { "id": "crypto-merchants", diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot.md b/fake-data-generation/campaigns/network-societies-v1-pilot.md index ba8bc5a3..f0af1dd5 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot.md +++ b/fake-data-generation/campaigns/network-societies-v1-pilot.md @@ -13,7 +13,7 @@ Families in this pilot: Owen Sound checkout trial, Grey County civic life, Grey | Curated projects without a new TypeScript story module | Supported by `projectStories`, a JSON file beside the manifest | | Accepted-bridge implication evidence | Still the only evidence the planner will publish. Heuristic `implies: true` is not accepted. | | Fresh attester evaluation for new campaign pairs | Not run. The pilot stores candidates and publishes zero implication edges. | -| Beliefs chosen by the persona decision file | Not wired. `network-societies-v1-pilot-decisions.json` is authoring intent. The planner still draws `set-belief`. | +| Beliefs chosen by the persona decision file | Wired. Each `signs` entry is one `believe` and each `rejects` entry is one `disbelieve`. Unsigned stays unpinned. The mined 2026-10-16 run is the plan from before these pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. | | One shared project contract on several boards | The class-host directory is one statement, published once, and one project (`project-015`). Civic life, Christian teaching, and home learning all list it under Fundable Projects once the alignment-trust bootstrap has admitted the campaign attesters. The project page renders: title, fake-data outcome, founder Nadia, and "0 of 2 USDZZZ raised." | | Early funding then retroactive reimbursement | Supported for v2's accepted abortion bridge. Not planned in this pilot. | | Delegated spending of a note | Deposit, delegate, and revoke exist. Spending through the delegation does not. Pat's note to Ned is a delegation, not a spent note. | @@ -34,7 +34,7 @@ Seed: `commonality-network-societies-v1-pilot-2026-10-16`. A plan written on 202 Ruth and Len can both be on the checkout board while the dissent plank "shops refuse crypto" is a separate statement. That overlap does not use an implication arrow. -Imani's rejection of the recruiting pause, and Owen's refusal of the midweek notes, are written in the decisions file. They are not yet enforced in `set-belief`. +Imani's rejection of the recruiting pause, and Owen's refusal of the midweek notes, are pinned `set-belief` actions. Owen leaves `staffed-schools` unsigned, so that file does not disbelieve it. Pat (`user-021`) delegates notes to Ned (`user-011`). Some delegations are later revoked. The plan does not show Ned spending Pat's note. diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 3699bdec..93d58587 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -216,6 +216,31 @@ test('validation rejects an action whose prerequisite points forward', async () assert.throws(() => validatePlannedActions(manifest, plan.statements, plan.users, plan.projects, invalid), /impossible dependency/); }); +test('network-societies pilot pins persona belief choices', async () => { + const manifest = JSON.parse(await readFile(new URL('../campaigns/network-societies-v1-pilot.json', import.meta.url), 'utf8')) as CampaignManifestV1; + const decisions = JSON.parse(await readFile(new URL('../campaigns/network-societies-v1-pilot-decisions.json', import.meta.url), 'utf8')) as { + people: { userId: string; name: string; signs?: string[]; rejects?: string[]; unsigned?: string[] }[]; + }; + const plan = await buildCampaignPlan(manifest); + const beliefs = plan.actions.filter((action) => action.type === 'set-belief'); + assert.equal(beliefs.length, 60); + const byStatementId = (sourceId: string, userId: string) => beliefs.filter((action) => { + const statement = plan.statements.find((item) => item.id === action.statementId); + return action.actorUserId === userId && statement?.source.statementId === sourceId; + }); + for (const person of decisions.people) { + for (const statementId of person.signs ?? []) { + assert.deepEqual(byStatementId(statementId, person.userId).map((action) => action.belief), ['believe'], `${person.name} ${statementId}`); + } + for (const statementId of person.rejects ?? []) { + assert.deepEqual(byStatementId(statementId, person.userId).map((action) => action.belief), ['disbelieve'], `${person.name} ${statementId}`); + } + } + const owen = plan.users.find((user) => user.displayName === 'Owen')!; + const staffed = plan.statements.find((statement) => statement.source.statementId === 'staffed-schools')!; + assert.equal(beliefs.some((action) => action.actorUserId === owen.id && action.statementId === staffed.id && action.belief === 'disbelieve'), false); +}); + test('network-societies pilot reuses one directory statement and publishes no implication', async () => { const manifest = JSON.parse(await readFile(new URL('../campaigns/network-societies-v1-pilot.json', import.meta.url), 'utf8')) as CampaignManifestV1; const plan = await buildCampaignPlan(manifest); From 32ecc49697d61919d005732941afeb6587a166b3 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 15:32:19 -0400 Subject: [PATCH 03/46] A bit more on the fake-data campaign, including notes in my own words. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 61 ++++++++++++++++++- .../campaigns/network-societies-v1-b2.md | 2 +- 3 files changed, 60 insertions(+), 5 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index eef2311c..42e2a9b1 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. On 2026-10-19 the source manifest matched `output/campaigns/network-societies-v1-b2-canada-us/` (523 writes, unexecuted). The nine families meet the plank and project minimum. Journeys 4, 6, and 7 are absent from that graph, and journey 5 does not spend a note. See the campaign plan. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 013ed063..bca5b1b6 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -1,6 +1,26 @@ # Network societies fake-data campaign -Status: partial local campaign, updated 2026-10-19. The nine families that already have campaign content are enough for now. Six named families still have no fake content, and we are not authoring them yet. This document does not generate data or authorize a remote deployment. The live ids are `network-societies-v1-pilot` and `network-societies-v1-b2`, not one `network-societies-v1` manifest. +## Adam's description of what we're doing here (don't edit this) + +The rest of this file was AI-generated (with my input, but I still don't feel like I trust it), so I want to try to describe what I'm after, and then you can amend the plan and the content to make sure we're doing what I want. + +In fake-data-generation/brainstorming/README.md I wrote a list of some ideas for "network societies" that I personally would be interested in supporting. (Some are more compelling than others; we've done some and decided to defer some.) I want us to flesh them out into fake-data campaigns (with statements, bridges from multiple plausible constituencies who all might agree, fake users who fall into various constituencies or don't agree at all, and fake usage data from those fake users). + +The hope is that this becomes useful for demoing the system, in a couple of ways. + - I show it to people who share some of my opinions and they find some of the examples compelling in the sense of "yeah, I can see how that *kind* of project is something that we have trouble funding in other ways. (The fact that they share my political opinions isn't important - the point isn't exactly "do exactly these things that align with my political beliefs" - but if the example causes aren't things they'd consider good, they'll be turned off.) + - It demonstrates the various roles, too: different people participate in different ways, and each is simple and the UI has a streamlined way to participate in just that role. + +So I'm imagining that for the fake-data campaign we're working on, there'll be an admin page where I can choose to log in as a particular fake user; that way I can have specific fake users with particular interests/roles (including some that would be similar to various friends of mine), and so I can demo the system through their eyes. + +Basically I just want to show this to my friends and have them understand it. :P + + + + + +## Current high-level status + +Partial local campaign, updated 2026-10-19. The nine families that already have campaign content are enough for now. Six named families still have no fake content, and we are not authoring them yet. This document does not generate data or authorize a remote deployment. The live ids are `network-societies-v1-pilot` and `network-societies-v1-b2`, not one `network-societies-v1` manifest. ## Where the work stands @@ -10,7 +30,9 @@ Two local campaigns exist. Neither is the finished fifteen-family world, and nei **Batch 2** ([`network-societies-v1-b2.md`](../campaigns/network-societies-v1-b2.md)). Keeps those four families and adds the accepted abortion settlement, the accepted schools-and-pushing bridge, an Owen Sound voting trial, six draft bridges (assimilation sessions, dual-count poll, checkout trial, minors' medicine, ordinary opinions and employment, Canada–US ties), and a plain AI-pause board. Canada–US is past the five-statement draft: five work planks, a boycott, and a narrower-ties sentence sit on the commonality board. The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed: four accepted bridge pairs and seventeen live attester blesses, including five AI-pause modifieds. The Canada–US boycott and narrower sentence were refused and stay unpublished. Designed-negative pairs stay unpublished. The other five draft clusters and the AI-pause board are not accepted seed. Canada–US is not accepted seed either. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That output is the plan from before the belief pins and before the AI-pause arrows. Do not regenerate into it. Do not regenerate into `output/campaigns/network-societies-v1-b2-ai-pause/`. A later plan belongs in a fresh directory such as `output/campaigns/network-societies-v1-b2-canada-us/`. -The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli's only planned belief on the abortion commonality is `disbelieve`. Unsigned is still not a rejection. The next chain run needs a fresh output directory. +The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli's only planned belief on the abortion commonality is `disbelieve`. Unsigned is still not a rejection. + +**Frozen plan, checked 2026-10-19.** `campaigns/network-societies-v1-b2.json` is identical to `output/campaigns/network-societies-v1-b2-canada-us/manifest.json`. That directory's action graph has 523 writes and has not been executed. Do not regenerate it while the source stays identical. Do not execute it over `output/campaigns/network-societies-v1-b2/`, `output/campaigns/network-societies-v1-b2-ai-pause/`, or the pilot directory. Eli (`user-052`) believes the abortion natural-right sentence and disbelieves the commonality and both modifieds. No project title is shared across causes. The graph has 8 `delegate-note` writes and 3 `revoke-delegation` writes, and zero retroactive `fund-project` writes. Nothing spends a delegated note. **Decided out of this campaign for now.** Delegated spending and a recurring monthly pledge. Pat already delegates a note, and revocation is a real action. Nothing spends a delegated note or repeats a pledge. Journey 5 below is therefore only partly demonstrated, and the "$20/month" filter is still a product gap. @@ -20,6 +42,39 @@ US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is **Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. A declined bridge is authored for batch 2 (Eli) and is in the new plan, not in the mined output. Verified implication paths are planned for batch 2. Early-risk reimbursement, a friend actually spending a delegated note, recurring pledges, and the independent-reviewer walkthrough are not campaign demonstrations yet. +## Inventory against the family minimum + +Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2-projects.json`, and the cause list on 2026-10-19. "Planks" is the number of statements in that group's file. Accepted abortion and schools wording lives in `seed-content/`, so those two rows also have five accepted sentences that are not in the campaign file. A family clears the written minimum at 6–10 planks, at least two incompatible positions, and at least five projects. Draft bridges are extra boards, not extra families. + +| Family | Planks in the campaign file | Projects | Against the minimum | +| --- | --- | --- | --- | +| Crypto-friendly checkout | 10 | 5 | Meets it. Includes a refusal of crypto payments. | +| Grey County civic life | 10, plus a 5-statement assimilation draft | 5 on the main board, 2 on the draft | Main board meets it. The draft is not a second family. | +| Christian teaching | 9 | 5 | Meets it. | +| Home learning | 10 | 5 | Meets it. | +| Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Meets it. Eli refuses the settlement. | +| Schools and conduct | 7 on Grey County conduct, plus the accepted five | 3 on the schools cause, 5 on conduct | The family meets it. The schools cause alone has three projects. | +| Owen Sound voting trial | 7, plus a 5-statement dual-count draft | 5 on the trial, 2 on the draft | Main board meets it. | +| US-friendly Canadians | 12 | 7 | Meets it. Boycott and narrower-ties sentences are refused as arrows. | +| AI pause | 17 | 5 | Meets it. Five modified-to-commonality arrows are allowed. | +| Low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation | none | none | Deferred. | + +One statement, the class-host directory, is on the Christian teaching board and the home-learning board. One statement, the moderator checklist, is on the Michigan authority board and the Owen Sound voting board. No project is one contract aligned to two boards. The three cross-family projects the scope section asks for are still missing. + +## Journeys the frozen plan can and cannot show + +These are properties of the 523-write graph, not of a chain run. A browser walkthrough still has to happen after execution. + +| Journey | In the frozen plan | +| --- | --- | +| 1. Founder sees an ecosystem | Yes, as content. Sixteen causes, and projects are not all funded the same way. Not yet seen in a browser on this plan. | +| 2. Alliance without merger | Direct shared agreement is in the pilot families. Twenty-one implication writes are in this graph, including Eli's refused settlement staying off the arrow list. Not yet mined. | +| 3. A bridge is declined | Yes. Eli disbelieves the abortion commonality and both modifieds, and believes only the natural-right sentence. | +| 4. Early risk and later reimbursement | No retroactive `fund-project` write. The v2 planner emits those only for its own bridge project. This campaign does not. | +| 5. Limited delegation | Pat delegates to Ned, and three revocations are planned. No action spends a delegated note. Recurring monthly pledges are not an action type here. | +| 6. Same project, different boards | No. Two statements sit on two boards. Projects do not. | +| 7. Independent judgment | June is described as a reviewer who refuses a superficial alignment. The graph's 62 alignment writes are all `supports-described-outcome`. A decline is not planned. | + ## Purpose Build a substantial, believable synthetic world around the network-society areas in [the brainstorming notes](./README.md). The notes name fifteen. Nine already have fake content, and that set is the campaign for now. A prospective cause founder should see concrete work worth organizing, the people needed to do it, and how Commonality can bring together funding that would otherwise remain fragmented. @@ -177,4 +232,4 @@ Remote/testnet publication is a separate later step using existing preflight, bu - Required journeys have reconciled state and browser observations. Unsupported behaviors are listed as specific gaps, never counted as demonstrated; the full demo is not called complete while a required journey is silently missing. - The report identifies synthetic users/activity/deliverables, actual amounts and outcomes, exact reproduction steps, and the next unfinished task if work spans sessions. -**Next task:** keep working from the nine families already in the pilot and batch 2. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Pilot and batch 2 both pin `signs` and `rejects`. The mined outputs predate those pins. Do not regenerate `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not start a bulk random run. A later plan belongs in a fresh output directory. The local demonstration in step 5 is still not done. +**Next task:** execute the frozen plan already in `output/campaigns/network-societies-v1-b2-canada-us/` (523 writes; source manifest matches). Do not regenerate that directory while the source stays identical. Do not regenerate `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. After reconciliation, walk journeys 1–3 in the browser and record the URLs. Journeys 4, 6, and 7 are not in the action graph: no retroactive fund, no shared project contract, and no declined alignment. Journey 5 stops at delegate and revoke. Leave those four as gaps until someone extends the planner. The local demonstration in step 5 is still not done. diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index a50c85c4..3c62e9ad 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -14,7 +14,7 @@ Canada–US stays a bridge. The shared sentence is still ordinary purchases and ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. It was not executed. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. It was not executed. On 2026-10-19 the source manifest was identical to that directory's `manifest.json`, so the 523-write graph is still current. Do not regenerate it while that stays true. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board and the Grey County conduct board are ordinary boards, so their own sentences stay visible there. From c2f27c3c3a9f357a7298e0acc300aa55f0bc8411 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 15:52:05 -0400 Subject: [PATCH 04/46] Record the local network-societies Canada-US run. The 523-write plan mined and reconciled on the local chain, and a short browser pass connected as Ruth and Eli. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 14 +++++++------- .../campaigns/network-societies-v1-b2.md | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 42e2a9b1..a7ccb499 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. On 2026-10-19 the source manifest matched `output/campaigns/network-societies-v1-b2-canada-us/` (523 writes, unexecuted). The nine families meet the plank and project minimum. Journeys 4, 6, and 7 are absent from that graph, and journey 5 does not spend a note. See the campaign plan. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. On 2026-10-19 that directory mined and reconciled 523/523. The nine families meet the plank and project minimum. Journeys 4, 6, and 7 are absent from that graph, and journey 5 does not spend a note. See the campaign plan. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index bca5b1b6..f108930e 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -28,11 +28,11 @@ Two local campaigns exist. Neither is the finished fifteen-family world, and nei **Pilot** ([`network-societies-v1-pilot.md`](../campaigns/network-societies-v1-pilot.md)). Four families: Owen Sound checkout, Grey County civic life, Christian teaching, home learning. About 40 users, 40 statements, 20 projects. A local run on 2026-10-16 mined and reconciled 207/207. No implication edges. The class-host directory is one statement on two boards. Pat delegates a note to Ned; the adapter can revoke a delegation. Persona belief choices in the pilot decisions file are pinned the same way as batch 2. The mined pilot output is the plan from before those pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. -**Batch 2** ([`network-societies-v1-b2.md`](../campaigns/network-societies-v1-b2.md)). Keeps those four families and adds the accepted abortion settlement, the accepted schools-and-pushing bridge, an Owen Sound voting trial, six draft bridges (assimilation sessions, dual-count poll, checkout trial, minors' medicine, ordinary opinions and employment, Canada–US ties), and a plain AI-pause board. Canada–US is past the five-statement draft: five work planks, a boycott, and a narrower-ties sentence sit on the commonality board. The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed: four accepted bridge pairs and seventeen live attester blesses, including five AI-pause modifieds. The Canada–US boycott and narrower sentence were refused and stay unpublished. Designed-negative pairs stay unpublished. The other five draft clusters and the AI-pause board are not accepted seed. Canada–US is not accepted seed either. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That output is the plan from before the belief pins and before the AI-pause arrows. Do not regenerate into it. Do not regenerate into `output/campaigns/network-societies-v1-b2-ai-pause/`. A later plan belongs in a fresh directory such as `output/campaigns/network-societies-v1-b2-canada-us/`. +**Batch 2** ([`network-societies-v1-b2.md`](../campaigns/network-societies-v1-b2.md)). Keeps those four families and adds the accepted abortion settlement, the accepted schools-and-pushing bridge, an Owen Sound voting trial, six draft bridges (assimilation sessions, dual-count poll, checkout trial, minors' medicine, ordinary opinions and employment, Canada–US ties), and a plain AI-pause board. Canada–US is past the five-statement draft: five work planks, a boycott, and a narrower-ties sentence sit on the commonality board. The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed: four accepted bridge pairs and seventeen live attester blesses, including five AI-pause modifieds. The Canada–US boycott and narrower sentence were refused and stay unpublished. Designed-negative pairs stay unpublished. The other five draft clusters and the AI-pause board are not accepted seed. Canada–US is not accepted seed either. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That output is the plan from before the belief pins and before the AI-pause arrows. Do not regenerate into it. Do not regenerate into `output/campaigns/network-societies-v1-b2-ai-pause/`. The current plan lives in `output/campaigns/network-societies-v1-b2-canada-us/` and was mined locally on 2026-10-19. The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli's only planned belief on the abortion commonality is `disbelieve`. Unsigned is still not a rejection. -**Frozen plan, checked 2026-10-19.** `campaigns/network-societies-v1-b2.json` is identical to `output/campaigns/network-societies-v1-b2-canada-us/manifest.json`. That directory's action graph has 523 writes and has not been executed. Do not regenerate it while the source stays identical. Do not execute it over `output/campaigns/network-societies-v1-b2/`, `output/campaigns/network-societies-v1-b2-ai-pause/`, or the pilot directory. Eli (`user-052`) believes the abortion natural-right sentence and disbelieves the commonality and both modifieds. No project title is shared across causes. The graph has 8 `delegate-note` writes and 3 `revoke-delegation` writes, and zero retroactive `fund-project` writes. Nothing spends a delegated note. +**Local run, 2026-10-19.** `campaigns/network-societies-v1-b2.json` was identical to `output/campaigns/network-societies-v1-b2-canada-us/manifest.json` before execution. That directory's 523 writes mined 523/523 and reconciled 523/523 (indexer lag 0, head 1427). The first pass left 17 `create-project` writes failed for insufficient ETH; those wallets were topped up with `hardhat_setBalance` and the run resumed. Do not regenerate that directory. Do not execute it over `output/campaigns/network-societies-v1-b2/`, `output/campaigns/network-societies-v1-b2-ai-pause/`, or the pilot directory. Test-data run id `20261019T194718789Z`. Open it from the local admin bookmark; do not commit the capability key. Eli (`user-052`, `0x232a…6895`) believes the abortion natural-right sentence and disbelieves the commonality and both modifieds. No project title is shared across causes. The graph has 8 `delegate-note` writes and 3 `revoke-delegation` writes, and zero retroactive `fund-project` writes. Nothing spends a delegated note. **Decided out of this campaign for now.** Delegated spending and a recurring monthly pledge. Pat already delegates a note, and revocation is a real action. Nothing spends a delegated note or repeats a pledge. Journey 5 below is therefore only partly demonstrated, and the "$20/month" filter is still a product gap. @@ -40,7 +40,7 @@ The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli' US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. -**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. A declined bridge is authored for batch 2 (Eli) and is in the new plan, not in the mined output. Verified implication paths are planned for batch 2. Early-risk reimbursement, a friend actually spending a delegated note, recurring pledges, and the independent-reviewer walkthrough are not campaign demonstrations yet. +**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth and as Eli. Early-risk reimbursement, a friend actually spending a delegated note, recurring pledges, and the independent-reviewer walkthrough are not campaign demonstrations yet. ## Inventory against the family minimum @@ -67,9 +67,9 @@ These are properties of the 523-write graph, not of a chain run. A browser walkt | Journey | In the frozen plan | | --- | --- | -| 1. Founder sees an ecosystem | Yes, as content. Sixteen causes, and projects are not all funded the same way. Not yet seen in a browser on this plan. | -| 2. Alliance without merger | Direct shared agreement is in the pilot families. Twenty-one implication writes are in this graph, including Eli's refused settlement staying off the arrow list. Not yet mined. | -| 3. A bridge is declined | Yes. Eli disbelieves the abortion commonality and both modifieds, and believes only the natural-right sentence. | +| 1. Founder sees an ecosystem | Mined. As Ruth (`0xf39F…2266`), the Owen Sound checkout board showed base and organizing work, 0.08 USDZZZ raised and 5.92 still needed, and the not-yet-funded tab listing 3 projects. She is that board's organizer, so the page opened in the organizer view. | +| 2. Alliance without merger | Mined. Twenty-one implication writes are in this graph. The abortion commonality page is a mediator board and says signers can arrive through other statements. A full two-person funding walkthrough of one shared project was not clicked. | +| 3. A bridge is declined | Mined. Eli's profile lists "Late-term abortion is horrific." and does not list the settlement sentence. The settlement statement page still offers him Sign. | | 4. Early risk and later reimbursement | No retroactive `fund-project` write. The v2 planner emits those only for its own bridge project. This campaign does not. | | 5. Limited delegation | Pat delegates to Ned, and three revocations are planned. No action spends a delegated note. Recurring monthly pledges are not an action type here. | | 6. Same project, different boards | No. Two statements sit on two boards. Projects do not. | @@ -232,4 +232,4 @@ Remote/testnet publication is a separate later step using existing preflight, bu - Required journeys have reconciled state and browser observations. Unsupported behaviors are listed as specific gaps, never counted as demonstrated; the full demo is not called complete while a required journey is silently missing. - The report identifies synthetic users/activity/deliverables, actual amounts and outcomes, exact reproduction steps, and the next unfinished task if work spans sessions. -**Next task:** execute the frozen plan already in `output/campaigns/network-societies-v1-b2-canada-us/` (523 writes; source manifest matches). Do not regenerate that directory while the source stays identical. Do not regenerate `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. After reconciliation, walk journeys 1–3 in the browser and record the URLs. Journeys 4, 6, and 7 are not in the action graph: no retroactive fund, no shared project contract, and no declined alignment. Journey 5 stops at delegate and revoke. Leave those four as gaps until someone extends the planner. The local demonstration in step 5 is still not done. +**Next task:** the 2026-10-19 local run is mined and reconciled. Do not regenerate `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Journeys 1 and 3 were opened in the browser; journey 2 was not walked as two contributors. Journeys 4, 6, and 7 are not in the action graph: no retroactive fund, no shared project contract, and no declined alignment. Journey 5 stops at delegate and revoke. Leave those four as gaps until someone extends the planner. The create-project gas quote still underfunded 17 wallets on the first pass. A remote publication is a separate step. diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 3c62e9ad..a49b6633 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -14,7 +14,7 @@ Canada–US stays a bridge. The shared sentence is still ordinary purchases and ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. It was not executed. On 2026-10-19 the source manifest was identical to that directory's `manifest.json`, so the 523-write graph is still current. Do not regenerate it while that stays true. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board and the Grey County conduct board are ordinary boards, so their own sentences stay visible there. @@ -48,4 +48,4 @@ OpenCode Go DeepSeek ids (`deepseek-v4-flash`, `deepseek-v4.1-flash`, `deepseek- The Grey County assimilation commonality board is `http://commonality.localhost:8088/#/cause/0xEe6a18208ca061e2Eddd4A6fA7E4E4d4927eF352/network-societies-v1-b2-grey-assimilation-bridge`. Its statement page shows "Arriving through other statements." Direct and indirect counts were 0 on that load because the visible sentence had no signers yet. -A plan built after the belief pins is not the plan that mined. `output/campaigns/network-societies-v1-b2/` keeps that executed run. Rewriting it would mark the wallets unprovisioned. The next chain run needs a new output directory. Delegated spending and a monthly pledge stay out. The six clusters are not accepted seed. The remaining brainstorm families stay unauthored where they already share a concrete want with a published board. +A plan built after the belief pins is not the 446-write run. `output/campaigns/network-societies-v1-b2/` keeps that earlier executed run. The belief-pin plan mined on 2026-10-19 into `output/campaigns/network-societies-v1-b2-canada-us/` (test-data run `20261019T194718789Z`). The first pass failed 17 project creates for insufficient ETH; `hardhat_setBalance` topped the 72 campaign wallets up to 1 ETH and a `--skip-provision` resume finished the graph. Checkout board: `http://commonality.localhost:8088/#/cause/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266/campaign-network-societies-v1-b2-crypto-merchants`. Abortion commonality: `http://commonality.localhost:8088/#/cause/0xEEdFeD616b245E18E29009556F2a21c18eE7c803/network-societies-v1-b2-abortion-bridge`. Delegated spending and a monthly pledge stay out. The six clusters are not accepted seed. The remaining brainstorm families stay unauthored where they already share a concrete want with a published board. From a8a91c8d65e7a5f8c9dabdadd37857fb30192803 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 16:09:56 -0400 Subject: [PATCH 05/46] Name the next network-societies chunk. A fresh session was being pointed at the wrong output directory and at a list of gaps. The next chunk is one browser walk of two people funding the same project. --- fake-data-generation/PLAN.md | 2 +- .../brainstorming/network-societies-campaign-plan.md | 4 +++- focus.md | 5 +---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index a7ccb499..8e625c0c 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. On 2026-10-19 that directory mined and reconciled 523/523. The nine families meet the plank and project minimum. Journeys 4, 6, and 7 are absent from that graph, and journey 5 does not spend a note. See the campaign plan. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. The next chunk is one browser walk, described at the end of the campaign plan. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index f108930e..977d8aed 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -232,4 +232,6 @@ Remote/testnet publication is a separate later step using existing preflight, bu - Required journeys have reconciled state and browser observations. Unsupported behaviors are listed as specific gaps, never counted as demonstrated; the full demo is not called complete while a required journey is silently missing. - The report identifies synthetic users/activity/deliverables, actual amounts and outcomes, exact reproduction steps, and the next unfinished task if work spans sessions. -**Next task:** the 2026-10-19 local run is mined and reconciled. Do not regenerate `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Journeys 1 and 3 were opened in the browser; journey 2 was not walked as two contributors. Journeys 4, 6, and 7 are not in the action graph: no retroactive fund, no shared project contract, and no declined alignment. Journey 5 stops at delegate and revoke. Leave those four as gaps until someone extends the planner. The create-project gas quote still underfunded 17 wallets on the first pass. A remote publication is a separate step. +**Next task:** walk journey 2 in the browser on the mined 2026-10-19 run and write the two URLs into this file. Pick two users who fund the same project and still disagree somewhere else. One path should be a direct shared statement. One path should be a verified implication. Connect as each user from test-data run `20261019T194718789Z` (local admin bookmark; read `fake-data-generation/output/test-data/.admin-capability`; do not commit the key). Record what each person sees. Stop there. + +Do not regenerate `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Do not extend the planner in this chunk. Journeys 4, 6, and 7 are absent from the graph: no retroactive fund, no shared project contract, and no declined alignment. Journey 5 stops at delegate and revoke. The create-project gas quote underfunded 17 wallets on the first pass; leave that until the next execution. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. diff --git a/focus.md b/focus.md index 62b897c8..43358408 100644 --- a/focus.md +++ b/focus.md @@ -2,7 +2,4 @@ High-level work we are actually concentrating on right now. Not a to-do list — those live in [TODO.md](./TODO.md), [commonality/TODO.md](./commonality/TODO.md), and the [testnet working plan](./workflow/testnet-working-plan.md). At most three items. Keep this file current. -- **Marketing at research altitude.** Get the demo room tellable in 90 seconds, run friend walkthroughs on testnet, fix the repeated confusions, then cause-flavored share artifacts — not umbrella ads. Hub and plan: [specs/product/marketing/](./specs/product/marketing/README.md). Do not use mass fake activity as the friend demo. -- **Open-ended work-item identity.** A project creator should be able to assign IDs to work items. See [specs/product/structured-fundable-work.md](./specs/product/structured-fundable-work.md). - -The last closed item was [conceptspace repo-split analysis](./specs/tech/conceptspace-repo-split-analysis.md) (in-repo dependency direction; a second repository stays a later decision). +- fake-data-generation/brainstorming/network-societies-campaign-plan.md \ No newline at end of file From 6fd956e5672941104c83c7d4816c26e88f246b01 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 16:32:50 -0400 Subject: [PATCH 06/46] Record the journey 2 browser walk. June and Imani share the checkout trial. The implication path does not land on a second funder of that project. --- fake-data-generation/PLAN.md | 2 +- .../brainstorming/network-societies-campaign-plan.md | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 8e625c0c..1b983957 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. The next chunk is one browser walk, described at the end of the campaign plan. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. The next chunk is the journey 5 walk described there. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 977d8aed..9b2d9409 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -68,7 +68,7 @@ These are properties of the 523-write graph, not of a chain run. A browser walkt | Journey | In the frozen plan | | --- | --- | | 1. Founder sees an ecosystem | Mined. As Ruth (`0xf39F…2266`), the Owen Sound checkout board showed base and organizing work, 0.08 USDZZZ raised and 5.92 still needed, and the not-yet-funded tab listing 3 projects. She is that board's organizer, so the page opened in the organizer view. | -| 2. Alliance without merger | Mined. Twenty-one implication writes are in this graph. The abortion commonality page is a mediator board and says signers can arrive through other statements. A full two-person funding walkthrough of one shared project was not clicked. | +| 2. Alliance without merger | Mined, and walked in the browser on 2026-10-19. Direct shared project: June (`0x8A6a…BdF6`) and Imani (`0x3C44…93BC`) both have a receipt on [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x7688482c92F3b60ee2c761f724F5Fd372ddC147a). June also signs the midweek class transcription. Imani signs the refundable-checkout sentence and a sentence that shops should refuse crypto-only payments. The project page, as June, showed 0.07 of 2 USDZZZ raised, founder Len, and a fake-data label. The implication half is not this pair. No two funders of one project split into "signed the commonality" and "signed only the modified." The closest disagreement is Wes (`0x68E6…b1Ee`) and Fake user 023 (`0x9D19…f99b`) on [Owen Sound association poll](http://127.0.0.1:5199/projects/0xad385917d545a7b1b7307654Aa5D7F6c1946d6A1). As Wes the page showed 0.03 of 2 USDZZZ raised and said the poll does not change a municipal election. Wes signs the direct ranked-poll sentence and wants Owen Sound elections to keep first-past-the-post. Fake user 023 signs the modified-right sentence, which has a live attester arrow to the dual-count commonality, and does not fund that commonality project. | | 3. A bridge is declined | Mined. Eli's profile lists "Late-term abortion is horrific." and does not list the settlement sentence. The settlement statement page still offers him Sign. | | 4. Early risk and later reimbursement | No retroactive `fund-project` write. The v2 planner emits those only for its own bridge project. This campaign does not. | | 5. Limited delegation | Pat delegates to Ned, and three revocations are planned. No action spends a delegated note. Recurring monthly pledges are not an action type here. | @@ -232,6 +232,8 @@ Remote/testnet publication is a separate later step using existing preflight, bu - Required journeys have reconciled state and browser observations. Unsupported behaviors are listed as specific gaps, never counted as demonstrated; the full demo is not called complete while a required journey is silently missing. - The report identifies synthetic users/activity/deliverables, actual amounts and outcomes, exact reproduction steps, and the next unfinished task if work spans sessions. -**Next task:** walk journey 2 in the browser on the mined 2026-10-19 run and write the two URLs into this file. Pick two users who fund the same project and still disagree somewhere else. One path should be a direct shared statement. One path should be a verified implication. Connect as each user from test-data run `20261019T194718789Z` (local admin bookmark; read `fake-data-generation/output/test-data/.admin-capability`; do not commit the key). Record what each person sees. Stop there. +**Journey 2 walk, 2026-10-19.** The two project URLs are in the journey table. The published bundle at `commonality.localhost:8088` is an older IPFS snapshot: `/projects/…` and `/admin/test-data/…` are not in it. The walk used the current `ui/dist/commonality` build on `http://127.0.0.1:5199`, with `/test-data` read from `fake-data-generation/output/test-data` and the indexer proxied from port 42069. Connect from run `20261019T194718789Z`. A full page load drops the in-memory wallet, so profile and project clicks have to stay inside the app. Do not commit the capability key. + +**Next task:** walk journey 5 in the browser on this same run. Pat's delegation to Ned, and one of the three revocations. Record the two URLs and what each wallet sees. Do not call delegated spending demonstrated. Stop there. Do not regenerate `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Do not extend the planner in this chunk. Journeys 4, 6, and 7 are absent from the graph: no retroactive fund, no shared project contract, and no declined alignment. Journey 5 stops at delegate and revoke. The create-project gas quote underfunded 17 wallets on the first pass; leave that until the next execution. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. From f1243e869d2ffb3fedb1442c6eac50148eee82e9 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 16:50:23 -0400 Subject: [PATCH 07/46] Record the journey 5 browser walk. Pat's revoked note is back with Pat; Ned does not hold it, and neither page shows a delegated spend. --- fake-data-generation/PLAN.md | 2 +- .../brainstorming/network-societies-campaign-plan.md | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 1b983957..b27b1479 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. The next chunk is the journey 5 walk described there. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. The next chunk is the create-project gas quote named in the campaign plan. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 9b2d9409..58b8a3a1 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -40,7 +40,7 @@ The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli' US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. -**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth and as Eli. Early-risk reimbursement, a friend actually spending a delegated note, recurring pledges, and the independent-reviewer walkthrough are not campaign demonstrations yet. +**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement, a friend actually spending a delegated note, recurring pledges, and the independent-reviewer walkthrough are not campaign demonstrations yet. ## Inventory against the family minimum @@ -71,7 +71,7 @@ These are properties of the 523-write graph, not of a chain run. A browser walkt | 2. Alliance without merger | Mined, and walked in the browser on 2026-10-19. Direct shared project: June (`0x8A6a…BdF6`) and Imani (`0x3C44…93BC`) both have a receipt on [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x7688482c92F3b60ee2c761f724F5Fd372ddC147a). June also signs the midweek class transcription. Imani signs the refundable-checkout sentence and a sentence that shops should refuse crypto-only payments. The project page, as June, showed 0.07 of 2 USDZZZ raised, founder Len, and a fake-data label. The implication half is not this pair. No two funders of one project split into "signed the commonality" and "signed only the modified." The closest disagreement is Wes (`0x68E6…b1Ee`) and Fake user 023 (`0x9D19…f99b`) on [Owen Sound association poll](http://127.0.0.1:5199/projects/0xad385917d545a7b1b7307654Aa5D7F6c1946d6A1). As Wes the page showed 0.03 of 2 USDZZZ raised and said the poll does not change a municipal election. Wes signs the direct ranked-poll sentence and wants Owen Sound elections to keep first-past-the-post. Fake user 023 signs the modified-right sentence, which has a live attester arrow to the dual-count commonality, and does not fund that commonality project. | | 3. A bridge is declined | Mined. Eli's profile lists "Late-term abortion is horrific." and does not list the settlement sentence. The settlement statement page still offers him Sign. | | 4. Early risk and later reimbursement | No retroactive `fund-project` write. The v2 planner emits those only for its own bridge project. This campaign does not. | -| 5. Limited delegation | Pat delegates to Ned, and three revocations are planned. No action spends a delegated note. Recurring monthly pledges are not an action type here. | +| 5. Limited delegation | Pat's note to Ned was revoked in the same graph, so the live page shows the note back with Pat. Walked 2026-10-19. No action spends a delegated note. Recurring monthly pledges are not an action type here. | | 6. Same project, different boards | No. Two statements sit on two boards. Projects do not. | | 7. Independent judgment | June is described as a reviewer who refuses a superficial alignment. The graph's 62 alignment writes are all `supports-described-outcome`. A decline is not planned. | @@ -234,6 +234,10 @@ Remote/testnet publication is a separate later step using existing preflight, bu **Journey 2 walk, 2026-10-19.** The two project URLs are in the journey table. The published bundle at `commonality.localhost:8088` is an older IPFS snapshot: `/projects/…` and `/admin/test-data/…` are not in it. The walk used the current `ui/dist/commonality` build on `http://127.0.0.1:5199`, with `/test-data` read from `fake-data-generation/output/test-data` and the indexer proxied from port 42069. Connect from run `20261019T194718789Z`. A full page load drops the in-memory wallet, so profile and project clicks have to stay inside the app. Do not commit the capability key. -**Next task:** walk journey 5 in the browser on this same run. Pat's delegation to Ned, and one of the three revocations. Record the two URLs and what each wallet sees. Do not call delegated spending demonstrated. Stop there. +**Journey 5 walk, 2026-10-19.** Same server and run as journey 2 (`http://127.0.0.1:5199`, run `20261019T194718789Z`). Pat is `user-021` (`0x6cb5…9296`). Ned is `user-011` (`0x4A04…86bA`). The note is [Fund #25](http://127.0.0.1:5199/delegation/notes/0x8a791620dd6260079bf849dc5567adc3f2fdc318%3A25) (`note-0001`). Pat delegated 1500 base units to Ned and then revoked that same note (`action-00513`, `action-00521`). + +As Pat, [My Delegated Funds](http://127.0.0.1:5199/delegation/notes) lists Fund #25 as undelegated, current owner Pat, with Delegate and Reclaim. The detail page shows a 1-wei ETH deposit on 19/10/2026 15:46:48 and no delegation event. As Ned, that URL says he has no actions on the note, and his list does not include Fund #25. Ned is acting as delegate on three other notes: #16, #29, and #31, each 1 wei, with Hand back. His own Fund #18 is controlled by someone else. Neither wallet shows a monthly pledge. Nothing on these pages is a spend of a delegated note. + +**Next task:** the create-project gas quote that left 17 wallets short of ETH on the first pass of this run. Fix that before another execution. Do not regenerate the four output directories named below. Do not treat journey 5 as delegated spending. Journeys 4, 6, and 7 are still absent from this graph. Do not regenerate `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Do not extend the planner in this chunk. Journeys 4, 6, and 7 are absent from the graph: no retroactive fund, no shared project contract, and no declined alignment. Journey 5 stops at delegate and revoke. The create-project gas quote underfunded 17 wallets on the first pass; leave that until the next execution. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. From dd3148b2aeab9c5c6eb323c32f1feeedc172a68f Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 16:59:18 -0400 Subject: [PATCH 08/46] Quote create-project gas from the 4.07M local receipts. The 3M quote left 17 founder wallets short on the 2026-10-19 batch-2 run. --- .../brainstorming/network-societies-campaign-plan.md | 6 ++++-- fake-data-generation/campaignBatching.ts | 7 ++++--- fake-data-generation/campaignPlanner.ts | 2 +- fake-data-generation/test/campaignProvisioning.test.ts | 10 ++++++++++ 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 58b8a3a1..eb71866c 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -238,6 +238,8 @@ Remote/testnet publication is a separate later step using existing preflight, bu As Pat, [My Delegated Funds](http://127.0.0.1:5199/delegation/notes) lists Fund #25 as undelegated, current owner Pat, with Delegate and Reclaim. The detail page shows a 1-wei ETH deposit on 19/10/2026 15:46:48 and no delegation event. As Ned, that URL says he has no actions on the note, and his list does not include Fund #25. Ned is acting as delegate on three other notes: #16, #29, and #31, each 1 wei, with Hand back. His own Fund #18 is controlled by someone else. Neither wallet shows a monthly pledge. Nothing on these pages is a spend of a delegated note. -**Next task:** the create-project gas quote that left 17 wallets short of ETH on the first pass of this run. Fix that before another execution. Do not regenerate the four output directories named below. Do not treat journey 5 as delegated spending. Journeys 4, 6, and 7 are still absent from this graph. +**Create-project gas quote, 2026-10-19.** The 62 mined receipts in `output/campaigns/network-societies-v1-b2-canada-us/` used 4,073,876–4,073,924 gas. `SOLO_GAS_UNITS['create-project']` was 3,000,000, so the 25% buffer still stopped short of the balance the transaction required. The quote is now 4,500,000. That does not change the mined graph. Do not regenerate the four output directories named below. -Do not regenerate `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Do not extend the planner in this chunk. Journeys 4, 6, and 7 are absent from the graph: no retroactive fund, no shared project contract, and no declined alignment. Journey 5 stops at delegate and revoke. The create-project gas quote underfunded 17 wallets on the first pass; leave that until the next execution. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** journeys 4, 6, and 7 are still absent from this graph. Do not treat journey 5 as delegated spending. Do not start those journeys by regenerating a mined directory. + +Do not regenerate `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Do not extend the planner in this chunk. Journeys 4, 6, and 7 are absent from the graph: no retroactive fund, no shared project contract, and no declined alignment. Journey 5 stops at delegate and revoke. The create-project quote now matches the 4.07M local receipts. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. diff --git a/fake-data-generation/campaignBatching.ts b/fake-data-generation/campaignBatching.ts index 121806d7..7ad01f21 100644 --- a/fake-data-generation/campaignBatching.ts +++ b/fake-data-generation/campaignBatching.ts @@ -20,9 +20,10 @@ export const SOLO_GAS_UNITS: Record = { // setBelief is 120_000, and setBeliefsInBatch is 40_000 + 80_000 * n // (three beliefs => 280_000). The old 180k/90k figures left wallets short. 'publish-statement': 4_000_000n, 'create-cause': 120_000n, 'create-bridge-board': 120_000n, 'create-bridge': 120_000n, 'set-belief': 120_000n, - // Base Sepolia clone-factory canary on 2026-09-29: five create-project - // receipts averaged 2,851,538 gas. Keep a little headroom for colder storage. - 'attest-implication': 130_000n, 'create-project': 3_000_000n, 'attest-alignment': 130_000n, + // Local network-societies batch 2 on 2026-10-19: 62 create-project receipts + // used 4,073,876–4,073,924 gas. A 3,000,000 quote left 17 founder wallets + // short of the balance viem requires for that limit. Headroom above the max. + 'attest-implication': 130_000n, 'create-project': 4_500_000n, 'attest-alignment': 130_000n, 'fund-project': 180_000n, 'deposit-note': 150_000n, 'delegate-note': 100_000n, 'revoke-delegation': 90_000n, }; diff --git a/fake-data-generation/campaignPlanner.ts b/fake-data-generation/campaignPlanner.ts index c39bc01d..b63a1e1a 100644 --- a/fake-data-generation/campaignPlanner.ts +++ b/fake-data-generation/campaignPlanner.ts @@ -118,7 +118,7 @@ export interface CampaignPlan { const GAS_UNITS: Record = { 'publish-statement': 4_000_000, 'create-cause': 120_000, 'create-bridge-board': 120_000, 'create-bridge': 120_000, 'set-belief': 120_000, - 'attest-implication': 130_000, 'create-project': 1_100_000, 'attest-alignment': 130_000, + 'attest-implication': 130_000, 'create-project': 4_500_000, 'attest-alignment': 130_000, 'fund-project': 180_000, 'deposit-note': 150_000, 'delegate-note': 100_000, 'revoke-delegation': 90_000, }; diff --git a/fake-data-generation/test/campaignProvisioning.test.ts b/fake-data-generation/test/campaignProvisioning.test.ts index f77bd9f7..f4fbe923 100644 --- a/fake-data-generation/test/campaignProvisioning.test.ts +++ b/fake-data-generation/test/campaignProvisioning.test.ts @@ -59,6 +59,16 @@ test('publisher wallet receives gas for actorless statement writes', () => { assert.ok(need.nativeWei >= 4_000_000n * 6_000_000n); }); +test('create-project quotes cover the local clone-factory receipt', () => { + const create = action({ id: 'project', type: 'create-project' }); + // 2026-10-19 local receipts used 4,073,924 gas. The old 3,000,000 quote + // was below that, so the 25% buffer still left founders short. + assert.equal(estimateGroupGas([create]), 4_500_000n); + const projectPlan = { ...plan, actions: [create] } as CampaignPlan; + const [need] = computeCampaignFundingNeeds(projectPlan, [wallet], 1_000_000_000n); + assert.ok(need.nativeWei >= 4_073_924n * 1_000_000_000n); +}); + test('belief batches and publishes are funded for the gas the writer requests', () => { const beliefs = [1, 2, 3].map((n) => action({ id: `b${n}`, type: 'set-belief', sequence: n })); const writerGas = 40_000n + 80_000n * 3n; From 34fbd9bdaeb9e93078f5aa75436f29ff76fbdbe1 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 17:04:56 -0400 Subject: [PATCH 09/46] =?UTF-8?q?Record=20the=20decision=20to=20flesh=20ou?= =?UTF-8?q?t=20campaign=20journeys=204=E2=80=937.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The mined graph stays put. A fresh plan has to add retroactive reimbursement, a delegated spend, one shared project, and a declined alignment. --- .../network-societies-campaign-plan.md | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index eb71866c..d9604ed4 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -40,7 +40,7 @@ The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli' US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. -**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement, a friend actually spending a delegated note, recurring pledges, and the independent-reviewer walkthrough are not campaign demonstrations yet. +**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement, a friend spending a delegated note, one project contract on two boards, and a declined alignment are not in that graph. On 2026-10-19 Adam decided to flesh those four out in a fresh plan. A recurring monthly pledge stays a product gap. ## Inventory against the family minimum @@ -70,10 +70,10 @@ These are properties of the 523-write graph, not of a chain run. A browser walkt | 1. Founder sees an ecosystem | Mined. As Ruth (`0xf39F…2266`), the Owen Sound checkout board showed base and organizing work, 0.08 USDZZZ raised and 5.92 still needed, and the not-yet-funded tab listing 3 projects. She is that board's organizer, so the page opened in the organizer view. | | 2. Alliance without merger | Mined, and walked in the browser on 2026-10-19. Direct shared project: June (`0x8A6a…BdF6`) and Imani (`0x3C44…93BC`) both have a receipt on [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x7688482c92F3b60ee2c761f724F5Fd372ddC147a). June also signs the midweek class transcription. Imani signs the refundable-checkout sentence and a sentence that shops should refuse crypto-only payments. The project page, as June, showed 0.07 of 2 USDZZZ raised, founder Len, and a fake-data label. The implication half is not this pair. No two funders of one project split into "signed the commonality" and "signed only the modified." The closest disagreement is Wes (`0x68E6…b1Ee`) and Fake user 023 (`0x9D19…f99b`) on [Owen Sound association poll](http://127.0.0.1:5199/projects/0xad385917d545a7b1b7307654Aa5D7F6c1946d6A1). As Wes the page showed 0.03 of 2 USDZZZ raised and said the poll does not change a municipal election. Wes signs the direct ranked-poll sentence and wants Owen Sound elections to keep first-past-the-post. Fake user 023 signs the modified-right sentence, which has a live attester arrow to the dual-count commonality, and does not fund that commonality project. | | 3. A bridge is declined | Mined. Eli's profile lists "Late-term abortion is horrific." and does not list the settlement sentence. The settlement statement page still offers him Sign. | -| 4. Early risk and later reimbursement | No retroactive `fund-project` write. The v2 planner emits those only for its own bridge project. This campaign does not. | -| 5. Limited delegation | Pat's note to Ned was revoked in the same graph, so the live page shows the note back with Pat. Walked 2026-10-19. No action spends a delegated note. Recurring monthly pledges are not an action type here. | -| 6. Same project, different boards | No. Two statements sit on two boards. Projects do not. | -| 7. Independent judgment | June is described as a reviewer who refuses a superficial alignment. The graph's 62 alignment writes are all `supports-described-outcome`. A decline is not planned. | +| 4. Early risk and later reimbursement | Not in the 523-write graph. Adam decided on 2026-10-19 to flesh this out. See "Journeys 4–7 to flesh out" below. | +| 5. Limited delegation | Delegate and revoke are mined. Pat's note to Ned was revoked, so the live page shows the note back with Pat. Walked 2026-10-19. A spend of a delegated note is not in the graph. Adam decided on 2026-10-19 to flesh that spend out. A recurring monthly pledge stays a product gap. | +| 6. Same project, different boards | Not in the 523-write graph. Two statements sit on two boards. Adam decided on 2026-10-19 to flesh out one shared project contract. | +| 7. Independent judgment | Not in the 523-write graph. June is described as a reviewer who refuses a superficial alignment. The 62 alignment writes are all `supports-described-outcome`. Adam decided on 2026-10-19 to flesh out a real decline. | ## Purpose @@ -240,6 +240,16 @@ As Pat, [My Delegated Funds](http://127.0.0.1:5199/delegation/notes) lists Fund **Create-project gas quote, 2026-10-19.** The 62 mined receipts in `output/campaigns/network-societies-v1-b2-canada-us/` used 4,073,876–4,073,924 gas. `SOLO_GAS_UNITS['create-project']` was 3,000,000, so the 25% buffer still stopped short of the balance the transaction required. The quote is now 4,500,000. That does not change the mined graph. Do not regenerate the four output directories named below. -**Next task:** journeys 4, 6, and 7 are still absent from this graph. Do not treat journey 5 as delegated spending. Do not start those journeys by regenerating a mined directory. +## Journeys 4–7 to flesh out -Do not regenerate `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Do not extend the planner in this chunk. Journeys 4, 6, and 7 are absent from the graph: no retroactive fund, no shared project contract, and no declined alignment. Journey 5 stops at delegate and revoke. The create-project quote now matches the 4.07M local receipts. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they should stay out. The 523-write graph does not contain them because the planner never emits them for this campaign. Do not edit the four mined output directories. A plan that includes these actions goes in a fresh directory and is executed locally. + +**Journey 4. Early fund, later reimbursement.** The medium-realistic v2 planner already emits four retroactive `fund-project` writes, and only on that campaign's abortion bridge project, behind `useStories`. This campaign never takes that path, so the network-societies graph has zero retroactive funds. Extend the planner so one named network-societies project gets early purchases that reach the contract threshold, then later retroactive reimbursements through the existing waterfall. Name the actors. Crossing the threshold is not evidence that the fictional work was delivered. + +**Journey 5. A friend spends a delegated note.** Delegate and revoke already run. Pat (`user-021`) delegated note `note-0001` to Ned (`user-011`) and then revoked that same note, so that pair cannot also show a spend. There is no campaign action that spends a delegated note. Add a one-time spend on a note that stays delegated: a different owner and delegate from the revoked Pat/Ned pair, on particular work, with the chain and the delegation page showing the spend. A recurring monthly pledge is still not an action type. Leave that as a product gap. Do not invent pledge transactions. + +**Journey 6. One project on two boards.** Each planned project has one `causeId`. Publishing the same artifact as a second contract would double-count the raise. Plan one project contract and two justified board alignments. The class-host directory statement and the moderator checklist statement already show statement reuse. This journey is the project form of that. Contradictory planks on those boards must not become implied endorsements of the shared project. + +**Journey 7. A reviewer declines an alignment.** `attest-alignment` is forced to `supports-described-outcome`, and `validatePlannedActions` rejects anything else. June is the reviewer who should refuse a superficially relevant project while another project earns her support. That decline has to be a real alignment write the indexer and the project page can show. If the contract cannot record a decline, say so in this file and stop, rather than hiding the refusal in persona prose. + +**Next task:** extend the planner and adapter for journeys 4, 5 (one-time delegated spend only), 6, and 7, with tests. Plan into a fresh output directory. Do not regenerate `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. From eabfa9c08c3f46ff75731cf810989444115b8801 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 17:17:15 -0400 Subject: [PATCH 10/46] Plan early receipts and later reimbursement for one named project. The alignment contract can only record a yes or a revoke of that yes, so a declined project alignment stays a product gap. --- .../network-societies-campaign-plan.md | 12 +++---- fake-data-generation/campaignPlanner.ts | 32 +++++++++++++++---- fake-data-generation/campaignSchema.ts | 16 ++++++++++ .../test/campaignPlanner.test.ts | 21 ++++++++++++ 4 files changed, 69 insertions(+), 12 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index d9604ed4..77d38d47 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -40,7 +40,7 @@ The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli' US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. -**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement, a friend spending a delegated note, one project contract on two boards, and a declined alignment are not in that graph. On 2026-10-19 Adam decided to flesh those four out in a fresh plan. A recurring monthly pledge stays a product gap. +**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is a planner option (`reimbursement` on the manifest) and is not on the batch 2 manifest or in the mined graph. A friend spending a delegated note and one project contract on two boards are still unplanned. A declined alignment cannot be recorded: the alignment contract is positive-only. A recurring monthly pledge stays a product gap. ## Inventory against the family minimum @@ -70,10 +70,10 @@ These are properties of the 523-write graph, not of a chain run. A browser walkt | 1. Founder sees an ecosystem | Mined. As Ruth (`0xf39F…2266`), the Owen Sound checkout board showed base and organizing work, 0.08 USDZZZ raised and 5.92 still needed, and the not-yet-funded tab listing 3 projects. She is that board's organizer, so the page opened in the organizer view. | | 2. Alliance without merger | Mined, and walked in the browser on 2026-10-19. Direct shared project: June (`0x8A6a…BdF6`) and Imani (`0x3C44…93BC`) both have a receipt on [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x7688482c92F3b60ee2c761f724F5Fd372ddC147a). June also signs the midweek class transcription. Imani signs the refundable-checkout sentence and a sentence that shops should refuse crypto-only payments. The project page, as June, showed 0.07 of 2 USDZZZ raised, founder Len, and a fake-data label. The implication half is not this pair. No two funders of one project split into "signed the commonality" and "signed only the modified." The closest disagreement is Wes (`0x68E6…b1Ee`) and Fake user 023 (`0x9D19…f99b`) on [Owen Sound association poll](http://127.0.0.1:5199/projects/0xad385917d545a7b1b7307654Aa5D7F6c1946d6A1). As Wes the page showed 0.03 of 2 USDZZZ raised and said the poll does not change a municipal election. Wes signs the direct ranked-poll sentence and wants Owen Sound elections to keep first-past-the-post. Fake user 023 signs the modified-right sentence, which has a live attester arrow to the dual-count commonality, and does not fund that commonality project. | | 3. A bridge is declined | Mined. Eli's profile lists "Late-term abortion is horrific." and does not list the settlement sentence. The settlement statement page still offers him Sign. | -| 4. Early risk and later reimbursement | Not in the 523-write graph. Adam decided on 2026-10-19 to flesh this out. See "Journeys 4–7 to flesh out" below. | +| 4. Early risk and later reimbursement | Not in the 523-write graph. The planner can emit it when a manifest sets `reimbursement`. Batch 2 does not. Not executed. | | 5. Limited delegation | Delegate and revoke are mined. Pat's note to Ned was revoked, so the live page shows the note back with Pat. Walked 2026-10-19. A spend of a delegated note is not in the graph. Adam decided on 2026-10-19 to flesh that spend out. A recurring monthly pledge stays a product gap. | | 6. Same project, different boards | Not in the 523-write graph. Two statements sit on two boards. Adam decided on 2026-10-19 to flesh out one shared project contract. | -| 7. Independent judgment | Not in the 523-write graph. June is described as a reviewer who refuses a superficial alignment. The 62 alignment writes are all `supports-described-outcome`. Adam decided on 2026-10-19 to flesh out a real decline. | +| 7. Independent judgment | Stopped. The alignment contract records only a positive attestation or a revoke of that same attestation. It cannot record a decline of one project beside support for another. | ## Purpose @@ -244,12 +244,12 @@ As Pat, [My Delegated Funds](http://127.0.0.1:5199/delegation/notes) lists Fund Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they should stay out. The 523-write graph does not contain them because the planner never emits them for this campaign. Do not edit the four mined output directories. A plan that includes these actions goes in a fresh directory and is executed locally. -**Journey 4. Early fund, later reimbursement.** The medium-realistic v2 planner already emits four retroactive `fund-project` writes, and only on that campaign's abortion bridge project, behind `useStories`. This campaign never takes that path, so the network-societies graph has zero retroactive funds. Extend the planner so one named network-societies project gets early purchases that reach the contract threshold, then later retroactive reimbursements through the existing waterfall. Name the actors. Crossing the threshold is not evidence that the fictional work was delivered. +**Journey 4. Early fund, later reimbursement.** The medium-realistic v2 planner already emits four retroactive `fund-project` writes, and only on that campaign's abortion bridge project, behind `useStories`. Batch 2 still does not set this, so its plan has zero retroactive funds and the mined graph is unchanged. An optional `reimbursement` field on the manifest now plans early 0.10-receipt purchases (twenty of them are 2 USDZZZ, the create-project threshold) on one project title, then retroactive donations that depend on those purchases. The two funders are not the founder. The checked example is "Six-shop refundable checkout trial", with the fund-project target raised from 70 to 74. That field is not on `network-societies-v1-b2.json`. It has not been planned into a fresh directory or executed. Crossing the threshold is not evidence that the fictional work was delivered. **Journey 5. A friend spends a delegated note.** Delegate and revoke already run. Pat (`user-021`) delegated note `note-0001` to Ned (`user-011`) and then revoked that same note, so that pair cannot also show a spend. There is no campaign action that spends a delegated note. Add a one-time spend on a note that stays delegated: a different owner and delegate from the revoked Pat/Ned pair, on particular work, with the chain and the delegation page showing the spend. A recurring monthly pledge is still not an action type. Leave that as a product gap. Do not invent pledge transactions. **Journey 6. One project on two boards.** Each planned project has one `causeId`. Publishing the same artifact as a second contract would double-count the raise. Plan one project contract and two justified board alignments. The class-host directory statement and the moderator checklist statement already show statement reuse. This journey is the project form of that. Contradictory planks on those boards must not become implied endorsements of the shared project. -**Journey 7. A reviewer declines an alignment.** `attest-alignment` is forced to `supports-described-outcome`, and `validatePlannedActions` rejects anything else. June is the reviewer who should refuse a superficially relevant project while another project earns her support. That decline has to be a real alignment write the indexer and the project page can show. If the contract cannot record a decline, say so in this file and stop, rather than hiding the refusal in persona prose. +**Journey 7. A reviewer declines an alignment.** Stopped here on 2026-10-19. `AlignmentAttestations` only records a positive `attestAlignment` (and `attestSuccess`) or a later `revokeAlignment` of that same yes. There is no decline, reject, or negative alignment. A revoke would say June withdrew her own support. It would not say she refused one superficially relevant project while supporting another. The planner still forces `supports-described-outcome`, and that matches the contract. Do not hide the refusal in persona prose and call the journey done. Showing it needs a contract and indexer change, which is outside this campaign chunk. -**Next task:** extend the planner and adapter for journeys 4, 5 (one-time delegated spend only), 6, and 7, with tests. Plan into a fresh output directory. Do not regenerate `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** put `reimbursement` on a copy of the batch 2 manifest, plan into a fresh output directory, and execute that locally. Then journeys 5 (one-time delegated spend only) and 6. Journey 7 waits on a real decline in the alignment contract. Do not regenerate `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. diff --git a/fake-data-generation/campaignPlanner.ts b/fake-data-generation/campaignPlanner.ts index b63a1e1a..7ccbdf64 100644 --- a/fake-data-generation/campaignPlanner.ts +++ b/fake-data-generation/campaignPlanner.ts @@ -573,26 +573,46 @@ export async function buildCampaignPlan(manifest: CampaignManifestV1): Promise item.causeId === bridgeProject!.causeId && item.role === `natural-${camp}`)!; return add({ type: 'set-belief', actorUserId: user.id, causeId: bridgeProject!.causeId, statementId: statement.id, belief: 'believe', dependsOn: [publishes.get(statement.id)!.id] }); }); + const reimbursement = manifest.reimbursement; + const retroactiveCount = reimbursement?.retroactiveDonations ?? 0; + const earlyFundCount = countByType['fund-project'] - retroactiveCount; + if (reimbursement && (earlyFundCount < reimbursement.earlyPurchases || earlyFundCount < 1)) { + throw new Error('reimbursement purchases do not fit in the fund-project action count'); + } + const reimbursementProject = reimbursement ? projects.find((project) => project.title === reimbursement.projectTitle) : undefined; + if (reimbursement && !reimbursementProject) throw new Error(`reimbursement project not planned: ${reimbursement.projectTitle}`); + const reimbursementBackers = reimbursementProject + ? activeUsers.filter((user) => user.causeIds.includes(reimbursementProject.causeId) && user.fundingWeight > 0 && user.id !== reimbursementProject.founderUserId) + : []; + if (reimbursement && reimbursementBackers.length < 2) throw new Error('reimbursement project needs two funders who are not the founder'); const thresholdPurchases: PlannedAction[] = []; - for (let index = 0; index < countByType['fund-project']; index++) { + const reimbursementPurchases: PlannedAction[] = []; + for (let index = 0; index < earlyFundCount; index++) { const featuredCause = useStories ? hobbyCauses[index] : undefined; const bridgePurchase = Boolean(bridgeProject && index >= hobbyCauses.length && index < hobbyCauses.length + 20); - const pinnedPledge = !featuredCause && !bridgePurchase && pinnedPledgeCursor < pinnedPledges.length ? pinnedPledges[pinnedPledgeCursor++] : undefined; - const project = pinnedPledge ? pinnedPledge.project : bridgePurchase ? bridgeProject! : featuredCause ? firstByCause.get(featuredCause)! : random.weighted(fundableProjects, (item) => Math.max(1, fundableProjects.length - (useStories ? fundableProjects.indexOf(item) : projects.indexOf(item)))); + const reimbursementPurchase = Boolean(reimbursementProject && !useStories && index < reimbursement!.earlyPurchases); + const pinnedPledge = !featuredCause && !bridgePurchase && !reimbursementPurchase && pinnedPledgeCursor < pinnedPledges.length ? pinnedPledges[pinnedPledgeCursor++] : undefined; + const project = pinnedPledge ? pinnedPledge.project : bridgePurchase ? bridgeProject! : reimbursementPurchase ? reimbursementProject! : featuredCause ? firstByCause.get(featuredCause)! : random.weighted(fundableProjects, (item) => Math.max(1, fundableProjects.length - (useStories ? fundableProjects.indexOf(item) : projects.indexOf(item)))); const supporters = activeUsers.filter((user) => user.causeIds.includes(project.causeId) && user.fundingWeight > 0 && (!useStories || user.id !== project.founderUserId)); const interestedSupporters = featuredCause ? supporters.filter((user) => user.favoriteCauseId === featuredCause && user.id !== project.founderUserId) : []; - const actor = pinnedPledge ? pinnedPledge.user : bridgePurchase ? bridgeBackers[(index - hobbyCauses.length) % 2] : random.weighted(interestedSupporters.length ? interestedSupporters : supporters, (user) => user.fundingWeight); + const actor = pinnedPledge ? pinnedPledge.user : bridgePurchase ? bridgeBackers[(index - hobbyCauses.length) % 2] : reimbursementPurchase ? reimbursementBackers[index % 2] : random.weighted(interestedSupporters.length ? interestedSupporters : supporters, (user) => user.fundingWeight); const alignment = alignments.find((item) => item.projectId === project.id); if (!alignment) throw new Error(`impossible fund-project: ${project.id} has no alignment action`); const tokenId = bridgePurchase ? 1 : 3; const tokenCount = bridgePurchase ? 1 : Math.max(1, Math.min(10, Math.round(fundingAmount(actor, projects.indexOf(project), random) / 100))); const action = add({ type: 'fund-project', actorUserId: actor.id, causeId: project.causeId, projectId: project.id, - amount: useStories ? tokenCount * (tokenId === 1 ? 10 : 1) : fundingAmount(actor, projects.indexOf(project), random), - ...(useStories ? { funding: { kind: 'early' as const, tokenId: tokenId as 1 | 3, tokenCount, ...(bridgePurchase ? { camp: ((index - hobbyCauses.length) % 2 === 0 ? 'left' : 'right') as 'left' | 'right' } : {}) } } : {}), + amount: reimbursementPurchase ? 10 : useStories ? tokenCount * (tokenId === 1 ? 10 : 1) : fundingAmount(actor, projects.indexOf(project), random), + ...(useStories || reimbursementPurchase ? { funding: { kind: 'early' as const, tokenId: (reimbursementPurchase ? 1 : tokenId) as 1 | 3, tokenCount: reimbursementPurchase ? 1 : tokenCount, ...(bridgePurchase ? { camp: ((index - hobbyCauses.length) % 2 === 0 ? 'left' : 'right') as 'left' | 'right' } : {}) } } : {}), dependsOn: [createProjects.get(project.id)!.id, alignment.id, ...(bridgePurchase ? [campBeliefs[(index - hobbyCauses.length) % 2].id] : [])] }); if (bridgePurchase) thresholdPurchases.push(action); + if (reimbursementPurchase) reimbursementPurchases.push(action); } if (pinnedPledgeCursor !== pinnedPledges.length) throw new Error('v2 spotlight profiles did not each pledge on every joined cause'); + if (reimbursement && reimbursementProject) for (let index = 0; index < reimbursement.retroactiveDonations; index++) { + add({ type: 'fund-project', actorUserId: reimbursementBackers[index % 2].id, causeId: reimbursementProject.causeId, projectId: reimbursementProject.id, + amount: 25, funding: { kind: 'retroactive' }, + dependsOn: [createProjects.get(reimbursementProject.id)!.id, alignments.find((item) => item.projectId === reimbursementProject.id)!.id, ...reimbursementPurchases.map((purchase) => purchase.id)] }); + } if (bridgeProject) for (let index = 0; index < 4; index++) { add({ type: 'fund-project', actorUserId: bridgeBackers[index % 2].id, causeId: bridgeProject.causeId, projectId: bridgeProject.id, amount: 25, funding: { kind: 'retroactive', camp: index % 2 === 0 ? 'left' : 'right' }, diff --git a/fake-data-generation/campaignSchema.ts b/fake-data-generation/campaignSchema.ts index d49a4309..5ad3b82c 100644 --- a/fake-data-generation/campaignSchema.ts +++ b/fake-data-generation/campaignSchema.ts @@ -114,6 +114,16 @@ export interface CampaignManifestV1 { * and does not let the random draw overwrite them. Unsigned entries stay unpinned. */ beliefDecisions?: string; + /** + * One named project gets early 0.10-receipt purchases, then retroactive + * donations that depend on those purchases. Twenty early purchases match + * the 2 USDZZZ project threshold. Absent on historical manifests. + */ + reimbursement?: { + projectTitle: string; + earlyPurchases: number; + retroactiveDonations: number; + }; } export type CampaignImplicationEvidence = 'accepted-bridge-role-pair' | 'live-attester-modified-to-commonality'; @@ -251,6 +261,12 @@ export function validateCampaignManifest(manifest: CampaignManifestV1): void { if (manifest.beliefDecisions && !/^[a-z0-9][a-z0-9-]*\.json$/.test(manifest.beliefDecisions)) { throw new Error('beliefDecisions must be a JSON filename in campaigns/'); } + if (manifest.reimbursement) { + const { projectTitle, earlyPurchases, retroactiveDonations } = manifest.reimbursement; + if (!projectTitle.trim()) throw new Error('reimbursement.projectTitle is required'); + if (!Number.isInteger(earlyPurchases) || earlyPurchases < 1) throw new Error('reimbursement.earlyPurchases must be a positive integer'); + if (!Number.isInteger(retroactiveDonations) || retroactiveDonations < 1) throw new Error('reimbursement.retroactiveDonations must be a positive integer'); + } validateCauses(manifest); validatePersonas(manifest); validateActionRules(manifest); diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 93d58587..22b6e4c3 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -275,6 +275,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one assert.equal(plan.users.length, 72); assert.equal(plan.statements.length, 124); assert.equal(plan.projects.length, 62); + assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); assert.ok(checklist); assert.equal(checklist!.causeId, 'abortion-forum'); @@ -388,6 +389,26 @@ test('batch 2 pins persona belief choices and never has Eli believe the settleme assert.equal(canadaArrows.some((action) => action.implication!.fromStatementId === boycott.id), false); }); +test('reimbursement config plans early 0.10 receipts and later retroactive donations on one named project', async () => { + const manifest = JSON.parse(await readFile(new URL('../campaigns/network-societies-v1-b2.json', import.meta.url), 'utf8')) as CampaignManifestV1; + const fundRule = manifest.actionRules.find((rule) => rule.type === 'fund-project')!; + fundRule.targetCount = { min: 74, max: 74 }; + manifest.reimbursement = { projectTitle: 'Six-shop refundable checkout trial', earlyPurchases: 20, retroactiveDonations: 4 }; + const plan = await buildCampaignPlan(manifest); + const project = plan.projects.find((item) => item.title === 'Six-shop refundable checkout trial')!; + const early = plan.actions.filter((action) => action.projectId === project.id && action.funding?.kind === 'early'); + const retroactive = plan.actions.filter((action) => action.projectId === project.id && action.funding?.kind === 'retroactive'); + assert.equal(early.length, 20); + assert.ok(early.every((action) => action.funding?.tokenId === 1 && action.funding.tokenCount === 1 && action.amount === 10)); + assert.equal(early.reduce((sum, action) => sum + action.amount!, 0), 200); + assert.equal(retroactive.length, 4); + assert.ok(retroactive.every((action) => early.every((purchase) => action.dependsOn.includes(purchase.id)))); + const funders = new Set([...early, ...retroactive].map((action) => action.actorUserId)); + assert.equal(funders.size, 2); + assert.equal(funders.has(project.founderUserId), false); + assert.equal(plan.actions.filter((action) => action.type === 'fund-project').length, 74); +}); + test('written planning artifacts reload into the same campaign plan', async () => { const manifest = await loadManifest(); const plan = await buildCampaignPlan(manifest); From 4508bde1d58cea9223148b13b09e95e7b3296be5 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 18:46:12 -0400 Subject: [PATCH 11/46] Mine the early-fund and reimbursement copy of batch 2. The copy keeps the batch 2 seed, raises the fund-project count to 74, and names the six-shop checkout trial. Local execution reconciled 527/527. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 8 +- .../network-societies-v1-b2-reimburse.json | 1932 +++++++++++++++++ .../campaigns/network-societies-v1-b2.md | 2 +- 4 files changed, 1938 insertions(+), 6 deletions(-) create mode 100644 fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index b27b1479..0b7b811e 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. The next chunk is the create-project gas quote named in the campaign plan. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. The next chunk is the browser walk of that early-fund story, then the one-time delegated spend. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 77d38d47..2a93c8eb 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -40,7 +40,7 @@ The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli' US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. -**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is a planner option (`reimbursement` on the manifest) and is not on the batch 2 manifest or in the mined graph. A friend spending a delegated note and one project contract on two boards are still unplanned. A declined alignment cannot be recorded: the alignment contract is positive-only. A recurring monthly pledge stays a product gap. +**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is not on the batch 2 manifest or in the 523-write graph. The copy `network-societies-v1-b2-reimburse.json` mined it on 2026-10-19. A friend spending a delegated note and one project contract on two boards are still unplanned. A declined alignment cannot be recorded: the alignment contract is positive-only. A recurring monthly pledge stays a product gap. ## Inventory against the family minimum @@ -70,7 +70,7 @@ These are properties of the 523-write graph, not of a chain run. A browser walkt | 1. Founder sees an ecosystem | Mined. As Ruth (`0xf39F…2266`), the Owen Sound checkout board showed base and organizing work, 0.08 USDZZZ raised and 5.92 still needed, and the not-yet-funded tab listing 3 projects. She is that board's organizer, so the page opened in the organizer view. | | 2. Alliance without merger | Mined, and walked in the browser on 2026-10-19. Direct shared project: June (`0x8A6a…BdF6`) and Imani (`0x3C44…93BC`) both have a receipt on [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x7688482c92F3b60ee2c761f724F5Fd372ddC147a). June also signs the midweek class transcription. Imani signs the refundable-checkout sentence and a sentence that shops should refuse crypto-only payments. The project page, as June, showed 0.07 of 2 USDZZZ raised, founder Len, and a fake-data label. The implication half is not this pair. No two funders of one project split into "signed the commonality" and "signed only the modified." The closest disagreement is Wes (`0x68E6…b1Ee`) and Fake user 023 (`0x9D19…f99b`) on [Owen Sound association poll](http://127.0.0.1:5199/projects/0xad385917d545a7b1b7307654Aa5D7F6c1946d6A1). As Wes the page showed 0.03 of 2 USDZZZ raised and said the poll does not change a municipal election. Wes signs the direct ranked-poll sentence and wants Owen Sound elections to keep first-past-the-post. Fake user 023 signs the modified-right sentence, which has a live attester arrow to the dual-count commonality, and does not fund that commonality project. | | 3. A bridge is declined | Mined. Eli's profile lists "Late-term abortion is horrific." and does not list the settlement sentence. The settlement statement page still offers him Sign. | -| 4. Early risk and later reimbursement | Not in the 523-write graph. The planner can emit it when a manifest sets `reimbursement`. Batch 2 does not. Not executed. | +| 4. Early risk and later reimbursement | Mined and reconciled on 2026-10-19 in `output/campaigns/network-societies-v1-b2-reimburse/`, not in the 523-write graph. Ruth and Imani each buy ten 0.10 USDZZZ receipts on [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x4251D15D9Ee936d6F489C5aF9646084dB23EE3DE), then four later 0.25 USDZZZ donations. Founder Len does not fund it. Not walked in the browser. Crossing the threshold is not evidence that the fictional work was delivered. | | 5. Limited delegation | Delegate and revoke are mined. Pat's note to Ned was revoked, so the live page shows the note back with Pat. Walked 2026-10-19. A spend of a delegated note is not in the graph. Adam decided on 2026-10-19 to flesh that spend out. A recurring monthly pledge stays a product gap. | | 6. Same project, different boards | Not in the 523-write graph. Two statements sit on two boards. Adam decided on 2026-10-19 to flesh out one shared project contract. | | 7. Independent judgment | Stopped. The alignment contract records only a positive attestation or a revoke of that same attestation. It cannot record a decline of one project beside support for another. | @@ -244,7 +244,7 @@ As Pat, [My Delegated Funds](http://127.0.0.1:5199/delegation/notes) lists Fund Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they should stay out. The 523-write graph does not contain them because the planner never emits them for this campaign. Do not edit the four mined output directories. A plan that includes these actions goes in a fresh directory and is executed locally. -**Journey 4. Early fund, later reimbursement.** The medium-realistic v2 planner already emits four retroactive `fund-project` writes, and only on that campaign's abortion bridge project, behind `useStories`. Batch 2 still does not set this, so its plan has zero retroactive funds and the mined graph is unchanged. An optional `reimbursement` field on the manifest now plans early 0.10-receipt purchases (twenty of them are 2 USDZZZ, the create-project threshold) on one project title, then retroactive donations that depend on those purchases. The two funders are not the founder. The checked example is "Six-shop refundable checkout trial", with the fund-project target raised from 70 to 74. That field is not on `network-societies-v1-b2.json`. It has not been planned into a fresh directory or executed. Crossing the threshold is not evidence that the fictional work was delivered. +**Journey 4. Early fund, later reimbursement.** The medium-realistic v2 planner already emits four retroactive `fund-project` writes, and only on that campaign's abortion bridge project, behind `useStories`. Batch 2 still does not set `reimbursement`, so the 523-write graph has zero retroactive funds. The copy [`network-societies-v1-b2-reimburse.json`](../campaigns/network-societies-v1-b2-reimburse.json) sets it on "Six-shop refundable checkout trial" (20 early 0.10 receipts, then 4 retroactive donations) and raises the fund-project target from 70 to 74. Campaign id is `ns-v1-b2-reimburse` so board slugs stay under 64 characters. The seed is unchanged. A local run on 2026-10-19 mined 527/527 and reconciled 527/527 into `output/campaigns/network-societies-v1-b2-reimburse/` (indexer lag 0, head 2011). The first pass left 11 writes failed for insufficient ETH; those wallets were topped up with `hardhat_setBalance` and the run resumed with `--skip-provision`. Test-data run id `20261019T224446171Z`. Do not regenerate that directory. Ruth (`user-001`, `0xf39F…2266`) and Imani (`user-003`, `0x3C44…93BC`) are the two funders. Len (`user-005`, `0x15d3…6A65`) is the founder and does not fund it. The project contract is `0x4251D15D9Ee936d6F489C5aF9646084dB23EE3DE`. Crossing the threshold is not evidence that the fictional work was delivered. The page has not been walked in the browser. **Journey 5. A friend spends a delegated note.** Delegate and revoke already run. Pat (`user-021`) delegated note `note-0001` to Ned (`user-011`) and then revoked that same note, so that pair cannot also show a spend. There is no campaign action that spends a delegated note. Add a one-time spend on a note that stays delegated: a different owner and delegate from the revoked Pat/Ned pair, on particular work, with the chain and the delegation page showing the spend. A recurring monthly pledge is still not an action type. Leave that as a product gap. Do not invent pledge transactions. @@ -252,4 +252,4 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 7. A reviewer declines an alignment.** Stopped here on 2026-10-19. `AlignmentAttestations` only records a positive `attestAlignment` (and `attestSuccess`) or a later `revokeAlignment` of that same yes. There is no decline, reject, or negative alignment. A revoke would say June withdrew her own support. It would not say she refused one superficially relevant project while supporting another. The planner still forces `supports-described-outcome`, and that matches the contract. Do not hide the refusal in persona prose and call the journey done. Showing it needs a contract and indexer change, which is outside this campaign chunk. -**Next task:** put `reimbursement` on a copy of the batch 2 manifest, plan into a fresh output directory, and execute that locally. Then journeys 5 (one-time delegated spend only) and 6. Journey 7 waits on a real decline in the alignment contract. Do not regenerate `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** walk journey 4 in the browser on the current Commonality build (the published IPFS bundle does not serve `/projects/…`). Then journey 5 (one-time delegated spend only) and journey 6. Journey 7 waits on a real decline in the alignment contract. Do not regenerate `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json new file mode 100644 index 00000000..c922f1e6 --- /dev/null +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -0,0 +1,1932 @@ +{ + "schema": "commonality-testnet-campaign-v1", + "campaign": { + "id": "ns-v1-b2-reimburse", + "label": "Network societies batch 2 with early funding and later reimbursement on the six-shop checkout trial", + "syntheticDataLabel": "SYNTHETIC CAMPAIGN — NOT REAL USERS, ORGANIZATIONS, OR DELIVERABLES", + "userCount": 72, + "deterministicSeed": "commonality-network-societies-v1-b2-2026-10-16", + "randomAlgorithm": "xoshiro128**" + }, + "sourcePolicy": { + "kind": "accepted-plus-campaign-synthetic", + "fingerprintAlgorithm": "sha256", + "excludeCollections": [ + "proliferation" + ], + "campaignCollection": "network-societies-v1-b2-statements.json" + }, + "scale": { + "minCauses": 16, + "maxCauses": 16, + "minStatements": 124, + "maxStatements": 124, + "allowRepeatedStatementRefs": true + }, + "projectStories": "network-societies-v1-b2-projects.json", + "beliefDecisions": "network-societies-v1-b2-decisions.json", + "causes": [ + { + "id": "crypto-merchants", + "title": "Owen Sound checkout trial", + "activityTier": "large", + "membershipWeight": 12, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "refundable-checkout" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "published-trial-record" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "checkout-security-review" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "merchant-directory" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "deployment-clinic" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "host-kit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "keep-cash-and-card" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "refuse-crypto-payments" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "bank-blocking" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "fee-schedule" + } + ] + }, + { + "id": "civic-assimilation", + "title": "Grey County civic life", + "activityTier": "large", + "membershipWeight": 12, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "language-sessions" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "civics-pack" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "park-paths" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "tutor-check" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "organizer-handoff" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "english-township-business" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "own-language-communities" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "housing-before-recruiting" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "welcome-signage" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "session-limit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "shared-goods", + "statementId": "class-host-directory" + } + ] + }, + { + "id": "christian-teaching", + "title": "Grey County Christian teaching", + "activityTier": "medium", + "membershipWeight": 10, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "midweek-notes" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "transcription" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "substitute-rota" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "named-confession" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "no-joint-doctrine" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "host-kit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "civic-transcription-only" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "keep-notes-inside" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "interchurch-calendar" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "shared-goods", + "statementId": "class-host-directory" + } + ] + }, + { + "id": "home-learning", + "title": "Grey County home learning", + "activityTier": "medium", + "membershipWeight": 10, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "science-unit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "field-trip" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "science-kits" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "saturday-meetups" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "successor-host" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "method-on-the-page" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "no-religious-claims" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "school-families-may-borrow" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "staffed-schools" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "lab-safety" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "shared-goods", + "statementId": "class-host-directory" + } + ] + }, + { + "id": "abortion", + "title": "Abortion settlement", + "activityTier": "medium", + "membershipWeight": 8, + "statementRefs": [ + { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "natural-left" + }, + { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "natural-right" + }, + { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "modified-left" + }, + { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "modified-right" + }, + { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "commonality" + } + ] + }, + { + "id": "abortion-forum", + "title": "Michigan abortion authority", + "activityTier": "small", + "membershipWeight": 6, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "michigan-legislature" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "one-federal-rule" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "no-settlement" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "no-early-abortions" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "options-on-a-page" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "moderator-checklist" + } + ] + }, + { + "id": "schools", + "title": "Schools and pushing", + "activityTier": "medium", + "membershipWeight": 7, + "statementRefs": [ + { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "natural-left" + }, + { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "natural-right" + }, + { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "modified-left" + }, + { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "modified-right" + }, + { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "commonality" + } + ] + }, + { + "id": "gender-conduct", + "title": "Grey County school conduct", + "activityTier": "small", + "membershipWeight": 6, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "harassment-steps" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "clinician-for-minors" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "school-not-clinic" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "no-medical-limit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "adult-medical-speech" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "names-and-courtesy" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "enrollment-name-only" + } + ] + }, + { + "id": "voting", + "title": "Owen Sound voting trial", + "activityTier": "medium", + "membershipWeight": 8, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "ranked-poll" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "approval-count" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "keep-fptp" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "show-of-hands" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "counting-toolkit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "poll-host-kit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "trial-directory" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "moderator-checklist" + } + ] + }, + { + "id": "grey-assimilation", + "title": "Grey County assimilation sessions", + "activityTier": "medium", + "membershipWeight": 8, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "commonality" + } + ] + }, + { + "id": "ranked-approval-poll", + "title": "Owen Sound dual count", + "activityTier": "medium", + "membershipWeight": 7, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "commonality" + } + ] + }, + { + "id": "checkout-trial-bridge", + "title": "Owen Sound checkout bridge", + "activityTier": "medium", + "membershipWeight": 8, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "commonality" + } + ] + }, + { + "id": "minors-medicine", + "title": "Minors medicine and courtesy", + "activityTier": "medium", + "membershipWeight": 7, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "commonality" + } + ] + }, + { + "id": "opinion-employment", + "title": "Ordinary opinion and employment", + "activityTier": "small", + "membershipWeight": 6, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "commonality" + } + ] + }, + { + "id": "canada-us-ties", + "title": "Ordinary Canada-US ties", + "activityTier": "small", + "membershipWeight": 6, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "commonality" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "cultural-archive" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "ties-guide" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "community-event" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "exchange-directory" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "host-handoff" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "boycott-ordinary-ties" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "narrower-than-visits" + } + ] + }, + { + "id": "ai-pause", + "title": "Pause AI capabilities research", + "activityTier": "medium", + "membershipWeight": 8, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-small-chance" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-small-chance" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-jobs" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-jobs" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-industry" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-industry" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-not-luddite" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-not-luddite" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-children" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-children" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "pole-stop" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "pole-accelerate" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "treaty-petition" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "alignment-note" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "warning-digest" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "pause-host-kit" + } + ] + } + ], + "personas": [ + { + "id": "community-organizer", + "count": 4, + "roles": [ + "cause-founder", + "supporter" + ], + "causesPerUser": { + "min": 2, + "max": 3 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 1.2 + }, + { + "id": "project-builder", + "count": 6, + "roles": [ + "project-founder", + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 2 + }, + "activityWeight": 1.7, + "inactivityRate": 0, + "fundingWeight": 0.8 + }, + { + "id": "trusted-delegate", + "count": 5, + "roles": [ + "delegate", + "supporter" + ], + "causesPerUser": { + "min": 2, + "max": 4 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 1.4 + }, + { + "id": "bridge-mediator", + "count": 5, + "roles": [ + "attester", + "mediator" + ], + "causesPerUser": { + "min": 2, + "max": 4 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 0.4 + }, + { + "id": "regular-supporter", + "count": 14, + "roles": [ + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 3 + }, + "activityWeight": 1, + "inactivityRate": 0.1, + "fundingWeight": 1 + }, + { + "id": "quiet-neighbor", + "count": 6, + "roles": [ + "lurker", + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 2 + }, + "activityWeight": 0.2, + "inactivityRate": 0.4, + "fundingWeight": 0.3 + }, + { + "id": "batch-organizer", + "count": 3, + "roles": [ + "cause-founder", + "supporter" + ], + "causesPerUser": { + "min": 2, + "max": 2 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 1.2 + }, + { + "id": "batch-builder", + "count": 6, + "roles": [ + "project-founder", + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 2 + }, + "activityWeight": 1.7, + "inactivityRate": 0, + "fundingWeight": 0.8 + }, + { + "id": "batch-reviewer", + "count": 2, + "roles": [ + "attester", + "mediator" + ], + "causesPerUser": { + "min": 4, + "max": 4 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 0.4 + }, + { + "id": "batch-supporter", + "count": 9, + "roles": [ + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 2 + }, + "activityWeight": 1, + "inactivityRate": 0, + "fundingWeight": 1 + }, + { + "id": "ai-pause-voice", + "count": 7, + "roles": [ + "project-founder", + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 1 + }, + "activityWeight": 1.5, + "inactivityRate": 0, + "fundingWeight": 1 + }, + { + "id": "canada-us-voice", + "count": 5, + "roles": [ + "project-founder", + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 1 + }, + "activityWeight": 1.5, + "inactivityRate": 0, + "fundingWeight": 1 + } + ], + "userProfiles": [ + { + "userId": "user-001", + "displayName": "Ruth", + "bio": "Keeps the books for a shop in Owen Sound and wants the checkout trial's fees published. She will not sign a demand that shops refuse crypto.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "shop fees", + "Owen Sound" + ], + "causeIds": [ + "crypto-merchants", + "civic-assimilation", + "grey-assimilation" + ], + "spotlightOrder": 1 + }, + { + "userId": "user-002", + "displayName": "Helen", + "bio": "Preaches at a small Grey County church and wants the midweek notes reusable, with the confession named. She does not treat a shared host directory as agreement on doctrine.", + "favoriteCauseId": "christian-teaching", + "interests": [ + "preaching", + "Grey County churches" + ], + "causeIds": [ + "christian-teaching", + "home-learning", + "ranked-approval-poll" + ], + "spotlightOrder": 2 + }, + { + "userId": "user-003", + "displayName": "Imani", + "bio": "Recently moved to Owen Sound and wants the twelve conversation sessions with childcare. She rejects the demand to stop recruiting newcomers.", + "favoriteCauseId": "civic-assimilation", + "interests": [ + "English practice", + "Owen Sound" + ], + "causeIds": [ + "civic-assimilation", + "crypto-merchants", + "checkout-trial-bridge" + ], + "spotlightOrder": 3 + }, + { + "userId": "user-004", + "displayName": "Owen", + "bio": "Home-schools in Grey County and wants the printable science unit with no religious claims. He will not sign a request to release a congregation's midweek notes.", + "favoriteCauseId": "home-learning", + "interests": [ + "home science", + "Grey County" + ], + "causeIds": [ + "home-learning", + "christian-teaching", + "minors-medicine" + ], + "spotlightOrder": 4 + }, + { + "userId": "user-005", + "displayName": "Len", + "bio": "Runs a shop that wants to keep cash and cards while trying the refundable checkout. He is not a crypto enthusiast.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "retail", + "refunds" + ], + "causeIds": [ + "crypto-merchants", + "opinion-employment" + ], + "spotlightOrder": 5 + }, + { + "userId": "user-006", + "displayName": "Doug", + "bio": "Has lived in Owen Sound for decades. He wants the park-path season and English township business, and he wants recruiting to wait on housing.", + "favoriteCauseId": "civic-assimilation", + "interests": [ + "Harrison Park", + "township business" + ], + "causeIds": [ + "civic-assimilation", + "canada-us-ties" + ], + "spotlightOrder": 6 + }, + { + "userId": "user-007", + "displayName": "Nadia", + "bio": "Checks directories for a living. She will confirm a class-host listing and will not treat that check as endorsement of the host's church or school.", + "favoriteCauseId": "christian-teaching", + "interests": [ + "directories", + "independent checks" + ], + "causeIds": [ + "christian-teaching", + "home-learning" + ], + "spotlightOrder": 7 + }, + { + "userId": "user-008", + "displayName": "Chris", + "bio": "Builds the science-kit instructions and wants the hazards written down. He does not want public rooms closed to home-school meetups.", + "favoriteCauseId": "home-learning", + "interests": [ + "science kits", + "lab safety" + ], + "causeIds": [ + "home-learning" + ], + "spotlightOrder": 8 + }, + { + "userId": "user-011", + "displayName": "Ned", + "bio": "Accepts a limited note from Pat for Owen Sound shop work. Holding the note is not a belief about crypto, and it is not yet spent.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "Owen Sound shops", + "limited notes" + ], + "causeIds": [ + "crypto-merchants", + "civic-assimilation", + "christian-teaching", + "home-learning" + ], + "spotlightOrder": 9 + }, + { + "userId": "user-021", + "displayName": "Pat", + "bio": "Delegates a small note to Ned for the checkout trial and can revoke it. The delegation is not a signature.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "delegation", + "Owen Sound shops" + ], + "causeIds": [ + "crypto-merchants", + "civic-assimilation" + ], + "delegatesTo": "user-011", + "spotlightOrder": 10 + }, + { + "userId": "user-016", + "displayName": "June", + "bio": "Reviews project alignments and will refuse a project that only sounds related to a statement.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "review", + "Grey County" + ], + "causeIds": [ + "crypto-merchants", + "civic-assimilation", + "christian-teaching", + "home-learning" + ] + }, + { + "userId": "user-041", + "displayName": "Mara", + "bio": "Accepts the 12-16 week settlement and will sign the modified-left wording. She does not treat that signature as a belief about which legislature should write the rule.", + "favoriteCauseId": "abortion", + "interests": [ + "settlement", + "Grand Rapids" + ], + "causeIds": [ + "abortion", + "abortion-forum" + ], + "spotlightOrder": 11 + }, + { + "userId": "user-042", + "displayName": "Nina", + "bio": "Wants the schools question argued from the accepted statements. She does not treat that question as a decision about drugs or surgery.", + "favoriteCauseId": "schools", + "interests": [ + "schools", + "Grey County" + ], + "causeIds": [ + "schools", + "gender-conduct" + ], + "spotlightOrder": 12 + }, + { + "userId": "user-043", + "displayName": "Wes", + "bio": "Wants the Owen Sound association poll and the published counts. He can sign keeping first-past-the-post for real municipal elections.", + "favoriteCauseId": "voting", + "interests": [ + "Owen Sound", + "ballots" + ], + "causeIds": [ + "voting", + "abortion-forum" + ], + "spotlightOrder": 13 + }, + { + "userId": "user-044", + "displayName": "Paul", + "bio": "Will host the Grand Rapids settlement sessions and publish the notes without a claim about current Michigan law.", + "favoriteCauseId": "abortion", + "interests": [ + "Grand Rapids", + "moderation" + ], + "causeIds": [ + "abortion" + ], + "spotlightOrder": 14 + }, + { + "userId": "user-045", + "displayName": "Ada", + "bio": "Writes the Michigan authority brief as two labeled proposals.", + "favoriteCauseId": "abortion-forum", + "interests": [ + "Michigan", + "proposals" + ], + "causeIds": [ + "abortion-forum" + ], + "spotlightOrder": 15 + }, + { + "userId": "user-046", + "displayName": "Gail", + "bio": "Prints the five accepted schools statements unchanged for a parent meeting.", + "favoriteCauseId": "schools", + "interests": [ + "parent meetings", + "transcripts" + ], + "causeIds": [ + "schools" + ], + "spotlightOrder": 16 + }, + { + "userId": "user-047", + "displayName": "Hugh", + "bio": "Publishes the Grey County harassment steps and keeps them off the medical question.", + "favoriteCauseId": "gender-conduct", + "interests": [ + "harassment reporting", + "Grey County schools" + ], + "causeIds": [ + "gender-conduct" + ], + "spotlightOrder": 17 + }, + { + "userId": "user-048", + "displayName": "Ivy", + "bio": "Runs the non-binding Owen Sound poll and files the ballots.", + "favoriteCauseId": "voting", + "interests": [ + "ranked ballots", + "Owen Sound" + ], + "causeIds": [ + "voting" + ], + "spotlightOrder": 18 + }, + { + "userId": "user-049", + "displayName": "Kent", + "bio": "Reruns the Owen Sound count from the published ballots. He is not the poll host.", + "favoriteCauseId": "voting", + "interests": [ + "counting", + "independent checks" + ], + "causeIds": [ + "voting", + "gender-conduct" + ], + "spotlightOrder": 19 + }, + { + "userId": "user-050", + "displayName": "Lila", + "bio": "Attests alignments on the settlement, the forum, the schools statements, and the poll. A shared checklist is not a belief.", + "favoriteCauseId": "abortion", + "interests": [ + "review", + "Grand Rapids" + ], + "causeIds": [ + "abortion", + "abortion-forum", + "schools", + "voting" + ], + "spotlightOrder": 20 + }, + { + "userId": "user-051", + "displayName": "Omar", + "bio": "Attests alignments on school conduct and will refuse a project that uses the schools statements as a medical claim.", + "favoriteCauseId": "gender-conduct", + "interests": [ + "review", + "Grey County" + ], + "causeIds": [ + "gender-conduct", + "schools", + "voting", + "abortion-forum" + ], + "spotlightOrder": 21 + }, + { + "userId": "user-052", + "displayName": "Eli", + "bio": "Holds that late-term abortion is horrific. He will not sign the settlement or the modified-right wording.", + "favoriteCauseId": "abortion", + "interests": [ + "late-term abortion" + ], + "causeIds": [ + "abortion" + ], + "spotlightOrder": 22 + }, + { + "userId": "user-053", + "displayName": "Jo", + "bio": "Signs the schools commonality if it is only the conditional about pushing. She rejects a school counselor approving a drug.", + "favoriteCauseId": "schools", + "interests": [ + "schools", + "clinicians" + ], + "causeIds": [ + "schools", + "gender-conduct" + ], + "spotlightOrder": 23 + }, + { + "userId": "user-054", + "displayName": "Bea", + "bio": "Wants Michigan's legislature to decide, and does not sign the 12-16 week settlement.", + "favoriteCauseId": "abortion-forum", + "interests": [ + "Michigan legislature" + ], + "causeIds": [ + "abortion-forum" + ], + "spotlightOrder": 24 + }, + { + "userId": "user-061", + "displayName": "Priya", + "bio": "Will not sign a claim that superintelligent AI is going to kill us. She will sign the small-chance wording and the shared pause sentence.", + "favoriteCauseId": "ai-pause", + "interests": [ + "small chance", + "pause treaty" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 25 + }, + { + "userId": "user-062", + "displayName": "Dean", + "bio": "Came in worried about jobs, not extinction. He signs the jobs wording and the shared pause sentence, and he does not sign the certain-doom sentence.", + "favoriteCauseId": "ai-pause", + "interests": [ + "job loss", + "pause treaty" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 26 + }, + { + "userId": "user-063", + "displayName": "Noor", + "bio": "Repeats the industry warnings and has not signed the treaty. Someone can point her at the industry modified sentence.", + "favoriteCauseId": "ai-pause", + "interests": [ + "industry warnings" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 27 + }, + { + "userId": "user-064", + "displayName": "Sam", + "bio": "Says he is not a Luddite. He signs the not-a-Luddite wording and the shared pause sentence, and he leaves the certain-doom sentence unsigned.", + "favoriteCauseId": "ai-pause", + "interests": [ + "technology", + "risk" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 28 + }, + { + "userId": "user-065", + "displayName": "Tess", + "bio": "Talks about executives gambling with her children's lives. She has not signed the treaty yet.", + "favoriteCauseId": "ai-pause", + "interests": [ + "children", + "executives" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 29 + }, + { + "userId": "user-066", + "displayName": "Hal", + "bio": "Wants the work to just stop. He rejects the pause-while-alignment sentence as too soft.", + "favoriteCauseId": "ai-pause", + "interests": [ + "extinction", + "full stop" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 30 + }, + { + "userId": "user-067", + "displayName": "Vic", + "bio": "Thinks a pause is the dangerous move because other labs will not stop. He rejects the shared pause sentence and the small-chance wording.", + "favoriteCauseId": "ai-pause", + "interests": [ + "capabilities race" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 31 + }, + { + "userId": "user-068", + "displayName": "Fern", + "bio": "Wants the Owen Sound archive, the ties guide, the evening, the Grey County directory, and a written host handoff. She signs those planks. The shared purchase-and-visit sentence is a separate signature.", + "favoriteCauseId": "canada-us-ties", + "interests": [ + "Owen Sound archive", + "host handoff" + ], + "causeIds": [ + "canada-us-ties" + ], + "spotlightOrder": 32 + }, + { + "userId": "user-069", + "displayName": "Cal", + "bio": "Keeps ordinary business with the US and signs the shared purchase-and-visit sentence. He also wants the Grey County host directory. He does not sign a boycott.", + "favoriteCauseId": "canada-us-ties", + "interests": [ + "US businesses", + "host directory" + ], + "causeIds": [ + "canada-us-ties" + ], + "spotlightOrder": 33 + }, + { + "userId": "user-070", + "displayName": "Adele", + "bio": "Does not like Trump and still thinks cutting off ordinary buying and family visits is foolish. She signs that natural sentence and the Owen Sound guide. She has not signed the shared sentence.", + "favoriteCauseId": "canada-us-ties", + "interests": [ + "family visits", + "practical guide" + ], + "causeIds": [ + "canada-us-ties" + ], + "spotlightOrder": 34 + }, + { + "userId": "user-071", + "displayName": "Greta", + "bio": "Wants ordinary Canadians to stop buying from US businesses and to stop family visits while the current administration is in office. She rejects the shared purchase-and-visit sentence. She is not a supporter of it through an arrow.", + "favoriteCauseId": "canada-us-ties", + "interests": [ + "boycott" + ], + "causeIds": [ + "canada-us-ties" + ], + "spotlightOrder": 35 + }, + { + "userId": "user-072", + "displayName": "Neil", + "bio": "Wants family visits kept and does not want a general call to keep buying from US businesses. He rejects the shared sentence that asks for both.", + "favoriteCauseId": "canada-us-ties", + "interests": [ + "family visits", + "narrower ties" + ], + "causeIds": [ + "canada-us-ties" + ], + "spotlightOrder": 36 + } + ], + "implicationAllowances": [ + { + "from": { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "modified-left" + }, + "to": { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "commonality" + }, + "evidence": "accepted-bridge-role-pair" + }, + { + "from": { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "modified-right" + }, + "to": { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "commonality" + }, + "evidence": "accepted-bridge-role-pair" + }, + { + "from": { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "modified-left" + }, + "to": { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "commonality" + }, + "evidence": "accepted-bridge-role-pair" + }, + { + "from": { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "modified-right" + }, + "to": { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "commonality" + }, + "evidence": "accepted-bridge-role-pair" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-small-chance" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-jobs" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-industry" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-not-luddite" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-children" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + } + ], + "actionRules": [ + { + "type": "publish-statement", + "prerequisites": [], + "targetCount": { + "min": 124, + "max": 124 + } + }, + { + "type": "create-cause", + "prerequisites": [ + "publish-statement" + ], + "targetCount": { + "min": 16, + "max": 16 + } + }, + { + "type": "set-belief", + "prerequisites": [ + "publish-statement" + ], + "targetCount": { + "min": 105, + "max": 105 + } + }, + { + "type": "attest-implication", + "prerequisites": [ + "publish-statement" + ], + "targetCount": { + "min": 21, + "max": 21 + } + }, + { + "type": "create-project", + "prerequisites": [ + "create-cause" + ], + "targetCount": { + "min": 62, + "max": 62 + } + }, + { + "type": "attest-alignment", + "prerequisites": [ + "create-project", + "publish-statement" + ], + "targetCount": { + "min": 62, + "max": 62 + } + }, + { + "type": "fund-project", + "prerequisites": [ + "create-project", + "attest-alignment" + ], + "targetCount": { + "min": 74, + "max": 74 + } + }, + { + "type": "deposit-note", + "prerequisites": [], + "targetCount": { + "min": 12, + "max": 12 + } + }, + { + "type": "delegate-note", + "prerequisites": [ + "deposit-note" + ], + "targetCount": { + "min": 8, + "max": 8 + } + }, + { + "type": "revoke-delegation", + "prerequisites": [ + "delegate-note" + ], + "targetCount": { + "min": 3, + "max": 3 + } + }, + { + "type": "create-bridge-board", + "prerequisites": [ + "publish-statement" + ], + "targetCount": { + "min": 32, + "max": 32 + } + }, + { + "type": "create-bridge", + "prerequisites": [ + "create-cause", + "create-bridge-board" + ], + "targetCount": { + "min": 8, + "max": 8 + } + } + ], + "artifactLayout": { + "manifest": "manifest.json", + "statementCatalog": "plan/statements.json", + "assignments": "plan/assignments.json", + "walletAddresses": "plan/wallet-addresses.json", + "walletSecrets": "../secrets/network-societies-v1-b2-reimburse.wallets.json", + "actionPlan": "plan/actions.json", + "executionState": "execution/actions.jsonl", + "runtimeBindings": "execution/runtime-bindings.json", + "fundingLedger": "execution/funding-ledger.json", + "reconciliation": "reports/reconciliation.json", + "browserObservations": "reports/browser-observations.json", + "summary": "reports/summary.md" + }, + "reimbursement": { + "projectTitle": "Six-shop refundable checkout trial", + "earlyPurchases": 20, + "retroactiveDonations": 4 + } +} diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index a49b6633..5ea5ac02 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -26,7 +26,7 @@ Twenty-one implication actions are planned. Four are the accepted abortion and s The manifest points `beliefDecisions` at that file. Each `signs` entry is one `believe` write and each `rejects` entry is one `disbelieve` write. Those pairs are not drawn again, so Eli never believes the abortion commonality. Unsigned statements stay unpinned. -Delegated spending and a recurring monthly pledge stay out. Pat already delegates a note to Ned, and the adapter can revoke a delegation. No action spends a delegated note or repeats a pledge, and no persona in this manifest is written as doing either. +Delegated spending and a recurring monthly pledge stay out of this manifest. Pat already delegates a note to Ned, and the adapter can revoke a delegation. No action in this file spends a delegated note or repeats a pledge. Early funding and later reimbursement are on the copy [`network-societies-v1-b2-reimburse.json`](./network-societies-v1-b2-reimburse.json), not here. ## Reproduce the plan From 8955da6878696b918e6d4ec2a885fd3c2976eb9d Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 19:18:25 -0400 Subject: [PATCH 12/46] Record the journey 4 reimbursement walk. The six-shop trial page shows the funding threshold, Ruth and Imani's contributions, and a reimbursement still owed. Success attestations are still empty. --- .../brainstorming/network-societies-campaign-plan.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 2a93c8eb..3898c10d 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -40,7 +40,7 @@ The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli' US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. -**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is not on the batch 2 manifest or in the 523-write graph. The copy `network-societies-v1-b2-reimburse.json` mined it on 2026-10-19. A friend spending a delegated note and one project contract on two boards are still unplanned. A declined alignment cannot be recorded: the alignment contract is positive-only. A recurring monthly pledge stays a product gap. +**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is not on the batch 2 manifest or in the 523-write graph. The copy `network-societies-v1-b2-reimburse.json` mined it on 2026-10-19, and that project page was walked the same day. A friend spending a delegated note and one project contract on two boards are still unplanned. A declined alignment cannot be recorded: the alignment contract is positive-only. A recurring monthly pledge stays a product gap. ## Inventory against the family minimum @@ -70,7 +70,7 @@ These are properties of the 523-write graph, not of a chain run. A browser walkt | 1. Founder sees an ecosystem | Mined. As Ruth (`0xf39F…2266`), the Owen Sound checkout board showed base and organizing work, 0.08 USDZZZ raised and 5.92 still needed, and the not-yet-funded tab listing 3 projects. She is that board's organizer, so the page opened in the organizer view. | | 2. Alliance without merger | Mined, and walked in the browser on 2026-10-19. Direct shared project: June (`0x8A6a…BdF6`) and Imani (`0x3C44…93BC`) both have a receipt on [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x7688482c92F3b60ee2c761f724F5Fd372ddC147a). June also signs the midweek class transcription. Imani signs the refundable-checkout sentence and a sentence that shops should refuse crypto-only payments. The project page, as June, showed 0.07 of 2 USDZZZ raised, founder Len, and a fake-data label. The implication half is not this pair. No two funders of one project split into "signed the commonality" and "signed only the modified." The closest disagreement is Wes (`0x68E6…b1Ee`) and Fake user 023 (`0x9D19…f99b`) on [Owen Sound association poll](http://127.0.0.1:5199/projects/0xad385917d545a7b1b7307654Aa5D7F6c1946d6A1). As Wes the page showed 0.03 of 2 USDZZZ raised and said the poll does not change a municipal election. Wes signs the direct ranked-poll sentence and wants Owen Sound elections to keep first-past-the-post. Fake user 023 signs the modified-right sentence, which has a live attester arrow to the dual-count commonality, and does not fund that commonality project. | | 3. A bridge is declined | Mined. Eli's profile lists "Late-term abortion is horrific." and does not list the settlement sentence. The settlement statement page still offers him Sign. | -| 4. Early risk and later reimbursement | Mined and reconciled on 2026-10-19 in `output/campaigns/network-societies-v1-b2-reimburse/`, not in the 523-write graph. Ruth and Imani each buy ten 0.10 USDZZZ receipts on [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x4251D15D9Ee936d6F489C5aF9646084dB23EE3DE), then four later 0.25 USDZZZ donations. Founder Len does not fund it. Not walked in the browser. Crossing the threshold is not evidence that the fictional work was delivered. | +| 4. Early risk and later reimbursement | Mined, reconciled, and walked on 2026-10-19 in `output/campaigns/network-societies-v1-b2-reimburse/`, not in the 523-write graph. As Ruth, [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x4251D15D9Ee936d6F489C5aF9646084dB23EE3DE) showed 2.04 of 2 USDZZZ raised, status Succeeded, and "Early contributors are still out 1.04 USDZZZ." Ruth's row is 1.01 USDZZZ net; Imani's is 1.00. A third row, `0x5eF7…6f74`, is 0.02. Len is the founder and the recipient, and he is not one of those rows. Ruth's scout reimbursement showed 0.495098 USDZZZ available now and 0.514901 future. The page says no success attestations yet. Crossing the threshold is not evidence that the fictional work was delivered. | | 5. Limited delegation | Delegate and revoke are mined. Pat's note to Ned was revoked, so the live page shows the note back with Pat. Walked 2026-10-19. A spend of a delegated note is not in the graph. Adam decided on 2026-10-19 to flesh that spend out. A recurring monthly pledge stays a product gap. | | 6. Same project, different boards | Not in the 523-write graph. Two statements sit on two boards. Adam decided on 2026-10-19 to flesh out one shared project contract. | | 7. Independent judgment | Stopped. The alignment contract records only a positive attestation or a revoke of that same attestation. It cannot record a decline of one project beside support for another. | @@ -244,7 +244,9 @@ As Pat, [My Delegated Funds](http://127.0.0.1:5199/delegation/notes) lists Fund Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they should stay out. The 523-write graph does not contain them because the planner never emits them for this campaign. Do not edit the four mined output directories. A plan that includes these actions goes in a fresh directory and is executed locally. -**Journey 4. Early fund, later reimbursement.** The medium-realistic v2 planner already emits four retroactive `fund-project` writes, and only on that campaign's abortion bridge project, behind `useStories`. Batch 2 still does not set `reimbursement`, so the 523-write graph has zero retroactive funds. The copy [`network-societies-v1-b2-reimburse.json`](../campaigns/network-societies-v1-b2-reimburse.json) sets it on "Six-shop refundable checkout trial" (20 early 0.10 receipts, then 4 retroactive donations) and raises the fund-project target from 70 to 74. Campaign id is `ns-v1-b2-reimburse` so board slugs stay under 64 characters. The seed is unchanged. A local run on 2026-10-19 mined 527/527 and reconciled 527/527 into `output/campaigns/network-societies-v1-b2-reimburse/` (indexer lag 0, head 2011). The first pass left 11 writes failed for insufficient ETH; those wallets were topped up with `hardhat_setBalance` and the run resumed with `--skip-provision`. Test-data run id `20261019T224446171Z`. Do not regenerate that directory. Ruth (`user-001`, `0xf39F…2266`) and Imani (`user-003`, `0x3C44…93BC`) are the two funders. Len (`user-005`, `0x15d3…6A65`) is the founder and does not fund it. The project contract is `0x4251D15D9Ee936d6F489C5aF9646084dB23EE3DE`. Crossing the threshold is not evidence that the fictional work was delivered. The page has not been walked in the browser. +**Journey 4. Early fund, later reimbursement.** The medium-realistic v2 planner already emits four retroactive `fund-project` writes, and only on that campaign's abortion bridge project, behind `useStories`. Batch 2 still does not set `reimbursement`, so the 523-write graph has zero retroactive funds. The copy [`network-societies-v1-b2-reimburse.json`](../campaigns/network-societies-v1-b2-reimburse.json) sets it on "Six-shop refundable checkout trial" (20 early 0.10 receipts, then 4 retroactive donations) and raises the fund-project target from 70 to 74. Campaign id is `ns-v1-b2-reimburse` so board slugs stay under 64 characters. The seed is unchanged. A local run on 2026-10-19 mined 527/527 and reconciled 527/527 into `output/campaigns/network-societies-v1-b2-reimburse/` (indexer lag 0, head 2011). The first pass left 11 writes failed for insufficient ETH; those wallets were topped up with `hardhat_setBalance` and the run resumed with `--skip-provision`. Test-data run id `20261019T224446171Z`. Do not regenerate that directory. Ruth (`user-001`, `0xf39F…2266`) and Imani (`user-003`, `0x3C44…93BC`) are the named early funders. Len (`user-005`, `0x15d3…6A65`) is the founder and does not fund it. The project contract is `0x4251D15D9Ee936d6F489C5aF9646084dB23EE3DE`. Crossing the threshold is not evidence that the fictional work was delivered. + +**Journey 4 walk, 2026-10-19.** Same static server shape as journey 2: current `ui/dist/commonality` on `http://127.0.0.1:5199`, `/test-data` from `fake-data-generation/output/test-data`, and `/graphql` plus `/api` proxied to the indexer on port 42069. Without the `/api` proxy the project page shows "We couldn't load this project" because the event cache falls back to the page origin. Connect from run `20261019T224446171Z` as Ruth, then open the project with an in-app link. A full page load drops the in-memory wallet. As Ruth the page showed the fake-data sentence, founder Len, recipient `0x15d3…6A65`, Succeeded, 2.04 of 2 USDZZZ raised, and the close-the-loop line that early contributors are still out 1.04 USDZZZ. Her reimbursement panel showed 0.495098 USDZZZ available now and 0.514901 future. The contributor table listed Ruth 1.01, Imani 1.00, and `0x5eF7…6f74` 0.02. Len was not in those rows. "No success attestations yet" stayed on the page next to the funding success. A later `./scripts/services.sh --start` tried to redeploy contracts, reused the addresses this page reads, then reverted at block 2018 on a call to a newly deployed `CreatorAssuranceContractFactory`. That failure is outside this walk. Do not regenerate the reimburse directory to repair it. **Journey 5. A friend spends a delegated note.** Delegate and revoke already run. Pat (`user-021`) delegated note `note-0001` to Ned (`user-011`) and then revoked that same note, so that pair cannot also show a spend. There is no campaign action that spends a delegated note. Add a one-time spend on a note that stays delegated: a different owner and delegate from the revoked Pat/Ned pair, on particular work, with the chain and the delegation page showing the spend. A recurring monthly pledge is still not an action type. Leave that as a product gap. Do not invent pledge transactions. @@ -252,4 +254,4 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 7. A reviewer declines an alignment.** Stopped here on 2026-10-19. `AlignmentAttestations` only records a positive `attestAlignment` (and `attestSuccess`) or a later `revokeAlignment` of that same yes. There is no decline, reject, or negative alignment. A revoke would say June withdrew her own support. It would not say she refused one superficially relevant project while supporting another. The planner still forces `supports-described-outcome`, and that matches the contract. Do not hide the refusal in persona prose and call the journey done. Showing it needs a contract and indexer change, which is outside this campaign chunk. -**Next task:** walk journey 4 in the browser on the current Commonality build (the published IPFS bundle does not serve `/projects/…`). Then journey 5 (one-time delegated spend only) and journey 6. Journey 7 waits on a real decline in the alignment contract. Do not regenerate `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** journey 5 (one-time delegated spend only) and journey 6. Journey 4 has been walked. Journey 7 waits on a real decline in the alignment contract. Do not regenerate `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. From 1e70a2ec591ebf3110254264c142e393285f7c41 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Mon, 19 Oct 2026 21:14:52 -0400 Subject: [PATCH 13/46] Plan one delegated payment-token spend for the checkout trial. June deposits a note sized to one 0.01 receipt. Willa keeps the delegation and spends it. Pat's revoked note to Ned stays a separate story. The copy is not mined. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 10 +- fake-data-generation/campaignActionAdapter.ts | 33 +- fake-data-generation/campaignBatching.ts | 4 +- .../campaignIndexerAdapter.ts | 1 + fake-data-generation/campaignPlanner.ts | 44 +- fake-data-generation/campaignProvisioning.ts | 3 +- fake-data-generation/campaignSchema.ts | 26 +- .../campaignSdkDerivedChecks.ts | 5 +- .../network-societies-v1-b2-note-spend.json | 1959 +++++++++++++++++ .../campaigns/network-societies-v1-b2.md | 2 +- .../test/campaignIndexerAdapter.test.ts | 2 +- .../test/campaignPlanner.test.ts | 32 + .../test/campaignProvisioning.test.ts | 4 +- 14 files changed, 2109 insertions(+), 18 deletions(-) create mode 100644 fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 0b7b811e..df20d030 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. The next chunk is the browser walk of that early-fund story, then the one-time delegated spend. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt) and has not been mined. The next chunk is to mine and walk that copy, then one project contract on two boards. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 3898c10d..225551b2 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -40,7 +40,7 @@ The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli' US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. -**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is not on the batch 2 manifest or in the 523-write graph. The copy `network-societies-v1-b2-reimburse.json` mined it on 2026-10-19, and that project page was walked the same day. A friend spending a delegated note and one project contract on two boards are still unplanned. A declined alignment cannot be recorded: the alignment contract is positive-only. A recurring monthly pledge stays a product gap. +**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is not on the batch 2 manifest or in the 523-write graph. The copy `network-societies-v1-b2-reimburse.json` mined it on 2026-10-19, and that project page was walked the same day. A friend spending a delegated note is planned on `network-societies-v1-b2-note-spend.json` and is not mined. One project contract on two boards is still unplanned. A declined alignment cannot be recorded: the alignment contract is positive-only. A recurring monthly pledge stays a product gap. ## Inventory against the family minimum @@ -71,7 +71,7 @@ These are properties of the 523-write graph, not of a chain run. A browser walkt | 2. Alliance without merger | Mined, and walked in the browser on 2026-10-19. Direct shared project: June (`0x8A6a…BdF6`) and Imani (`0x3C44…93BC`) both have a receipt on [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x7688482c92F3b60ee2c761f724F5Fd372ddC147a). June also signs the midweek class transcription. Imani signs the refundable-checkout sentence and a sentence that shops should refuse crypto-only payments. The project page, as June, showed 0.07 of 2 USDZZZ raised, founder Len, and a fake-data label. The implication half is not this pair. No two funders of one project split into "signed the commonality" and "signed only the modified." The closest disagreement is Wes (`0x68E6…b1Ee`) and Fake user 023 (`0x9D19…f99b`) on [Owen Sound association poll](http://127.0.0.1:5199/projects/0xad385917d545a7b1b7307654Aa5D7F6c1946d6A1). As Wes the page showed 0.03 of 2 USDZZZ raised and said the poll does not change a municipal election. Wes signs the direct ranked-poll sentence and wants Owen Sound elections to keep first-past-the-post. Fake user 023 signs the modified-right sentence, which has a live attester arrow to the dual-count commonality, and does not fund that commonality project. | | 3. A bridge is declined | Mined. Eli's profile lists "Late-term abortion is horrific." and does not list the settlement sentence. The settlement statement page still offers him Sign. | | 4. Early risk and later reimbursement | Mined, reconciled, and walked on 2026-10-19 in `output/campaigns/network-societies-v1-b2-reimburse/`, not in the 523-write graph. As Ruth, [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x4251D15D9Ee936d6F489C5aF9646084dB23EE3DE) showed 2.04 of 2 USDZZZ raised, status Succeeded, and "Early contributors are still out 1.04 USDZZZ." Ruth's row is 1.01 USDZZZ net; Imani's is 1.00. A third row, `0x5eF7…6f74`, is 0.02. Len is the founder and the recipient, and he is not one of those rows. Ruth's scout reimbursement showed 0.495098 USDZZZ available now and 0.514901 future. The page says no success attestations yet. Crossing the threshold is not evidence that the fictional work was delivered. | -| 5. Limited delegation | Delegate and revoke are mined. Pat's note to Ned was revoked, so the live page shows the note back with Pat. Walked 2026-10-19. A spend of a delegated note is not in the graph. Adam decided on 2026-10-19 to flesh that spend out. A recurring monthly pledge stays a product gap. | +| 5. Limited delegation | Delegate and revoke are mined. Pat's note to Ned was revoked, so the live page shows the note back with Pat. Walked 2026-10-19. A one-time spend is planned on [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json): June's payment-token note stays with Willa, who buys one 0.01 receipt. That copy is not mined. A recurring monthly pledge stays a product gap. | | 6. Same project, different boards | Not in the 523-write graph. Two statements sit on two boards. Adam decided on 2026-10-19 to flesh out one shared project contract. | | 7. Independent judgment | Stopped. The alignment contract records only a positive attestation or a revoke of that same attestation. It cannot record a decline of one project beside support for another. | @@ -248,10 +248,12 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 4 walk, 2026-10-19.** Same static server shape as journey 2: current `ui/dist/commonality` on `http://127.0.0.1:5199`, `/test-data` from `fake-data-generation/output/test-data`, and `/graphql` plus `/api` proxied to the indexer on port 42069. Without the `/api` proxy the project page shows "We couldn't load this project" because the event cache falls back to the page origin. Connect from run `20261019T224446171Z` as Ruth, then open the project with an in-app link. A full page load drops the in-memory wallet. As Ruth the page showed the fake-data sentence, founder Len, recipient `0x15d3…6A65`, Succeeded, 2.04 of 2 USDZZZ raised, and the close-the-loop line that early contributors are still out 1.04 USDZZZ. Her reimbursement panel showed 0.495098 USDZZZ available now and 0.514901 future. The contributor table listed Ruth 1.01, Imani 1.00, and `0x5eF7…6f74` 0.02. Len was not in those rows. "No success attestations yet" stayed on the page next to the funding success. A later `./scripts/services.sh --start` tried to redeploy contracts, reused the addresses this page reads, then reverted at block 2018 on a call to a newly deployed `CreatorAssuranceContractFactory`. That failure is outside this walk. Do not regenerate the reimburse directory to repair it. -**Journey 5. A friend spends a delegated note.** Delegate and revoke already run. Pat (`user-021`) delegated note `note-0001` to Ned (`user-011`) and then revoked that same note, so that pair cannot also show a spend. There is no campaign action that spends a delegated note. Add a one-time spend on a note that stays delegated: a different owner and delegate from the revoked Pat/Ned pair, on particular work, with the chain and the delegation page showing the spend. A recurring monthly pledge is still not an action type. Leave that as a product gap. Do not invent pledge transactions. +**Journey 5. A friend spends a delegated note.** Delegate and revoke already run. Pat (`user-021`) delegated note `note-0001` to Ned (`user-011`) and then revoked that same note, so that pair cannot also show a spend. The copy [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json) plans a different pair: June deposits one payment-token note, Willa keeps the delegation, and Willa spends it on one 0.01 receipt for the six-shop checkout trial. The action type is `spend-delegated-note`. It has not been mined. A recurring monthly pledge is still not an action type. Leave that as a product gap. Do not invent pledge transactions. **Journey 6. One project on two boards.** Each planned project has one `causeId`. Publishing the same artifact as a second contract would double-count the raise. Plan one project contract and two justified board alignments. The class-host directory statement and the moderator checklist statement already show statement reuse. This journey is the project form of that. Contradictory planks on those boards must not become implied endorsements of the shared project. **Journey 7. A reviewer declines an alignment.** Stopped here on 2026-10-19. `AlignmentAttestations` only records a positive `attestAlignment` (and `attestSuccess`) or a later `revokeAlignment` of that same yes. There is no decline, reject, or negative alignment. A revoke would say June withdrew her own support. It would not say she refused one superficially relevant project while supporting another. The planner still forces `supports-described-outcome`, and that matches the contract. Do not hide the refusal in persona prose and call the journey done. Showing it needs a contract and indexer change, which is outside this campaign chunk. -**Next task:** journey 5 (one-time delegated spend only) and journey 6. Journey 4 has been walked. Journey 7 waits on a real decline in the alignment contract. Do not regenerate `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Journey 5 plan, 2026-10-19.** The copy [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json) adds one `spend-delegated-note` write. June (`user-016`) deposits a payment-token note sized to one 0.01 receipt. Willa (`user-012`) receives that note and buys one cheap receipt on "Six-shop refundable checkout trial". That note is not revoked. Pat still delegates to Ned and that note is still revoked. A recurring monthly pledge is still not an action type. This copy has not been mined. Do not execute it over the five output directories named below. + +**Next task:** mine and walk `network-societies-v1-b2-note-spend`, then journey 6 (one project contract on two boards). Journey 4 has been walked. Journey 7 waits on a real decline in the alignment contract. Do not regenerate `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. diff --git a/fake-data-generation/campaignActionAdapter.ts b/fake-data-generation/campaignActionAdapter.ts index e4c15a45..3ca944a1 100644 --- a/fake-data-generation/campaignActionAdapter.ts +++ b/fake-data-generation/campaignActionAdapter.ts @@ -11,7 +11,7 @@ import { AssuranceContractAbi, } from '@commonality/sdk/abis'; import { attestImplication, attestImplicationsBatch } from '@commonality/sdk/conceptspace'; -import { depositETH, delegateNote, revokeNote } from '@commonality/sdk/delegation'; +import { depositERC20, depositETH, delegateNote, purchaseFromPrimaryMarketWithNotes, revokeNote } from '@commonality/sdk/delegation'; import { createDefaultDocumentStore, createDisplayableDocument, createStatement, publishDocumentsToPublishedData } from '@commonality/sdk/displayable-documents'; import { attestAlignment, attestAlignmentsBatch, PROJECT_ALIGNMENT_TOPIC, toSubjectId } from '@commonality/sdk/fundingportals'; import { buyProjectTokens, createProject, donateRetroactive, getProject } from '@commonality/sdk/lazy-giving'; @@ -189,7 +189,10 @@ export function createLiveCampaignActionWriter(input: { clients, publishedDataContract: { address: input.contracts.publishedData, abi: PublishedDataAbi }, }); - const noteAmount = (action: PlannedAction) => campaignNoteWei(action); + const noteAmount = (action: PlannedAction) => { + const deposit = input.plan.actions.find((item) => item.type === 'deposit-note' && item.noteId === action.noteId); + return deposit?.noteAsset === 'erc20' ? campaignActionFundingCost(deposit) : campaignNoteWei(action); + }; async function publishBoard(action: PlannedAction, clients: WriteClients): Promise { const board = action.board; @@ -332,6 +335,10 @@ export function createLiveCampaignActionWriter(input: { approvalConfirmations: input.approvalConfirmations ?? 3 }) }; }, async 'deposit-note'(action, clients) { + if (action.noteAsset === 'erc20') { + const { hash, noteId } = await depositERC20(clients, notesContract, { token: input.contracts.paymentToken, amount: campaignActionFundingCost(action) }); + return { hash, note: { contractAddress: input.contracts.delegatableNotes, noteId: noteId.toString() } }; + } const { hash, noteId } = await depositETH(clients, notesContract, { amount: noteAmount(action) }); return { hash, note: { contractAddress: input.contracts.delegatableNotes, noteId: noteId.toString() } }; }, @@ -353,6 +360,28 @@ export function createLiveCampaignActionWriter(input: { }); return { hash, note: binding }; }, + async 'spend-delegated-note'(action, clients) { + const binding = requireBound(input.bindings.notes[action.noteId!], `note ${action.noteId}`); + const deposit = input.plan.actions.find((item) => item.type === 'deposit-note' && item.noteId === action.noteId); + const owner = requireBound(input.bindings.users[deposit?.actorUserId ?? ''], `note owner ${action.noteId}`); + const assurance = projectAddress(action.projectId); + let token = projectTokens.get(action.projectId!); + if (!token) { + const folded = await getProject(machinery, assurance); + if (!folded?.erc1155Address) throw new Error(`cannot spend a note on unknown project ${action.projectId}`); + token = folded.erc1155Address as Address; + projectTokens.set(action.projectId!, token); + } + const count = BigInt(action.funding?.tokenCount ?? 1); + const hash = await purchaseFromPrimaryMarketWithNotes(clients, notesContract, { + purchaseShares: [{ noteId: BigInt(binding.noteId), chain: [clients.account, owner], shares: count }], + primaryMarket: assurance, + erc1155Contract: token, + tokenId: BigInt(action.funding?.tokenId ?? 3), + count, + }); + return { hash }; + }, }; const submitMany: CampaignActionWriter['submitMany'] = async (actions, clients) => { diff --git a/fake-data-generation/campaignBatching.ts b/fake-data-generation/campaignBatching.ts index 7ad01f21..45d1f4e8 100644 --- a/fake-data-generation/campaignBatching.ts +++ b/fake-data-generation/campaignBatching.ts @@ -24,7 +24,9 @@ export const SOLO_GAS_UNITS: Record = { // used 4,073,876–4,073,924 gas. A 3,000,000 quote left 17 founder wallets // short of the balance viem requires for that limit. Headroom above the max. 'attest-implication': 130_000n, 'create-project': 4_500_000n, 'attest-alignment': 130_000n, - 'fund-project': 180_000n, 'deposit-note': 150_000n, 'delegate-note': 100_000n, 'revoke-delegation': 90_000n, + 'fund-project': 180_000n, 'deposit-note': 350_000n, 'delegate-note': 100_000n, 'revoke-delegation': 90_000n, + // ERC-20 deposit approves then deposits. A delegated-note purchase is larger than a wallet buy. + 'spend-delegated-note': 400_000n, }; /** Storage and log cost of one extra item once the transaction overhead is paid. */ diff --git a/fake-data-generation/campaignIndexerAdapter.ts b/fake-data-generation/campaignIndexerAdapter.ts index fbc43693..945fb889 100644 --- a/fake-data-generation/campaignIndexerAdapter.ts +++ b/fake-data-generation/campaignIndexerAdapter.ts @@ -24,6 +24,7 @@ export const CAMPAIGN_ACTION_EVENTS: Record = { 'publish-statement': 4_000_000, 'create-cause': 120_000, 'create-bridge-board': 120_000, 'create-bridge': 120_000, 'set-belief': 120_000, 'attest-implication': 130_000, 'create-project': 4_500_000, 'attest-alignment': 130_000, - 'fund-project': 180_000, 'deposit-note': 150_000, 'delegate-note': 100_000, 'revoke-delegation': 90_000, + 'fund-project': 180_000, 'deposit-note': 350_000, 'delegate-note': 100_000, 'revoke-delegation': 90_000, + 'spend-delegated-note': 400_000, }; function stableJson(value: unknown): string { @@ -636,7 +639,44 @@ export async function buildCampaignPlan(manifest: CampaignManifestV1): Promise owner.causeIds.includes(causeId)).sort(); delegations.push(add({ type: 'delegate-note', actorUserId: owner.id, noteId: deposit.noteId, delegateUserId: delegate.id, amount: deposit.amount, delegationBasis: { sharedCauseIds, reason: 'shared-cause-trusted-role' }, dependsOn: [deposit.id] })); } - for (let index = 0; index < countByType['revoke-delegation']; index++) { const delegation = delegations[index % delegations.length]; add({ type: 'revoke-delegation', actorUserId: delegation.actorUserId, noteId: delegation.noteId, dependsOn: [delegation.id] }); } + const spend = manifest.delegatedSpend; + if (spend) { + const owner = users.find((user) => user.id === spend.ownerUserId); + const delegate = delegates.find((user) => user.id === spend.delegateUserId); + const project = projects.find((item) => item.title === spend.projectTitle); + if (!owner || owner.inactive) throw new Error(`delegatedSpend owner is not an active user: ${spend.ownerUserId}`); + if (!delegate) throw new Error(`delegatedSpend delegate is not an active delegate: ${spend.delegateUserId}`); + if (!project) throw new Error(`delegatedSpend project not planned: ${spend.projectTitle}`); + const sharedCauseIds = delegate.causeIds.filter((causeId) => owner.causeIds.includes(causeId)).sort(); + if (sharedCauseIds.length === 0) throw new Error('delegatedSpend pair shares no cause'); + if (project.founderUserId === delegate.id) throw new Error('delegatedSpend delegate must not be the project founder'); + const deposit = deposits[countByType['delegate-note'] - 1]; + if (!deposit) throw new Error('delegatedSpend needs a delegated deposit'); + deposit.actorUserId = owner.id; + deposit.noteAsset = 'erc20'; + deposit.amount = 1; + deposit.funding = { kind: 'early', tokenId: 3, tokenCount: 1 }; + const delegation = delegations[delegations.length - 1]; + if (!delegation || delegation.noteId !== deposit.noteId) throw new Error('delegatedSpend note is not the last delegation'); + delegation.actorUserId = owner.id; + delegation.delegateUserId = delegate.id; + delegation.amount = deposit.amount; + delegation.delegationBasis = { sharedCauseIds, reason: 'shared-cause-trusted-role' }; + const alignment = alignments.find((item) => item.projectId === project.id); + if (!alignment) throw new Error(`delegatedSpend project has no alignment: ${project.id}`); + add({ + type: 'spend-delegated-note', actorUserId: delegate.id, causeId: project.causeId, projectId: project.id, noteId: deposit.noteId, + amount: 1, funding: { kind: 'early', tokenId: 3, tokenCount: 1 }, + dependsOn: [delegation.id, createProjects.get(project.id)!.id, alignment.id], + }); + } + for (let index = 0; index < countByType['revoke-delegation']; index++) { + const delegation = delegations[index % delegations.length]; + if (spend && delegation.noteId === deposits[countByType['delegate-note'] - 1]?.noteId) { + throw new Error('delegatedSpend note would also be revoked'); + } + add({ type: 'revoke-delegation', actorUserId: delegation.actorUserId, noteId: delegation.noteId, dependsOn: [delegation.id] }); + } validatePlannedActions(manifest, statements, users, projects, actions); const writesByType = Object.fromEntries(manifest.actionRules.map((rule) => [rule.type, actions.filter((action) => action.type === rule.type).length])) as Record; diff --git a/fake-data-generation/campaignProvisioning.ts b/fake-data-generation/campaignProvisioning.ts index 1738c56f..494d3401 100644 --- a/fake-data-generation/campaignProvisioning.ts +++ b/fake-data-generation/campaignProvisioning.ts @@ -106,7 +106,8 @@ export function computeCampaignFundingNeeds(plan: CampaignPlan, wallets: readonl need.nativeWei += gasWei; gasBySlot.set(walletSlot, (gasBySlot.get(walletSlot) ?? 0n) + gasWei); for (const action of group) { - if (action.type === 'deposit-note') need.nativeWei += campaignNoteWei(action); + if (action.type === 'deposit-note' && action.noteAsset === 'erc20') need.paymentTokenUnits += campaignActionFundingCost(action); + else if (action.type === 'deposit-note') need.nativeWei += campaignNoteWei(action); if (action.type === 'fund-project') need.paymentTokenUnits += campaignActionFundingCost(action); } } diff --git a/fake-data-generation/campaignSchema.ts b/fake-data-generation/campaignSchema.ts index 5ad3b82c..191b3c3a 100644 --- a/fake-data-generation/campaignSchema.ts +++ b/fake-data-generation/campaignSchema.ts @@ -22,7 +22,8 @@ export type CampaignActionType = | 'fund-project' | 'deposit-note' | 'delegate-note' - | 'revoke-delegation'; + | 'revoke-delegation' + | 'spend-delegated-note'; export interface CampaignStatementRef { collectionId: string; @@ -124,6 +125,16 @@ export interface CampaignManifestV1 { earlyPurchases: number; retroactiveDonations: number; }; + /** + * One payment-token note stays delegated, and the delegate buys one cheap + * receipt on a named project. Absent on historical manifests. The Pat/Ned + * revoke pair is a different story and must not be this pair. + */ + delegatedSpend?: { + ownerUserId: string; + delegateUserId: string; + projectTitle: string; + }; } export type CampaignImplicationEvidence = 'accepted-bridge-role-pair' | 'live-attester-modified-to-commonality'; @@ -267,6 +278,19 @@ export function validateCampaignManifest(manifest: CampaignManifestV1): void { if (!Number.isInteger(earlyPurchases) || earlyPurchases < 1) throw new Error('reimbursement.earlyPurchases must be a positive integer'); if (!Number.isInteger(retroactiveDonations) || retroactiveDonations < 1) throw new Error('reimbursement.retroactiveDonations must be a positive integer'); } + if (manifest.delegatedSpend) { + const { ownerUserId, delegateUserId, projectTitle } = manifest.delegatedSpend; + if (!/^user-\d{3}$/.test(ownerUserId) || !/^user-\d{3}$/.test(delegateUserId) || ownerUserId === delegateUserId) { + throw new Error('delegatedSpend needs two different user ids'); + } + if (!projectTitle.trim()) throw new Error('delegatedSpend.projectTitle is required'); + const spendRule = manifest.actionRules.find((rule) => rule.type === 'spend-delegated-note'); + if (!spendRule || spendRule.targetCount.min !== 1 || spendRule.targetCount.max !== 1) { + throw new Error('delegatedSpend requires exactly one spend-delegated-note action'); + } + } else if (manifest.actionRules.some((rule) => rule.type === 'spend-delegated-note')) { + throw new Error('spend-delegated-note requires delegatedSpend'); + } validateCauses(manifest); validatePersonas(manifest); validateActionRules(manifest); diff --git a/fake-data-generation/campaignSdkDerivedChecks.ts b/fake-data-generation/campaignSdkDerivedChecks.ts index 453fe436..24669131 100644 --- a/fake-data-generation/campaignSdkDerivedChecks.ts +++ b/fake-data-generation/campaignSdkDerivedChecks.ts @@ -94,7 +94,7 @@ export function createCampaignSdkDerivedCheckProvider(input: { for (const action of plan.actions) { if (action.type === 'set-belief') latestBelief.set(`${action.actorUserId}/${action.statementId}`, action); if (action.noteId) latestNoteAction.set(action.noteId, action); - if (action.type === 'fund-project') { + if (action.type === 'fund-project' || action.type === 'spend-delegated-note') { const target = action.funding?.kind === 'retroactive' ? retroByProject : fundingByProject; target.set(action.projectId!, (target.get(action.projectId!) ?? 0n) + campaignActionFundingCost(action)); } @@ -138,9 +138,10 @@ export function createCampaignSdkDerivedCheckProvider(input: { return [check('SDK project exists', true, (await queries.getProject(project(action.projectId))) !== null)]; case 'attest-alignment': return [check('SDK active project alignment', true, await queries.hasAlignment(user(action.actorUserId), project(action.projectId), statement(action.statementId)))]; + case 'spend-delegated-note': case 'fund-project': { const folded = await queries.getProject(project(action.projectId)); - if (action.funding?.kind === 'retroactive') { + if (action.type === 'fund-project' && action.funding?.kind === 'retroactive') { const reimbursement = await queries.getProjectReimbursementState?.(project(action.projectId)); return [check('SDK final retroactive donations', (retroByProject.get(action.projectId!) ?? 0n).toString(), reimbursement?.totalRetroactiveDonations ?? null)]; } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json new file mode 100644 index 00000000..271e9b0e --- /dev/null +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -0,0 +1,1959 @@ +{ + "schema": "commonality-testnet-campaign-v1", + "campaign": { + "id": "ns-v1-b2-note-spend", + "label": "Network societies batch 2 with one delegated payment-token spend on the six-shop checkout trial", + "syntheticDataLabel": "SYNTHETIC CAMPAIGN — NOT REAL USERS, ORGANIZATIONS, OR DELIVERABLES", + "userCount": 72, + "deterministicSeed": "commonality-network-societies-v1-b2-2026-10-16", + "randomAlgorithm": "xoshiro128**" + }, + "sourcePolicy": { + "kind": "accepted-plus-campaign-synthetic", + "fingerprintAlgorithm": "sha256", + "excludeCollections": [ + "proliferation" + ], + "campaignCollection": "network-societies-v1-b2-statements.json" + }, + "scale": { + "minCauses": 16, + "maxCauses": 16, + "minStatements": 124, + "maxStatements": 124, + "allowRepeatedStatementRefs": true + }, + "projectStories": "network-societies-v1-b2-projects.json", + "beliefDecisions": "network-societies-v1-b2-decisions.json", + "causes": [ + { + "id": "crypto-merchants", + "title": "Owen Sound checkout trial", + "activityTier": "large", + "membershipWeight": 12, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "refundable-checkout" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "published-trial-record" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "checkout-security-review" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "merchant-directory" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "deployment-clinic" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "host-kit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "keep-cash-and-card" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "refuse-crypto-payments" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "bank-blocking" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "crypto-merchants", + "statementId": "fee-schedule" + } + ] + }, + { + "id": "civic-assimilation", + "title": "Grey County civic life", + "activityTier": "large", + "membershipWeight": 12, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "language-sessions" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "civics-pack" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "park-paths" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "tutor-check" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "organizer-handoff" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "english-township-business" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "own-language-communities" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "housing-before-recruiting" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "welcome-signage" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "session-limit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "shared-goods", + "statementId": "class-host-directory" + } + ] + }, + { + "id": "christian-teaching", + "title": "Grey County Christian teaching", + "activityTier": "medium", + "membershipWeight": 10, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "midweek-notes" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "transcription" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "substitute-rota" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "named-confession" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "no-joint-doctrine" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "host-kit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "civic-transcription-only" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "keep-notes-inside" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "christian-teaching", + "statementId": "interchurch-calendar" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "shared-goods", + "statementId": "class-host-directory" + } + ] + }, + { + "id": "home-learning", + "title": "Grey County home learning", + "activityTier": "medium", + "membershipWeight": 10, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "science-unit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "field-trip" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "science-kits" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "saturday-meetups" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "successor-host" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "method-on-the-page" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "no-religious-claims" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "school-families-may-borrow" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "staffed-schools" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "home-learning", + "statementId": "lab-safety" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "shared-goods", + "statementId": "class-host-directory" + } + ] + }, + { + "id": "abortion", + "title": "Abortion settlement", + "activityTier": "medium", + "membershipWeight": 8, + "statementRefs": [ + { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "natural-left" + }, + { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "natural-right" + }, + { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "modified-left" + }, + { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "modified-right" + }, + { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "commonality" + } + ] + }, + { + "id": "abortion-forum", + "title": "Michigan abortion authority", + "activityTier": "small", + "membershipWeight": 6, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "michigan-legislature" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "one-federal-rule" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "no-settlement" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "no-early-abortions" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "options-on-a-page" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "moderator-checklist" + } + ] + }, + { + "id": "schools", + "title": "Schools and pushing", + "activityTier": "medium", + "membershipWeight": 7, + "statementRefs": [ + { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "natural-left" + }, + { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "natural-right" + }, + { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "modified-left" + }, + { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "modified-right" + }, + { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "commonality" + } + ] + }, + { + "id": "gender-conduct", + "title": "Grey County school conduct", + "activityTier": "small", + "membershipWeight": 6, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "harassment-steps" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "clinician-for-minors" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "school-not-clinic" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "no-medical-limit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "adult-medical-speech" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "names-and-courtesy" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "gender-conduct", + "statementId": "enrollment-name-only" + } + ] + }, + { + "id": "voting", + "title": "Owen Sound voting trial", + "activityTier": "medium", + "membershipWeight": 8, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "ranked-poll" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "approval-count" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "keep-fptp" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "show-of-hands" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "counting-toolkit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "poll-host-kit" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "trial-directory" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "abortion-forum", + "statementId": "moderator-checklist" + } + ] + }, + { + "id": "grey-assimilation", + "title": "Grey County assimilation sessions", + "activityTier": "medium", + "membershipWeight": 8, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "commonality" + } + ] + }, + { + "id": "ranked-approval-poll", + "title": "Owen Sound dual count", + "activityTier": "medium", + "membershipWeight": 7, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "commonality" + } + ] + }, + { + "id": "checkout-trial-bridge", + "title": "Owen Sound checkout bridge", + "activityTier": "medium", + "membershipWeight": 8, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "commonality" + } + ] + }, + { + "id": "minors-medicine", + "title": "Minors medicine and courtesy", + "activityTier": "medium", + "membershipWeight": 7, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "commonality" + } + ] + }, + { + "id": "opinion-employment", + "title": "Ordinary opinion and employment", + "activityTier": "small", + "membershipWeight": 6, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "commonality" + } + ] + }, + { + "id": "canada-us-ties", + "title": "Ordinary Canada-US ties", + "activityTier": "small", + "membershipWeight": 6, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "commonality" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "cultural-archive" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "ties-guide" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "community-event" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "exchange-directory" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "host-handoff" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "boycott-ordinary-ties" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "narrower-than-visits" + } + ] + }, + { + "id": "ai-pause", + "title": "Pause AI capabilities research", + "activityTier": "medium", + "membershipWeight": 8, + "statementRefs": [ + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-small-chance" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-small-chance" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-jobs" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-jobs" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-industry" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-industry" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-not-luddite" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-not-luddite" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-children" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-children" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "pole-stop" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "pole-accelerate" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "treaty-petition" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "alignment-note" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "warning-digest" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "pause-host-kit" + } + ] + } + ], + "personas": [ + { + "id": "community-organizer", + "count": 4, + "roles": [ + "cause-founder", + "supporter" + ], + "causesPerUser": { + "min": 2, + "max": 3 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 1.2 + }, + { + "id": "project-builder", + "count": 6, + "roles": [ + "project-founder", + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 2 + }, + "activityWeight": 1.7, + "inactivityRate": 0, + "fundingWeight": 0.8 + }, + { + "id": "trusted-delegate", + "count": 5, + "roles": [ + "delegate", + "supporter" + ], + "causesPerUser": { + "min": 2, + "max": 4 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 1.4 + }, + { + "id": "bridge-mediator", + "count": 5, + "roles": [ + "attester", + "mediator" + ], + "causesPerUser": { + "min": 2, + "max": 4 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 0.4 + }, + { + "id": "regular-supporter", + "count": 14, + "roles": [ + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 3 + }, + "activityWeight": 1, + "inactivityRate": 0.1, + "fundingWeight": 1 + }, + { + "id": "quiet-neighbor", + "count": 6, + "roles": [ + "lurker", + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 2 + }, + "activityWeight": 0.2, + "inactivityRate": 0.4, + "fundingWeight": 0.3 + }, + { + "id": "batch-organizer", + "count": 3, + "roles": [ + "cause-founder", + "supporter" + ], + "causesPerUser": { + "min": 2, + "max": 2 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 1.2 + }, + { + "id": "batch-builder", + "count": 6, + "roles": [ + "project-founder", + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 2 + }, + "activityWeight": 1.7, + "inactivityRate": 0, + "fundingWeight": 0.8 + }, + { + "id": "batch-reviewer", + "count": 2, + "roles": [ + "attester", + "mediator" + ], + "causesPerUser": { + "min": 4, + "max": 4 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 0.4 + }, + { + "id": "batch-supporter", + "count": 9, + "roles": [ + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 2 + }, + "activityWeight": 1, + "inactivityRate": 0, + "fundingWeight": 1 + }, + { + "id": "ai-pause-voice", + "count": 7, + "roles": [ + "project-founder", + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 1 + }, + "activityWeight": 1.5, + "inactivityRate": 0, + "fundingWeight": 1 + }, + { + "id": "canada-us-voice", + "count": 5, + "roles": [ + "project-founder", + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 1 + }, + "activityWeight": 1.5, + "inactivityRate": 0, + "fundingWeight": 1 + } + ], + "userProfiles": [ + { + "userId": "user-001", + "displayName": "Ruth", + "bio": "Keeps the books for a shop in Owen Sound and wants the checkout trial's fees published. She will not sign a demand that shops refuse crypto.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "shop fees", + "Owen Sound" + ], + "causeIds": [ + "crypto-merchants", + "civic-assimilation", + "grey-assimilation" + ], + "spotlightOrder": 1 + }, + { + "userId": "user-002", + "displayName": "Helen", + "bio": "Preaches at a small Grey County church and wants the midweek notes reusable, with the confession named. She does not treat a shared host directory as agreement on doctrine.", + "favoriteCauseId": "christian-teaching", + "interests": [ + "preaching", + "Grey County churches" + ], + "causeIds": [ + "christian-teaching", + "home-learning", + "ranked-approval-poll" + ], + "spotlightOrder": 2 + }, + { + "userId": "user-003", + "displayName": "Imani", + "bio": "Recently moved to Owen Sound and wants the twelve conversation sessions with childcare. She rejects the demand to stop recruiting newcomers.", + "favoriteCauseId": "civic-assimilation", + "interests": [ + "English practice", + "Owen Sound" + ], + "causeIds": [ + "civic-assimilation", + "crypto-merchants", + "checkout-trial-bridge" + ], + "spotlightOrder": 3 + }, + { + "userId": "user-004", + "displayName": "Owen", + "bio": "Home-schools in Grey County and wants the printable science unit with no religious claims. He will not sign a request to release a congregation's midweek notes.", + "favoriteCauseId": "home-learning", + "interests": [ + "home science", + "Grey County" + ], + "causeIds": [ + "home-learning", + "christian-teaching", + "minors-medicine" + ], + "spotlightOrder": 4 + }, + { + "userId": "user-005", + "displayName": "Len", + "bio": "Runs a shop that wants to keep cash and cards while trying the refundable checkout. He is not a crypto enthusiast.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "retail", + "refunds" + ], + "causeIds": [ + "crypto-merchants", + "opinion-employment" + ], + "spotlightOrder": 5 + }, + { + "userId": "user-006", + "displayName": "Doug", + "bio": "Has lived in Owen Sound for decades. He wants the park-path season and English township business, and he wants recruiting to wait on housing.", + "favoriteCauseId": "civic-assimilation", + "interests": [ + "Harrison Park", + "township business" + ], + "causeIds": [ + "civic-assimilation", + "canada-us-ties" + ], + "spotlightOrder": 6 + }, + { + "userId": "user-007", + "displayName": "Nadia", + "bio": "Checks directories for a living. She will confirm a class-host listing and will not treat that check as endorsement of the host's church or school.", + "favoriteCauseId": "christian-teaching", + "interests": [ + "directories", + "independent checks" + ], + "causeIds": [ + "christian-teaching", + "home-learning" + ], + "spotlightOrder": 7 + }, + { + "userId": "user-008", + "displayName": "Chris", + "bio": "Builds the science-kit instructions and wants the hazards written down. He does not want public rooms closed to home-school meetups.", + "favoriteCauseId": "home-learning", + "interests": [ + "science kits", + "lab safety" + ], + "causeIds": [ + "home-learning" + ], + "spotlightOrder": 8 + }, + { + "userId": "user-011", + "displayName": "Ned", + "bio": "Accepts a limited note from Pat for Owen Sound shop work. Holding the note is not a belief about crypto, and it is not yet spent.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "Owen Sound shops", + "limited notes" + ], + "causeIds": [ + "crypto-merchants", + "civic-assimilation", + "christian-teaching", + "home-learning" + ], + "spotlightOrder": 9 + }, + { + "userId": "user-012", + "displayName": "Willa", + "bio": "Holds June's payment-token note for the six-shop checkout trial and spends it once. The spend is not a belief about crypto, and it is not a monthly pledge.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "limited notes", + "Owen Sound shops" + ], + "causeIds": [ + "crypto-merchants", + "home-learning" + ], + "spotlightOrder": 37 + }, + { + "userId": "user-021", + "displayName": "Pat", + "bio": "Delegates a small note to Ned for the checkout trial and can revoke it. The delegation is not a signature.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "delegation", + "Owen Sound shops" + ], + "causeIds": [ + "crypto-merchants", + "civic-assimilation" + ], + "delegatesTo": "user-011", + "spotlightOrder": 10 + }, + { + "userId": "user-016", + "displayName": "June", + "bio": "Reviews project alignments and will refuse a project that only sounds related to a statement.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "review", + "Grey County" + ], + "causeIds": [ + "crypto-merchants", + "civic-assimilation", + "christian-teaching", + "home-learning" + ] + }, + { + "userId": "user-041", + "displayName": "Mara", + "bio": "Accepts the 12-16 week settlement and will sign the modified-left wording. She does not treat that signature as a belief about which legislature should write the rule.", + "favoriteCauseId": "abortion", + "interests": [ + "settlement", + "Grand Rapids" + ], + "causeIds": [ + "abortion", + "abortion-forum" + ], + "spotlightOrder": 11 + }, + { + "userId": "user-042", + "displayName": "Nina", + "bio": "Wants the schools question argued from the accepted statements. She does not treat that question as a decision about drugs or surgery.", + "favoriteCauseId": "schools", + "interests": [ + "schools", + "Grey County" + ], + "causeIds": [ + "schools", + "gender-conduct" + ], + "spotlightOrder": 12 + }, + { + "userId": "user-043", + "displayName": "Wes", + "bio": "Wants the Owen Sound association poll and the published counts. He can sign keeping first-past-the-post for real municipal elections.", + "favoriteCauseId": "voting", + "interests": [ + "Owen Sound", + "ballots" + ], + "causeIds": [ + "voting", + "abortion-forum" + ], + "spotlightOrder": 13 + }, + { + "userId": "user-044", + "displayName": "Paul", + "bio": "Will host the Grand Rapids settlement sessions and publish the notes without a claim about current Michigan law.", + "favoriteCauseId": "abortion", + "interests": [ + "Grand Rapids", + "moderation" + ], + "causeIds": [ + "abortion" + ], + "spotlightOrder": 14 + }, + { + "userId": "user-045", + "displayName": "Ada", + "bio": "Writes the Michigan authority brief as two labeled proposals.", + "favoriteCauseId": "abortion-forum", + "interests": [ + "Michigan", + "proposals" + ], + "causeIds": [ + "abortion-forum" + ], + "spotlightOrder": 15 + }, + { + "userId": "user-046", + "displayName": "Gail", + "bio": "Prints the five accepted schools statements unchanged for a parent meeting.", + "favoriteCauseId": "schools", + "interests": [ + "parent meetings", + "transcripts" + ], + "causeIds": [ + "schools" + ], + "spotlightOrder": 16 + }, + { + "userId": "user-047", + "displayName": "Hugh", + "bio": "Publishes the Grey County harassment steps and keeps them off the medical question.", + "favoriteCauseId": "gender-conduct", + "interests": [ + "harassment reporting", + "Grey County schools" + ], + "causeIds": [ + "gender-conduct" + ], + "spotlightOrder": 17 + }, + { + "userId": "user-048", + "displayName": "Ivy", + "bio": "Runs the non-binding Owen Sound poll and files the ballots.", + "favoriteCauseId": "voting", + "interests": [ + "ranked ballots", + "Owen Sound" + ], + "causeIds": [ + "voting" + ], + "spotlightOrder": 18 + }, + { + "userId": "user-049", + "displayName": "Kent", + "bio": "Reruns the Owen Sound count from the published ballots. He is not the poll host.", + "favoriteCauseId": "voting", + "interests": [ + "counting", + "independent checks" + ], + "causeIds": [ + "voting", + "gender-conduct" + ], + "spotlightOrder": 19 + }, + { + "userId": "user-050", + "displayName": "Lila", + "bio": "Attests alignments on the settlement, the forum, the schools statements, and the poll. A shared checklist is not a belief.", + "favoriteCauseId": "abortion", + "interests": [ + "review", + "Grand Rapids" + ], + "causeIds": [ + "abortion", + "abortion-forum", + "schools", + "voting" + ], + "spotlightOrder": 20 + }, + { + "userId": "user-051", + "displayName": "Omar", + "bio": "Attests alignments on school conduct and will refuse a project that uses the schools statements as a medical claim.", + "favoriteCauseId": "gender-conduct", + "interests": [ + "review", + "Grey County" + ], + "causeIds": [ + "gender-conduct", + "schools", + "voting", + "abortion-forum" + ], + "spotlightOrder": 21 + }, + { + "userId": "user-052", + "displayName": "Eli", + "bio": "Holds that late-term abortion is horrific. He will not sign the settlement or the modified-right wording.", + "favoriteCauseId": "abortion", + "interests": [ + "late-term abortion" + ], + "causeIds": [ + "abortion" + ], + "spotlightOrder": 22 + }, + { + "userId": "user-053", + "displayName": "Jo", + "bio": "Signs the schools commonality if it is only the conditional about pushing. She rejects a school counselor approving a drug.", + "favoriteCauseId": "schools", + "interests": [ + "schools", + "clinicians" + ], + "causeIds": [ + "schools", + "gender-conduct" + ], + "spotlightOrder": 23 + }, + { + "userId": "user-054", + "displayName": "Bea", + "bio": "Wants Michigan's legislature to decide, and does not sign the 12-16 week settlement.", + "favoriteCauseId": "abortion-forum", + "interests": [ + "Michigan legislature" + ], + "causeIds": [ + "abortion-forum" + ], + "spotlightOrder": 24 + }, + { + "userId": "user-061", + "displayName": "Priya", + "bio": "Will not sign a claim that superintelligent AI is going to kill us. She will sign the small-chance wording and the shared pause sentence.", + "favoriteCauseId": "ai-pause", + "interests": [ + "small chance", + "pause treaty" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 25 + }, + { + "userId": "user-062", + "displayName": "Dean", + "bio": "Came in worried about jobs, not extinction. He signs the jobs wording and the shared pause sentence, and he does not sign the certain-doom sentence.", + "favoriteCauseId": "ai-pause", + "interests": [ + "job loss", + "pause treaty" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 26 + }, + { + "userId": "user-063", + "displayName": "Noor", + "bio": "Repeats the industry warnings and has not signed the treaty. Someone can point her at the industry modified sentence.", + "favoriteCauseId": "ai-pause", + "interests": [ + "industry warnings" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 27 + }, + { + "userId": "user-064", + "displayName": "Sam", + "bio": "Says he is not a Luddite. He signs the not-a-Luddite wording and the shared pause sentence, and he leaves the certain-doom sentence unsigned.", + "favoriteCauseId": "ai-pause", + "interests": [ + "technology", + "risk" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 28 + }, + { + "userId": "user-065", + "displayName": "Tess", + "bio": "Talks about executives gambling with her children's lives. She has not signed the treaty yet.", + "favoriteCauseId": "ai-pause", + "interests": [ + "children", + "executives" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 29 + }, + { + "userId": "user-066", + "displayName": "Hal", + "bio": "Wants the work to just stop. He rejects the pause-while-alignment sentence as too soft.", + "favoriteCauseId": "ai-pause", + "interests": [ + "extinction", + "full stop" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 30 + }, + { + "userId": "user-067", + "displayName": "Vic", + "bio": "Thinks a pause is the dangerous move because other labs will not stop. He rejects the shared pause sentence and the small-chance wording.", + "favoriteCauseId": "ai-pause", + "interests": [ + "capabilities race" + ], + "causeIds": [ + "ai-pause" + ], + "spotlightOrder": 31 + }, + { + "userId": "user-068", + "displayName": "Fern", + "bio": "Wants the Owen Sound archive, the ties guide, the evening, the Grey County directory, and a written host handoff. She signs those planks. The shared purchase-and-visit sentence is a separate signature.", + "favoriteCauseId": "canada-us-ties", + "interests": [ + "Owen Sound archive", + "host handoff" + ], + "causeIds": [ + "canada-us-ties" + ], + "spotlightOrder": 32 + }, + { + "userId": "user-069", + "displayName": "Cal", + "bio": "Keeps ordinary business with the US and signs the shared purchase-and-visit sentence. He also wants the Grey County host directory. He does not sign a boycott.", + "favoriteCauseId": "canada-us-ties", + "interests": [ + "US businesses", + "host directory" + ], + "causeIds": [ + "canada-us-ties" + ], + "spotlightOrder": 33 + }, + { + "userId": "user-070", + "displayName": "Adele", + "bio": "Does not like Trump and still thinks cutting off ordinary buying and family visits is foolish. She signs that natural sentence and the Owen Sound guide. She has not signed the shared sentence.", + "favoriteCauseId": "canada-us-ties", + "interests": [ + "family visits", + "practical guide" + ], + "causeIds": [ + "canada-us-ties" + ], + "spotlightOrder": 34 + }, + { + "userId": "user-071", + "displayName": "Greta", + "bio": "Wants ordinary Canadians to stop buying from US businesses and to stop family visits while the current administration is in office. She rejects the shared purchase-and-visit sentence. She is not a supporter of it through an arrow.", + "favoriteCauseId": "canada-us-ties", + "interests": [ + "boycott" + ], + "causeIds": [ + "canada-us-ties" + ], + "spotlightOrder": 35 + }, + { + "userId": "user-072", + "displayName": "Neil", + "bio": "Wants family visits kept and does not want a general call to keep buying from US businesses. He rejects the shared sentence that asks for both.", + "favoriteCauseId": "canada-us-ties", + "interests": [ + "family visits", + "narrower ties" + ], + "causeIds": [ + "canada-us-ties" + ], + "spotlightOrder": 36 + } + ], + "implicationAllowances": [ + { + "from": { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "modified-left" + }, + "to": { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "commonality" + }, + "evidence": "accepted-bridge-role-pair" + }, + { + "from": { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "modified-right" + }, + "to": { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "commonality" + }, + "evidence": "accepted-bridge-role-pair" + }, + { + "from": { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "modified-left" + }, + "to": { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "commonality" + }, + "evidence": "accepted-bridge-role-pair" + }, + { + "from": { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "modified-right" + }, + "to": { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "commonality" + }, + "evidence": "accepted-bridge-role-pair" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-small-chance" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-jobs" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-industry" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-not-luddite" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-children" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + } + ], + "actionRules": [ + { + "type": "publish-statement", + "prerequisites": [], + "targetCount": { + "min": 124, + "max": 124 + } + }, + { + "type": "create-cause", + "prerequisites": [ + "publish-statement" + ], + "targetCount": { + "min": 16, + "max": 16 + } + }, + { + "type": "set-belief", + "prerequisites": [ + "publish-statement" + ], + "targetCount": { + "min": 105, + "max": 105 + } + }, + { + "type": "attest-implication", + "prerequisites": [ + "publish-statement" + ], + "targetCount": { + "min": 21, + "max": 21 + } + }, + { + "type": "create-project", + "prerequisites": [ + "create-cause" + ], + "targetCount": { + "min": 62, + "max": 62 + } + }, + { + "type": "attest-alignment", + "prerequisites": [ + "create-project", + "publish-statement" + ], + "targetCount": { + "min": 62, + "max": 62 + } + }, + { + "type": "fund-project", + "prerequisites": [ + "create-project", + "attest-alignment" + ], + "targetCount": { + "min": 70, + "max": 70 + } + }, + { + "type": "deposit-note", + "prerequisites": [], + "targetCount": { + "min": 12, + "max": 12 + } + }, + { + "type": "delegate-note", + "prerequisites": [ + "deposit-note" + ], + "targetCount": { + "min": 8, + "max": 8 + } + }, + { + "type": "revoke-delegation", + "prerequisites": [ + "delegate-note" + ], + "targetCount": { + "min": 3, + "max": 3 + } + }, + { + "type": "create-bridge-board", + "prerequisites": [ + "publish-statement" + ], + "targetCount": { + "min": 32, + "max": 32 + } + }, + { + "type": "create-bridge", + "prerequisites": [ + "create-cause", + "create-bridge-board" + ], + "targetCount": { + "min": 8, + "max": 8 + } + }, + { + "type": "spend-delegated-note", + "prerequisites": [ + "delegate-note", + "create-project", + "attest-alignment" + ], + "targetCount": { + "min": 1, + "max": 1 + } + } + ], + "artifactLayout": { + "manifest": "manifest.json", + "statementCatalog": "plan/statements.json", + "assignments": "plan/assignments.json", + "walletAddresses": "plan/wallet-addresses.json", + "walletSecrets": "../secrets/network-societies-v1-b2-note-spend.wallets.json", + "actionPlan": "plan/actions.json", + "executionState": "execution/actions.jsonl", + "runtimeBindings": "execution/runtime-bindings.json", + "fundingLedger": "execution/funding-ledger.json", + "reconciliation": "reports/reconciliation.json", + "browserObservations": "reports/browser-observations.json", + "summary": "reports/summary.md" + }, + "delegatedSpend": { + "ownerUserId": "user-016", + "delegateUserId": "user-012", + "projectTitle": "Six-shop refundable checkout trial" + } +} diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 5ea5ac02..b3cac1d8 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -26,7 +26,7 @@ Twenty-one implication actions are planned. Four are the accepted abortion and s The manifest points `beliefDecisions` at that file. Each `signs` entry is one `believe` write and each `rejects` entry is one `disbelieve` write. Those pairs are not drawn again, so Eli never believes the abortion commonality. Unsigned statements stay unpinned. -Delegated spending and a recurring monthly pledge stay out of this manifest. Pat already delegates a note to Ned, and the adapter can revoke a delegation. No action in this file spends a delegated note or repeats a pledge. Early funding and later reimbursement are on the copy [`network-societies-v1-b2-reimburse.json`](./network-societies-v1-b2-reimburse.json), not here. +A recurring monthly pledge stays out of this manifest. Pat already delegates a note to Ned, and the adapter can revoke a delegation. No action in this file spends a delegated note. The one-time spend is on the copy [`network-societies-v1-b2-note-spend.json`](./network-societies-v1-b2-note-spend.json): June deposits a payment-token note, Willa keeps it, and Willa buys one 0.01 receipt. That copy is not mined. Early funding and later reimbursement are on the copy [`network-societies-v1-b2-reimburse.json`](./network-societies-v1-b2-reimburse.json), not here. ## Reproduce the plan diff --git a/fake-data-generation/test/campaignIndexerAdapter.test.ts b/fake-data-generation/test/campaignIndexerAdapter.test.ts index 343cf7bd..c57a7e00 100644 --- a/fake-data-generation/test/campaignIndexerAdapter.test.ts +++ b/fake-data-generation/test/campaignIndexerAdapter.test.ts @@ -13,7 +13,7 @@ const action: PlannedAction = { id: 'a1', sequence: 1, type: 'fund-project', act test('every campaign action has an explicit real indexer event mapping', () => { assert.deepEqual(Object.keys(CAMPAIGN_ACTION_EVENTS).sort(), [ 'attest-alignment', 'attest-implication', 'create-bridge', 'create-bridge-board', 'create-cause', 'create-project', 'delegate-note', - 'deposit-note', 'fund-project', 'publish-statement', 'revoke-delegation', 'set-belief', + 'deposit-note', 'fund-project', 'publish-statement', 'revoke-delegation', 'set-belief', 'spend-delegated-note', ]); assert.ok(Object.values(CAMPAIGN_ACTION_EVENTS).every((names) => names.length > 0)); }); diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 22b6e4c3..b21c573a 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -409,6 +409,38 @@ test('reimbursement config plans early 0.10 receipts and later retroactive donat assert.equal(plan.actions.filter((action) => action.type === 'fund-project').length, 74); }); +test('delegatedSpend plans one payment-token note that stays delegated and is spent once', async () => { + const manifest = JSON.parse(await readFile(new URL('../campaigns/network-societies-v1-b2.json', import.meta.url), 'utf8')) as CampaignManifestV1; + manifest.userProfiles = [...(manifest.userProfiles ?? []), { + userId: 'user-012', + displayName: 'Willa', + bio: 'Holds June\'s payment-token note for the six-shop checkout trial and spends it once.', + favoriteCauseId: 'crypto-merchants', + interests: ['limited notes', 'Owen Sound shops'], + causeIds: ['crypto-merchants', 'home-learning'], + }]; + manifest.actionRules.push({ type: 'spend-delegated-note', prerequisites: ['delegate-note', 'create-project', 'attest-alignment'], targetCount: { min: 1, max: 1 } }); + manifest.delegatedSpend = { ownerUserId: 'user-016', delegateUserId: 'user-012', projectTitle: 'Six-shop refundable checkout trial' }; + const plan = await buildCampaignPlan(manifest); + const spends = plan.actions.filter((action) => action.type === 'spend-delegated-note'); + assert.equal(spends.length, 1); + const spend = spends[0]; + const deposit = plan.actions.find((action) => action.type === 'deposit-note' && action.noteId === spend.noteId)!; + const delegation = plan.actions.find((action) => action.type === 'delegate-note' && action.noteId === spend.noteId)!; + const revokes = plan.actions.filter((action) => action.type === 'revoke-delegation' && action.noteId === spend.noteId); + assert.equal(deposit.actorUserId, 'user-016'); + assert.equal(deposit.noteAsset, 'erc20'); + assert.equal(deposit.funding?.tokenId, 3); + assert.equal(delegation.delegateUserId, 'user-012'); + assert.equal(spend.actorUserId, 'user-012'); + assert.equal(spend.amount, 1); + assert.equal(revokes.length, 0); + assert.ok(spend.dependsOn.includes(delegation.id)); + const patNote = plan.actions.find((action) => action.type === 'delegate-note' && action.actorUserId === 'user-021')!; + assert.ok(plan.actions.some((action) => action.type === 'revoke-delegation' && action.noteId === patNote.noteId)); + assert.notEqual(patNote.noteId, spend.noteId); +}); + test('written planning artifacts reload into the same campaign plan', async () => { const manifest = await loadManifest(); const plan = await buildCampaignPlan(manifest); diff --git a/fake-data-generation/test/campaignProvisioning.test.ts b/fake-data-generation/test/campaignProvisioning.test.ts index f4fbe923..17a4bd8f 100644 --- a/fake-data-generation/test/campaignProvisioning.test.ts +++ b/fake-data-generation/test/campaignProvisioning.test.ts @@ -42,13 +42,13 @@ test('funding needs include gas, note deposits, and project token buys', () => { const [need] = computeCampaignFundingNeeds(plan, [wallet], 1_000_000_000n); assert.equal(need.walletSlot, 'wallet-user-001'); assert.equal(need.paymentTokenUnits, parseUnits('0.01', 6)); - assert.ok(need.nativeWei >= 120_000n * 1_000_000_000n + 180_000n * 1_000_000_000n + 150_000n * 1_000_000_000n + CAMPAIGN_NOTE_WEI); + assert.ok(need.nativeWei >= 120_000n * 1_000_000_000n + 180_000n * 1_000_000_000n + 350_000n * 1_000_000_000n + CAMPAIGN_NOTE_WEI); }); test('native reserve scales with gas and leaves idle wallets unfunded', () => { const idle = { ...wallet, walletSlot: 'wallet-idle' }; const needs = computeCampaignFundingNeeds(plan, [wallet, idle], 1_000_000_000n); - const estimatedGasWei = (120_000n + 180_000n + 150_000n) * 1_000_000_000n; + const estimatedGasWei = (120_000n + 180_000n + 350_000n) * 1_000_000_000n; assert.equal(needs[0].nativeWei, CAMPAIGN_NOTE_WEI + estimatedGasWei * 125n / 100n + parseEther('0.0001')); assert.equal(needs[1].nativeWei, 0n); }); From b52deaf38776bc101b65c01597a94f4ce75e6750 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 09:08:47 -0400 Subject: [PATCH 14/46] Mine and walk the delegated note spend on the checkout trial. A full spend closes the note, so reconciliation treats that final state as inactive. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 16 +++++---- .../campaignSdkDerivedChecks.ts | 4 ++- .../campaigns/network-societies-v1-b2.md | 2 +- .../test/campaignSdkDerivedChecks.test.ts | 36 +++++++++++++++++++ 5 files changed, 50 insertions(+), 10 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index df20d030..ee044a3a 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt) and has not been mined. The next chunk is to mine and walk that copy, then one project contract on two boards. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The next chunk is one project contract on two boards. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 225551b2..bac18cff 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -34,13 +34,13 @@ The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli' **Local run, 2026-10-19.** `campaigns/network-societies-v1-b2.json` was identical to `output/campaigns/network-societies-v1-b2-canada-us/manifest.json` before execution. That directory's 523 writes mined 523/523 and reconciled 523/523 (indexer lag 0, head 1427). The first pass left 17 `create-project` writes failed for insufficient ETH; those wallets were topped up with `hardhat_setBalance` and the run resumed. Do not regenerate that directory. Do not execute it over `output/campaigns/network-societies-v1-b2/`, `output/campaigns/network-societies-v1-b2-ai-pause/`, or the pilot directory. Test-data run id `20261019T194718789Z`. Open it from the local admin bookmark; do not commit the capability key. Eli (`user-052`, `0x232a…6895`) believes the abortion natural-right sentence and disbelieves the commonality and both modifieds. No project title is shared across causes. The graph has 8 `delegate-note` writes and 3 `revoke-delegation` writes, and zero retroactive `fund-project` writes. Nothing spends a delegated note. -**Decided out of this campaign for now.** Delegated spending and a recurring monthly pledge. Pat already delegates a note, and revocation is a real action. Nothing spends a delegated note or repeats a pledge. Journey 5 below is therefore only partly demonstrated, and the "$20/month" filter is still a product gap. +**Decided out of this campaign for now.** A recurring monthly pledge. Pat already delegates a note, and revocation is a real action. The one-time spend is a separate mined copy, not this 523-write graph. The "$20/month" filter is still a product gap. **Deferred, 2026-10-19.** Six of the fifteen rows below still have no campaign content: low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, and less regulation. Leave them. The nine that already have statements, boards, or projects are enough for now: crypto-friendly checkout, Grey County civic life, Christian teaching, home learning, the abortion settlement, schools and conduct, the Owen Sound voting trial, US-friendly Canadians, and the AI-pause board. Do not open a content batch for the six empty rows. US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. -**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is not on the batch 2 manifest or in the 523-write graph. The copy `network-societies-v1-b2-reimburse.json` mined it on 2026-10-19, and that project page was walked the same day. A friend spending a delegated note is planned on `network-societies-v1-b2-note-spend.json` and is not mined. One project contract on two boards is still unplanned. A declined alignment cannot be recorded: the alignment contract is positive-only. A recurring monthly pledge stays a product gap. +**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is not on the batch 2 manifest or in the 523-write graph. The copy `network-societies-v1-b2-reimburse.json` mined it on 2026-10-19, and that project page was walked the same day. A friend spending a delegated note was mined on 2026-10-20 from `network-societies-v1-b2-note-spend.json` and walked the same day. One project contract on two boards is still unplanned. A declined alignment cannot be recorded: the alignment contract is positive-only. A recurring monthly pledge stays a product gap. ## Inventory against the family minimum @@ -71,7 +71,7 @@ These are properties of the 523-write graph, not of a chain run. A browser walkt | 2. Alliance without merger | Mined, and walked in the browser on 2026-10-19. Direct shared project: June (`0x8A6a…BdF6`) and Imani (`0x3C44…93BC`) both have a receipt on [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x7688482c92F3b60ee2c761f724F5Fd372ddC147a). June also signs the midweek class transcription. Imani signs the refundable-checkout sentence and a sentence that shops should refuse crypto-only payments. The project page, as June, showed 0.07 of 2 USDZZZ raised, founder Len, and a fake-data label. The implication half is not this pair. No two funders of one project split into "signed the commonality" and "signed only the modified." The closest disagreement is Wes (`0x68E6…b1Ee`) and Fake user 023 (`0x9D19…f99b`) on [Owen Sound association poll](http://127.0.0.1:5199/projects/0xad385917d545a7b1b7307654Aa5D7F6c1946d6A1). As Wes the page showed 0.03 of 2 USDZZZ raised and said the poll does not change a municipal election. Wes signs the direct ranked-poll sentence and wants Owen Sound elections to keep first-past-the-post. Fake user 023 signs the modified-right sentence, which has a live attester arrow to the dual-count commonality, and does not fund that commonality project. | | 3. A bridge is declined | Mined. Eli's profile lists "Late-term abortion is horrific." and does not list the settlement sentence. The settlement statement page still offers him Sign. | | 4. Early risk and later reimbursement | Mined, reconciled, and walked on 2026-10-19 in `output/campaigns/network-societies-v1-b2-reimburse/`, not in the 523-write graph. As Ruth, [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x4251D15D9Ee936d6F489C5aF9646084dB23EE3DE) showed 2.04 of 2 USDZZZ raised, status Succeeded, and "Early contributors are still out 1.04 USDZZZ." Ruth's row is 1.01 USDZZZ net; Imani's is 1.00. A third row, `0x5eF7…6f74`, is 0.02. Len is the founder and the recipient, and he is not one of those rows. Ruth's scout reimbursement showed 0.495098 USDZZZ available now and 0.514901 future. The page says no success attestations yet. Crossing the threshold is not evidence that the fictional work was delivered. | -| 5. Limited delegation | Delegate and revoke are mined. Pat's note to Ned was revoked, so the live page shows the note back with Pat. Walked 2026-10-19. A one-time spend is planned on [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json): June's payment-token note stays with Willa, who buys one 0.01 receipt. That copy is not mined. A recurring monthly pledge stays a product gap. | +| 5. Limited delegation | Delegate and revoke are mined. Pat's note to Ned was revoked, so the live page shows the note back with Pat. Walked 2026-10-19. The one-time spend is mined in `output/campaigns/network-societies-v1-b2-note-spend/`: June's payment-token note stays with Willa, who buys one 0.01 receipt. Walked 2026-10-20. A recurring monthly pledge stays a product gap. | | 6. Same project, different boards | Not in the 523-write graph. Two statements sit on two boards. Adam decided on 2026-10-19 to flesh out one shared project contract. | | 7. Independent judgment | Stopped. The alignment contract records only a positive attestation or a revoke of that same attestation. It cannot record a decline of one project beside support for another. | @@ -242,18 +242,20 @@ As Pat, [My Delegated Funds](http://127.0.0.1:5199/delegation/notes) lists Fund ## Journeys 4–7 to flesh out -Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they should stay out. The 523-write graph does not contain them because the planner never emits them for this campaign. Do not edit the four mined output directories. A plan that includes these actions goes in a fresh directory and is executed locally. +Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they should stay out. The 523-write graph does not contain them because the planner never emits them for this campaign. Do not edit the mined output directories. A plan that includes these actions goes in a fresh directory and is executed locally. **Journey 4. Early fund, later reimbursement.** The medium-realistic v2 planner already emits four retroactive `fund-project` writes, and only on that campaign's abortion bridge project, behind `useStories`. Batch 2 still does not set `reimbursement`, so the 523-write graph has zero retroactive funds. The copy [`network-societies-v1-b2-reimburse.json`](../campaigns/network-societies-v1-b2-reimburse.json) sets it on "Six-shop refundable checkout trial" (20 early 0.10 receipts, then 4 retroactive donations) and raises the fund-project target from 70 to 74. Campaign id is `ns-v1-b2-reimburse` so board slugs stay under 64 characters. The seed is unchanged. A local run on 2026-10-19 mined 527/527 and reconciled 527/527 into `output/campaigns/network-societies-v1-b2-reimburse/` (indexer lag 0, head 2011). The first pass left 11 writes failed for insufficient ETH; those wallets were topped up with `hardhat_setBalance` and the run resumed with `--skip-provision`. Test-data run id `20261019T224446171Z`. Do not regenerate that directory. Ruth (`user-001`, `0xf39F…2266`) and Imani (`user-003`, `0x3C44…93BC`) are the named early funders. Len (`user-005`, `0x15d3…6A65`) is the founder and does not fund it. The project contract is `0x4251D15D9Ee936d6F489C5aF9646084dB23EE3DE`. Crossing the threshold is not evidence that the fictional work was delivered. **Journey 4 walk, 2026-10-19.** Same static server shape as journey 2: current `ui/dist/commonality` on `http://127.0.0.1:5199`, `/test-data` from `fake-data-generation/output/test-data`, and `/graphql` plus `/api` proxied to the indexer on port 42069. Without the `/api` proxy the project page shows "We couldn't load this project" because the event cache falls back to the page origin. Connect from run `20261019T224446171Z` as Ruth, then open the project with an in-app link. A full page load drops the in-memory wallet. As Ruth the page showed the fake-data sentence, founder Len, recipient `0x15d3…6A65`, Succeeded, 2.04 of 2 USDZZZ raised, and the close-the-loop line that early contributors are still out 1.04 USDZZZ. Her reimbursement panel showed 0.495098 USDZZZ available now and 0.514901 future. The contributor table listed Ruth 1.01, Imani 1.00, and `0x5eF7…6f74` 0.02. Len was not in those rows. "No success attestations yet" stayed on the page next to the funding success. A later `./scripts/services.sh --start` tried to redeploy contracts, reused the addresses this page reads, then reverted at block 2018 on a call to a newly deployed `CreatorAssuranceContractFactory`. That failure is outside this walk. Do not regenerate the reimburse directory to repair it. -**Journey 5. A friend spends a delegated note.** Delegate and revoke already run. Pat (`user-021`) delegated note `note-0001` to Ned (`user-011`) and then revoked that same note, so that pair cannot also show a spend. The copy [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json) plans a different pair: June deposits one payment-token note, Willa keeps the delegation, and Willa spends it on one 0.01 receipt for the six-shop checkout trial. The action type is `spend-delegated-note`. It has not been mined. A recurring monthly pledge is still not an action type. Leave that as a product gap. Do not invent pledge transactions. +**Journey 5. A friend spends a delegated note.** Delegate and revoke already run. Pat (`user-021`) delegated note `note-0001` to Ned (`user-011`) and then revoked that same note, so that pair cannot also show a spend. The copy [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json) plans a different pair: June deposits one payment-token note, Willa keeps the delegation, and Willa spends it on one 0.01 receipt for the six-shop checkout trial. The action type is `spend-delegated-note`. It was mined on 2026-10-20. A recurring monthly pledge is still not an action type. Leave that as a product gap. Do not invent pledge transactions. **Journey 6. One project on two boards.** Each planned project has one `causeId`. Publishing the same artifact as a second contract would double-count the raise. Plan one project contract and two justified board alignments. The class-host directory statement and the moderator checklist statement already show statement reuse. This journey is the project form of that. Contradictory planks on those boards must not become implied endorsements of the shared project. **Journey 7. A reviewer declines an alignment.** Stopped here on 2026-10-19. `AlignmentAttestations` only records a positive `attestAlignment` (and `attestSuccess`) or a later `revokeAlignment` of that same yes. There is no decline, reject, or negative alignment. A revoke would say June withdrew her own support. It would not say she refused one superficially relevant project while supporting another. The planner still forces `supports-described-outcome`, and that matches the contract. Do not hide the refusal in persona prose and call the journey done. Showing it needs a contract and indexer change, which is outside this campaign chunk. -**Journey 5 plan, 2026-10-19.** The copy [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json) adds one `spend-delegated-note` write. June (`user-016`) deposits a payment-token note sized to one 0.01 receipt. Willa (`user-012`) receives that note and buys one cheap receipt on "Six-shop refundable checkout trial". That note is not revoked. Pat still delegates to Ned and that note is still revoked. A recurring monthly pledge is still not an action type. This copy has not been mined. Do not execute it over the five output directories named below. +**Journey 5 plan, 2026-10-19.** The copy [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json) adds one `spend-delegated-note` write. June (`user-016`) deposits a payment-token note sized to one 0.01 receipt. Willa (`user-012`) receives that note and buys one cheap receipt on "Six-shop refundable checkout trial". That note is not revoked. Pat still delegates to Ned and that note is still revoked. A recurring monthly pledge is still not an action type. A local run on 2026-10-20 mined 524/524 and reconciled 524/524 into `output/campaigns/network-societies-v1-b2-note-spend/` (indexer lag 0, head 2603). The first pass left three writes failed for insufficient ETH (`action-00235`, `action-00491`, `action-00499`). Those three accounts were topped up with `hardhat_setBalance` and the run resumed with `--skip-provision`. Test-data run id `20261020T130207000Z`. Do not regenerate that directory. Do not execute it over the five earlier output directories. Spending the whole note closes it, so the derived check treats a final `spend-delegated-note` as inactive. -**Next task:** mine and walk `network-societies-v1-b2-note-spend`, then journey 6 (one project contract on two boards). Journey 4 has been walked. Journey 7 waits on a real decline in the alignment contract. Do not regenerate `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Journey 5 walk, 2026-10-20.** Same static server shape as journey 4: current `ui/dist/commonality` on `http://127.0.0.1:5199`, `/test-data` from `fake-data-generation/output/test-data`, and `/graphql` plus `/api` proxied to the indexer on port 42069. Connect from run `20261020T130207000Z` as Willa, then open the project with an in-app link. A full page load drops the in-memory wallet. June is `user-016` (`0x3a4d…13a8`). Willa is `user-012` (`0xaf14…1382`). The note is Fund #56 (`note-0008`, on-chain id 56). The project is [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x9efb18eA8944146C2054d6f1B33d1D16aEb668dB). As Willa the project showed 0.04 of 2 USDZZZ raised and a contributor row of 0.01 USDZZZ through `0x8a79…c318`, via June to Willa. [Fund #56](http://127.0.0.1:5199/delegation/notes/0x8a791620dd6260079bf849dc5567adc3f2fdc318%3A56) showed Inactive, Delegated, created by June, current owner Willa, token balance 0 USDZZZ, with Hand back. The page does not name the checkout trial. A recurring monthly pledge is still not on the page. + +**Next task:** journey 6 (one project contract on two boards). Journey 4 has been walked. Journey 7 waits on a real decline in the alignment contract. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. diff --git a/fake-data-generation/campaignSdkDerivedChecks.ts b/fake-data-generation/campaignSdkDerivedChecks.ts index 24669131..50d83a55 100644 --- a/fake-data-generation/campaignSdkDerivedChecks.ts +++ b/fake-data-generation/campaignSdkDerivedChecks.ts @@ -155,11 +155,13 @@ export function createCampaignSdkDerivedCheckProvider(input: { const final = latestNoteAction.get(action.noteId!)!; const expectedOwner = final.type === 'delegate-note' ? user(final.delegateUserId) : user(final.actorUserId); const rootOwner = user(plan.actions.find((item) => item.type === 'deposit-note' && item.noteId === action.noteId)!.actorUserId); + // A spend of the whole note closes it. Delegate and revoke leave it active. + const remainsActive = final.type !== 'spend-delegated-note'; return [ check('SDK note exists', true, folded !== null), check('SDK final note owner', expectedOwner.toLowerCase(), folded?.owner.toLowerCase() ?? null), check('SDK note root owner', rootOwner.toLowerCase(), folded?.rootOwner.toLowerCase() ?? null), - check('SDK note remains active', true, folded?.active ?? null), + check('SDK note remains active', remainsActive, folded?.active ?? null), ]; } } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index b3cac1d8..d2a58ae7 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -26,7 +26,7 @@ Twenty-one implication actions are planned. Four are the accepted abortion and s The manifest points `beliefDecisions` at that file. Each `signs` entry is one `believe` write and each `rejects` entry is one `disbelieve` write. Those pairs are not drawn again, so Eli never believes the abortion commonality. Unsigned statements stay unpinned. -A recurring monthly pledge stays out of this manifest. Pat already delegates a note to Ned, and the adapter can revoke a delegation. No action in this file spends a delegated note. The one-time spend is on the copy [`network-societies-v1-b2-note-spend.json`](./network-societies-v1-b2-note-spend.json): June deposits a payment-token note, Willa keeps it, and Willa buys one 0.01 receipt. That copy is not mined. Early funding and later reimbursement are on the copy [`network-societies-v1-b2-reimburse.json`](./network-societies-v1-b2-reimburse.json), not here. +A recurring monthly pledge stays out of this manifest. Pat already delegates a note to Ned, and the adapter can revoke a delegation. No action in this file spends a delegated note. The one-time spend is on the copy [`network-societies-v1-b2-note-spend.json`](./network-societies-v1-b2-note-spend.json): June deposits a payment-token note, Willa keeps it, and Willa buys one 0.01 receipt. That copy mined 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. Early funding and later reimbursement are on the copy [`network-societies-v1-b2-reimburse.json`](./network-societies-v1-b2-reimburse.json), not here. ## Reproduce the plan diff --git a/fake-data-generation/test/campaignSdkDerivedChecks.test.ts b/fake-data-generation/test/campaignSdkDerivedChecks.test.ts index 5cfe6b78..bbe0e99c 100644 --- a/fake-data-generation/test/campaignSdkDerivedChecks.test.ts +++ b/fake-data-generation/test/campaignSdkDerivedChecks.test.ts @@ -141,3 +141,39 @@ test('SDK provider exposes a derived mismatch instead of hiding it', async () => const belief = plan.actions.find((item) => item.type === 'set-belief')!; assert.notEqual((await provider.getDerivedChecks(belief))[0].expected, (await provider.getDerivedChecks(belief))[0].actual); }); + +test('a fully spent delegated note is no longer active', async () => { + const manifest = JSON.parse(await readFile(new URL('../campaigns/network-societies-v1-b2-note-spend.json', import.meta.url), 'utf8')) as CampaignManifestV1; + const plan = await buildCampaignPlan(manifest); + const spent = plan.actions.find((item) => item.type === 'spend-delegated-note')!; + const deposit = plan.actions.find((item) => item.type === 'deposit-note' && item.noteId === spent.noteId)!; + const bindings: CampaignRuntimeBindings = { + version: CAMPAIGN_RUNTIME_BINDINGS_VERSION, + campaignId: plan.campaignId, + manifestFingerprint: plan.manifestFingerprint, + updatedAt: new Date(0).toISOString(), + users: Object.fromEntries(plan.users.map((item, index) => [item.id, address(index + 1)])), + statements: Object.fromEntries(plan.statements.map((item) => [item.id, fakeIpfsCidV1(item.id)])), + ...publicationBindings(plan), + projects: Object.fromEntries(plan.projects.map((item, index) => [item.id, address(index + 301)])), + notes: Object.fromEntries([...new Set(plan.actions.flatMap((item) => item.noteId ? [item.noteId] : []))].map((id, index) => [id, { contractAddress: address(401), noteId: String(index + 1) }])), + }; + const queries = { + getUserBelief: async () => 1, + hasImplication: async () => true, + getRefsByName: async () => [], + getProject: async () => null, + hasAlignment: async () => true, + getNote: async () => ({ + id: '8', contractAddress: address(401), chainHash: '0x', amount: '1', token: address(996), tokenType: 0, tokenId: '0', + owner: bindings.users[spent.actorUserId!], rootOwner: bindings.users[deposit.actorUserId!], active: false, + createdAt: '0', createdAtBlock: '1', updatedAt: '0', + }), + } satisfies CampaignSdkQueries; + const provider = createCampaignSdkDerivedCheckProvider({ machinery: { ipfsConfig: {}, twitterApiConfig: {}, testConfig: {} }, plan, bindings, queries }); + const checks = await provider.getDerivedChecks(deposit); + const active = checks.find((item) => item.name === 'SDK note remains active'); + assert.equal(active?.expected, false); + assert.equal(active?.actual, false); + assert.equal(checks.find((item) => item.name === 'SDK final note owner')?.expected, bindings.users[spent.actorUserId!]); +}); From f77a4bd461a6d5a2f77bf0739667ad5d508e7173 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 10:12:40 -0400 Subject: [PATCH 15/46] Record the class-host directory on three boards. The same project contract already sits on the civic, Christian teaching, and home-learning boards through the shared statement. The walk used the note-spend chain. --- fake-data-generation/PLAN.md | 2 +- .../brainstorming/network-societies-campaign-plan.md | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index ee044a3a..6dc80b6b 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The next chunk is one project contract on two boards. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. The next chunk is a real alignment decline, which the contract cannot record yet. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index bac18cff..86a13aad 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -40,7 +40,7 @@ The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli' US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. -**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is not on the batch 2 manifest or in the 523-write graph. The copy `network-societies-v1-b2-reimburse.json` mined it on 2026-10-19, and that project page was walked the same day. A friend spending a delegated note was mined on 2026-10-20 from `network-societies-v1-b2-note-spend.json` and walked the same day. One project contract on two boards is still unplanned. A declined alignment cannot be recorded: the alignment contract is positive-only. A recurring monthly pledge stays a product gap. +**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is not on the batch 2 manifest or in the 523-write graph. The copy `network-societies-v1-b2-reimburse.json` mined it on 2026-10-19, and that project page was walked the same day. A friend spending a delegated note was mined on 2026-10-20 from `network-societies-v1-b2-note-spend.json` and walked the same day. One project contract on the civic, Christian teaching, and home-learning boards was walked on 2026-10-20. A declined alignment cannot be recorded: the alignment contract is positive-only. A recurring monthly pledge stays a product gap. ## Inventory against the family minimum @@ -59,7 +59,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | AI pause | 17 | 5 | Meets it. Five modified-to-commonality arrows are allowed. | | Low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation | none | none | Deferred. | -One statement, the class-host directory, is on the Christian teaching board and the home-learning board. One statement, the moderator checklist, is on the Michigan authority board and the Owen Sound voting board. No project is one contract aligned to two boards. The three cross-family projects the scope section asks for are still missing. +One statement, the class-host directory, is on the civic-life, Christian teaching, and home-learning boards. One statement, the moderator checklist, is on the Michigan authority board and the Owen Sound voting board. The class-host directory project is one contract aligned to that shared statement, so those three boards list the same raise. It is not aligned to the confession sentence or to the staffed-schools sentence. The other two cross-family projects the scope section asks for are still missing. ## Journeys the frozen plan can and cannot show @@ -72,7 +72,7 @@ These are properties of the 523-write graph, not of a chain run. A browser walkt | 3. A bridge is declined | Mined. Eli's profile lists "Late-term abortion is horrific." and does not list the settlement sentence. The settlement statement page still offers him Sign. | | 4. Early risk and later reimbursement | Mined, reconciled, and walked on 2026-10-19 in `output/campaigns/network-societies-v1-b2-reimburse/`, not in the 523-write graph. As Ruth, [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x4251D15D9Ee936d6F489C5aF9646084dB23EE3DE) showed 2.04 of 2 USDZZZ raised, status Succeeded, and "Early contributors are still out 1.04 USDZZZ." Ruth's row is 1.01 USDZZZ net; Imani's is 1.00. A third row, `0x5eF7…6f74`, is 0.02. Len is the founder and the recipient, and he is not one of those rows. Ruth's scout reimbursement showed 0.495098 USDZZZ available now and 0.514901 future. The page says no success attestations yet. Crossing the threshold is not evidence that the fictional work was delivered. | | 5. Limited delegation | Delegate and revoke are mined. Pat's note to Ned was revoked, so the live page shows the note back with Pat. Walked 2026-10-19. The one-time spend is mined in `output/campaigns/network-societies-v1-b2-note-spend/`: June's payment-token note stays with Willa, who buys one 0.01 receipt. Walked 2026-10-20. A recurring monthly pledge stays a product gap. | -| 6. Same project, different boards | Not in the 523-write graph. Two statements sit on two boards. Adam decided on 2026-10-19 to flesh out one shared project contract. | +| 6. Same project, different boards | Mined in the 523-write graph and in the later copies, and walked on 2026-10-20 from `output/campaigns/network-societies-v1-b2-note-spend/`. [Grey County class-host directory](http://127.0.0.1:5199/projects/0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115) is one contract. Christian teaching and home learning both link it as `/projects/eip155:31337:0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`. Civic life lists the same title at 0.01 of 2 USDZZZ. The alignment is the shared class-host sentence, not the confession sentence and not the staffed-schools sentence. | | 7. Independent judgment | Stopped. The alignment contract records only a positive attestation or a revoke of that same attestation. It cannot record a decline of one project beside support for another. | ## Purpose @@ -250,7 +250,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 5. A friend spends a delegated note.** Delegate and revoke already run. Pat (`user-021`) delegated note `note-0001` to Ned (`user-011`) and then revoked that same note, so that pair cannot also show a spend. The copy [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json) plans a different pair: June deposits one payment-token note, Willa keeps the delegation, and Willa spends it on one 0.01 receipt for the six-shop checkout trial. The action type is `spend-delegated-note`. It was mined on 2026-10-20. A recurring monthly pledge is still not an action type. Leave that as a product gap. Do not invent pledge transactions. -**Journey 6. One project on two boards.** Each planned project has one `causeId`. Publishing the same artifact as a second contract would double-count the raise. Plan one project contract and two justified board alignments. The class-host directory statement and the moderator checklist statement already show statement reuse. This journey is the project form of that. Contradictory planks on those boards must not become implied endorsements of the shared project. +**Journey 6. One project on two boards.** Done for one project. `project-015` has one `causeId` (`christian-teaching`) and one alignment, to the class-host sentence. That sentence is also on the civic and home-learning boards, so those boards list the same contract. Publishing a second contract would double-count the raise. The confession sentence and the staffed-schools sentence are not alignments of this project. The other two cross-family projects the scope section asks for are still unplanned. **Journey 7. A reviewer declines an alignment.** Stopped here on 2026-10-19. `AlignmentAttestations` only records a positive `attestAlignment` (and `attestSuccess`) or a later `revokeAlignment` of that same yes. There is no decline, reject, or negative alignment. A revoke would say June withdrew her own support. It would not say she refused one superficially relevant project while supporting another. The planner still forces `supports-described-outcome`, and that matches the contract. Do not hide the refusal in persona prose and call the journey done. Showing it needs a contract and indexer change, which is outside this campaign chunk. @@ -258,4 +258,6 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 5 walk, 2026-10-20.** Same static server shape as journey 4: current `ui/dist/commonality` on `http://127.0.0.1:5199`, `/test-data` from `fake-data-generation/output/test-data`, and `/graphql` plus `/api` proxied to the indexer on port 42069. Connect from run `20261020T130207000Z` as Willa, then open the project with an in-app link. A full page load drops the in-memory wallet. June is `user-016` (`0x3a4d…13a8`). Willa is `user-012` (`0xaf14…1382`). The note is Fund #56 (`note-0008`, on-chain id 56). The project is [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x9efb18eA8944146C2054d6f1B33d1D16aEb668dB). As Willa the project showed 0.04 of 2 USDZZZ raised and a contributor row of 0.01 USDZZZ through `0x8a79…c318`, via June to Willa. [Fund #56](http://127.0.0.1:5199/delegation/notes/0x8a791620dd6260079bf849dc5567adc3f2fdc318%3A56) showed Inactive, Delegated, created by June, current owner Willa, token balance 0 USDZZZ, with Hand back. The page does not name the checkout trial. A recurring monthly pledge is still not on the page. -**Next task:** journey 6 (one project contract on two boards). Journey 4 has been walked. Journey 7 waits on a real decline in the alignment contract. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. + +**Next task:** journey 7 still waits on a real decline in the alignment contract. Journeys 4, 5, and 6 have been walked. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. From 80b596db081e509b5cd20aee24d98c3424e0a483 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 12:15:48 -0400 Subject: [PATCH 16/46] Add two shared batch-2 projects and drop the recorded alignment decline. --- TODO.md | 2 ++ fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 14 +++++----- .../network-societies-v1-b2-projects.json | 16 ++++++++++++ .../network-societies-v1-b2-statements.json | 13 ++++++++++ .../campaigns/network-societies-v1-b2.json | 26 +++++++++++++------ .../campaigns/network-societies-v1-b2.md | 2 +- .../test/campaignPlanner.test.ts | 19 +++++++++++--- inbox.md | 2 ++ 9 files changed, 76 insertions(+), 20 deletions(-) diff --git a/TODO.md b/TODO.md index f41b573b..d64089ac 100644 --- a/TODO.md +++ b/TODO.md @@ -18,6 +18,8 @@ Getting **testnet to a two-person shared lab** is also a standing plan, not a pi - We should have a UI for making it easy for a user to follow projects aligned with *similar* statements to the ones he prefers, and then if he wants to he can do the alignment-attestations to make those projects also show up on his own preferred cause board. +- I've got the admin page for the whole fake-data run, but we may also want specific pages for particular causes, so that the cause-founder can look at it and see his ecosystem from various people's POV. + - **(Ask)** Verify work-request contribution/refund links against actual chain events, and verify response providers and work items against the project's beneficiary/registry before presenting verified payment or provider authority. The first slice displays reported contribution/refund amounts and authenticates acceptance only against the provider named by the response author. See [work requests](specs/tech/subsystems/work-requests/README.md). - **(Ask)** Complete work-request UI revisions and withdrawals, version/history inspection for offers and responses, and a browser-tested playground demonstration. SDK versioned publication actions exist; the current UI primarily creates records. diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 6dc80b6b..6ae7b815 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. The next chunk is a real alignment decline, which the contract cannot record yet. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 86a13aad..f58d4375 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -40,7 +40,7 @@ The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli' US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. -**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is not on the batch 2 manifest or in the 523-write graph. The copy `network-societies-v1-b2-reimburse.json` mined it on 2026-10-19, and that project page was walked the same day. A friend spending a delegated note was mined on 2026-10-20 from `network-societies-v1-b2-note-spend.json` and walked the same day. One project contract on the civic, Christian teaching, and home-learning boards was walked on 2026-10-20. A declined alignment cannot be recorded: the alignment contract is positive-only. A recurring monthly pledge stays a product gap. +**Journeys.** Direct shared agreement and one reused statement on two boards are in the pilot. Eli's declined abortion bridge and the verified implication writes are in the 2026-10-19 mined output. A browser pass that day connected as Ruth, Eli, Pat, and Ned. Early-risk reimbursement is not on the batch 2 manifest or in the 523-write graph. The copy `network-societies-v1-b2-reimburse.json` mined it on 2026-10-19, and that project page was walked the same day. A friend spending a delegated note was mined on 2026-10-20 from `network-societies-v1-b2-note-spend.json` and walked the same day. One project contract on the civic, Christian teaching, and home-learning boards was walked on 2026-10-20. A recorded alignment decline is not part of this campaign. Adam decided on 2026-10-20 not to add negative alignment attestations; a missing yes is enough. A recurring monthly pledge stays a product gap. ## Inventory against the family minimum @@ -59,7 +59,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | AI pause | 17 | 5 | Meets it. Five modified-to-commonality arrows are allowed. | | Low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation | none | none | Deferred. | -One statement, the class-host directory, is on the civic-life, Christian teaching, and home-learning boards. One statement, the moderator checklist, is on the Michigan authority board and the Owen Sound voting board. The class-host directory project is one contract aligned to that shared statement, so those three boards list the same raise. It is not aligned to the confession sentence or to the staffed-schools sentence. The other two cross-family projects the scope section asks for are still missing. +One statement, the class-host directory, is on the civic-life, Christian teaching, and home-learning boards. One statement, the moderator checklist, is on the Michigan authority board and the Owen Sound voting board. The class-host directory project is one contract aligned to that shared statement, so those three boards list the same raise. It is not aligned to the confession sentence or to the staffed-schools sentence. Two more single-statement projects are now in the batch 2 source: Printed moderator checklist, aligned only to the checklist already on the Michigan forum and the Owen Sound voting board, and Plain-text Grey County notice, aligned only to a new sentence on the civic and Christian teaching boards. They are not in the mined output directories. ## Journeys the frozen plan can and cannot show @@ -73,7 +73,7 @@ These are properties of the 523-write graph, not of a chain run. A browser walkt | 4. Early risk and later reimbursement | Mined, reconciled, and walked on 2026-10-19 in `output/campaigns/network-societies-v1-b2-reimburse/`, not in the 523-write graph. As Ruth, [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x4251D15D9Ee936d6F489C5aF9646084dB23EE3DE) showed 2.04 of 2 USDZZZ raised, status Succeeded, and "Early contributors are still out 1.04 USDZZZ." Ruth's row is 1.01 USDZZZ net; Imani's is 1.00. A third row, `0x5eF7…6f74`, is 0.02. Len is the founder and the recipient, and he is not one of those rows. Ruth's scout reimbursement showed 0.495098 USDZZZ available now and 0.514901 future. The page says no success attestations yet. Crossing the threshold is not evidence that the fictional work was delivered. | | 5. Limited delegation | Delegate and revoke are mined. Pat's note to Ned was revoked, so the live page shows the note back with Pat. Walked 2026-10-19. The one-time spend is mined in `output/campaigns/network-societies-v1-b2-note-spend/`: June's payment-token note stays with Willa, who buys one 0.01 receipt. Walked 2026-10-20. A recurring monthly pledge stays a product gap. | | 6. Same project, different boards | Mined in the 523-write graph and in the later copies, and walked on 2026-10-20 from `output/campaigns/network-societies-v1-b2-note-spend/`. [Grey County class-host directory](http://127.0.0.1:5199/projects/0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115) is one contract. Christian teaching and home learning both link it as `/projects/eip155:31337:0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`. Civic life lists the same title at 0.01 of 2 USDZZZ. The alignment is the shared class-host sentence, not the confession sentence and not the staffed-schools sentence. | -| 7. Independent judgment | Stopped. The alignment contract records only a positive attestation or a revoke of that same attestation. It cannot record a decline of one project beside support for another. | +| 7. Independent judgment | Dropped 2026-10-20. A reviewer withholds a yes from a superficially relevant project. That is the judgment. Do not add a negative alignment attestation to make the refusal louder. | ## Purpose @@ -180,7 +180,7 @@ Each journey needs named actors, stable IDs, expected balances/relationships, an 4. **Early risk and later reimbursement:** early contributors reach a real contract threshold; later donors reimburse them through the existing waterfall. Separately identify funding success and fictional evidence of delivered work—crossing the threshold is not proof of delivery. 5. **Trust someone with a limited budget:** a donor delegates to a named friend for particular work, and the friend's supported spending path is exercised. Another donor revokes. Merely creating a delegation is not evidence that delegated spending happened. 6. **Same project, different boards:** one shared artifact appears on multiple justified boards without duplicate funding contracts or double-counted totals. Contradictory planks do not become implied endorsements. -7. **Independent judgment:** a reviewer declines alignment for a superficially relevant project; another project earns it. Where existing trust filtering supports it, two viewers see the expected difference. +7. **Independent judgment:** dropped 2026-10-20. The original ask was a recorded decline of one project beside a yes for another. Alignment stays positive-only. A project that nobody you trust has vouched for stays off your board because there is no yes. Do not add negative alignment attestations for this demo. If a louder "this does not belong here" is needed later, decide it then. The brainstorming's “$20/month, fire-and-forget” and “delivered but not reimbursed” filter are goals to inspect against current implementation. Record whether each is supported, requires a small campaign adapter extension, or remains a product gap. If only a one-time delegated deposit works, label that exact demonstration and leave recurring execution unfulfilled. Do not simulate unsupported UI/contract behavior with prose and call it complete. @@ -250,9 +250,9 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 5. A friend spends a delegated note.** Delegate and revoke already run. Pat (`user-021`) delegated note `note-0001` to Ned (`user-011`) and then revoked that same note, so that pair cannot also show a spend. The copy [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json) plans a different pair: June deposits one payment-token note, Willa keeps the delegation, and Willa spends it on one 0.01 receipt for the six-shop checkout trial. The action type is `spend-delegated-note`. It was mined on 2026-10-20. A recurring monthly pledge is still not an action type. Leave that as a product gap. Do not invent pledge transactions. -**Journey 6. One project on two boards.** Done for one project. `project-015` has one `causeId` (`christian-teaching`) and one alignment, to the class-host sentence. That sentence is also on the civic and home-learning boards, so those boards list the same contract. Publishing a second contract would double-count the raise. The confession sentence and the staffed-schools sentence are not alignments of this project. The other two cross-family projects the scope section asks for are still unplanned. +**Journey 6. One project on two boards.** Done for one project. `project-015` has one `causeId` (`christian-teaching`) and one alignment, to the class-host sentence. That sentence is also on the civic and home-learning boards, so those boards list the same contract. Publishing a second contract would double-count the raise. The confession sentence and the staffed-schools sentence are not alignments of this project. The other two are in the batch 2 source as of 2026-10-20: Printed moderator checklist (only `moderator-checklist`) and Plain-text Grey County notice (only `plain-text-notice`). Neither has been mined. -**Journey 7. A reviewer declines an alignment.** Stopped here on 2026-10-19. `AlignmentAttestations` only records a positive `attestAlignment` (and `attestSuccess`) or a later `revokeAlignment` of that same yes. There is no decline, reject, or negative alignment. A revoke would say June withdrew her own support. It would not say she refused one superficially relevant project while supporting another. The planner still forces `supports-described-outcome`, and that matches the contract. Do not hide the refusal in persona prose and call the journey done. Showing it needs a contract and indexer change, which is outside this campaign chunk. +**Journey 7. Independent judgment.** Dropped on 2026-10-20. The contract records a yes or a later revoke of that same yes. Adam decided not to add a decline. A missing attestation is the refusal. Do not treat this as unfinished campaign work, and do not add a negative alignment type so the journey can be walked. **Journey 5 plan, 2026-10-19.** The copy [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json) adds one `spend-delegated-note` write. June (`user-016`) deposits a payment-token note sized to one 0.01 receipt. Willa (`user-012`) receives that note and buys one cheap receipt on "Six-shop refundable checkout trial". That note is not revoked. Pat still delegates to Ned and that note is still revoked. A recurring monthly pledge is still not an action type. A local run on 2026-10-20 mined 524/524 and reconciled 524/524 into `output/campaigns/network-societies-v1-b2-note-spend/` (indexer lag 0, head 2603). The first pass left three writes failed for insufficient ETH (`action-00235`, `action-00491`, `action-00499`). Those three accounts were topped up with `hardhat_setBalance` and the run resumed with `--skip-provision`. Test-data run id `20261020T130207000Z`. Do not regenerate that directory. Do not execute it over the five earlier output directories. Spending the whole note closes it, so the derived check treats a final `spend-delegated-note` as inactive. @@ -260,4 +260,4 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** journey 7 still waits on a real decline in the alignment contract. Journeys 4, 5, and 6 have been walked. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index b5490921..c2c028f1 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -122,6 +122,14 @@ ], "blocker": "The rota dies with the first host unless the steps are written down" }, + { + "title": "Plain-text Grey County notice", + "outcome": "Transcribe one published Grey County library, bus, or township notice into plain text and post that text beside the original for one year.", + "statementRefs": [ + "plain-text-notice" + ], + "blocker": "The first transcription is useful to every later reader, and neither the township office nor a church transcription rota is paid to do it" + }, { "title": "Grey County class-host directory", "outcome": "Publish one directory of Grey County people who will host a small class, with affiliation and an independent checker's note, and maintain it for one year.", @@ -354,6 +362,14 @@ ], "blocker": "The poll stops when the first host is busy unless the steps are written down" }, + { + "title": "Printed moderator checklist", + "outcome": "Print the moderator checklist and file one copy with the Owen Sound poll notes and one copy with the Michigan forum notes.", + "statementRefs": [ + "moderator-checklist" + ], + "blocker": "Each meeting can use the same checklist, and neither meeting is paid to keep the card in print" + }, { "title": "Moderator checklist card", "outcome": "Print the moderator checklist and use it for the Owen Sound poll and for one other published meeting, then file both checklists in the Grey County trial directory.", diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 2769c285..9e60e74b 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -198,6 +198,19 @@ } ] }, + { + "id": "cross-family", + "title": "One more good reused across Grey County boards", + "notes": [ + "Not in the pilot file. One statement, one project, two boards. Not an implication." + ], + "statements": [ + { + "id": "plain-text-notice", + "text": "I want one Grey County public notice, from the library, the bus, or a township office, transcribed into plain text a person can read without the recording." + } + ] + }, { "id": "abortion-forum", "title": "Michigan abortion authority, beside the accepted cutoff", diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index 2822f5af..a1002541 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 124, - "maxStatements": 124, + "minStatements": 125, + "maxStatements": 125, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -144,6 +144,11 @@ "collectionId": "network-societies-v1-b2", "groupId": "shared-goods", "statementId": "class-host-directory" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "cross-family", + "statementId": "plain-text-notice" } ] }, @@ -202,6 +207,11 @@ "collectionId": "network-societies-v1-b2", "groupId": "shared-goods", "statementId": "class-host-directory" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "cross-family", + "statementId": "plain-text-notice" } ] }, @@ -1302,8 +1312,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 124, - "max": 124 + "min": 125, + "max": 125 } }, { @@ -1342,8 +1352,8 @@ "create-cause" ], "targetCount": { - "min": 62, - "max": 62 + "min": 64, + "max": 64 } }, { @@ -1353,8 +1363,8 @@ "publish-statement" ], "targetCount": { - "min": 62, - "max": 62 + "min": 64, + "max": 64 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index d2a58ae7..ef9800aa 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -14,7 +14,7 @@ Canada–US stays a bridge. The shared sentence is still ordinary purchases and ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. The source files now add two projects that are not in that run: Printed moderator checklist and Plain-text Grey County notice (125 statements, 64 projects). On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board and the Grey County conduct board are ordinary boards, so their own sentences stay visible there. diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index b21c573a..9fa95c9e 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -273,14 +273,27 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one } const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); - assert.equal(plan.statements.length, 124); - assert.equal(plan.projects.length, 62); + assert.equal(plan.statements.length, 125); + assert.equal(plan.projects.length, 64); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); assert.ok(checklist); assert.equal(checklist!.causeId, 'abortion-forum'); assert.deepEqual(checklist!.alsoOnCauseIds, ['voting']); - assert.equal(plan.projects.filter((project) => project.statementIds.includes(checklist!.id)).length, 1); + assert.equal(plan.projects.filter((project) => project.statementIds.includes(checklist!.id)).length, 2); + const singleShared = plan.projects.filter((project) => { + if (project.statementIds.length !== 1) return false; + const statement = plan.statements.find((item) => item.id === project.statementIds[0]); + return (statement?.alsoOnCauseIds?.length ?? 0) >= 1; + }); + assert.deepEqual(singleShared.map((project) => project.title).sort(), [ + 'Grey County class-host directory', + 'Plain-text Grey County notice', + 'Printed moderator checklist', + ]); + const notice = plan.statements.find((statement) => statement.source.statementId === 'plain-text-notice')!; + assert.equal(notice.causeId, 'civic-assimilation'); + assert.deepEqual(notice.alsoOnCauseIds, ['christian-teaching']); const implications = plan.actions.filter((action) => action.type === 'attest-implication'); assert.equal(implications.length, 21); const accepted = implications.filter((action) => action.implication!.evidence === 'accepted-bridge-role-pair'); diff --git a/inbox.md b/inbox.md index fdcc7d95..95157f7c 100644 --- a/inbox.md +++ b/inbox.md @@ -88,6 +88,8 @@ Standing index: [`workflow/testnet-working-plan.md`](workflow/testnet-working-pl - Ultimately we want vertical founders to host their own vertical-specific services like mediators, but can we have a middle ground where we can run it for them on our infrastructure (modulo blocklist concerns) until/unless they decide to host it themselves? +- Go to various groups, ask them "does this actually look useful to you? what would the real version look like?" etc. Try to model that group's actual world, not just vague/fake stuff. Point is, this is important: making that connection with real-world groups doing real stuff would be a big jump from "here's this theoretical machinery for doing public goods better." + - How to eliminate Commonality’s reliance on browser `localStorage` for cause drafts / founder progress (`ui/src/commonality/lib/causeStore.ts`). Today drafts are origin-scoped (so Vite `:5174` vs Docker `:8090` don’t share them) and vanish across devices/clears. Worth thinking through durable alternatives (on-chain draft, IPFS + pointer, account-linked backend, etc.) without re-centralizing or making launch heavier. - Now that have (or at least are close to having) a proper testnet setup, can we start creating an ecosystem of simulated fake users of various types? (We can use LLMs to run the ones that need more intelligence, though ideally they'll mostly be made of conventional code, to avoid burning too many LLM tokens.) From cd0ac61bb0c1b20f95f690f9d8606ffe65eb0106 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 12:28:14 -0400 Subject: [PATCH 17/46] Added a note. --- .../brainstorming/network-societies-campaign-plan.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index f58d4375..ae7d8c9b 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -261,3 +261,6 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. **Next task:** journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. + + +NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. From b55c62216f544c76f9b3ec1ac36f3ee1085e3cd2 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 12:29:38 -0400 Subject: [PATCH 18/46] Add Adam's review list for the network-societies campaign. Separate scope decisions and accepted seed from the campaign boards that still need a look, and hold the next mine until a board is checked. --- .../network-societies-campaign-plan.md | 63 ++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index ae7d8c9b..39a409af 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -260,7 +260,68 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences and project titles. The checklist is [Adam's review list](#adams-review-list-2026-10-20) at the bottom of this file. Do not mine another copy, and do not edit statement or project text, until he checks a board. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. + +## Adam's review list (2026-10-20) + +Source of the sentences and project titles: `fake-data-generation/campaigns/network-societies-v1-b2-statements.json` and `network-societies-v1-b2-projects.json`. A box is checked only when Adam has said the item is fine. Nothing in the generated campaign text is checked yet. + +### Decisions already made + +These are scope calls, not a pass on the wording. + +- [x] Nine families are enough for now. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation (2026-10-19). +- [x] Do not add a negative alignment attestation. A missing yes is the refusal (2026-10-20). +- [x] A recurring monthly pledge stays a product gap. Do not invent pledge transactions. +- [x] Do not regenerate the mined output directories named in the next-task note above. +- [x] Reuse the accepted abortion and schools-and-pushing sentences unchanged. They are not new campaign text. + +### Already accepted seed (wording lives in `seed-content/`, not in the campaign file) + +Skip these unless you want to re-read them. The campaign boards only point at them. + +- [x] Abortion cutoff bridge: the accepted five (`compromise-abortion`). +- [x] Schools and pushing: the accepted five (`lgbt-schools`). The campaign does not treat those five as a position on drugs, surgery, or classroom names. + +### Still needs a look — statements + +One checkbox per board. The lines under it are the sentences on that board, so you can see what you are approving. + +- [ ] **Crypto-friendly checkout** (`crypto-merchants`, 10). Six-shop refundable trial; published fees and failures; independent security review; shop directory; Saturday clinic; host kit; keep cash and cards; refuse crypto payments; payment when a bank has blocked the customer; show the fee on a twenty-dollar sale. +- [ ] **Grey County civic life** (`civic-assimilation`, 10). Twelve English sessions with childcare; civics pack; Harrison Park paths; independent tutor check; organizer handoff; township business stays in English; newcomers keep their own language communities; stop recruiting until housing and clinic waits shorten; welcome signage; sessions stop short of telling people which customs to keep. +- [ ] **Christian teaching** (`christian-teaching`, 9). Reusable midweek notes; transcription; one-season substitute rota; name the confession; no joint doctrine; second-church host kit; civic transcription only; keep notes inside the congregation; public calendar of Sundays short a preacher. +- [ ] **Home learning** (`home-learning`, 10). Printable grade-six science unit; field-trip pack; store-item kits; eight Saturday meetups; successor host; name the teaching method; no religious claims; school families may borrow the notes; children taught in staffed schools; list kit hazards. +- [ ] **Shared class-host directory** (`shared-goods`, 1). Public directory of Grey County class hosts, affiliation written down, independent check noted. On civic life, Christian teaching, and home learning. +- [ ] **Plain-text notice** (`cross-family`, 1). One Grey County public notice transcribed into plain text. On civic life and Christian teaching. Not in a mined run yet. +- [ ] **Michigan abortion authority** (`abortion-forum`, 6). Legislature rather than a federal statute; one federal rule; keep campaigning instead of a cutoff; forbid abortion from the start; a comparison page that does not say which rule is in force; moderator checklist. Beside the accepted cutoff, not a rewrite of it. +- [ ] **Grey County school conduct** (`gender-conduct`, 7). Published harassment steps; a clinician outside the school for a minor's drug or surgery; schools stay out of approving those; a counselor may approve without an outside clinician; an adult may say they are seeking treatment; classroom uses the name the student asks for, separate from medicine; teachers use only the enrollment-form name. +- [ ] **Owen Sound voting trial** (`voting`, 7). Non-binding ranked poll with published ballots; an approval count of the same ballots; keep first-past-the-post for municipal elections; keep a show of hands; a second person can rerun the count; host kit; one-year directory of groups that published a count. +- [ ] **Draft: Grey County assimilation sessions** (`grey-assimilation`, 5). Not accepted seed. Practical English while keeping customs; join the local way of life; two modifieds; a shorter commonality. +- [ ] **Draft: dual-count poll** (`ranked-approval-poll`, 5). Not accepted seed. +- [ ] **Draft: checkout trial** (`checkout-trial-bridge`, 5). Not accepted seed. +- [ ] **Draft: minors' medicine** (`minors-medicine`, 5). Not accepted seed. Separate from the accepted schools sentences. +- [ ] **Draft: ordinary opinions and employment** (`opinion-employment`, 5). Not accepted seed. +- [ ] **Canada–US ties** (`canada-us-ties`, 12). Not accepted seed. Shared sentence is ordinary purchases and family visits, administration left out. Also: archive, Owen Sound guide, one evening, Grey County directory, host handoff, a boycott refusal, and a narrower sentence that keeps visits and drops the call to keep buying. Boycott and narrower sentence are not implication arrows. +- [ ] **AI pause** (`ai-pause`, 17). Not accepted seed. One shared pause-treaty sentence; five milder modifieds that contain it; five naturals that do not; a full-stop refusal; an accelerationist refusal; petition, alignment note, warning digest, host kit. + +### Still needs a look — projects + +Titles only. Same files. A checked board above does not check these. + +- [ ] Crypto checkout (5): Six-shop refundable checkout trial; Independent checkout security review; Fee and failure table; Owen Sound merchant directory; Quarterly checkout clinic and host kit. +- [ ] Civic life (5): Twelve conversation sessions; Grey County civics pack; Harrison Park path season; Conversation-session handoff; Independent tutor-listing check. +- [ ] Christian teaching (6): Midweek class notes; Midweek class transcript; One-season substitute rota; Second-church host kit; Plain-text Grey County notice; Grey County class-host directory. +- [ ] Home learning (5): Printable grade-six science unit; Grey County field-trip pack; Store-item science kits; Eight Owen Sound Saturdays; Successor host notes. +- [ ] Abortion settlement (5), on the accepted wording: Grand Rapids settlement sessions; Plain-language settlement page; Five-statement posting; Settlement-session host kit; Independent notes check. +- [ ] Michigan forum (2): Michigan authority brief; From-the-start position page. +- [ ] Schools (3), on the accepted wording: Grand Rapids pushing-question meetings; Unchanged schools packet; Schools-meeting host kit. +- [ ] School conduct (5): Harassment-steps sheet; Clinician boundary page; Courtesy and medicine one-pager; Adult-speech note; Conduct-page host kit. +- [ ] Voting (6): Owen Sound association poll; Approval count of the same ballots; Rerunnable counting notes; Second-host poll kit; Printed moderator checklist; Moderator checklist card. +- [ ] Draft and later boards (22): assimilation sessions (2), dual-count poll (2), checkout-trial bridge (2), minors' medicine (2), opinions and employment (2), Canada–US (7), AI pause (5). Titles are in the project file under those group ids. + +### Not a content review + +Journeys 1–6 were walked in the browser. That checked that the pages render the mined graph. It did not approve the sentences or the project briefs. Personas and who signs what are still unreviewed; start from `network-societies-v1-b2-decisions.json` after a board's sentences look right. From f375211dd377f410b1ab87ee3c8cb1ab22055781 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 13:53:07 -0400 Subject: [PATCH 19/46] Cut network-societies statements back to signable wants. Project deliverables stay on the projects. Belief pins that named a dropped sentence now sign the surviving want, and the two draft bridges whose wording changed no longer publish a stale attester arrow. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 52 +- .../network-societies-v1-b2-decisions.json | 16 +- .../network-societies-v1-b2-note-spend.json | 231 +----- .../network-societies-v1-b2-projects.json | 139 ++-- .../network-societies-v1-b2-reimburse.json | 231 +----- .../network-societies-v1-b2-statements.json | 349 +++++---- .../campaigns/network-societies-v1-b2.json | 691 +++++++++++++----- .../campaigns/network-societies-v1-b2.md | 2 +- .../network-societies-v1-pilot-decisions.json | 114 ++- .../network-societies-v1-pilot-projects.json | 87 ++- ...network-societies-v1-pilot-statements.json | 128 ++-- .../campaigns/network-societies-v1-pilot.json | 568 ++++++++++++-- fake-data-generation/statement-generation.md | 13 + .../test/campaignPlanner.test.ts | 17 +- 15 files changed, 1596 insertions(+), 1044 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 6ae7b815..1d506370 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-20 wording cut, is 72 users, 94 statements, and 64 projects. Seventeen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 39a409af..a662e495 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -103,7 +103,7 @@ The original full-catalog aim was **240 users, roughly 150–210 unique statemen Each family should have: -- 6–10 useful cause planks at different grains, including concrete local goals where appropriate. +- A few signable wants, at the grain of a kind of thing and a place, plus real refusals. Not one plank per project. A headcount, a duration, a host kit, a checklist, or a directory belongs in the project outcome. See the earmark-grain note in [statement-generation.md](../statement-generation.md). - 2–4 genuinely incompatible or limiting positions, with people who hold them. Neutrality and disinterest are separate from disagreement. - At least five projects: three base-level deliverables and two organizing/maintenance deliverables. More developed families can have six. - At least two constituencies with different motivations, plus people who reject part or all of the proposed program. @@ -265,6 +265,14 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. +## Wording grain, 2026-10-20 + +Adam rejected the project-shaped sentences (a six-shop, three-month trial as the statement). The campaign files now keep a want and its refusals, and the old deliverable sentences are project outcomes. Two draft bridges whose commonality was that deliverable, Grey County assimilation sessions and the Owen Sound checkout trial, no longer have published implication arrows. The stored attester pass was for the old wording. Do not treat it as a bless of the new sentences. The other live arrows were left in place because those sentences did not change. + +The mined output directories still contain the old sentences. Do not regenerate them to catch up. A fresh plan is a later run. + +The review list that used to sit here described the old sentences. Adam is reading the new ones one board at a time. + ## Adam's review list (2026-10-20) Source of the sentences and project titles: `fake-data-generation/campaigns/network-societies-v1-b2-statements.json` and `network-societies-v1-b2-projects.json`. A box is checked only when Adam has said the item is fine. Nothing in the generated campaign text is checked yet. @@ -286,42 +294,6 @@ Skip these unless you want to re-read them. The campaign boards only point at th - [x] Abortion cutoff bridge: the accepted five (`compromise-abortion`). - [x] Schools and pushing: the accepted five (`lgbt-schools`). The campaign does not treat those five as a position on drugs, surgery, or classroom names. -### Still needs a look — statements - -One checkbox per board. The lines under it are the sentences on that board, so you can see what you are approving. - -- [ ] **Crypto-friendly checkout** (`crypto-merchants`, 10). Six-shop refundable trial; published fees and failures; independent security review; shop directory; Saturday clinic; host kit; keep cash and cards; refuse crypto payments; payment when a bank has blocked the customer; show the fee on a twenty-dollar sale. -- [ ] **Grey County civic life** (`civic-assimilation`, 10). Twelve English sessions with childcare; civics pack; Harrison Park paths; independent tutor check; organizer handoff; township business stays in English; newcomers keep their own language communities; stop recruiting until housing and clinic waits shorten; welcome signage; sessions stop short of telling people which customs to keep. -- [ ] **Christian teaching** (`christian-teaching`, 9). Reusable midweek notes; transcription; one-season substitute rota; name the confession; no joint doctrine; second-church host kit; civic transcription only; keep notes inside the congregation; public calendar of Sundays short a preacher. -- [ ] **Home learning** (`home-learning`, 10). Printable grade-six science unit; field-trip pack; store-item kits; eight Saturday meetups; successor host; name the teaching method; no religious claims; school families may borrow the notes; children taught in staffed schools; list kit hazards. -- [ ] **Shared class-host directory** (`shared-goods`, 1). Public directory of Grey County class hosts, affiliation written down, independent check noted. On civic life, Christian teaching, and home learning. -- [ ] **Plain-text notice** (`cross-family`, 1). One Grey County public notice transcribed into plain text. On civic life and Christian teaching. Not in a mined run yet. -- [ ] **Michigan abortion authority** (`abortion-forum`, 6). Legislature rather than a federal statute; one federal rule; keep campaigning instead of a cutoff; forbid abortion from the start; a comparison page that does not say which rule is in force; moderator checklist. Beside the accepted cutoff, not a rewrite of it. -- [ ] **Grey County school conduct** (`gender-conduct`, 7). Published harassment steps; a clinician outside the school for a minor's drug or surgery; schools stay out of approving those; a counselor may approve without an outside clinician; an adult may say they are seeking treatment; classroom uses the name the student asks for, separate from medicine; teachers use only the enrollment-form name. -- [ ] **Owen Sound voting trial** (`voting`, 7). Non-binding ranked poll with published ballots; an approval count of the same ballots; keep first-past-the-post for municipal elections; keep a show of hands; a second person can rerun the count; host kit; one-year directory of groups that published a count. -- [ ] **Draft: Grey County assimilation sessions** (`grey-assimilation`, 5). Not accepted seed. Practical English while keeping customs; join the local way of life; two modifieds; a shorter commonality. -- [ ] **Draft: dual-count poll** (`ranked-approval-poll`, 5). Not accepted seed. -- [ ] **Draft: checkout trial** (`checkout-trial-bridge`, 5). Not accepted seed. -- [ ] **Draft: minors' medicine** (`minors-medicine`, 5). Not accepted seed. Separate from the accepted schools sentences. -- [ ] **Draft: ordinary opinions and employment** (`opinion-employment`, 5). Not accepted seed. -- [ ] **Canada–US ties** (`canada-us-ties`, 12). Not accepted seed. Shared sentence is ordinary purchases and family visits, administration left out. Also: archive, Owen Sound guide, one evening, Grey County directory, host handoff, a boycott refusal, and a narrower sentence that keeps visits and drops the call to keep buying. Boycott and narrower sentence are not implication arrows. -- [ ] **AI pause** (`ai-pause`, 17). Not accepted seed. One shared pause-treaty sentence; five milder modifieds that contain it; five naturals that do not; a full-stop refusal; an accelerationist refusal; petition, alignment note, warning digest, host kit. - -### Still needs a look — projects - -Titles only. Same files. A checked board above does not check these. - -- [ ] Crypto checkout (5): Six-shop refundable checkout trial; Independent checkout security review; Fee and failure table; Owen Sound merchant directory; Quarterly checkout clinic and host kit. -- [ ] Civic life (5): Twelve conversation sessions; Grey County civics pack; Harrison Park path season; Conversation-session handoff; Independent tutor-listing check. -- [ ] Christian teaching (6): Midweek class notes; Midweek class transcript; One-season substitute rota; Second-church host kit; Plain-text Grey County notice; Grey County class-host directory. -- [ ] Home learning (5): Printable grade-six science unit; Grey County field-trip pack; Store-item science kits; Eight Owen Sound Saturdays; Successor host notes. -- [ ] Abortion settlement (5), on the accepted wording: Grand Rapids settlement sessions; Plain-language settlement page; Five-statement posting; Settlement-session host kit; Independent notes check. -- [ ] Michigan forum (2): Michigan authority brief; From-the-start position page. -- [ ] Schools (3), on the accepted wording: Grand Rapids pushing-question meetings; Unchanged schools packet; Schools-meeting host kit. -- [ ] School conduct (5): Harassment-steps sheet; Clinician boundary page; Courtesy and medicine one-pager; Adult-speech note; Conduct-page host kit. -- [ ] Voting (6): Owen Sound association poll; Approval count of the same ballots; Rerunnable counting notes; Second-host poll kit; Printed moderator checklist; Moderator checklist card. -- [ ] Draft and later boards (22): assimilation sessions (2), dual-count poll (2), checkout-trial bridge (2), minors' medicine (2), opinions and employment (2), Canada–US (7), AI pause (5). Titles are in the project file under those group ids. - -### Not a content review - -Journeys 1–6 were walked in the browser. That checked that the pages render the mined graph. It did not approve the sentences or the project briefs. Personas and who signs what are still unreviewed; start from `network-societies-v1-b2-decisions.json` after a board's sentences look right. +### Still needs a look + +Read the current sentences in `network-societies-v1-b2-statements.json`. Adam is reviewing them one board at a time, starting with crypto. Projects stayed; their alignments now point at the surviving want. diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json index 41d793ad..40bcea02 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json @@ -1,5 +1,5 @@ { - "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Twenty-one modified-to-commonality arrows are allowed. The four abortion and schools arrows keep accepted-bridge-role-pair. The twelve draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US work planks are separate sentences. Greta's boycott and Hugh's narrower sentence are not arrows. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", + "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Seventeen modified-to-commonality arrows are allowed. The four abortion and schools arrows keep accepted-bridge-role-pair. The Grey County assimilation bridge and the checkout-trial bridge dropped their arrows when the wording changed on 2026-10-20. The remaining eight draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US archive, guide, evening, directory, and host handoff are projects under the shared sentence, not extra sentences. Greta's boycott and Hugh's narrower sentence are not arrows. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", "people": [ { "userId": "user-041", "name": "Mara", "signs": ["modified-left", "commonality"], "rejects": ["no-early-abortions"], "unsigned": ["michigan-legislature", "one-federal-rule"], "notes": "The settlement signature is not a signature about which legislature writes the rule." }, { "userId": "user-052", "name": "Eli", "signs": ["natural-right"], "rejects": ["modified-right", "commonality", "modified-left"], "notes": "Keeps the natural position and refuses the settlement. He must not be treated as a supporter of the cutoff through an arrow from natural-right." }, @@ -14,11 +14,11 @@ { "userId": "user-065", "name": "Tess", "signs": ["natural-children"], "unsigned": ["modified-children", "commonality"], "notes": "Has the complaint about executives and has not signed the treaty." }, { "userId": "user-066", "name": "Hal", "signs": ["pole-stop"], "rejects": ["commonality", "modified-small-chance"], "notes": "Wants a full stop. The pause-while-alignment sentence is a refusal, not an unsigned item." }, { "userId": "user-067", "name": "Vic", "signs": ["pole-accelerate"], "rejects": ["commonality", "modified-small-chance", "modified-jobs"], "notes": "Rejects the pause. He is not a supporter through any arrow." }, - { "userId": "user-068", "name": "Fern", "signs": ["cultural-archive", "ties-guide", "community-event", "exchange-directory", "host-handoff"], "unsigned": ["commonality", "boycott-ordinary-ties", "narrower-than-visits"], "notes": "Signs the five work planks. The shared purchase-and-visit sentence is unsigned, not a rejection." }, - { "userId": "user-069", "name": "Cal", "signs": ["commonality", "exchange-directory"], "rejects": ["boycott-ordinary-ties"], "unsigned": ["narrower-than-visits", "natural-right"], "notes": "Signs the shared sentence and the directory. A boycott is a refusal." }, - { "userId": "user-070", "name": "Adele", "signs": ["natural-left", "ties-guide"], "unsigned": ["commonality", "modified-left", "boycott-ordinary-ties"], "notes": "Has the anti-Trump natural and the guide. The shared sentence is still a nudge, not an arrow from the natural." }, - { "userId": "user-071", "name": "Greta", "signs": ["boycott-ordinary-ties"], "rejects": ["commonality", "modified-left", "modified-right"], "unsigned": ["natural-left", "cultural-archive"], "notes": "Wants a boycott. She rejects the shared sentence. No arrow runs from the boycott to that sentence." }, - { "userId": "user-072", "name": "Neil", "signs": ["narrower-than-visits"], "rejects": ["commonality"], "unsigned": ["boycott-ordinary-ties", "community-event"], "notes": "Wants family visits without a general call to keep buying from US businesses. He rejects the sentence that asks for both." } + { "userId": "user-068", "name": "Fern", "signs": [], "unsigned": ["commonality", "boycott-ordinary-ties", "narrower-than-visits"], "notes": "Funds the Canada-US projects and does not sign the shared purchase-and-visit sentence. Unsigned, not a rejection." }, + { "userId": "user-069", "name": "Cal", "signs": ["commonality"], "rejects": ["boycott-ordinary-ties"], "unsigned": ["narrower-than-visits", "natural-right"], "notes": "Signs the shared sentence. A boycott is a refusal." }, + { "userId": "user-070", "name": "Adele", "signs": ["natural-left"], "unsigned": ["commonality", "modified-left", "boycott-ordinary-ties"], "notes": "Has the anti-Trump natural. The shared sentence is still a nudge, not an arrow from the natural." }, + { "userId": "user-071", "name": "Greta", "signs": ["boycott-ordinary-ties"], "rejects": ["commonality", "modified-left", "modified-right"], "unsigned": ["natural-left"], "notes": "Wants a boycott. She rejects the shared sentence. No arrow runs from the boycott to that sentence." }, + { "userId": "user-072", "name": "Neil", "signs": ["narrower-than-visits"], "rejects": ["commonality"], "unsigned": ["boycott-ordinary-ties"], "notes": "Wants family visits without a general call to keep buying from US businesses. He rejects the sentence that asks for both." } ], "implicationCandidates": { "published": [ @@ -26,12 +26,8 @@ { "from": "compromise-abortion/modified-right", "to": "compromise-abortion/commonality", "evidence": "accepted-bridge-role-pair", "why": "Accepted 2026-08-30." }, { "from": "lgbt-schools/modified-left", "to": "lgbt-schools/commonality", "evidence": "accepted-bridge-role-pair", "why": "Accepted 2026-08-31. This arrow is about pushing versus support. It is not a medical claim." }, { "from": "lgbt-schools/modified-right", "to": "lgbt-schools/commonality", "evidence": "accepted-bridge-role-pair", "why": "Accepted 2026-08-31." }, - { "from": "grey-assimilation/modified-left", "to": "grey-assimilation/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high. Not accepted seed." }, - { "from": "grey-assimilation/modified-right", "to": "grey-assimilation/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, { "from": "ranked-approval-poll/modified-left", "to": "ranked-approval-poll/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, { "from": "ranked-approval-poll/modified-right", "to": "ranked-approval-poll/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, - { "from": "checkout-trial-bridge/modified-left", "to": "checkout-trial-bridge/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, - { "from": "checkout-trial-bridge/modified-right", "to": "checkout-trial-bridge/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, { "from": "minors-medicine/modified-left", "to": "minors-medicine/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, { "from": "minors-medicine/modified-right", "to": "minors-medicine/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, { "from": "opinion-employment/modified-left", "to": "opinion-employment/commonality", "evidence": "live-attester-modified-to-commonality", "why": "Blessed after the modifieds gained a camp priority the commonality does not contain." }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json index 271e9b0e..665de4ea 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 124, - "maxStatements": 124, + "minStatements": 94, + "maxStatements": 94, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -37,36 +37,6 @@ "groupId": "crypto-merchants", "statementId": "refundable-checkout" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "published-trial-record" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "checkout-security-review" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "merchant-directory" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "deployment-clinic" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "host-kit" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "keep-cash-and-card" - }, { "collectionId": "network-societies-v1-b2", "groupId": "crypto-merchants", @@ -76,11 +46,6 @@ "collectionId": "network-societies-v1-b2", "groupId": "crypto-merchants", "statementId": "bank-blocking" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "fee-schedule" } ] }, @@ -95,26 +60,11 @@ "groupId": "civic-assimilation", "statementId": "language-sessions" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "civics-pack" - }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", "statementId": "park-paths" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "tutor-check" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "organizer-handoff" - }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", @@ -130,11 +80,6 @@ "groupId": "civic-assimilation", "statementId": "housing-before-recruiting" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "welcome-signage" - }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", @@ -144,6 +89,11 @@ "collectionId": "network-societies-v1-b2", "groupId": "shared-goods", "statementId": "class-host-directory" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "cross-family", + "statementId": "plain-text-notice" } ] }, @@ -158,11 +108,6 @@ "groupId": "christian-teaching", "statementId": "midweek-notes" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "transcription" - }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", @@ -178,11 +123,6 @@ "groupId": "christian-teaching", "statementId": "no-joint-doctrine" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "host-kit" - }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", @@ -195,13 +135,13 @@ }, { "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "interchurch-calendar" + "groupId": "shared-goods", + "statementId": "class-host-directory" }, { "collectionId": "network-societies-v1-b2", - "groupId": "shared-goods", - "statementId": "class-host-directory" + "groupId": "cross-family", + "statementId": "plain-text-notice" } ] }, @@ -216,26 +156,6 @@ "groupId": "home-learning", "statementId": "science-unit" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "field-trip" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "science-kits" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "saturday-meetups" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "successor-host" - }, { "collectionId": "network-societies-v1-b2", "groupId": "home-learning", @@ -256,11 +176,6 @@ "groupId": "home-learning", "statementId": "staffed-schools" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "lab-safety" - }, { "collectionId": "network-societies-v1-b2", "groupId": "shared-goods", @@ -441,21 +356,6 @@ "groupId": "voting", "statementId": "show-of-hands" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "voting", - "statementId": "counting-toolkit" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "voting", - "statementId": "poll-host-kit" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "voting", - "statementId": "trial-directory" - }, { "collectionId": "network-societies-v1-b2", "groupId": "abortion-forum", @@ -659,31 +559,6 @@ "groupId": "canada-us-ties", "statementId": "commonality" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "canada-us-ties", - "statementId": "cultural-archive" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "canada-us-ties", - "statementId": "ties-guide" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "canada-us-ties", - "statementId": "community-event" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "canada-us-ties", - "statementId": "exchange-directory" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "canada-us-ties", - "statementId": "host-handoff" - }, { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", @@ -766,26 +641,6 @@ "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "pole-accelerate" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ai-pause", - "statementId": "treaty-petition" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ai-pause", - "statementId": "alignment-note" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ai-pause", - "statementId": "warning-digest" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ai-pause", - "statementId": "pause-host-kit" } ] } @@ -1582,32 +1437,6 @@ }, "evidence": "accepted-bridge-role-pair" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "grey-assimilation", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "grey-assimilation", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "grey-assimilation", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "grey-assimilation", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1634,32 +1463,6 @@ }, "evidence": "live-attester-modified-to-commonality" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "checkout-trial-bridge", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "checkout-trial-bridge", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "checkout-trial-bridge", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "checkout-trial-bridge", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1809,8 +1612,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 124, - "max": 124 + "min": 94, + "max": 94 } }, { @@ -1839,8 +1642,8 @@ "publish-statement" ], "targetCount": { - "min": 21, - "max": 21 + "min": 17, + "max": 17 } }, { @@ -1849,8 +1652,8 @@ "create-cause" ], "targetCount": { - "min": 62, - "max": 62 + "min": 64, + "max": 64 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index c2c028f1..fbf25491 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -2,10 +2,9 @@ "crypto-merchants": [ { "title": "Six-shop refundable checkout trial", - "outcome": "Ship an open-source checkout, with refunds, and run it for three months at six named Owen Sound shops. Publish the code and the shop list.", + "outcome": "Ship an open-source checkout, with refunds, and run it for three months at six named Owen Sound shops. Publish the code and the shop list, and the shops keep taking cash and ordinary cards for the whole trial.", "statementRefs": [ - "refundable-checkout", - "published-trial-record" + "refundable-checkout" ], "blocker": "No one shop can justify building a checkout whose useful result is a public trial record" }, @@ -13,7 +12,7 @@ "title": "Independent checkout security review", "outcome": "Pay a reviewer who does not write the checkout to publish findings and unfixed items before the Owen Sound trial ends.", "statementRefs": [ - "checkout-security-review" + "refundable-checkout" ], "blocker": "The shops and the programmer are poor judges of their own security claims" }, @@ -21,8 +20,7 @@ "title": "Fee and failure table", "outcome": "Publish the fee on a twenty-dollar Owen Sound trial sale, and a table of failed payments, before anyone calls the trial a success.", "statementRefs": [ - "fee-schedule", - "published-trial-record" + "refundable-checkout" ], "blocker": "The numbers are useful to every later shop and owned by none of them" }, @@ -30,7 +28,7 @@ "title": "Owen Sound merchant directory", "outcome": "Maintain, for one year, a directory that shows which trial shops still take the checkout and which shops stopped, with the date of each change.", "statementRefs": [ - "merchant-directory" + "refundable-checkout" ], "blocker": "A directory nobody maintains becomes an advertisement" }, @@ -38,8 +36,7 @@ "title": "Quarterly checkout clinic and host kit", "outcome": "Run four Saturday clinics in Owen Sound and leave a host kit so a second person can run the next one.", "statementRefs": [ - "deployment-clinic", - "host-kit" + "refundable-checkout" ], "blocker": "The clinic stops when the first host is busy unless the hosting steps are written down" } @@ -57,7 +54,7 @@ "title": "Grey County civics pack", "outcome": "Write and release a plain-English pack for the library, the bus, a school meeting, and a township office in Grey County.", "statementRefs": [ - "civics-pack" + "language-sessions" ], "blocker": "Each office explains itself differently, and no office is paid to write the combined pack" }, @@ -73,7 +70,7 @@ "title": "Conversation-session handoff", "outcome": "Write the steps, contacts, and childcare arrangements so a second organizer can run the next Owen Sound session series.", "statementRefs": [ - "organizer-handoff" + "language-sessions" ], "blocker": "The sessions are a public good only if they survive the first organizer" }, @@ -81,7 +78,7 @@ "title": "Independent tutor-listing check", "outcome": "For one season, have someone who does not run the sessions check Grey County language-tutor listings and publish which listings failed.", "statementRefs": [ - "tutor-check" + "language-sessions" ], "blocker": "A directory checked by its own organizer does not answer a skeptic" } @@ -100,7 +97,7 @@ "title": "Midweek class transcript", "outcome": "Transcribe that class for people who cannot hear the recordings, and publish the transcript with the confession named.", "statementRefs": [ - "transcription", + "midweek-notes", "named-confession" ], "blocker": "Transcription is useful to every later listener and costly to the first congregation" @@ -109,8 +106,7 @@ "title": "One-season substitute rota", "outcome": "Publish a Sunday rota and sermon notes so a substitute can preach at one named Grey County church for one season.", "statementRefs": [ - "substitute-rota", - "interchurch-calendar" + "substitute-rota" ], "blocker": "Each small church has too few substitutes to keep the rota alone" }, @@ -118,7 +114,7 @@ "title": "Second-church host kit", "outcome": "Write a one-season kit so a second Grey County church can run the same rota without the first host.", "statementRefs": [ - "host-kit" + "substitute-rota" ], "blocker": "The rota dies with the first host unless the steps are written down" }, @@ -154,7 +150,7 @@ "title": "Grey County field-trip pack", "outcome": "Release the permission form, map, and safety notes for one Grey County field trip so another family, including a school family, can run it.", "statementRefs": [ - "field-trip", + "science-unit", "school-families-may-borrow" ], "blocker": "The first family pays for the reconnaissance and every later family can copy the pack" @@ -163,8 +159,7 @@ "title": "Store-item science kits", "outcome": "Publish instructions for a home science kit of ordinary store items, including hazards and the adult supervision each activity needs.", "statementRefs": [ - "science-kits", - "lab-safety" + "science-unit" ], "blocker": "A safe kit has to be tried once before other families can reuse it" }, @@ -172,7 +167,7 @@ "title": "Eight Owen Sound Saturdays", "outcome": "Host eight Saturday meetups in Owen Sound for home-school families and publish the dates before the first meeting.", "statementRefs": [ - "saturday-meetups" + "science-unit" ], "blocker": "The room and the dates have to be reserved before any family can rely on them" }, @@ -180,7 +175,7 @@ "title": "Successor host notes", "outcome": "Name a successor and write the notes so the Owen Sound meetups can run a second season without the first host.", "statementRefs": [ - "successor-host" + "science-unit" ], "blocker": "A meetup series that only the first host can run is not a maintained public good" } @@ -350,7 +345,7 @@ "title": "Rerunnable counting notes", "outcome": "Publish the counting method in enough detail that a second person can rerun it from the published ballots and match the count.", "statementRefs": [ - "counting-toolkit" + "ranked-poll" ], "blocker": "The counter who ran the poll is a poor person to be the only one who can repeat it" }, @@ -358,7 +353,7 @@ "title": "Second-host poll kit", "outcome": "Write the room, ballot, and publication steps so a second Owen Sound resident can run the next non-binding poll.", "statementRefs": [ - "poll-host-kit" + "ranked-poll" ], "blocker": "The poll stops when the first host is busy unless the steps are written down" }, @@ -375,7 +370,7 @@ "outcome": "Print the moderator checklist and use it for the Owen Sound poll and for one other published meeting, then file both checklists in the Grey County trial directory.", "statementRefs": [ "moderator-checklist", - "trial-directory" + "ranked-poll" ], "blocker": "The checklist is useful on more than one board, and neither meeting owns the maintenance" } @@ -384,13 +379,19 @@ { "title": "Owen Sound evening sessions", "outcome": "Run twelve evening practical-English sessions in Owen Sound with childcare, covering the library, the bus, and a township office. Township business stays in English. The sessions do not tell newcomers which customs to keep.", - "statementRefs": ["commonality"], + "statementRefs": [ + "commonality" + ], "blocker": "Childcare and a room have to be paid for before either camp can see whether the limited program is the one they would accept" }, { "title": "Session-limit card", "outcome": "Print the commonality sentence and the two modified sentences, unchanged, so a host can show what the sessions will and will not do.", - "statementRefs": ["modified-left", "modified-right", "commonality"], + "statementRefs": [ + "modified-left", + "modified-right", + "commonality" + ], "blocker": "The limit is easy to drop in the room unless a card states it" } ], @@ -398,13 +399,18 @@ { "title": "Dual-count association poll", "outcome": "One Owen Sound community association runs a non-binding poll and publishes a ranked count and an approval count of the same ballots. The poll does not change a municipal election.", - "statementRefs": ["commonality"], + "statementRefs": [ + "commonality" + ], "blocker": "Printing both counts costs more than the association's usual show of hands" }, { "title": "Dual-count host card", "outcome": "Print the two modified sentences so a host can say that publishing the other count is not a change of preferred system.", - "statementRefs": ["modified-left", "modified-right"], + "statementRefs": [ + "modified-left", + "modified-right" + ], "blocker": "Without the card, each side hears the second count as a concession they did not make" } ], @@ -412,13 +418,18 @@ { "title": "Six-shop trial on the bridge terms", "outcome": "Six named Owen Sound shops try, for three months, a checkout that can take a crypto payment and refund it, show the fee on a twenty-dollar sale before the customer pays, and keep taking cash and cards.", - "statementRefs": ["commonality"], + "statementRefs": [ + "commonality" + ], "blocker": "No one shop pays for a trial whose useful result is a public record of fees and refunds" }, { "title": "Trial-terms card", "outcome": "Print the two modified sentences so a merchant and a payments person can see the trial limits in their own wording.", - "statementRefs": ["modified-left", "modified-right"], + "statementRefs": [ + "modified-left", + "modified-right" + ], "blocker": "The shared sentence leaves out why each side showed up, and the card is what keeps those reasons visible" } ], @@ -426,13 +437,18 @@ { "title": "Rule comparison page", "outcome": "Publish the commonality sentence as a proposal, labeled as a proposal, with no claim about current law or clinical results.", - "statementRefs": ["commonality"], + "statementRefs": [ + "commonality" + ], "blocker": "A one-page proposal is useful to people who will not attend a meeting, and nobody owns the page" }, { "title": "Separate-questions card", "outcome": "Print the modified-right sentence so a host can keep classroom names and school drug approval off this page.", - "statementRefs": ["modified-right", "commonality"], + "statementRefs": [ + "modified-right", + "commonality" + ], "blocker": "Those questions keep getting folded back in unless a maintained card holds them out" } ], @@ -440,13 +456,17 @@ { "title": "Appeal-before-blacklist card", "outcome": "Publish the commonality sentence and a one-page appeal checklist a workplace can fill in before treating someone as unemployable for a stated opinion.", - "statementRefs": ["commonality"], + "statementRefs": [ + "commonality" + ], "blocker": "The checklist is useful to the next workplace and paid for by none of them" }, { "title": "Still-a-sanction note", "outcome": "Publish the modified-left sentence so the card does not get read as a ban on every workplace response.", - "statementRefs": ["modified-left"], + "statementRefs": [ + "modified-left" + ], "blocker": "The exception for threats and refused work disappears if only the short sentence is copied" } ], @@ -454,43 +474,59 @@ { "title": "Ordinary-ties one-pager", "outcome": "Publish the commonality sentence for one Canadian community group, labeled as a draft statement rather than as a finding about trade.", - "statementRefs": ["commonality"], + "statementRefs": [ + "commonality" + ], "blocker": "The page is a shared wording, and neither camp's organizer is paid to keep the other camp's wording intact" }, { "title": "Not-an-endorsement card", "outcome": "Print both modified sentences beside the commonality so a reader can see the administration question was left out on purpose.", - "statementRefs": ["modified-left", "modified-right", "commonality"], + "statementRefs": [ + "modified-left", + "modified-right", + "commonality" + ], "blocker": "Without both wordings, one camp hears the page as praise and the other hears it as a boycott refusal they did not sign" }, { "title": "Owen Sound cross-border archive", "outcome": "Publish one year of dated Owen Sound stories about family visits and ordinary purchases across the Canada-US border, with a name only when the contributor asked for one.", - "statementRefs": ["cultural-archive"], + "statementRefs": [ + "commonality" + ], "blocker": "The stories are scattered across families, and no one family is paid to keep a public copy" }, { "title": "Civic and business ties guide", "outcome": "Publish a guide for Owen Sound that lists practical steps for a family visit to the US and for buying from a US business, and that names no party and no administration.", - "statementRefs": ["ties-guide"], + "statementRefs": [ + "commonality" + ], "blocker": "The steps are useful to the next traveler and written down by none of them" }, { "title": "Owen Sound ties evening", "outcome": "Hold one Owen Sound evening with a published agenda and a packet later hosts can copy. The evening is for talking about family visits and ordinary purchases. It does not ask anyone to praise or condemn the current US administration.", - "statementRefs": ["community-event"], + "statementRefs": [ + "commonality" + ], "blocker": "A one-night conversation leaves no materials unless someone is paid to write them down" }, { "title": "Grey County exchange directory", "outcome": "Keep, for one year, a monthly-checked directory of Grey County hosts for conversations about Canada-US family visits and ordinary purchases. Each listing has a name, a town, and a way to see that it is still current.", - "statementRefs": ["exchange-directory"], + "statementRefs": [ + "commonality" + ], "blocker": "A host list that nobody checks becomes a list of people who moved" }, { "title": "Host handoff card", "outcome": "Write the steps a second person in Owen Sound needs in order to host the next conversation about Canada-US family visits without the first host.", - "statementRefs": ["host-handoff"], + "statementRefs": [ + "commonality" + ], "blocker": "The conversation stops when the first host is busy unless the hosting steps are written down" } ], @@ -498,31 +534,42 @@ { "title": "Pause-treaty petition packet", "outcome": "Publish the petition text, the governments it is addressed to, and a running signature count for one year. The packet includes the shared pause sentence and does not claim a government has agreed.", - "statementRefs": ["treaty-petition", "commonality"], + "statementRefs": [ + "commonality" + ], "blocker": "A petition nobody maintains becomes a slogan, and no single signer is paid to keep the count honest" }, { "title": "Small-chance explainer", "outcome": "Publish a plain-language brief that states the small-chance modified sentence beside the shared pause sentence, so a reader can see what the shorter sentence does not claim.", - "statementRefs": ["modified-small-chance", "commonality"], + "statementRefs": [ + "modified-small-chance", + "commonality" + ], "blocker": "The milder wording is useful only if someone writes it down where the certain-doom sentence is not the only text on offer" }, { "title": "Checkable alignment note", "outcome": "Commission one note on a published idea for keeping a more capable system from doing catastrophic harm. The note states the method, the result, and what was not shown. It does not claim the problem is solved.", - "statementRefs": ["alignment-note"], + "statementRefs": [ + "commonality" + ], "blocker": "A second person cannot check a safety claim that lives in a lab notebook nobody else is paid to read" }, { "title": "One-year warning digest", "outcome": "For one year, publish a digest of public warnings from people who work on AI, each with a date and a source, and no claim added beyond the source.", - "statementRefs": ["warning-digest"], + "statementRefs": [ + "commonality" + ], "blocker": "The warnings are scattered, and no newsroom is paid to keep a list that refuses to sharpen them" }, { "title": "Pause-meeting host kit", "outcome": "Write the agenda, the two sentences to read aloud, and the handoff steps so a second host can run the next meeting without the first host.", - "statementRefs": ["pause-host-kit", "commonality"], + "statementRefs": [ + "commonality" + ], "blocker": "The meeting stops when the first host is busy unless the hosting steps are written down" } ] diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json index c922f1e6..7fd10e82 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 124, - "maxStatements": 124, + "minStatements": 94, + "maxStatements": 94, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -37,36 +37,6 @@ "groupId": "crypto-merchants", "statementId": "refundable-checkout" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "published-trial-record" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "checkout-security-review" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "merchant-directory" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "deployment-clinic" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "host-kit" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "keep-cash-and-card" - }, { "collectionId": "network-societies-v1-b2", "groupId": "crypto-merchants", @@ -76,11 +46,6 @@ "collectionId": "network-societies-v1-b2", "groupId": "crypto-merchants", "statementId": "bank-blocking" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "fee-schedule" } ] }, @@ -95,26 +60,11 @@ "groupId": "civic-assimilation", "statementId": "language-sessions" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "civics-pack" - }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", "statementId": "park-paths" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "tutor-check" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "organizer-handoff" - }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", @@ -130,11 +80,6 @@ "groupId": "civic-assimilation", "statementId": "housing-before-recruiting" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "welcome-signage" - }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", @@ -144,6 +89,11 @@ "collectionId": "network-societies-v1-b2", "groupId": "shared-goods", "statementId": "class-host-directory" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "cross-family", + "statementId": "plain-text-notice" } ] }, @@ -158,11 +108,6 @@ "groupId": "christian-teaching", "statementId": "midweek-notes" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "transcription" - }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", @@ -178,11 +123,6 @@ "groupId": "christian-teaching", "statementId": "no-joint-doctrine" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "host-kit" - }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", @@ -195,13 +135,13 @@ }, { "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "interchurch-calendar" + "groupId": "shared-goods", + "statementId": "class-host-directory" }, { "collectionId": "network-societies-v1-b2", - "groupId": "shared-goods", - "statementId": "class-host-directory" + "groupId": "cross-family", + "statementId": "plain-text-notice" } ] }, @@ -216,26 +156,6 @@ "groupId": "home-learning", "statementId": "science-unit" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "field-trip" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "science-kits" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "saturday-meetups" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "successor-host" - }, { "collectionId": "network-societies-v1-b2", "groupId": "home-learning", @@ -256,11 +176,6 @@ "groupId": "home-learning", "statementId": "staffed-schools" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "lab-safety" - }, { "collectionId": "network-societies-v1-b2", "groupId": "shared-goods", @@ -441,21 +356,6 @@ "groupId": "voting", "statementId": "show-of-hands" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "voting", - "statementId": "counting-toolkit" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "voting", - "statementId": "poll-host-kit" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "voting", - "statementId": "trial-directory" - }, { "collectionId": "network-societies-v1-b2", "groupId": "abortion-forum", @@ -659,31 +559,6 @@ "groupId": "canada-us-ties", "statementId": "commonality" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "canada-us-ties", - "statementId": "cultural-archive" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "canada-us-ties", - "statementId": "ties-guide" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "canada-us-ties", - "statementId": "community-event" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "canada-us-ties", - "statementId": "exchange-directory" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "canada-us-ties", - "statementId": "host-handoff" - }, { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", @@ -766,26 +641,6 @@ "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "pole-accelerate" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ai-pause", - "statementId": "treaty-petition" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ai-pause", - "statementId": "alignment-note" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ai-pause", - "statementId": "warning-digest" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ai-pause", - "statementId": "pause-host-kit" } ] } @@ -1567,32 +1422,6 @@ }, "evidence": "accepted-bridge-role-pair" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "grey-assimilation", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "grey-assimilation", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "grey-assimilation", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "grey-assimilation", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1619,32 +1448,6 @@ }, "evidence": "live-attester-modified-to-commonality" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "checkout-trial-bridge", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "checkout-trial-bridge", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "checkout-trial-bridge", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "checkout-trial-bridge", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1794,8 +1597,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 124, - "max": 124 + "min": 94, + "max": 94 } }, { @@ -1824,8 +1627,8 @@ "publish-statement" ], "targetCount": { - "min": 21, - "max": 21 + "min": 17, + "max": 17 } }, { @@ -1834,8 +1637,8 @@ "create-cause" ], "targetCount": { - "min": 62, - "max": 62 + "min": 64, + "max": 64 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 9e60e74b..de1f6ed0 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -14,43 +14,15 @@ "statements": [ { "id": "refundable-checkout", - "text": "I want six named shops in Owen Sound, Ontario, to be able to try a checkout that takes a crypto payment and can refund it, for a three-month trial." - }, - { - "id": "published-trial-record", - "text": "I want the Owen Sound crypto-checkout trial to publish every fee, failed payment, and refund from those three months." - }, - { - "id": "checkout-security-review", - "text": "I want an independent reviewer to publish the security findings in the Owen Sound trial checkout, including findings the shops have not yet fixed." - }, - { - "id": "merchant-directory", - "text": "I want a directory of Owen Sound shops in the checkout trial that says which shops are still taking the payment and which shops stopped." - }, - { - "id": "deployment-clinic", - "text": "I want a quarterly Saturday clinic in Owen Sound where a shop can run one test sale on the trial checkout and leave with a written result." - }, - { - "id": "host-kit", - "text": "I want a written host kit so a second person can run the next Owen Sound checkout clinic without the first host." - }, - { - "id": "keep-cash-and-card", - "text": "I want every shop in the Owen Sound crypto trial to keep taking cash and ordinary cards for the whole three months." + "text": "I want a business in Grey County, Ontario, to be able to take a blockchain payment from a customer who asks to pay that way." }, { "id": "refuse-crypto-payments", - "text": "I want shops in Owen Sound to refuse customer payments in crypto." + "text": "I want shops in Grey County to refuse customer payments in crypto." }, { "id": "bank-blocking", - "text": "I want a willing Owen Sound shop and a willing customer to be able to complete a payment when a bank has blocked that customer." - }, - { - "id": "fee-schedule", - "text": "I want the Owen Sound trial checkout to show the fee for a twenty-dollar sale before the customer pays." + "text": "I want a willing shop and a willing customer in Grey County to be able to complete a payment when a bank has blocked that customer." } ] }, @@ -60,23 +32,11 @@ "statements": [ { "id": "language-sessions", - "text": "I want twelve practical English conversation sessions in Owen Sound, Ontario, with childcare in the room, for newcomers and long-time residents together." - }, - { - "id": "civics-pack", - "text": "I want a reusable pack that explains, in plain English, how a person in Grey County uses the library, the bus, a school meeting, and a township office." + "text": "I want newcomers in Grey County, Ontario, to be able to learn practical English, and to learn how the library, the bus, a school meeting, and a township office work." }, { "id": "park-paths", - "text": "I want one summer of newcomers and long-time residents repairing paths in Harrison Park, Owen Sound, with the hours and costs published at the end." - }, - { - "id": "tutor-check", - "text": "I want the Grey County language-tutor listings checked by someone who does not run the sessions, including a public note when a listing fails the check." - }, - { - "id": "organizer-handoff", - "text": "I want a written handoff so a second organizer can run the next Owen Sound conversation session without the first organizer." + "text": "I want newcomers and long-time residents in Grey County to take on practical work together in the county's public places." }, { "id": "english-township-business", @@ -90,13 +50,9 @@ "id": "housing-before-recruiting", "text": "I want Grey County to stop recruiting more newcomers until the published housing and clinic wait times get shorter." }, - { - "id": "welcome-signage", - "text": "I want the Owen Sound bus terminal and library to post, in the languages already spoken in town, where the conversation sessions meet." - }, { "id": "session-limit", - "text": "I want the Owen Sound conversation sessions to teach practical English, and I want them to stop short of telling newcomers which customs to keep." + "text": "I want practical-English classes in Grey County to stop short of telling newcomers which customs to keep." } ] }, @@ -106,15 +62,11 @@ "statements": [ { "id": "midweek-notes", - "text": "I want the teaching notes for one Grey County congregation's midweek class released so another congregation can reuse them." - }, - { - "id": "transcription", - "text": "I want the recordings of that Grey County midweek class transcribed for people who cannot hear them." + "text": "I want a Grey County congregation to be able to reuse another congregation's teaching notes." }, { "id": "substitute-rota", - "text": "I want a published rota and sermon notes so a substitute can preach at a named Grey County church when the regular preacher is away for one season." + "text": "I want a Grey County church to be able to have a substitute preacher when the regular preacher is away." }, { "id": "named-confession", @@ -124,10 +76,6 @@ "id": "no-joint-doctrine", "text": "I want congregations that reuse the same Grey County teaching notes to stop short of publishing a joint statement of doctrine." }, - { - "id": "host-kit", - "text": "I want a one-season host kit so a second Grey County church can run the substitute-preacher rota after the first season." - }, { "id": "civic-transcription-only", "text": "I want to help transcribe public civic materials in Grey County, and I do not want that work to include church teaching." @@ -135,10 +83,6 @@ { "id": "keep-notes-inside", "text": "I want a congregation's teaching notes to stay inside that congregation." - }, - { - "id": "interchurch-calendar", - "text": "I want a public calendar of which Grey County church is short a preacher on which Sunday this season." } ] }, @@ -148,27 +92,11 @@ "statements": [ { "id": "science-unit", - "text": "I want one open grade-six science unit, with materials a Grey County home-school family can print." - }, - { - "id": "field-trip", - "text": "I want the permission form, map, and safety notes for one Grey County field trip released so another family can run the same trip." - }, - { - "id": "science-kits", - "text": "I want instructions for a home science kit that uses ordinary store items, written so a Grey County family can repeat it." - }, - { - "id": "saturday-meetups", - "text": "I want eight Saturday meetups in Owen Sound for home-school families, with the dates published before the first meeting." - }, - { - "id": "successor-host", - "text": "I want a named successor, and written notes, so the Owen Sound home-school meetups can continue for a second season without the first host." + "text": "I want Grey County families who teach their children at home to have teaching materials they can reuse." }, { "id": "method-on-the-page", - "text": "I want each Grey County home-school unit to say which teaching method it uses." + "text": "I want a Grey County home-teaching unit to say which teaching method it uses." }, { "id": "no-religious-claims", @@ -176,15 +104,11 @@ }, { "id": "school-families-may-borrow", - "text": "I want families whose children attend school in Grey County to be allowed to use the same field-trip notes." + "text": "I want families whose children attend school in Grey County to be allowed to use the same home-teaching materials." }, { "id": "staffed-schools", "text": "I want children in Grey County taught in staffed schools, and I do not want public rooms booked for home-school programs." - }, - { - "id": "lab-safety", - "text": "I want the Grey County home science kit to list the hazards and the adult supervision each activity needs." } ] }, @@ -194,7 +118,7 @@ "statements": [ { "id": "class-host-directory", - "text": "I want a public directory of people in Grey County, Ontario, who will host a small class, with each host's affiliation written down and a note when an independent checker has confirmed the listing." + "text": "I want a person in Grey County, Ontario, who will host a small class to be findable, and I want that person's affiliation written down." } ] }, @@ -207,7 +131,7 @@ "statements": [ { "id": "plain-text-notice", - "text": "I want one Grey County public notice, from the library, the bus, or a township office, transcribed into plain text a person can read without the recording." + "text": "I want a public notice in Grey County to be readable without needing the recording." } ] }, @@ -241,7 +165,7 @@ }, { "id": "moderator-checklist", - "text": "I want a written checklist a moderator can use to publish a meeting's question, the statements under discussion, and the notes, without claiming the meeting decided a law." + "text": "I want a public meeting to publish its question, the statements under discussion, and the notes, without claiming the meeting decided a law." } ] }, @@ -254,7 +178,7 @@ "statements": [ { "id": "harassment-steps", - "text": "I want one Grey County school to publish the steps a student uses to report harassment, and to apply those steps without requiring the student to agree with a classmate." + "text": "I want a Grey County student to be able to report harassment without having to agree with a classmate." }, { "id": "clinician-for-minors", @@ -291,11 +215,11 @@ "statements": [ { "id": "ranked-poll", - "text": "I want one Owen Sound community association to run a non-binding ranked-ballot poll and to publish the ballots and the count." + "text": "I want a community association in Owen Sound to be able to try a non-binding ranked ballot and to publish the ballots and the count." }, { "id": "approval-count", - "text": "I want that Owen Sound association to publish an approval count of the same ballots beside the ranked count." + "text": "I want that same non-binding poll to publish an approval count of the same ballots beside the ranked count." }, { "id": "keep-fptp", @@ -304,18 +228,6 @@ { "id": "show-of-hands", "text": "I want the Owen Sound association to refuse a ranked-ballot poll and keep its usual show of hands." - }, - { - "id": "counting-toolkit", - "text": "I want the Owen Sound poll to use a published counting method that a second person can rerun from the published ballots." - }, - { - "id": "poll-host-kit", - "text": "I want a written host kit so a second Owen Sound resident can run the next non-binding poll without the first host." - }, - { - "id": "trial-directory", - "text": "I want a one-year directory of Grey County groups that have published a non-binding ranked or approval count, including groups that stopped and the date they stopped." } ] }, @@ -326,59 +238,167 @@ "Draft bridge from statement-generation-exercises/06-network-society-alliances.json. Modified-to-commonality was blessed on 2026-10-16 and is planned with live-attester evidence. This is not the accepted immigration cluster and it is not accepted seed." ], "statements": [ - { "id": "natural-left", "role": "natural-left", "text": "I want newcomers in Grey County to be able to learn practical English and how the library, the bus, and a township office work, and I want them to be able to keep their own customs." }, - { "id": "natural-right", "role": "natural-right", "text": "If people move to Grey County, they should join the local way of life. I don't want the township running services in origin languages forever." }, - { "id": "modified-left", "role": "modified-left", "text": "I want newcomers in Grey County to be able to learn practical English and how the library, the bus, and a township office work, and I want them to be able to keep their own customs. I'd be okay with twelve evening practical-English sessions in Owen Sound, with childcare, that explain those four things, while township business stays in English and the sessions stop short of telling newcomers which customs to keep. I would not want this to become a second township office in origin languages. This isn't my whole view of immigration." }, - { "id": "modified-right", "role": "modified-right", "text": "If people move to Grey County, they should be able to function in the local civic life, and I don't want the township running services in origin languages forever. I'd still rather see less immigration, but that is a different question. I'd be okay with twelve evening practical-English sessions in Owen Sound, with childcare, that explain the library, the bus, and a township office, while township business stays in English and the sessions stop short of telling newcomers which customs to keep. This isn't my whole view of immigration." }, - { "id": "commonality", "role": "commonality", "text": "I'd be okay with twelve evening practical-English sessions in Owen Sound, with childcare, that explain the library, the bus, and a township office, while township business stays in English and the sessions stop short of telling newcomers which customs to keep. This isn't my whole view of immigration." } + { + "id": "natural-left", + "role": "natural-left", + "text": "I want newcomers in Grey County to be able to learn practical English and how the library, the bus, and a township office work, and I want them to be able to keep their own customs." + }, + { + "id": "natural-right", + "role": "natural-right", + "text": "If people move to Grey County, they should join the local way of life. I don't want the township running services in origin languages forever." + }, + { + "id": "modified-left", + "role": "modified-left", + "text": "I want newcomers in Grey County to be able to learn practical English and how the library, the bus, and a township office work, and I want them to be able to keep their own customs. I'd be okay with practical-English sessions in Owen Sound, with childcare, that explain those things, while township business stays in English and the sessions stop short of telling newcomers which customs to keep. I would not want this to become a second township office in origin languages. This isn't my whole view of immigration." + }, + { + "id": "modified-right", + "role": "modified-right", + "text": "If people move to Grey County, they should be able to function in the local civic life, and I don't want the township running services in origin languages forever. I'd still rather see less immigration, but that is a different question. I'd be okay with practical-English sessions in Owen Sound, with childcare, that explain the library, the bus, and a township office, while township business stays in English and the sessions stop short of telling newcomers which customs to keep. This isn't my whole view of immigration." + }, + { + "id": "commonality", + "role": "commonality", + "text": "I'd be okay with practical-English sessions in Owen Sound, with childcare, that explain the library, the bus, and a township office, while township business stays in English and the sessions stop short of telling newcomers which customs to keep. This isn't my whole view of immigration." + } ] }, { "id": "ranked-approval-poll", "title": "Owen Sound dual-count poll", - "notes": ["Draft bridge. Unevaluated. The older voting group stays a plain board of separate planks."], + "notes": [ + "Draft bridge. Unevaluated. The older voting group stays a plain board of separate planks." + ], "statements": [ - { "id": "natural-left", "role": "natural-left", "text": "First-past-the-post wastes my vote. I want ranked ballots." }, - { "id": "natural-right", "role": "natural-right", "text": "First-past-the-post rewards the biggest camp. I want approval voting, not a ranked system." }, - { "id": "modified-left", "role": "modified-left", "text": "First-past-the-post wastes my vote. I want ranked ballots for a real election. I'd be okay with one Owen Sound community association running a non-binding poll and publishing both a ranked count and an approval count of the same ballots. That is not a change to Owen Sound's municipal elections, and publishing the approval count is not me dropping ranked ballots." }, - { "id": "modified-right", "role": "modified-right", "text": "First-past-the-post rewards the biggest camp. I want approval voting, not a ranked system, for a real election. I'd be okay with one Owen Sound community association running a non-binding poll and publishing both a ranked count and an approval count of the same ballots. That is not a change to Owen Sound's municipal elections, and publishing the ranked count is not me adopting ranked ballots." }, - { "id": "commonality", "role": "commonality", "text": "I'd be okay with one Owen Sound community association running a non-binding poll and publishing both a ranked count and an approval count of the same ballots. That is not a change to Owen Sound's municipal elections." } + { + "id": "natural-left", + "role": "natural-left", + "text": "First-past-the-post wastes my vote. I want ranked ballots." + }, + { + "id": "natural-right", + "role": "natural-right", + "text": "First-past-the-post rewards the biggest camp. I want approval voting, not a ranked system." + }, + { + "id": "modified-left", + "role": "modified-left", + "text": "First-past-the-post wastes my vote. I want ranked ballots for a real election. I'd be okay with one Owen Sound community association running a non-binding poll and publishing both a ranked count and an approval count of the same ballots. That is not a change to Owen Sound's municipal elections, and publishing the approval count is not me dropping ranked ballots." + }, + { + "id": "modified-right", + "role": "modified-right", + "text": "First-past-the-post rewards the biggest camp. I want approval voting, not a ranked system, for a real election. I'd be okay with one Owen Sound community association running a non-binding poll and publishing both a ranked count and an approval count of the same ballots. That is not a change to Owen Sound's municipal elections, and publishing the ranked count is not me adopting ranked ballots." + }, + { + "id": "commonality", + "role": "commonality", + "text": "I'd be okay with one Owen Sound community association running a non-binding poll and publishing both a ranked count and an approval count of the same ballots. That is not a change to Owen Sound's municipal elections." + } ] }, { "id": "checkout-trial-bridge", "title": "Owen Sound checkout trial bridge", - "notes": ["Draft bridge. Unevaluated. The crypto-merchants planks stay on their own board."], + "notes": [ + "Draft bridge. Unevaluated. The crypto-merchants planks stay on their own board." + ], "statements": [ - { "id": "natural-left", "role": "natural-left", "text": "I want shops to take crypto so a bank can't decide whether a customer gets to pay." }, - { "id": "natural-right", "role": "natural-right", "text": "I'm tired of handing three percent of every sale to the card companies." }, - { "id": "modified-left", "role": "modified-left", "text": "I want a willing shop and a willing customer to be able to complete a payment when a bank has blocked that customer. Replacing the banks is a bigger thing than this. I'd be okay with six named shops in Owen Sound trying, for three months, a checkout that can take a crypto payment and refund it, show the fee on a twenty-dollar sale before the customer pays, and keep taking cash and ordinary cards the whole time." }, - { "id": "modified-right", "role": "modified-right", "text": "I'm tired of handing three percent of every sale to the card companies. I don't care about crypto as a cause. I'd still be okay with six named shops in Owen Sound trying, for three months, a checkout that can take a crypto payment and refund it, show the fee on a twenty-dollar sale before the customer pays, and keep taking cash and ordinary cards the whole time. If the trial is a bad deal, I want the fees and failures published." }, - { "id": "commonality", "role": "commonality", "text": "I'd be okay with six named shops in Owen Sound trying, for three months, a checkout that can take a crypto payment and refund it, show the fee on a twenty-dollar sale before the customer pays, and keep taking cash and ordinary cards the whole time." } + { + "id": "natural-left", + "role": "natural-left", + "text": "I want shops to take crypto so a bank can't decide whether a customer gets to pay." + }, + { + "id": "natural-right", + "role": "natural-right", + "text": "I'm tired of handing three percent of every sale to the card companies." + }, + { + "id": "modified-left", + "role": "modified-left", + "text": "I want a willing shop and a willing customer to be able to complete a payment when a bank has blocked that customer. Replacing the banks is a bigger thing than this. I'd be okay with shops in Owen Sound trying a checkout that can take a crypto payment and refund it, show the fee before the customer pays, and keep taking cash and ordinary cards the whole time." + }, + { + "id": "modified-right", + "role": "modified-right", + "text": "I'm tired of handing three percent of every sale to the card companies. I don't care about crypto as a cause. I'd still be okay with shops in Owen Sound trying a checkout that can take a crypto payment and refund it, show the fee before the customer pays, and keep taking cash and ordinary cards the whole time. If the trial is a bad deal, I want the fees and failures published." + }, + { + "id": "commonality", + "role": "commonality", + "text": "I'd be okay with shops in Owen Sound trying a checkout that can take a crypto payment and refund it, show the fee before the customer pays, and keep taking cash and ordinary cards the whole time." + } ] }, { "id": "minors-medicine", "title": "Minors' medicine and courtesy", - "notes": ["Draft bridge. Unevaluated. Does not settle the accepted schools-pushing cluster, classroom names, or a school approving drugs."], + "notes": [ + "Draft bridge. Unevaluated. Does not settle the accepted schools-pushing cluster, classroom names, or a school approving drugs." + ], "statements": [ - { "id": "natural-left", "role": "natural-left", "text": "I want a young person in distress about their sex to be able to get medical treatment, including hormones, and I want the rest of us to stop being cruel about it." }, - { "id": "natural-right", "role": "natural-right", "text": "I don't want children given drugs or surgery to try to change their sex." }, - { "id": "modified-left", "role": "modified-left", "text": "I want adults to make their own medical decisions, and I want disagreeing with someone to not be a reason to harass them. I'd prefer doctors and families to decide about hormones for minors case by case, but I'd be okay with a rule that minors are not given cross-sex hormones or genital surgery, that an adult makes their own medical decision, and that disagreeing with someone is not a reason to harass them. This isn't my ideal." }, - { "id": "modified-right", "role": "modified-right", "text": "I don't want children given drugs or surgery to try to change their sex. I'd be okay with a rule that minors are not given cross-sex hormones or genital surgery, that an adult makes their own medical decision, and that disagreeing with someone is not a reason to harass them. What name a classroom uses, and whether a school may approve those drugs, are separate questions, and this isn't my whole view." }, - { "id": "commonality", "role": "commonality", "text": "I'd be okay with a rule that minors are not given cross-sex hormones or genital surgery, that an adult makes their own medical decision, and that disagreeing with someone is not a reason to harass them. This isn't my whole view." } + { + "id": "natural-left", + "role": "natural-left", + "text": "I want a young person in distress about their sex to be able to get medical treatment, including hormones, and I want the rest of us to stop being cruel about it." + }, + { + "id": "natural-right", + "role": "natural-right", + "text": "I don't want children given drugs or surgery to try to change their sex." + }, + { + "id": "modified-left", + "role": "modified-left", + "text": "I want adults to make their own medical decisions, and I want disagreeing with someone to not be a reason to harass them. I'd prefer doctors and families to decide about hormones for minors case by case, but I'd be okay with a rule that minors are not given cross-sex hormones or genital surgery, that an adult makes their own medical decision, and that disagreeing with someone is not a reason to harass them. This isn't my ideal." + }, + { + "id": "modified-right", + "role": "modified-right", + "text": "I don't want children given drugs or surgery to try to change their sex. I'd be okay with a rule that minors are not given cross-sex hormones or genital surgery, that an adult makes their own medical decision, and that disagreeing with someone is not a reason to harass them. What name a classroom uses, and whether a school may approve those drugs, are separate questions, and this isn't my whole view." + }, + { + "id": "commonality", + "role": "commonality", + "text": "I'd be okay with a rule that minors are not given cross-sex hormones or genital surgery, that an adult makes their own medical decision, and that disagreeing with someone is not a reason to harass them. This isn't my whole view." + } ] }, { "id": "opinion-employment", "title": "Ordinary opinions and employment", - "notes": ["Draft bridge. Unevaluated."], + "notes": [ + "Draft bridge. Unevaluated." + ], "statements": [ - { "id": "natural-left", "role": "natural-left", "text": "Nobody should lose their livelihood because they said something unpopular." }, - { "id": "natural-right", "role": "natural-right", "text": "Institutions are ending people's careers over ordinary political opinions, and that should stop." }, - { "id": "modified-left", "role": "modified-left", "text": "I don't want someone treated as unemployable for an ordinary political opinion. I still want a workplace to respond to threats, to harassment of coworkers, and to someone refusing to do the job. I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, if threats, harassment of coworkers, and refusing the work still were, and if a published appeal came before that treatment. I'd still rather a workplace could tell people not to campaign for a candidate while they are on the clock. I feel less strongly about that than about someone losing a livelihood, and I don't have to defend every opinion." }, - { "id": "modified-right", "role": "modified-right", "text": "Institutions should stop ending people's careers over ordinary political opinions. I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, if threats, harassment of coworkers, and refusing the work still were, and if a published appeal came before that treatment. I'd still rather a church or a private club could refuse membership over an ordinary political opinion. I feel more strongly about that freedom than about employment rules, and I don't need every sanction anywhere to be forbidden." }, - { "id": "commonality", "role": "commonality", "text": "I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, if threats, harassment of coworkers, and refusing the work still were, and if a published appeal came before that treatment." } + { + "id": "natural-left", + "role": "natural-left", + "text": "Nobody should lose their livelihood because they said something unpopular." + }, + { + "id": "natural-right", + "role": "natural-right", + "text": "Institutions are ending people's careers over ordinary political opinions, and that should stop." + }, + { + "id": "modified-left", + "role": "modified-left", + "text": "I don't want someone treated as unemployable for an ordinary political opinion. I still want a workplace to respond to threats, to harassment of coworkers, and to someone refusing to do the job. I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, if threats, harassment of coworkers, and refusing the work still were, and if a published appeal came before that treatment. I'd still rather a workplace could tell people not to campaign for a candidate while they are on the clock. I feel less strongly about that than about someone losing a livelihood, and I don't have to defend every opinion." + }, + { + "id": "modified-right", + "role": "modified-right", + "text": "Institutions should stop ending people's careers over ordinary political opinions. I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, if threats, harassment of coworkers, and refusing the work still were, and if a published appeal came before that treatment. I'd still rather a church or a private club could refuse membership over an ordinary political opinion. I feel more strongly about that freedom than about employment rules, and I don't need every sanction anywhere to be forbidden." + }, + { + "id": "commonality", + "role": "commonality", + "text": "I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, if threats, harassment of coworkers, and refusing the work still were, and if a published appeal came before that treatment." + } ] }, { @@ -389,18 +409,39 @@ "The archive, the guide, the Owen Sound evening, the directory, and the host handoff are separate planks. A boycott and narrower-than-both are incompatible positions. Neither is an implication of the commonality, and neither is published as an arrow. Not accepted seed." ], "statements": [ - { "id": "natural-left", "role": "natural-left", "text": "I don't like Trump, and I still think it's foolish for Canadians to cut off ordinary buying and family visits to the US." }, - { "id": "natural-right", "role": "natural-right", "text": "Canada should keep its ordinary ties with the US. There's nothing wrong with that." }, - { "id": "modified-left", "role": "modified-left", "text": "I don't like the current US administration. I'd still rather Canadians keep buying ordinary goods from US businesses and visiting family there than join a boycott of those ordinary ties. Ordinary Canadians should keep buying from US businesses and visiting family in the US. This is not a statement about the current US administration. I'd still rather people buy the Canadian good when the price and quality are the same. I feel less strongly about that preference than about refusing a boycott." }, - { "id": "modified-right", "role": "modified-right", "text": "I want Canadians to keep buying ordinary goods from US businesses and visiting family in the US. Ordinary Canadians should keep buying from US businesses and visiting family in the US. This is not a statement about the current US administration. I'd still rather Canada also keep shared border staffing and ordinary military exercises with the US. I feel more strongly about purchases and family visits than about those, and I am not asking anyone to praise the administration." }, - { "id": "commonality", "role": "commonality", "text": "Ordinary Canadians should keep buying from US businesses and visiting family in the US. This is not a statement about the current US administration." }, - { "id": "cultural-archive", "text": "I want a public archive, kept for one year, of dated stories from people in Owen Sound about family visits and ordinary purchases across the Canada-US border. A contributor's name goes on a story only if they asked for that." }, - { "id": "ties-guide", "text": "I want a public guide for people in Owen Sound that lists practical steps for a family visit to the US and for buying from a US business, and that does not tell the reader which party or administration to support." }, - { "id": "community-event", "text": "I want one Owen Sound evening, with a published agenda and reusable materials a later host can copy, where neighbors can talk about family visits and ordinary purchases across the Canada-US border. Nobody at that evening is asked to praise or condemn the current US administration." }, - { "id": "exchange-directory", "text": "I want a directory, checked once a month for one year, of people in Grey County who will host a conversation about Canada-US family visits and ordinary purchases. Each listing names the person, the town, and how a reader can tell the listing is still current." }, - { "id": "host-handoff", "text": "I want written handoff steps so a second person in Owen Sound can host the next conversation about Canada-US family visits without the first host." }, - { "id": "boycott-ordinary-ties", "text": "I want ordinary Canadians to stop buying from US businesses and to stop family visits to the US while the current administration is in office. I will not sign a call for them to keep doing either of those things." }, - { "id": "narrower-than-visits", "text": "I want Canadians to keep visiting family in the US. I do not want ordinary Canadians told to keep buying from US businesses. A sentence that asks for both of those is more than I will sign." } + { + "id": "natural-left", + "role": "natural-left", + "text": "I don't like Trump, and I still think it's foolish for Canadians to cut off ordinary buying and family visits to the US." + }, + { + "id": "natural-right", + "role": "natural-right", + "text": "Canada should keep its ordinary ties with the US. There's nothing wrong with that." + }, + { + "id": "modified-left", + "role": "modified-left", + "text": "I don't like the current US administration. I'd still rather Canadians keep buying ordinary goods from US businesses and visiting family there than join a boycott of those ordinary ties. Ordinary Canadians should keep buying from US businesses and visiting family in the US. This is not a statement about the current US administration. I'd still rather people buy the Canadian good when the price and quality are the same. I feel less strongly about that preference than about refusing a boycott." + }, + { + "id": "modified-right", + "role": "modified-right", + "text": "I want Canadians to keep buying ordinary goods from US businesses and visiting family in the US. Ordinary Canadians should keep buying from US businesses and visiting family in the US. This is not a statement about the current US administration. I'd still rather Canada also keep shared border staffing and ordinary military exercises with the US. I feel more strongly about purchases and family visits than about those, and I am not asking anyone to praise the administration." + }, + { + "id": "commonality", + "role": "commonality", + "text": "Ordinary Canadians should keep buying from US businesses and visiting family in the US. This is not a statement about the current US administration." + }, + { + "id": "boycott-ordinary-ties", + "text": "I want ordinary Canadians to stop buying from US businesses and to stop family visits to the US while the current administration is in office. I will not sign a call for them to keep doing either of those things." + }, + { + "id": "narrower-than-visits", + "text": "I want Canadians to keep visiting family in the US. I do not want ordinary Canadians told to keep buying from US businesses. A sentence that asks for both of those is more than I will sign." + } ] }, { @@ -466,22 +507,6 @@ { "id": "pole-accelerate", "text": "We should not pause AI capabilities research. Falling behind other labs and other countries is the danger I actually take seriously." - }, - { - "id": "treaty-petition", - "text": "I want a public petition that asks governments to negotiate an international treaty pausing new research aimed at making AI systems more capable, while work on catastrophic harm continues, and I want the petition text and the signature count published." - }, - { - "id": "alignment-note", - "text": "I want a published piece of work on how to keep a more capable AI system from doing catastrophic harm, with the method and the result written so a second person can check them, and without a claim that the problem has been solved." - }, - { - "id": "warning-digest", - "text": "I want a one-year digest that lists public warnings from people who work on AI, with the date and the source, and that does not add a claim the source did not make." - }, - { - "id": "pause-host-kit", - "text": "I want a written host kit so a second person can run a meeting about that pause treaty without the first host." } ] } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index a1002541..b0017b8e 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 125, - "maxStatements": 125, + "minStatements": 94, + "maxStatements": 94, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -37,36 +37,6 @@ "groupId": "crypto-merchants", "statementId": "refundable-checkout" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "published-trial-record" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "checkout-security-review" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "merchant-directory" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "deployment-clinic" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "host-kit" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "keep-cash-and-card" - }, { "collectionId": "network-societies-v1-b2", "groupId": "crypto-merchants", @@ -76,11 +46,6 @@ "collectionId": "network-societies-v1-b2", "groupId": "crypto-merchants", "statementId": "bank-blocking" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "crypto-merchants", - "statementId": "fee-schedule" } ] }, @@ -95,26 +60,11 @@ "groupId": "civic-assimilation", "statementId": "language-sessions" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "civics-pack" - }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", "statementId": "park-paths" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "tutor-check" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "organizer-handoff" - }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", @@ -130,11 +80,6 @@ "groupId": "civic-assimilation", "statementId": "housing-before-recruiting" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "welcome-signage" - }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", @@ -163,11 +108,6 @@ "groupId": "christian-teaching", "statementId": "midweek-notes" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "transcription" - }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", @@ -183,11 +123,6 @@ "groupId": "christian-teaching", "statementId": "no-joint-doctrine" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "host-kit" - }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", @@ -198,11 +133,6 @@ "groupId": "christian-teaching", "statementId": "keep-notes-inside" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "interchurch-calendar" - }, { "collectionId": "network-societies-v1-b2", "groupId": "shared-goods", @@ -226,26 +156,6 @@ "groupId": "home-learning", "statementId": "science-unit" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "field-trip" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "science-kits" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "saturday-meetups" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "successor-host" - }, { "collectionId": "network-societies-v1-b2", "groupId": "home-learning", @@ -266,11 +176,6 @@ "groupId": "home-learning", "statementId": "staffed-schools" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "lab-safety" - }, { "collectionId": "network-societies-v1-b2", "groupId": "shared-goods", @@ -451,21 +356,6 @@ "groupId": "voting", "statementId": "show-of-hands" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "voting", - "statementId": "counting-toolkit" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "voting", - "statementId": "poll-host-kit" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "voting", - "statementId": "trial-directory" - }, { "collectionId": "network-societies-v1-b2", "groupId": "abortion-forum", @@ -479,11 +369,31 @@ "activityTier": "medium", "membershipWeight": 8, "statementRefs": [ - { "collectionId": "network-societies-v1-b2", "groupId": "grey-assimilation", "statementId": "natural-left" }, - { "collectionId": "network-societies-v1-b2", "groupId": "grey-assimilation", "statementId": "natural-right" }, - { "collectionId": "network-societies-v1-b2", "groupId": "grey-assimilation", "statementId": "modified-left" }, - { "collectionId": "network-societies-v1-b2", "groupId": "grey-assimilation", "statementId": "modified-right" }, - { "collectionId": "network-societies-v1-b2", "groupId": "grey-assimilation", "statementId": "commonality" } + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "grey-assimilation", + "statementId": "commonality" + } ] }, { @@ -492,11 +402,31 @@ "activityTier": "medium", "membershipWeight": 7, "statementRefs": [ - { "collectionId": "network-societies-v1-b2", "groupId": "ranked-approval-poll", "statementId": "natural-left" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ranked-approval-poll", "statementId": "natural-right" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ranked-approval-poll", "statementId": "modified-left" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ranked-approval-poll", "statementId": "modified-right" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ranked-approval-poll", "statementId": "commonality" } + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "commonality" + } ] }, { @@ -505,11 +435,31 @@ "activityTier": "medium", "membershipWeight": 8, "statementRefs": [ - { "collectionId": "network-societies-v1-b2", "groupId": "checkout-trial-bridge", "statementId": "natural-left" }, - { "collectionId": "network-societies-v1-b2", "groupId": "checkout-trial-bridge", "statementId": "natural-right" }, - { "collectionId": "network-societies-v1-b2", "groupId": "checkout-trial-bridge", "statementId": "modified-left" }, - { "collectionId": "network-societies-v1-b2", "groupId": "checkout-trial-bridge", "statementId": "modified-right" }, - { "collectionId": "network-societies-v1-b2", "groupId": "checkout-trial-bridge", "statementId": "commonality" } + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "checkout-trial-bridge", + "statementId": "commonality" + } ] }, { @@ -518,11 +468,31 @@ "activityTier": "medium", "membershipWeight": 7, "statementRefs": [ - { "collectionId": "network-societies-v1-b2", "groupId": "minors-medicine", "statementId": "natural-left" }, - { "collectionId": "network-societies-v1-b2", "groupId": "minors-medicine", "statementId": "natural-right" }, - { "collectionId": "network-societies-v1-b2", "groupId": "minors-medicine", "statementId": "modified-left" }, - { "collectionId": "network-societies-v1-b2", "groupId": "minors-medicine", "statementId": "modified-right" }, - { "collectionId": "network-societies-v1-b2", "groupId": "minors-medicine", "statementId": "commonality" } + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "commonality" + } ] }, { @@ -531,11 +501,31 @@ "activityTier": "small", "membershipWeight": 6, "statementRefs": [ - { "collectionId": "network-societies-v1-b2", "groupId": "opinion-employment", "statementId": "natural-left" }, - { "collectionId": "network-societies-v1-b2", "groupId": "opinion-employment", "statementId": "natural-right" }, - { "collectionId": "network-societies-v1-b2", "groupId": "opinion-employment", "statementId": "modified-left" }, - { "collectionId": "network-societies-v1-b2", "groupId": "opinion-employment", "statementId": "modified-right" }, - { "collectionId": "network-societies-v1-b2", "groupId": "opinion-employment", "statementId": "commonality" } + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "commonality" + } ] }, { @@ -544,18 +534,41 @@ "activityTier": "small", "membershipWeight": 6, "statementRefs": [ - { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "natural-left" }, - { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "natural-right" }, - { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "modified-left" }, - { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "modified-right" }, - { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "commonality" }, - { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "cultural-archive" }, - { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "ties-guide" }, - { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "community-event" }, - { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "exchange-directory" }, - { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "host-handoff" }, - { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "boycott-ordinary-ties" }, - { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "narrower-than-visits" } + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "natural-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "natural-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "modified-left" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "modified-right" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "commonality" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "boycott-ordinary-ties" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "narrower-than-visits" + } ] }, { @@ -564,23 +577,71 @@ "activityTier": "medium", "membershipWeight": 8, "statementRefs": [ - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "commonality" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "natural-small-chance" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "modified-small-chance" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "natural-jobs" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "modified-jobs" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "natural-industry" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "modified-industry" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "natural-not-luddite" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "modified-not-luddite" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "natural-children" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "modified-children" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "pole-stop" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "pole-accelerate" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "treaty-petition" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "alignment-note" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "warning-digest" }, - { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "pause-host-kit" } + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-small-chance" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-small-chance" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-jobs" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-jobs" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-industry" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-industry" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-not-luddite" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-not-luddite" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "natural-children" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-children" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "pole-stop" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "pole-accelerate" + } ] } ], @@ -1151,7 +1212,9 @@ "small chance", "pause treaty" ], - "causeIds": ["ai-pause"], + "causeIds": [ + "ai-pause" + ], "spotlightOrder": 25 }, { @@ -1163,7 +1226,9 @@ "job loss", "pause treaty" ], - "causeIds": ["ai-pause"], + "causeIds": [ + "ai-pause" + ], "spotlightOrder": 26 }, { @@ -1174,7 +1239,9 @@ "interests": [ "industry warnings" ], - "causeIds": ["ai-pause"], + "causeIds": [ + "ai-pause" + ], "spotlightOrder": 27 }, { @@ -1186,7 +1253,9 @@ "technology", "risk" ], - "causeIds": ["ai-pause"], + "causeIds": [ + "ai-pause" + ], "spotlightOrder": 28 }, { @@ -1198,7 +1267,9 @@ "children", "executives" ], - "causeIds": ["ai-pause"], + "causeIds": [ + "ai-pause" + ], "spotlightOrder": 29 }, { @@ -1210,7 +1281,9 @@ "extinction", "full stop" ], - "causeIds": ["ai-pause"], + "causeIds": [ + "ai-pause" + ], "spotlightOrder": 30 }, { @@ -1221,7 +1294,9 @@ "interests": [ "capabilities race" ], - "causeIds": ["ai-pause"], + "causeIds": [ + "ai-pause" + ], "spotlightOrder": 31 }, { @@ -1233,7 +1308,9 @@ "Owen Sound archive", "host handoff" ], - "causeIds": ["canada-us-ties"], + "causeIds": [ + "canada-us-ties" + ], "spotlightOrder": 32 }, { @@ -1245,7 +1322,9 @@ "US businesses", "host directory" ], - "causeIds": ["canada-us-ties"], + "causeIds": [ + "canada-us-ties" + ], "spotlightOrder": 33 }, { @@ -1257,7 +1336,9 @@ "family visits", "practical guide" ], - "causeIds": ["canada-us-ties"], + "causeIds": [ + "canada-us-ties" + ], "spotlightOrder": 34 }, { @@ -1268,7 +1349,9 @@ "interests": [ "boycott" ], - "causeIds": ["canada-us-ties"], + "causeIds": [ + "canada-us-ties" + ], "spotlightOrder": 35 }, { @@ -1280,40 +1363,242 @@ "family visits", "narrower ties" ], - "causeIds": ["canada-us-ties"], + "causeIds": [ + "canada-us-ties" + ], "spotlightOrder": 36 } ], "implicationAllowances": [ - { "from": { "collectionId": "compromise-abortion", "groupId": "abortion-gestational-cutoff", "statementId": "modified-left" }, "to": { "collectionId": "compromise-abortion", "groupId": "abortion-gestational-cutoff", "statementId": "commonality" }, "evidence": "accepted-bridge-role-pair" }, - { "from": { "collectionId": "compromise-abortion", "groupId": "abortion-gestational-cutoff", "statementId": "modified-right" }, "to": { "collectionId": "compromise-abortion", "groupId": "abortion-gestational-cutoff", "statementId": "commonality" }, "evidence": "accepted-bridge-role-pair" }, - { "from": { "collectionId": "lgbt-schools", "groupId": "lgbt-schools-pushing", "statementId": "modified-left" }, "to": { "collectionId": "lgbt-schools", "groupId": "lgbt-schools-pushing", "statementId": "commonality" }, "evidence": "accepted-bridge-role-pair" }, - { "from": { "collectionId": "lgbt-schools", "groupId": "lgbt-schools-pushing", "statementId": "modified-right" }, "to": { "collectionId": "lgbt-schools", "groupId": "lgbt-schools-pushing", "statementId": "commonality" }, "evidence": "accepted-bridge-role-pair" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "grey-assimilation", "statementId": "modified-left" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "grey-assimilation", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "grey-assimilation", "statementId": "modified-right" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "grey-assimilation", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "ranked-approval-poll", "statementId": "modified-left" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "ranked-approval-poll", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "ranked-approval-poll", "statementId": "modified-right" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "ranked-approval-poll", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "checkout-trial-bridge", "statementId": "modified-left" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "checkout-trial-bridge", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "checkout-trial-bridge", "statementId": "modified-right" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "checkout-trial-bridge", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "minors-medicine", "statementId": "modified-left" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "minors-medicine", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "minors-medicine", "statementId": "modified-right" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "minors-medicine", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "opinion-employment", "statementId": "modified-left" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "opinion-employment", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "opinion-employment", "statementId": "modified-right" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "opinion-employment", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "modified-left" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "modified-right" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "canada-us-ties", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "modified-small-chance" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "modified-jobs" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "modified-industry" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "modified-not-luddite" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" }, - { "from": { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "modified-children" }, "to": { "collectionId": "network-societies-v1-b2", "groupId": "ai-pause", "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" } + { + "from": { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "modified-left" + }, + "to": { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "commonality" + }, + "evidence": "accepted-bridge-role-pair" + }, + { + "from": { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "modified-right" + }, + "to": { + "collectionId": "compromise-abortion", + "groupId": "abortion-gestational-cutoff", + "statementId": "commonality" + }, + "evidence": "accepted-bridge-role-pair" + }, + { + "from": { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "modified-left" + }, + "to": { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "commonality" + }, + "evidence": "accepted-bridge-role-pair" + }, + { + "from": { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "modified-right" + }, + "to": { + "collectionId": "lgbt-schools", + "groupId": "lgbt-schools-pushing", + "statementId": "commonality" + }, + "evidence": "accepted-bridge-role-pair" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ranked-approval-poll", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "minors-medicine", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "canada-us-ties", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-small-chance" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-jobs" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-industry" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-not-luddite" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "modified-children" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "ai-pause", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + } ], "actionRules": [ { "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 125, - "max": 125 + "min": 94, + "max": 94 } }, { @@ -1342,8 +1627,8 @@ "publish-statement" ], "targetCount": { - "min": 21, - "max": 21 + "min": 17, + "max": 17 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index ef9800aa..20698b7f 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -14,7 +14,7 @@ Canada–US stays a bridge. The shared sentence is still ordinary purchases and ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. The source files now add two projects that are not in that run: Printed moderator checklist and Plain-text Grey County notice (125 statements, 64 projects). On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 94 statements and 64 projects. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board and the Grey County conduct board are ordinary boards, so their own sentences stay visible there. diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json b/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json index 00905e87..45a3f95e 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json @@ -1,22 +1,114 @@ { "note": "Authored persona decisions for the pilot. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection.", "people": [ - { "userId": "user-001", "name": "Ruth", "signs": ["refundable-checkout", "published-trial-record", "fee-schedule", "keep-cash-and-card"], "rejects": ["refuse-crypto-payments"], "funds": "Six-shop refundable checkout trial" }, - { "userId": "user-003", "name": "Imani", "signs": ["language-sessions", "welcome-signage", "session-limit"], "rejects": ["housing-before-recruiting"], "funds": "Twelve conversation sessions" }, - { "userId": "user-006", "name": "Doug", "signs": ["park-paths", "english-township-business", "housing-before-recruiting"], "rejects": ["own-language-communities"], "funds": "Harrison Park path season" }, - { "userId": "user-004", "name": "Owen", "signs": ["science-unit", "no-religious-claims", "school-families-may-borrow", "class-host-directory"], "rejects": ["midweek-notes", "keep-notes-inside"], "unsigned": ["staffed-schools"] }, - { "userId": "user-002", "name": "Helen", "signs": ["midweek-notes", "named-confession", "no-joint-doctrine", "class-host-directory"], "rejects": ["civic-transcription-only"] }, - { "userId": "user-005", "name": "Len", "signs": ["keep-cash-and-card", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "notes": "Direct agreement with Ruth on the trial. Not an implication bridge." }, - { "userId": "user-021", "name": "Pat", "delegatesTo": "user-011", "limitedTo": "crypto-merchants", "revokes": true, "notes": "Ned (user-011) is a delegate who shares Pat's causes, so the planner can name Ned on Pat's notes. Delegated spending is not an action in the current adapter. Revocation is planned for some notes, not necessarily Pat's." }, - { "userId": "user-016", "name": "June", "declinesAlignment": "A project that merely mentions Grey County is not enough.", "grantsAlignment": "Independent checkout security review against checkout-security-review" } + { + "userId": "user-001", + "name": "Ruth", + "signs": [ + "refundable-checkout" + ], + "rejects": [ + "refuse-crypto-payments" + ], + "funds": "Six-shop refundable checkout trial" + }, + { + "userId": "user-003", + "name": "Imani", + "signs": [ + "language-sessions", + "session-limit" + ], + "rejects": [ + "housing-before-recruiting" + ], + "funds": "Twelve conversation sessions" + }, + { + "userId": "user-006", + "name": "Doug", + "signs": [ + "park-paths", + "english-township-business", + "housing-before-recruiting" + ], + "rejects": [ + "own-language-communities" + ], + "funds": "Harrison Park path season" + }, + { + "userId": "user-004", + "name": "Owen", + "signs": [ + "science-unit", + "no-religious-claims", + "school-families-may-borrow", + "class-host-directory" + ], + "rejects": [ + "midweek-notes", + "keep-notes-inside" + ], + "unsigned": [ + "staffed-schools" + ] + }, + { + "userId": "user-002", + "name": "Helen", + "signs": [ + "midweek-notes", + "named-confession", + "no-joint-doctrine", + "class-host-directory" + ], + "rejects": [ + "civic-transcription-only" + ] + }, + { + "userId": "user-005", + "name": "Len", + "signs": [ + "refundable-checkout" + ], + "rejects": [ + "refuse-crypto-payments" + ], + "notes": "Direct agreement with Ruth on the trial. Not an implication bridge." + }, + { + "userId": "user-021", + "name": "Pat", + "delegatesTo": "user-011", + "limitedTo": "crypto-merchants", + "revokes": true, + "notes": "Ned (user-011) is a delegate who shares Pat's causes, so the planner can name Ned on Pat's notes. Delegated spending is not an action in the current adapter. Revocation is planned for some notes, not necessarily Pat's." + }, + { + "userId": "user-016", + "name": "June", + "declinesAlignment": "A project that merely mentions Grey County is not enough.", + "grantsAlignment": "Independent checkout security review, aligned to the Grey County blockchain-payment want." + } ], "implicationCandidates": { "status": "unevaluated", "reason": "No fresh affirmative result from the real implication-attester prompt is stored. The pilot therefore publishes no implication edges.", "proposed": [ - { "from": "keep-cash-and-card", "to": "refundable-checkout", "expect": "negative", "why": "Keeping cards does not imply wanting a crypto trial." }, - { "from": "language-sessions", "to": "housing-before-recruiting", "expect": "negative", "why": "Wanting classes does not imply a recruiting pause." }, - { "from": "class-host-directory", "to": "midweek-notes", "expect": "negative", "why": "A checked directory does not imply releasing church notes." } + { + "from": "language-sessions", + "to": "housing-before-recruiting", + "expect": "negative", + "why": "Wanting classes does not imply a recruiting pause." + }, + { + "from": "class-host-directory", + "to": "midweek-notes", + "expect": "negative", + "why": "A checked directory does not imply releasing church notes." + } ], "allianceNotRequiringABridge": "Ruth and Len can both fund the checkout trial while Len refuses a crypto-identity plank. That is existing overlap, not a modified-statement triple." } diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json b/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json index 504f215f..a1586857 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json @@ -2,32 +2,42 @@ "crypto-merchants": [ { "title": "Six-shop refundable checkout trial", - "outcome": "Ship an open-source checkout, with refunds, and run it for three months at six named Owen Sound shops. Publish the code and the shop list.", - "statementRefs": ["refundable-checkout", "published-trial-record"], + "outcome": "Ship an open-source checkout, with refunds, and run it for three months at six named Owen Sound shops. Publish the code and the shop list, and the shops keep taking cash and ordinary cards for the whole trial.", + "statementRefs": [ + "refundable-checkout" + ], "blocker": "No one shop can justify building a checkout whose useful result is a public trial record" }, { "title": "Independent checkout security review", "outcome": "Pay a reviewer who does not write the checkout to publish findings and unfixed items before the Owen Sound trial ends.", - "statementRefs": ["checkout-security-review"], + "statementRefs": [ + "refundable-checkout" + ], "blocker": "The shops and the programmer are poor judges of their own security claims" }, { "title": "Fee and failure table", "outcome": "Publish the fee on a twenty-dollar Owen Sound trial sale, and a table of failed payments, before anyone calls the trial a success.", - "statementRefs": ["fee-schedule", "published-trial-record"], + "statementRefs": [ + "refundable-checkout" + ], "blocker": "The numbers are useful to every later shop and owned by none of them" }, { "title": "Owen Sound merchant directory", "outcome": "Maintain, for one year, a directory that shows which trial shops still take the checkout and which shops stopped, with the date of each change.", - "statementRefs": ["merchant-directory"], + "statementRefs": [ + "refundable-checkout" + ], "blocker": "A directory nobody maintains becomes an advertisement" }, { "title": "Quarterly checkout clinic and host kit", "outcome": "Run four Saturday clinics in Owen Sound and leave a host kit so a second person can run the next one.", - "statementRefs": ["deployment-clinic", "host-kit"], + "statementRefs": [ + "refundable-checkout" + ], "blocker": "The clinic stops when the first host is busy unless the hosting steps are written down" } ], @@ -35,31 +45,41 @@ { "title": "Twelve conversation sessions", "outcome": "Hold twelve English conversation sessions in Owen Sound with childcare in the room, and publish attendance without naming children.", - "statementRefs": ["language-sessions"], + "statementRefs": [ + "language-sessions" + ], "blocker": "Childcare and a room have to be paid before the first session, and no single family captures the benefit" }, { "title": "Grey County civics pack", "outcome": "Write and release a plain-English pack for the library, the bus, a school meeting, and a township office in Grey County.", - "statementRefs": ["civics-pack"], + "statementRefs": [ + "language-sessions" + ], "blocker": "Each office explains itself differently, and no office is paid to write the combined pack" }, { "title": "Harrison Park path season", "outcome": "Run one summer of path repair in Harrison Park, Owen Sound, with newcomers and long-time residents, and publish hours and costs.", - "statementRefs": ["park-paths"], + "statementRefs": [ + "park-paths" + ], "blocker": "The work needs a full season of tools and insurance before anyone can see the paths" }, { "title": "Conversation-session handoff", "outcome": "Write the steps, contacts, and childcare arrangements so a second organizer can run the next Owen Sound session series.", - "statementRefs": ["organizer-handoff"], + "statementRefs": [ + "language-sessions" + ], "blocker": "The sessions are a public good only if they survive the first organizer" }, { "title": "Independent tutor-listing check", "outcome": "For one season, have someone who does not run the sessions check Grey County language-tutor listings and publish which listings failed.", - "statementRefs": ["tutor-check"], + "statementRefs": [ + "language-sessions" + ], "blocker": "A directory checked by its own organizer does not answer a skeptic" } ], @@ -67,31 +87,43 @@ { "title": "Midweek class notes", "outcome": "Release the notes for one Grey County congregation's midweek class under terms another congregation can reuse.", - "statementRefs": ["midweek-notes", "named-confession"], + "statementRefs": [ + "midweek-notes", + "named-confession" + ], "blocker": "The second congregation can copy the notes, so neither congregation is paid by the other to write them" }, { "title": "Midweek class transcript", "outcome": "Transcribe that class for people who cannot hear the recordings, and publish the transcript with the confession named.", - "statementRefs": ["transcription", "named-confession"], + "statementRefs": [ + "midweek-notes", + "named-confession" + ], "blocker": "Transcription is useful to every later listener and costly to the first congregation" }, { "title": "One-season substitute rota", "outcome": "Publish a Sunday rota and sermon notes so a substitute can preach at one named Grey County church for one season.", - "statementRefs": ["substitute-rota", "interchurch-calendar"], + "statementRefs": [ + "substitute-rota" + ], "blocker": "Each small church has too few substitutes to keep the rota alone" }, { "title": "Second-church host kit", "outcome": "Write a one-season kit so a second Grey County church can run the same rota without the first host.", - "statementRefs": ["host-kit"], + "statementRefs": [ + "substitute-rota" + ], "blocker": "The rota dies with the first host unless the steps are written down" }, { "title": "Grey County class-host directory", "outcome": "Publish one directory of Grey County people who will host a small class, with affiliation and an independent checker's note, and maintain it for one year.", - "statementRefs": ["class-host-directory"], + "statementRefs": [ + "class-host-directory" + ], "blocker": "Churches, tutors, and home-school hosts each need the same checked list, and none of them owns it" } ], @@ -99,31 +131,44 @@ { "title": "Printable grade-six science unit", "outcome": "Release one grade-six science unit a Grey County family can print, with the teaching method named on the first page and no religious claims in the activities.", - "statementRefs": ["science-unit", "method-on-the-page", "no-religious-claims"], + "statementRefs": [ + "science-unit", + "method-on-the-page", + "no-religious-claims" + ], "blocker": "Every family can copy the unit after the first author writes it" }, { "title": "Grey County field-trip pack", "outcome": "Release the permission form, map, and safety notes for one Grey County field trip so another family, including a school family, can run it.", - "statementRefs": ["field-trip", "school-families-may-borrow"], + "statementRefs": [ + "science-unit", + "school-families-may-borrow" + ], "blocker": "The first family pays for the reconnaissance and every later family can copy the pack" }, { "title": "Store-item science kits", "outcome": "Publish instructions for a home science kit of ordinary store items, including hazards and the adult supervision each activity needs.", - "statementRefs": ["science-kits", "lab-safety"], + "statementRefs": [ + "science-unit" + ], "blocker": "A safe kit has to be tried once before other families can reuse it" }, { "title": "Eight Owen Sound Saturdays", "outcome": "Host eight Saturday meetups in Owen Sound for home-school families and publish the dates before the first meeting.", - "statementRefs": ["saturday-meetups"], + "statementRefs": [ + "science-unit" + ], "blocker": "The room and the dates have to be reserved before any family can rely on them" }, { "title": "Successor host notes", "outcome": "Name a successor and write the notes so the Owen Sound meetups can run a second season without the first host.", - "statementRefs": ["successor-host"], + "statementRefs": [ + "science-unit" + ], "blocker": "A meetup series that only the first host can run is not a maintained public good" } ] diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json index 0848af3f..7943db15 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json @@ -3,76 +3,122 @@ "id": "network-societies-v1", "title": "Synthetic network-societies pilot statements", "description": "Campaign-local synthetic statements for the four-family network-societies pilot. They are not accepted real Conceptspace seed content.", - "notes": ["Synthetic campaign only. Do not copy these into seed-content/."], + "notes": [ + "Synthetic campaign only. Do not copy these into seed-content/." + ], "groups": [ { "id": "crypto-merchants", "title": "Crypto-friendly merchant trials in Owen Sound", "statements": [ - { "id": "refundable-checkout", "text": "I want six named shops in Owen Sound, Ontario, to be able to try a checkout that takes a crypto payment and can refund it, for a three-month trial." }, - { "id": "published-trial-record", "text": "I want the Owen Sound crypto-checkout trial to publish every fee, failed payment, and refund from those three months." }, - { "id": "checkout-security-review", "text": "I want an independent reviewer to publish the security findings in the Owen Sound trial checkout, including findings the shops have not yet fixed." }, - { "id": "merchant-directory", "text": "I want a directory of Owen Sound shops in the checkout trial that says which shops are still taking the payment and which shops stopped." }, - { "id": "deployment-clinic", "text": "I want a quarterly Saturday clinic in Owen Sound where a shop can run one test sale on the trial checkout and leave with a written result." }, - { "id": "host-kit", "text": "I want a written host kit so a second person can run the next Owen Sound checkout clinic without the first host." }, - { "id": "keep-cash-and-card", "text": "I want every shop in the Owen Sound crypto trial to keep taking cash and ordinary cards for the whole three months." }, - { "id": "refuse-crypto-payments", "text": "I want shops in Owen Sound to refuse customer payments in crypto." }, - { "id": "bank-blocking", "text": "I want a willing Owen Sound shop and a willing customer to be able to complete a payment when a bank has blocked that customer." }, - { "id": "fee-schedule", "text": "I want the Owen Sound trial checkout to show the fee for a twenty-dollar sale before the customer pays." } + { + "id": "refundable-checkout", + "text": "I want a business in Grey County, Ontario, to be able to take a blockchain payment from a customer who asks to pay that way." + }, + { + "id": "refuse-crypto-payments", + "text": "I want shops in Grey County to refuse customer payments in crypto." + }, + { + "id": "bank-blocking", + "text": "I want a willing shop and a willing customer in Grey County to be able to complete a payment when a bank has blocked that customer." + } ] }, { "id": "civic-assimilation", "title": "Shared civic life in Grey County", "statements": [ - { "id": "language-sessions", "text": "I want twelve practical English conversation sessions in Owen Sound, Ontario, with childcare in the room, for newcomers and long-time residents together." }, - { "id": "civics-pack", "text": "I want a reusable pack that explains, in plain English, how a person in Grey County uses the library, the bus, a school meeting, and a township office." }, - { "id": "park-paths", "text": "I want one summer of newcomers and long-time residents repairing paths in Harrison Park, Owen Sound, with the hours and costs published at the end." }, - { "id": "tutor-check", "text": "I want the Grey County language-tutor listings checked by someone who does not run the sessions, including a public note when a listing fails the check." }, - { "id": "organizer-handoff", "text": "I want a written handoff so a second organizer can run the next Owen Sound conversation session without the first organizer." }, - { "id": "english-township-business", "text": "I want township business in Grey County to stay in English, including when language classes are offered." }, - { "id": "own-language-communities", "text": "I want newcomers in Grey County to be able to keep their own language communities without a public program that expects them to adopt local customs." }, - { "id": "housing-before-recruiting", "text": "I want Grey County to stop recruiting more newcomers until the published housing and clinic wait times get shorter." }, - { "id": "welcome-signage", "text": "I want the Owen Sound bus terminal and library to post, in the languages already spoken in town, where the conversation sessions meet." }, - { "id": "session-limit", "text": "I want the Owen Sound conversation sessions to teach practical English, and I want them to stop short of telling newcomers which customs to keep." } + { + "id": "language-sessions", + "text": "I want newcomers in Grey County, Ontario, to be able to learn practical English, and to learn how the library, the bus, a school meeting, and a township office work." + }, + { + "id": "park-paths", + "text": "I want newcomers and long-time residents in Grey County to take on practical work together in the county's public places." + }, + { + "id": "english-township-business", + "text": "I want township business in Grey County to stay in English, including when language classes are offered." + }, + { + "id": "own-language-communities", + "text": "I want newcomers in Grey County to be able to keep their own language communities without a public program that expects them to adopt local customs." + }, + { + "id": "housing-before-recruiting", + "text": "I want Grey County to stop recruiting more newcomers until the published housing and clinic wait times get shorter." + }, + { + "id": "session-limit", + "text": "I want practical-English classes in Grey County to stop short of telling newcomers which customs to keep." + } ] }, { "id": "christian-teaching", "title": "Christian teaching resources in Grey County", "statements": [ - { "id": "midweek-notes", "text": "I want the teaching notes for one Grey County congregation's midweek class released so another congregation can reuse them." }, - { "id": "transcription", "text": "I want the recordings of that Grey County midweek class transcribed for people who cannot hear them." }, - { "id": "substitute-rota", "text": "I want a published rota and sermon notes so a substitute can preach at a named Grey County church when the regular preacher is away for one season." }, - { "id": "named-confession", "text": "I want shared Grey County teaching notes to name the confession they come from." }, - { "id": "no-joint-doctrine", "text": "I want congregations that reuse the same Grey County teaching notes to stop short of publishing a joint statement of doctrine." }, - { "id": "host-kit", "text": "I want a one-season host kit so a second Grey County church can run the substitute-preacher rota after the first season." }, - { "id": "civic-transcription-only", "text": "I want to help transcribe public civic materials in Grey County, and I do not want that work to include church teaching." }, - { "id": "keep-notes-inside", "text": "I want a congregation's teaching notes to stay inside that congregation." }, - { "id": "interchurch-calendar", "text": "I want a public calendar of which Grey County church is short a preacher on which Sunday this season." } + { + "id": "midweek-notes", + "text": "I want a Grey County congregation to be able to reuse another congregation's teaching notes." + }, + { + "id": "substitute-rota", + "text": "I want a Grey County church to be able to have a substitute preacher when the regular preacher is away." + }, + { + "id": "named-confession", + "text": "I want shared Grey County teaching notes to name the confession they come from." + }, + { + "id": "no-joint-doctrine", + "text": "I want congregations that reuse the same Grey County teaching notes to stop short of publishing a joint statement of doctrine." + }, + { + "id": "civic-transcription-only", + "text": "I want to help transcribe public civic materials in Grey County, and I do not want that work to include church teaching." + }, + { + "id": "keep-notes-inside", + "text": "I want a congregation's teaching notes to stay inside that congregation." + } ] }, { "id": "home-learning", "title": "Home learning in Grey County", "statements": [ - { "id": "science-unit", "text": "I want one open grade-six science unit, with materials a Grey County home-school family can print." }, - { "id": "field-trip", "text": "I want the permission form, map, and safety notes for one Grey County field trip released so another family can run the same trip." }, - { "id": "science-kits", "text": "I want instructions for a home science kit that uses ordinary store items, written so a Grey County family can repeat it." }, - { "id": "saturday-meetups", "text": "I want eight Saturday meetups in Owen Sound for home-school families, with the dates published before the first meeting." }, - { "id": "successor-host", "text": "I want a named successor, and written notes, so the Owen Sound home-school meetups can continue for a second season without the first host." }, - { "id": "method-on-the-page", "text": "I want each Grey County home-school unit to say which teaching method it uses." }, - { "id": "no-religious-claims", "text": "I want a Grey County science unit that contains no religious claims, so a secular home-school family can use it." }, - { "id": "school-families-may-borrow", "text": "I want families whose children attend school in Grey County to be allowed to use the same field-trip notes." }, - { "id": "staffed-schools", "text": "I want children in Grey County taught in staffed schools, and I do not want public rooms booked for home-school programs." }, - { "id": "lab-safety", "text": "I want the Grey County home science kit to list the hazards and the adult supervision each activity needs." } + { + "id": "science-unit", + "text": "I want Grey County families who teach their children at home to have teaching materials they can reuse." + }, + { + "id": "method-on-the-page", + "text": "I want a Grey County home-teaching unit to say which teaching method it uses." + }, + { + "id": "no-religious-claims", + "text": "I want a Grey County science unit that contains no religious claims, so a secular home-school family can use it." + }, + { + "id": "school-families-may-borrow", + "text": "I want families whose children attend school in Grey County to be allowed to use the same home-teaching materials." + }, + { + "id": "staffed-schools", + "text": "I want children in Grey County taught in staffed schools, and I do not want public rooms booked for home-school programs." + } ] }, { "id": "shared-goods", "title": "Goods reused across Grey County boards", "statements": [ - { "id": "class-host-directory", "text": "I want a public directory of people in Grey County, Ontario, who will host a small class, with each host's affiliation written down and a note when an independent checker has confirmed the listing." } + { + "id": "class-host-directory", + "text": "I want a person in Grey County, Ontario, who will host a small class to be findable, and I want that person's affiliation written down." + } ] } ] diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot.json b/fake-data-generation/campaigns/network-societies-v1-pilot.json index d0aeb9b0..beb190ad 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot.json @@ -11,14 +11,16 @@ "sourcePolicy": { "kind": "accepted-plus-campaign-synthetic", "fingerprintAlgorithm": "sha256", - "excludeCollections": ["proliferation"], + "excludeCollections": [ + "proliferation" + ], "campaignCollection": "network-societies-v1-pilot-statements.json" }, "scale": { "minCauses": 4, "maxCauses": 6, - "minStatements": 40, - "maxStatements": 40, + "minStatements": 21, + "maxStatements": 21, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-pilot-projects.json", @@ -30,16 +32,21 @@ "activityTier": "large", "membershipWeight": 12, "statementRefs": [ - { "collectionId": "network-societies-v1", "groupId": "crypto-merchants", "statementId": "refundable-checkout" }, - { "collectionId": "network-societies-v1", "groupId": "crypto-merchants", "statementId": "published-trial-record" }, - { "collectionId": "network-societies-v1", "groupId": "crypto-merchants", "statementId": "checkout-security-review" }, - { "collectionId": "network-societies-v1", "groupId": "crypto-merchants", "statementId": "merchant-directory" }, - { "collectionId": "network-societies-v1", "groupId": "crypto-merchants", "statementId": "deployment-clinic" }, - { "collectionId": "network-societies-v1", "groupId": "crypto-merchants", "statementId": "host-kit" }, - { "collectionId": "network-societies-v1", "groupId": "crypto-merchants", "statementId": "keep-cash-and-card" }, - { "collectionId": "network-societies-v1", "groupId": "crypto-merchants", "statementId": "refuse-crypto-payments" }, - { "collectionId": "network-societies-v1", "groupId": "crypto-merchants", "statementId": "bank-blocking" }, - { "collectionId": "network-societies-v1", "groupId": "crypto-merchants", "statementId": "fee-schedule" } + { + "collectionId": "network-societies-v1", + "groupId": "crypto-merchants", + "statementId": "refundable-checkout" + }, + { + "collectionId": "network-societies-v1", + "groupId": "crypto-merchants", + "statementId": "refuse-crypto-payments" + }, + { + "collectionId": "network-societies-v1", + "groupId": "crypto-merchants", + "statementId": "bank-blocking" + } ] }, { @@ -48,17 +55,41 @@ "activityTier": "large", "membershipWeight": 12, "statementRefs": [ - { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", "statementId": "language-sessions" }, - { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", "statementId": "civics-pack" }, - { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", "statementId": "park-paths" }, - { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", "statementId": "tutor-check" }, - { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", "statementId": "organizer-handoff" }, - { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", "statementId": "english-township-business" }, - { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", "statementId": "own-language-communities" }, - { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", "statementId": "housing-before-recruiting" }, - { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", "statementId": "welcome-signage" }, - { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", "statementId": "session-limit" }, - { "collectionId": "network-societies-v1", "groupId": "shared-goods", "statementId": "class-host-directory" } + { + "collectionId": "network-societies-v1", + "groupId": "civic-assimilation", + "statementId": "language-sessions" + }, + { + "collectionId": "network-societies-v1", + "groupId": "civic-assimilation", + "statementId": "park-paths" + }, + { + "collectionId": "network-societies-v1", + "groupId": "civic-assimilation", + "statementId": "english-township-business" + }, + { + "collectionId": "network-societies-v1", + "groupId": "civic-assimilation", + "statementId": "own-language-communities" + }, + { + "collectionId": "network-societies-v1", + "groupId": "civic-assimilation", + "statementId": "housing-before-recruiting" + }, + { + "collectionId": "network-societies-v1", + "groupId": "civic-assimilation", + "statementId": "session-limit" + }, + { + "collectionId": "network-societies-v1", + "groupId": "shared-goods", + "statementId": "class-host-directory" + } ] }, { @@ -67,16 +98,41 @@ "activityTier": "medium", "membershipWeight": 10, "statementRefs": [ - { "collectionId": "network-societies-v1", "groupId": "christian-teaching", "statementId": "midweek-notes" }, - { "collectionId": "network-societies-v1", "groupId": "christian-teaching", "statementId": "transcription" }, - { "collectionId": "network-societies-v1", "groupId": "christian-teaching", "statementId": "substitute-rota" }, - { "collectionId": "network-societies-v1", "groupId": "christian-teaching", "statementId": "named-confession" }, - { "collectionId": "network-societies-v1", "groupId": "christian-teaching", "statementId": "no-joint-doctrine" }, - { "collectionId": "network-societies-v1", "groupId": "christian-teaching", "statementId": "host-kit" }, - { "collectionId": "network-societies-v1", "groupId": "christian-teaching", "statementId": "civic-transcription-only" }, - { "collectionId": "network-societies-v1", "groupId": "christian-teaching", "statementId": "keep-notes-inside" }, - { "collectionId": "network-societies-v1", "groupId": "christian-teaching", "statementId": "interchurch-calendar" }, - { "collectionId": "network-societies-v1", "groupId": "shared-goods", "statementId": "class-host-directory" } + { + "collectionId": "network-societies-v1", + "groupId": "christian-teaching", + "statementId": "midweek-notes" + }, + { + "collectionId": "network-societies-v1", + "groupId": "christian-teaching", + "statementId": "substitute-rota" + }, + { + "collectionId": "network-societies-v1", + "groupId": "christian-teaching", + "statementId": "named-confession" + }, + { + "collectionId": "network-societies-v1", + "groupId": "christian-teaching", + "statementId": "no-joint-doctrine" + }, + { + "collectionId": "network-societies-v1", + "groupId": "christian-teaching", + "statementId": "civic-transcription-only" + }, + { + "collectionId": "network-societies-v1", + "groupId": "christian-teaching", + "statementId": "keep-notes-inside" + }, + { + "collectionId": "network-societies-v1", + "groupId": "shared-goods", + "statementId": "class-host-directory" + } ] }, { @@ -85,54 +141,418 @@ "activityTier": "medium", "membershipWeight": 10, "statementRefs": [ - { "collectionId": "network-societies-v1", "groupId": "home-learning", "statementId": "science-unit" }, - { "collectionId": "network-societies-v1", "groupId": "home-learning", "statementId": "field-trip" }, - { "collectionId": "network-societies-v1", "groupId": "home-learning", "statementId": "science-kits" }, - { "collectionId": "network-societies-v1", "groupId": "home-learning", "statementId": "saturday-meetups" }, - { "collectionId": "network-societies-v1", "groupId": "home-learning", "statementId": "successor-host" }, - { "collectionId": "network-societies-v1", "groupId": "home-learning", "statementId": "method-on-the-page" }, - { "collectionId": "network-societies-v1", "groupId": "home-learning", "statementId": "no-religious-claims" }, - { "collectionId": "network-societies-v1", "groupId": "home-learning", "statementId": "school-families-may-borrow" }, - { "collectionId": "network-societies-v1", "groupId": "home-learning", "statementId": "staffed-schools" }, - { "collectionId": "network-societies-v1", "groupId": "home-learning", "statementId": "lab-safety" }, - { "collectionId": "network-societies-v1", "groupId": "shared-goods", "statementId": "class-host-directory" } + { + "collectionId": "network-societies-v1", + "groupId": "home-learning", + "statementId": "science-unit" + }, + { + "collectionId": "network-societies-v1", + "groupId": "home-learning", + "statementId": "method-on-the-page" + }, + { + "collectionId": "network-societies-v1", + "groupId": "home-learning", + "statementId": "no-religious-claims" + }, + { + "collectionId": "network-societies-v1", + "groupId": "home-learning", + "statementId": "school-families-may-borrow" + }, + { + "collectionId": "network-societies-v1", + "groupId": "home-learning", + "statementId": "staffed-schools" + }, + { + "collectionId": "network-societies-v1", + "groupId": "shared-goods", + "statementId": "class-host-directory" + } ] } ], "personas": [ - { "id": "community-organizer", "count": 4, "roles": ["cause-founder", "supporter"], "causesPerUser": { "min": 2, "max": 3 }, "activityWeight": 2, "inactivityRate": 0, "fundingWeight": 1.2 }, - { "id": "project-builder", "count": 6, "roles": ["project-founder", "supporter"], "causesPerUser": { "min": 1, "max": 2 }, "activityWeight": 1.7, "inactivityRate": 0, "fundingWeight": 0.8 }, - { "id": "trusted-delegate", "count": 5, "roles": ["delegate", "supporter"], "causesPerUser": { "min": 2, "max": 4 }, "activityWeight": 2, "inactivityRate": 0, "fundingWeight": 1.4 }, - { "id": "bridge-mediator", "count": 5, "roles": ["attester", "mediator"], "causesPerUser": { "min": 2, "max": 4 }, "activityWeight": 2, "inactivityRate": 0, "fundingWeight": 0.4 }, - { "id": "regular-supporter", "count": 14, "roles": ["supporter"], "causesPerUser": { "min": 1, "max": 3 }, "activityWeight": 1, "inactivityRate": 0.1, "fundingWeight": 1 }, - { "id": "quiet-neighbor", "count": 6, "roles": ["lurker", "supporter"], "causesPerUser": { "min": 1, "max": 2 }, "activityWeight": 0.2, "inactivityRate": 0.4, "fundingWeight": 0.3 } + { + "id": "community-organizer", + "count": 4, + "roles": [ + "cause-founder", + "supporter" + ], + "causesPerUser": { + "min": 2, + "max": 3 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 1.2 + }, + { + "id": "project-builder", + "count": 6, + "roles": [ + "project-founder", + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 2 + }, + "activityWeight": 1.7, + "inactivityRate": 0, + "fundingWeight": 0.8 + }, + { + "id": "trusted-delegate", + "count": 5, + "roles": [ + "delegate", + "supporter" + ], + "causesPerUser": { + "min": 2, + "max": 4 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 1.4 + }, + { + "id": "bridge-mediator", + "count": 5, + "roles": [ + "attester", + "mediator" + ], + "causesPerUser": { + "min": 2, + "max": 4 + }, + "activityWeight": 2, + "inactivityRate": 0, + "fundingWeight": 0.4 + }, + { + "id": "regular-supporter", + "count": 14, + "roles": [ + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 3 + }, + "activityWeight": 1, + "inactivityRate": 0.1, + "fundingWeight": 1 + }, + { + "id": "quiet-neighbor", + "count": 6, + "roles": [ + "lurker", + "supporter" + ], + "causesPerUser": { + "min": 1, + "max": 2 + }, + "activityWeight": 0.2, + "inactivityRate": 0.4, + "fundingWeight": 0.3 + } ], "userProfiles": [ - { "userId": "user-001", "displayName": "Ruth", "bio": "Keeps the books for a shop in Owen Sound and wants the checkout trial's fees published. She will not sign a demand that shops refuse crypto.", "favoriteCauseId": "crypto-merchants", "interests": ["shop fees", "Owen Sound"], "causeIds": ["crypto-merchants", "civic-assimilation"], "spotlightOrder": 1 }, - { "userId": "user-002", "displayName": "Helen", "bio": "Preaches at a small Grey County church and wants the midweek notes reusable, with the confession named. She does not treat a shared host directory as agreement on doctrine.", "favoriteCauseId": "christian-teaching", "interests": ["preaching", "Grey County churches"], "causeIds": ["christian-teaching", "home-learning"], "spotlightOrder": 2 }, - { "userId": "user-003", "displayName": "Imani", "bio": "Recently moved to Owen Sound and wants the twelve conversation sessions with childcare. She rejects the demand to stop recruiting newcomers.", "favoriteCauseId": "civic-assimilation", "interests": ["English practice", "Owen Sound"], "causeIds": ["civic-assimilation", "crypto-merchants"], "spotlightOrder": 3 }, - { "userId": "user-004", "displayName": "Owen", "bio": "Home-schools in Grey County and wants the printable science unit with no religious claims. He will not sign a request to release a congregation's midweek notes.", "favoriteCauseId": "home-learning", "interests": ["home science", "Grey County"], "causeIds": ["home-learning", "christian-teaching"], "spotlightOrder": 4 }, - { "userId": "user-005", "displayName": "Len", "bio": "Runs a shop that wants to keep cash and cards while trying the refundable checkout. He is not a crypto enthusiast.", "favoriteCauseId": "crypto-merchants", "interests": ["retail", "refunds"], "causeIds": ["crypto-merchants"], "spotlightOrder": 5 }, - { "userId": "user-006", "displayName": "Doug", "bio": "Has lived in Owen Sound for decades. He wants the park-path season and English township business, and he wants recruiting to wait on housing.", "favoriteCauseId": "civic-assimilation", "interests": ["Harrison Park", "township business"], "causeIds": ["civic-assimilation"], "spotlightOrder": 6 }, - { "userId": "user-007", "displayName": "Nadia", "bio": "Checks directories for a living. She will confirm a class-host listing and will not treat that check as endorsement of the host's church or school.", "favoriteCauseId": "christian-teaching", "interests": ["directories", "independent checks"], "causeIds": ["christian-teaching", "home-learning"], "spotlightOrder": 7 }, - { "userId": "user-008", "displayName": "Chris", "bio": "Builds the science-kit instructions and wants the hazards written down. He does not want public rooms closed to home-school meetups.", "favoriteCauseId": "home-learning", "interests": ["science kits", "lab safety"], "causeIds": ["home-learning"], "spotlightOrder": 8 }, - { "userId": "user-011", "displayName": "Ned", "bio": "Accepts a limited note from Pat for Owen Sound shop work. Holding the note is not a belief about crypto, and it is not yet spent.", "favoriteCauseId": "crypto-merchants", "interests": ["Owen Sound shops", "limited notes"], "causeIds": ["crypto-merchants", "civic-assimilation", "christian-teaching", "home-learning"], "spotlightOrder": 9 }, - { "userId": "user-021", "displayName": "Pat", "bio": "Delegates a small note to Ned for the checkout trial and can revoke it. The delegation is not a signature.", "favoriteCauseId": "crypto-merchants", "interests": ["delegation", "Owen Sound shops"], "causeIds": ["crypto-merchants", "civic-assimilation"], "delegatesTo": "user-011", "spotlightOrder": 10 }, - { "userId": "user-016", "displayName": "June", "bio": "Reviews project alignments and will refuse a project that only sounds related to a statement.", "favoriteCauseId": "crypto-merchants", "interests": ["review", "Grey County"], "causeIds": ["crypto-merchants", "civic-assimilation", "christian-teaching", "home-learning"] } + { + "userId": "user-001", + "displayName": "Ruth", + "bio": "Keeps the books for a shop in Owen Sound and wants the checkout trial's fees published. She will not sign a demand that shops refuse crypto.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "shop fees", + "Owen Sound" + ], + "causeIds": [ + "crypto-merchants", + "civic-assimilation" + ], + "spotlightOrder": 1 + }, + { + "userId": "user-002", + "displayName": "Helen", + "bio": "Preaches at a small Grey County church and wants the midweek notes reusable, with the confession named. She does not treat a shared host directory as agreement on doctrine.", + "favoriteCauseId": "christian-teaching", + "interests": [ + "preaching", + "Grey County churches" + ], + "causeIds": [ + "christian-teaching", + "home-learning" + ], + "spotlightOrder": 2 + }, + { + "userId": "user-003", + "displayName": "Imani", + "bio": "Recently moved to Owen Sound and wants the twelve conversation sessions with childcare. She rejects the demand to stop recruiting newcomers.", + "favoriteCauseId": "civic-assimilation", + "interests": [ + "English practice", + "Owen Sound" + ], + "causeIds": [ + "civic-assimilation", + "crypto-merchants" + ], + "spotlightOrder": 3 + }, + { + "userId": "user-004", + "displayName": "Owen", + "bio": "Home-schools in Grey County and wants the printable science unit with no religious claims. He will not sign a request to release a congregation's midweek notes.", + "favoriteCauseId": "home-learning", + "interests": [ + "home science", + "Grey County" + ], + "causeIds": [ + "home-learning", + "christian-teaching" + ], + "spotlightOrder": 4 + }, + { + "userId": "user-005", + "displayName": "Len", + "bio": "Runs a shop that wants to keep cash and cards while trying the refundable checkout. He is not a crypto enthusiast.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "retail", + "refunds" + ], + "causeIds": [ + "crypto-merchants" + ], + "spotlightOrder": 5 + }, + { + "userId": "user-006", + "displayName": "Doug", + "bio": "Has lived in Owen Sound for decades. He wants the park-path season and English township business, and he wants recruiting to wait on housing.", + "favoriteCauseId": "civic-assimilation", + "interests": [ + "Harrison Park", + "township business" + ], + "causeIds": [ + "civic-assimilation" + ], + "spotlightOrder": 6 + }, + { + "userId": "user-007", + "displayName": "Nadia", + "bio": "Checks directories for a living. She will confirm a class-host listing and will not treat that check as endorsement of the host's church or school.", + "favoriteCauseId": "christian-teaching", + "interests": [ + "directories", + "independent checks" + ], + "causeIds": [ + "christian-teaching", + "home-learning" + ], + "spotlightOrder": 7 + }, + { + "userId": "user-008", + "displayName": "Chris", + "bio": "Builds the science-kit instructions and wants the hazards written down. He does not want public rooms closed to home-school meetups.", + "favoriteCauseId": "home-learning", + "interests": [ + "science kits", + "lab safety" + ], + "causeIds": [ + "home-learning" + ], + "spotlightOrder": 8 + }, + { + "userId": "user-011", + "displayName": "Ned", + "bio": "Accepts a limited note from Pat for Owen Sound shop work. Holding the note is not a belief about crypto, and it is not yet spent.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "Owen Sound shops", + "limited notes" + ], + "causeIds": [ + "crypto-merchants", + "civic-assimilation", + "christian-teaching", + "home-learning" + ], + "spotlightOrder": 9 + }, + { + "userId": "user-021", + "displayName": "Pat", + "bio": "Delegates a small note to Ned for the checkout trial and can revoke it. The delegation is not a signature.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "delegation", + "Owen Sound shops" + ], + "causeIds": [ + "crypto-merchants", + "civic-assimilation" + ], + "delegatesTo": "user-011", + "spotlightOrder": 10 + }, + { + "userId": "user-016", + "displayName": "June", + "bio": "Reviews project alignments and will refuse a project that only sounds related to a statement.", + "favoriteCauseId": "crypto-merchants", + "interests": [ + "review", + "Grey County" + ], + "causeIds": [ + "crypto-merchants", + "civic-assimilation", + "christian-teaching", + "home-learning" + ] + } ], "actionRules": [ - { "type": "publish-statement", "prerequisites": [], "targetCount": { "min": 40, "max": 40 } }, - { "type": "create-cause", "prerequisites": ["publish-statement"], "targetCount": { "min": 4, "max": 4 } }, - { "type": "set-belief", "prerequisites": ["publish-statement"], "targetCount": { "min": 60, "max": 60 } }, - { "type": "attest-implication", "prerequisites": ["publish-statement"], "targetCount": { "min": 0, "max": 0 } }, - { "type": "create-project", "prerequisites": ["create-cause"], "targetCount": { "min": 20, "max": 20 } }, - { "type": "attest-alignment", "prerequisites": ["create-project", "publish-statement"], "targetCount": { "min": 20, "max": 20 } }, - { "type": "fund-project", "prerequisites": ["create-project", "attest-alignment"], "targetCount": { "min": 40, "max": 40 } }, - { "type": "deposit-note", "prerequisites": [], "targetCount": { "min": 12, "max": 12 } }, - { "type": "delegate-note", "prerequisites": ["deposit-note"], "targetCount": { "min": 8, "max": 8 } }, - { "type": "revoke-delegation", "prerequisites": ["delegate-note"], "targetCount": { "min": 3, "max": 3 } }, - { "type": "create-bridge-board", "prerequisites": ["publish-statement"], "targetCount": { "min": 0, "max": 0 } }, - { "type": "create-bridge", "prerequisites": ["create-cause", "create-bridge-board"], "targetCount": { "min": 0, "max": 0 } } + { + "type": "publish-statement", + "prerequisites": [], + "targetCount": { + "min": 21, + "max": 21 + } + }, + { + "type": "create-cause", + "prerequisites": [ + "publish-statement" + ], + "targetCount": { + "min": 4, + "max": 4 + } + }, + { + "type": "set-belief", + "prerequisites": [ + "publish-statement" + ], + "targetCount": { + "min": 60, + "max": 60 + } + }, + { + "type": "attest-implication", + "prerequisites": [ + "publish-statement" + ], + "targetCount": { + "min": 0, + "max": 0 + } + }, + { + "type": "create-project", + "prerequisites": [ + "create-cause" + ], + "targetCount": { + "min": 20, + "max": 20 + } + }, + { + "type": "attest-alignment", + "prerequisites": [ + "create-project", + "publish-statement" + ], + "targetCount": { + "min": 20, + "max": 20 + } + }, + { + "type": "fund-project", + "prerequisites": [ + "create-project", + "attest-alignment" + ], + "targetCount": { + "min": 40, + "max": 40 + } + }, + { + "type": "deposit-note", + "prerequisites": [], + "targetCount": { + "min": 12, + "max": 12 + } + }, + { + "type": "delegate-note", + "prerequisites": [ + "deposit-note" + ], + "targetCount": { + "min": 8, + "max": 8 + } + }, + { + "type": "revoke-delegation", + "prerequisites": [ + "delegate-note" + ], + "targetCount": { + "min": 3, + "max": 3 + } + }, + { + "type": "create-bridge-board", + "prerequisites": [ + "publish-statement" + ], + "targetCount": { + "min": 0, + "max": 0 + } + }, + { + "type": "create-bridge", + "prerequisites": [ + "create-cause", + "create-bridge-board" + ], + "targetCount": { + "min": 0, + "max": 0 + } + } ], "artifactLayout": { "manifest": "manifest.json", diff --git a/fake-data-generation/statement-generation.md b/fake-data-generation/statement-generation.md index 4692a828..f2c5497a 100644 --- a/fake-data-generation/statement-generation.md +++ b/fake-data-generation/statement-generation.md @@ -99,6 +99,19 @@ grain, including place when the cause is local. Do not treat “Linux” / “CSA” as the tightest allowed. Seed that is only category-level will look empty of places to put money. +**A tighter grain is still a want someone would sign.** “Specific enough +that implication can fire later” means determinate: “Linux desktop,” or +“CSA in Grey County, Ontario,” not “open source” and not “technology.” +It does not mean a headcount, a duration, a host kit, a checklist, or a +directory. Those are projects aligned to the want. “I want a business in +Grey County to be able to take a blockchain payment from a customer who +asks to pay that way” is a plank. “I want six named shops to run that +checkout for three months” is the project’s outcome. A second plank is +for a real further want or a real refusal (“I want shops to refuse crypto +payments”), not for each deliverable under the first want. Naming a park +or a school is right when the want is about that place. It is not a +reason to turn every project field into an “I want…” sentence. + **Place-specific wants are signable planks, not board queries.** “I want more CSA in Grey County, Ontario” is a belief someone signs. “I want more CSA in Ontario” is a different belief, for people who actually hold a diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 9fa95c9e..cbaea1f1 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -245,7 +245,7 @@ test('network-societies pilot reuses one directory statement and publishes no im const manifest = JSON.parse(await readFile(new URL('../campaigns/network-societies-v1-pilot.json', import.meta.url), 'utf8')) as CampaignManifestV1; const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 40); - assert.equal(plan.statements.length, 40); + assert.equal(plan.statements.length, 21); assert.equal(plan.projects.length, 20); const shared = plan.statements.find((statement) => statement.source.statementId === 'class-host-directory'); assert.ok(shared); @@ -273,7 +273,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one } const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); - assert.equal(plan.statements.length, 125); + assert.equal(plan.statements.length, 94); assert.equal(plan.projects.length, 64); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); @@ -295,11 +295,11 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one assert.equal(notice.causeId, 'civic-assimilation'); assert.deepEqual(notice.alsoOnCauseIds, ['christian-teaching']); const implications = plan.actions.filter((action) => action.type === 'attest-implication'); - assert.equal(implications.length, 21); + assert.equal(implications.length, 17); const accepted = implications.filter((action) => action.implication!.evidence === 'accepted-bridge-role-pair'); const live = implications.filter((action) => action.implication!.evidence === 'live-attester-modified-to-commonality'); assert.equal(accepted.length, 4); - assert.equal(live.length, 17); + assert.equal(live.length, 13); for (const action of accepted) { const from = plan.statements.find((statement) => statement.id === action.implication!.fromStatementId)!; assert.ok(from.source.collectionId === 'compromise-abortion' || from.source.collectionId === 'lgbt-schools'); @@ -322,7 +322,12 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one const forum = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === 'abortion-forum')!.board!; assert.equal(forum.role, 'plain'); assert.ok(forum.statementIds.includes(michigan.id)); - for (const causeId of ['grey-assimilation', 'ranked-approval-poll', 'checkout-trial-bridge', 'minors-medicine', 'opinion-employment', 'canada-us-ties']) { + for (const causeId of ['grey-assimilation', 'checkout-trial-bridge']) { + const board = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === causeId)!.board!; + assert.equal(board.role, 'commonality'); + assert.equal(implications.filter((action) => action.causeId === causeId).length, 0, causeId); + } + for (const causeId of ['ranked-approval-poll', 'minors-medicine', 'opinion-employment', 'canada-us-ties']) { const board = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === causeId)!.board!; assert.equal(board.role, 'commonality'); assert.equal(implications.filter((action) => action.causeId === causeId).length, 2, causeId); @@ -336,7 +341,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one assert.deepEqual(pauseFrom, ['modified-children', 'modified-industry', 'modified-jobs', 'modified-not-luddite', 'modified-small-chance']); const canadaBoard = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === 'canada-us-ties')!.board!; const canadaIds = canadaBoard.statementIds.map((id) => plan.statements.find((statement) => statement.id === id)!.source.statementId); - assert.deepEqual(canadaIds, ['commonality', 'cultural-archive', 'ties-guide', 'community-event', 'exchange-directory', 'host-handoff', 'boycott-ordinary-ties', 'narrower-than-visits']); + assert.deepEqual(canadaIds, ['commonality', 'boycott-ordinary-ties', 'narrower-than-visits']); assert.equal(plan.projects.filter((project) => project.causeId === 'canada-us-ties').length, 7); const boycott = plan.statements.find((statement) => statement.source.groupId === 'canada-us-ties' && statement.source.statementId === 'boycott-ordinary-ties')!; const narrower = plan.statements.find((statement) => statement.source.groupId === 'canada-us-ties' && statement.source.statementId === 'narrower-than-visits')!; From a4bd6410d2a0ab1ec798bf6bd1f3667d48fef001 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 14:34:20 -0400 Subject: [PATCH 20/46] Added notes. --- .../brainstorming/network-societies-campaign-plan.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index a662e495..185235ee 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -289,11 +289,13 @@ These are scope calls, not a pass on the wording. ### Already accepted seed (wording lives in `seed-content/`, not in the campaign file) -Skip these unless you want to re-read them. The campaign boards only point at them. +Skip these unless you want to re-read them. (ADAM: No, don't skip them; I want to reread them and make sure they're suitable for the current campaign's purposes.) The campaign boards only point at them. -- [x] Abortion cutoff bridge: the accepted five (`compromise-abortion`). -- [x] Schools and pushing: the accepted five (`lgbt-schools`). The campaign does not treat those five as a position on drugs, surgery, or classroom names. +- [ ] Abortion cutoff bridge: the accepted five (`compromise-abortion`). +- [ ] Schools and pushing: the accepted five (`lgbt-schools`). The campaign does not treat those five as a position on drugs, surgery, or classroom names. ### Still needs a look Read the current sentences in `network-societies-v1-b2-statements.json`. Adam is reviewing them one board at a time, starting with crypto. Projects stayed; their alignments now point at the surviving want. + +(ADAM: Let's go through one by one, starting with looking at the crypto one again, now that we've significantly changed it.) \ No newline at end of file From 25b79d64dafa5eb1b871e1d3772065b5b49f2716 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 15:24:16 -0400 Subject: [PATCH 21/46] Add a bank-blocking project and pin who funds the checkout work. Imani and June sign the bank-blocking sentence and fund the Owen Sound checkout projects, plus a sale record for a customer whose bank has blocked them. --- .../network-societies-campaign-plan.md | 6 +++-- fake-data-generation/campaignPlanner.ts | 22 ++++++++++++++--- .../network-societies-v1-b2-decisions.json | 2 ++ .../network-societies-v1-b2-note-spend.json | 4 ++-- .../network-societies-v1-b2-projects.json | 8 +++++++ .../network-societies-v1-b2-reimburse.json | 4 ++-- .../campaigns/network-societies-v1-b2.json | 12 +++++----- .../test/campaignPlanner.test.ts | 24 ++++++++++++++++++- 8 files changed, 66 insertions(+), 16 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 185235ee..5f517c2d 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -48,7 +48,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | Family | Planks in the campaign file | Projects | Against the minimum | | --- | --- | --- | --- | -| Crypto-friendly checkout | 10 | 5 | Meets it. Includes a refusal of crypto payments. | +| Crypto-friendly checkout | 10 | 6 | Meets it. Includes a refusal of crypto payments. One project is aligned to the bank-blocking sentence. | | Grey County civic life | 10, plus a 5-statement assimilation draft | 5 on the main board, 2 on the draft | Main board meets it. The draft is not a second family. | | Christian teaching | 9 | 5 | Meets it. | | Home learning | 10 | 5 | Meets it. | @@ -298,4 +298,6 @@ Skip these unless you want to re-read them. (ADAM: No, don't skip them; I want t Read the current sentences in `network-societies-v1-b2-statements.json`. Adam is reviewing them one board at a time, starting with crypto. Projects stayed; their alignments now point at the surviving want. -(ADAM: Let's go through one by one, starting with looking at the crypto one again, now that we've significantly changed it.) \ No newline at end of file +(ADAM: Let's go through one by one, starting with looking at the crypto one again, now that we've significantly changed it.) + +- [x] Crypto board sentences, 2026-10-20. Adam said they look pretty decent. Projects on the refundable-checkout sentence stayed. Added "Blocked-customer sale record," aligned only to bank-blocking. Imani and June sign that sentence, reject a ban on crypto payments, and each fund the five checkout projects plus the new record. Not mined. \ No newline at end of file diff --git a/fake-data-generation/campaignPlanner.ts b/fake-data-generation/campaignPlanner.ts index 757ad43c..f8f45037 100644 --- a/fake-data-generation/campaignPlanner.ts +++ b/fake-data-generation/campaignPlanner.ts @@ -262,6 +262,7 @@ interface BeliefDecisionPerson { name?: string; signs?: string[]; rejects?: string[]; + funds?: string[] | string; } async function loadBeliefDecisions(manifest: CampaignManifestV1): Promise { @@ -571,6 +572,16 @@ export async function buildCampaignPlan(manifest: CampaignManifestV1): Promise (person.funds == null ? [] : Array.isArray(person.funds) ? person.funds : [person.funds]).map((title) => { + const user = usersById.get(person.userId); + if (!user || user.inactive) throw new Error(`fund decision names an inactive user ${person.userId}`); + if (user.fundingWeight <= 0) throw new Error(`fund decision user cannot fund: ${person.userId}`); + const project = projects.find((item) => item.title === title); + if (!project) throw new Error(`fund decision project not planned: ${title}`); + if (!user.causeIds.includes(project.causeId)) throw new Error(`${user.id} is not on the board for ${title}`); + return { user, project }; + })); + let decisionPledgeCursor = 0; const campBeliefs = bridgeBackers.map((user, index) => { const camp = index === 0 ? 'left' : 'right'; const statement = statements.find((item) => item.causeId === bridgeProject!.causeId && item.role === `natural-${camp}`)!; @@ -594,11 +605,13 @@ export async function buildCampaignPlan(manifest: CampaignManifestV1): Promise= hobbyCauses.length && index < hobbyCauses.length + 20); const reimbursementPurchase = Boolean(reimbursementProject && !useStories && index < reimbursement!.earlyPurchases); - const pinnedPledge = !featuredCause && !bridgePurchase && !reimbursementPurchase && pinnedPledgeCursor < pinnedPledges.length ? pinnedPledges[pinnedPledgeCursor++] : undefined; - const project = pinnedPledge ? pinnedPledge.project : bridgePurchase ? bridgeProject! : reimbursementPurchase ? reimbursementProject! : featuredCause ? firstByCause.get(featuredCause)! : random.weighted(fundableProjects, (item) => Math.max(1, fundableProjects.length - (useStories ? fundableProjects.indexOf(item) : projects.indexOf(item)))); + const openDecisionPledges = decisionPledges.filter((pledge) => pledge.project.title !== reimbursement?.projectTitle); + const decisionPledge = !featuredCause && !bridgePurchase && !reimbursementPurchase && decisionPledgeCursor < openDecisionPledges.length ? openDecisionPledges[decisionPledgeCursor++] : undefined; + const pinnedPledge = !featuredCause && !bridgePurchase && !reimbursementPurchase && !decisionPledge && pinnedPledgeCursor < pinnedPledges.length ? pinnedPledges[pinnedPledgeCursor++] : undefined; + const project = decisionPledge ? decisionPledge.project : pinnedPledge ? pinnedPledge.project : bridgePurchase ? bridgeProject! : reimbursementPurchase ? reimbursementProject! : featuredCause ? firstByCause.get(featuredCause)! : random.weighted(fundableProjects, (item) => Math.max(1, fundableProjects.length - (useStories ? fundableProjects.indexOf(item) : projects.indexOf(item)))); const supporters = activeUsers.filter((user) => user.causeIds.includes(project.causeId) && user.fundingWeight > 0 && (!useStories || user.id !== project.founderUserId)); const interestedSupporters = featuredCause ? supporters.filter((user) => user.favoriteCauseId === featuredCause && user.id !== project.founderUserId) : []; - const actor = pinnedPledge ? pinnedPledge.user : bridgePurchase ? bridgeBackers[(index - hobbyCauses.length) % 2] : reimbursementPurchase ? reimbursementBackers[index % 2] : random.weighted(interestedSupporters.length ? interestedSupporters : supporters, (user) => user.fundingWeight); + const actor = decisionPledge ? decisionPledge.user : pinnedPledge ? pinnedPledge.user : bridgePurchase ? bridgeBackers[(index - hobbyCauses.length) % 2] : reimbursementPurchase ? reimbursementBackers[index % 2] : random.weighted(interestedSupporters.length ? interestedSupporters : supporters, (user) => user.fundingWeight); const alignment = alignments.find((item) => item.projectId === project.id); if (!alignment) throw new Error(`impossible fund-project: ${project.id} has no alignment action`); const tokenId = bridgePurchase ? 1 : 3; @@ -610,6 +623,9 @@ export async function buildCampaignPlan(manifest: CampaignManifestV1): Promise pledge.project.title !== reimbursement?.projectTitle).length) { + throw new Error('persona fund decisions were not all planned'); + } if (pinnedPledgeCursor !== pinnedPledges.length) throw new Error('v2 spotlight profiles did not each pledge on every joined cause'); if (reimbursement && reimbursementProject) for (let index = 0; index < reimbursement.retroactiveDonations; index++) { add({ type: 'fund-project', actorUserId: reimbursementBackers[index % 2].id, causeId: reimbursementProject.causeId, projectId: reimbursementProject.id, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json index 40bcea02..d9cfa0b0 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json @@ -1,6 +1,8 @@ { "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Seventeen modified-to-commonality arrows are allowed. The four abortion and schools arrows keep accepted-bridge-role-pair. The Grey County assimilation bridge and the checkout-trial bridge dropped their arrows when the wording changed on 2026-10-20. The remaining eight draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US archive, guide, evening, directory, and host handoff are projects under the shared sentence, not extra sentences. Greta's boycott and Hugh's narrower sentence are not arrows. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", "people": [ + { "userId": "user-003", "name": "Imani", "signs": ["bank-blocking", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "funds": ["Six-shop refundable checkout trial", "Independent checkout security review", "Fee and failure table", "Owen Sound merchant directory", "Quarterly checkout clinic and host kit", "Blocked-customer sale record"], "notes": "The bank-blocking sentence is why she funds the checkout projects. Those projects stay aligned to the refundable-checkout sentence. Signing the checkout want is not a signature that shops must take crypto from everyone." }, + { "userId": "user-016", "name": "June", "signs": ["bank-blocking", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "funds": ["Six-shop refundable checkout trial", "Independent checkout security review", "Fee and failure table", "Owen Sound merchant directory", "Quarterly checkout clinic and host kit", "Blocked-customer sale record"], "notes": "Same funding as Imani. The blocked-customer record is the project aligned to bank-blocking. The other five are the earlier checkout steps." }, { "userId": "user-041", "name": "Mara", "signs": ["modified-left", "commonality"], "rejects": ["no-early-abortions"], "unsigned": ["michigan-legislature", "one-federal-rule"], "notes": "The settlement signature is not a signature about which legislature writes the rule." }, { "userId": "user-052", "name": "Eli", "signs": ["natural-right"], "rejects": ["modified-right", "commonality", "modified-left"], "notes": "Keeps the natural position and refuses the settlement. He must not be treated as a supporter of the cutoff through an arrow from natural-right." }, { "userId": "user-054", "name": "Bea", "signs": ["michigan-legislature"], "unsigned": ["commonality", "modified-left", "modified-right"], "rejects": ["one-federal-rule"], "notes": "State-level authority is a separate proposition from the 12-16 week sentence." }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json index 665de4ea..ea0c3d37 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -1652,8 +1652,8 @@ "create-cause" ], "targetCount": { - "min": 64, - "max": 64 + "min": 65, + "max": 65 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index fbf25491..6bde37a3 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -39,6 +39,14 @@ "refundable-checkout" ], "blocker": "The clinic stops when the first host is busy unless the hosting steps are written down" + }, + { + "title": "Blocked-customer sale record", + "outcome": "Write the steps a clerk at an Owen Sound shop follows when a customer's bank has blocked them, try those steps once at each of the six trial shops, and publish whether the sale completed. Do not publish the customer's name.", + "statementRefs": [ + "bank-blocking" + ], + "blocker": "A shop will not keep a public record of a blocked customer unless someone else writes the steps and checks that the name stays off the page" } ], "civic-assimilation": [ diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json index 7fd10e82..fe6e02fb 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -1637,8 +1637,8 @@ "create-cause" ], "targetCount": { - "min": 64, - "max": 64 + "min": 65, + "max": 65 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index b0017b8e..b2cb7bc6 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -861,7 +861,7 @@ { "userId": "user-003", "displayName": "Imani", - "bio": "Recently moved to Owen Sound and wants the twelve conversation sessions with childcare. She rejects the demand to stop recruiting newcomers.", + "bio": "Recently moved to Owen Sound and wants the twelve conversation sessions with childcare. She rejects the demand to stop recruiting newcomers. A bank hold is why she wants a shop to be able to finish a sale, and why she funds the checkout work that makes that possible.", "favoriteCauseId": "civic-assimilation", "interests": [ "English practice", @@ -985,7 +985,7 @@ { "userId": "user-016", "displayName": "June", - "bio": "Reviews project alignments and will refuse a project that only sounds related to a statement.", + "bio": "Reviews project alignments and will refuse a project that only sounds related to a statement. She wants a willing shop to finish a sale when a bank has blocked the customer, and she funds the Owen Sound checkout work as that step.", "favoriteCauseId": "crypto-merchants", "interests": [ "review", @@ -1637,8 +1637,8 @@ "create-cause" ], "targetCount": { - "min": 64, - "max": 64 + "min": 65, + "max": 65 } }, { @@ -1648,8 +1648,8 @@ "publish-statement" ], "targetCount": { - "min": 64, - "max": 64 + "min": 65, + "max": 65 } }, { diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index cbaea1f1..0ad1ba2f 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -274,7 +274,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); assert.equal(plan.statements.length, 94); - assert.equal(plan.projects.length, 64); + assert.equal(plan.projects.length, 65); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); assert.ok(checklist); @@ -399,6 +399,28 @@ test('batch 2 pins persona belief choices and never has Eli believe the settleme assert.equal(beliefs.some((action) => action.actorUserId === user.id && action.statementId === canadaCommonality.id && action.belief === 'believe'), false, name); assert.equal(beliefs.some((action) => action.actorUserId === user.id && action.statementId === canadaCommonality.id && action.belief === 'disbelieve'), true, name); } + const imani = plan.users.find((user) => user.displayName === 'Imani')!; + const june = plan.users.find((user) => user.displayName === 'June')!; + const blocked = plan.projects.find((project) => project.title === 'Blocked-customer sale record')!; + const blockedStatement = plan.statements.find((statement) => statement.id === blocked.statementIds[0])!; + assert.deepEqual(blocked.statementIds, [blockedStatement.id]); + assert.equal(blockedStatement.source.statementId, 'bank-blocking'); + const checkoutTitles = [ + 'Six-shop refundable checkout trial', + 'Independent checkout security review', + 'Fee and failure table', + 'Owen Sound merchant directory', + 'Quarterly checkout clinic and host kit', + 'Blocked-customer sale record', + ]; + for (const title of checkoutTitles) { + const project = plan.projects.find((item) => item.title === title)!; + for (const user of [imani, june]) { + assert.equal(plan.actions.some((action) => action.type === 'fund-project' && action.actorUserId === user.id && action.projectId === project.id), true, `${user.displayName} ${title}`); + } + } + assert.deepEqual(byStatementId('bank-blocking', imani.id).map((action) => action.belief), ['believe']); + assert.deepEqual(byStatementId('refuse-crypto-payments', june.id).map((action) => action.belief), ['disbelieve']); const greta = plan.users.find((user) => user.displayName === 'Greta')!; assert.equal(beliefs.some((action) => action.actorUserId === greta.id && action.statementId === boycott.id && action.belief === 'believe'), true); const adele = plan.users.find((user) => user.displayName === 'Adele')!; From 5507d960a872b251d858324b5692101cd4367639 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 15:28:41 -0400 Subject: [PATCH 22/46] Put Grey County civic life in front of the wording review. Crypto is already checked. The next board's sentences and projects are listed for Adam to mark. --- .../network-societies-campaign-plan.md | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 5f517c2d..4f7eb4f0 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences and project titles. The checklist is [Adam's review list](#adams-review-list-2026-10-20) at the bottom of this file. Do not mine another copy, and do not edit statement or project text, until he checks a board. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences and project titles, one board at a time. Crypto is checked. The board in front of him is Grey County civic life, written out under [Adam's review list](#adams-review-list-2026-10-20). Do not mine another copy, and do not edit statement or project text, until he checks that board. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -300,4 +300,29 @@ Read the current sentences in `network-societies-v1-b2-statements.json`. Adam is (ADAM: Let's go through one by one, starting with looking at the crypto one again, now that we've significantly changed it.) -- [x] Crypto board sentences, 2026-10-20. Adam said they look pretty decent. Projects on the refundable-checkout sentence stayed. Added "Blocked-customer sale record," aligned only to bank-blocking. Imani and June sign that sentence, reject a ban on crypto payments, and each fund the five checkout projects plus the new record. Not mined. \ No newline at end of file +- [x] Crypto board sentences, 2026-10-20. Adam said they look pretty decent. Projects on the refundable-checkout sentence stayed. Added "Blocked-customer sale record," aligned only to bank-blocking. Imani and June sign that sentence, reject a ban on crypto payments, and each fund the five checkout projects plus the new record. Not mined. + +### Grey County civic life (next) + +Board `civic-assimilation`. Check a box only if the wording is fine. Shared sentences also sit on other boards; a check here is about this board's use of them. + +Sentences: + +- [ ] Newcomers in Grey County can learn practical English, and how the library, the bus, a school meeting, and a township office work. (`language-sessions`) +- [ ] Newcomers and long-time residents take on practical work together in the county's public places. (`park-paths`) +- [ ] Township business stays in English, including when language classes are offered. (`english-township-business`) +- [ ] Newcomers can keep their own language communities without a public program that expects them to adopt local customs. (`own-language-communities`) +- [ ] Stop recruiting more newcomers until the published housing and clinic wait times get shorter. (`housing-before-recruiting`) +- [ ] Practical-English classes stop short of telling newcomers which customs to keep. (`session-limit`) +- [ ] A person who will host a small class is findable, and that person's affiliation is written down. (`class-host-directory`, also on Christian teaching and home learning) +- [ ] A public notice is readable without needing the recording. (`plain-text-notice`, also on Christian teaching) + +Projects on this board. The last two are one contract each, listed on more than one board. + +- [ ] Twelve conversation sessions — twelve English conversation sessions in Owen Sound with childcare, attendance published without naming children. Aligned to `language-sessions`. +- [ ] Grey County civics pack — plain-English pack for the library, the bus, a school meeting, and a township office. Aligned to `language-sessions`. +- [ ] Harrison Park path season — one summer of path repair with newcomers and long-time residents, hours and costs published. Aligned to `park-paths`. +- [ ] Conversation-session handoff — steps, contacts, and childcare so a second organizer can run the next series. Aligned to `language-sessions`. +- [ ] Independent tutor-listing check — someone who does not run the sessions checks language-tutor listings for one season and publishes which listings failed. Aligned to `language-sessions`. +- [ ] Grey County class-host directory — one directory of people who will host a small class, affiliation and an independent checker's note, maintained for one year. Aligned only to `class-host-directory`. Same contract on Christian teaching and home learning. +- [ ] Plain-text Grey County notice — one library, bus, or township notice transcribed into plain text and posted beside the original for one year. Aligned only to `plain-text-notice`. The project is filed under Christian teaching in the source so the contract is not duplicated. Not mined. \ No newline at end of file From 1e34ec2d98496e98edbed1cb6d268e556d0594e0 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 15:37:25 -0400 Subject: [PATCH 23/46] Rewrite the Grey County civic board around assimilation. The board is now the shared want, two constituencies that already say it, a milder English sentence, and a refusal. Sessions and the park season stay projects aligned to that want. Mined copies still use the old project file. --- .../network-societies-campaign-plan.md | 41 +- ...etwork-societies-v1-b2-board-projects.json | 584 ++++++++++++++++++ .../network-societies-v1-b2-statements.json | 23 + .../campaigns/network-societies-v1-b2.json | 25 +- .../network-societies-v1-pilot-decisions.json | 27 +- .../network-societies-v1-pilot-projects.json | 10 +- ...network-societies-v1-pilot-statements.json | 23 + .../campaigns/network-societies-v1-pilot.json | 23 +- .../test/campaignPlanner.test.ts | 4 +- 9 files changed, 692 insertions(+), 68 deletions(-) create mode 100644 fake-data-generation/campaigns/network-societies-v1-b2-board-projects.json diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 4f7eb4f0..9cce8e7a 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -304,25 +304,22 @@ Read the current sentences in `network-societies-v1-b2-statements.json`. Adam is ### Grey County civic life (next) -Board `civic-assimilation`. Check a box only if the wording is fine. Shared sentences also sit on other boards; a check here is about this board's use of them. - -Sentences: - -- [ ] Newcomers in Grey County can learn practical English, and how the library, the bus, a school meeting, and a township office work. (`language-sessions`) -- [ ] Newcomers and long-time residents take on practical work together in the county's public places. (`park-paths`) -- [ ] Township business stays in English, including when language classes are offered. (`english-township-business`) -- [ ] Newcomers can keep their own language communities without a public program that expects them to adopt local customs. (`own-language-communities`) -- [ ] Stop recruiting more newcomers until the published housing and clinic wait times get shorter. (`housing-before-recruiting`) -- [ ] Practical-English classes stop short of telling newcomers which customs to keep. (`session-limit`) -- [ ] A person who will host a small class is findable, and that person's affiliation is written down. (`class-host-directory`, also on Christian teaching and home learning) -- [ ] A public notice is readable without needing the recording. (`plain-text-notice`, also on Christian teaching) - -Projects on this board. The last two are one contract each, listed on more than one board. - -- [ ] Twelve conversation sessions — twelve English conversation sessions in Owen Sound with childcare, attendance published without naming children. Aligned to `language-sessions`. -- [ ] Grey County civics pack — plain-English pack for the library, the bus, a school meeting, and a township office. Aligned to `language-sessions`. -- [ ] Harrison Park path season — one summer of path repair with newcomers and long-time residents, hours and costs published. Aligned to `park-paths`. -- [ ] Conversation-session handoff — steps, contacts, and childcare so a second organizer can run the next series. Aligned to `language-sessions`. -- [ ] Independent tutor-listing check — someone who does not run the sessions checks language-tutor listings for one season and publishes which listings failed. Aligned to `language-sessions`. -- [ ] Grey County class-host directory — one directory of people who will host a small class, affiliation and an independent checker's note, maintained for one year. Aligned only to `class-host-directory`. Same contract on Christian teaching and home learning. -- [ ] Plain-text Grey County notice — one library, bus, or township notice transcribed into plain text and posted beside the original for one year. Aligned only to `plain-text-notice`. The project is filed under Christian teaching in the source so the contract is not duplicated. Not mined. \ No newline at end of file +Rewritten 2026-10-20 after Adam said the earlier sentences were too specific. The board is the assimilation want, two constituencies that already say it, a milder English sentence that does not say it, and a refusal. No implication arrow is published. The two longer sentences contain the assimilation sentence on purpose, so a later attester pass could bless them. Getting along in English is a designed no. The old class, park, and office sentences are off the board and kept only so mined copies still resolve. The Grey County assimilation-sessions draft still has the old session wording and is not this board. + +- [ ] If people from other cultures and other languages live in Grey County, I want them to assimilate. (`assimilate`) +- [ ] Keep welcoming some people from other cultures and other languages, and want those people to assimilate. (`some-immigration`) +- [ ] Rather fewer people like that moved here. If they live here, they should assimilate. (`fewer-newcomers`) +- [ ] No strong view on how many newcomers. People around here speak English, and people who live here should get along in English. (`english-around-here`) +- [ ] People from other cultures and languages should be able to keep them, and should not be expected to assimilate. (`keep-own-ways`) + +Projects stay. All five civic projects are aligned only to `assimilate`. Class-host and the plain-text notice stay on their own sentences. + +- [ ] Twelve conversation sessions. Aligned to `assimilate`. +- [ ] Grey County civics pack. Aligned to `assimilate`. +- [ ] Harrison Park path season. Aligned to `assimilate`. +- [ ] Conversation-session handoff. Aligned to `assimilate`. +- [ ] Independent tutor-listing check. Aligned to `assimilate`. +- [ ] Grey County class-host directory. Still only `class-host-directory`. +- [ ] Plain-text Grey County notice. Still only `plain-text-notice`. Not mined. + +Pilot pins, not yet mined: Imani signs `some-immigration` and `assimilate`, and rejects `keep-own-ways`. Doug signs `fewer-newcomers` and `assimilate`, rejects `keep-own-ways` and `some-immigration`. Nobody spotlighted signs `english-around-here`. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-board-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-board-projects.json new file mode 100644 index 00000000..cff886a4 --- /dev/null +++ b/fake-data-generation/campaigns/network-societies-v1-b2-board-projects.json @@ -0,0 +1,584 @@ +{ + "crypto-merchants": [ + { + "title": "Six-shop refundable checkout trial", + "outcome": "Ship an open-source checkout, with refunds, and run it for three months at six named Owen Sound shops. Publish the code and the shop list, and the shops keep taking cash and ordinary cards for the whole trial.", + "statementRefs": [ + "refundable-checkout" + ], + "blocker": "No one shop can justify building a checkout whose useful result is a public trial record" + }, + { + "title": "Independent checkout security review", + "outcome": "Pay a reviewer who does not write the checkout to publish findings and unfixed items before the Owen Sound trial ends.", + "statementRefs": [ + "refundable-checkout" + ], + "blocker": "The shops and the programmer are poor judges of their own security claims" + }, + { + "title": "Fee and failure table", + "outcome": "Publish the fee on a twenty-dollar Owen Sound trial sale, and a table of failed payments, before anyone calls the trial a success.", + "statementRefs": [ + "refundable-checkout" + ], + "blocker": "The numbers are useful to every later shop and owned by none of them" + }, + { + "title": "Owen Sound merchant directory", + "outcome": "Maintain, for one year, a directory that shows which trial shops still take the checkout and which shops stopped, with the date of each change.", + "statementRefs": [ + "refundable-checkout" + ], + "blocker": "A directory nobody maintains becomes an advertisement" + }, + { + "title": "Quarterly checkout clinic and host kit", + "outcome": "Run four Saturday clinics in Owen Sound and leave a host kit so a second person can run the next one.", + "statementRefs": [ + "refundable-checkout" + ], + "blocker": "The clinic stops when the first host is busy unless the hosting steps are written down" + }, + { + "title": "Blocked-customer sale record", + "outcome": "Write the steps a clerk at an Owen Sound shop follows when a customer's bank has blocked them, try those steps once at each of the six trial shops, and publish whether the sale completed. Do not publish the customer's name.", + "statementRefs": [ + "bank-blocking" + ], + "blocker": "A shop will not keep a public record of a blocked customer unless someone else writes the steps and checks that the name stays off the page" + } + ], + "civic-assimilation": [ + { + "title": "Twelve conversation sessions", + "outcome": "Hold twelve English conversation sessions in Owen Sound with childcare in the room, and publish attendance without naming children.", + "statementRefs": [ + "assimilate" + ], + "blocker": "Childcare and a room have to be paid before the first session, and no single family captures the benefit" + }, + { + "title": "Grey County civics pack", + "outcome": "Write and release a plain-English pack for the library, the bus, a school meeting, and a township office in Grey County.", + "statementRefs": [ + "assimilate" + ], + "blocker": "Each office explains itself differently, and no office is paid to write the combined pack" + }, + { + "title": "Harrison Park path season", + "outcome": "Run one summer of path repair in Harrison Park, Owen Sound, with newcomers and long-time residents, and publish hours and costs.", + "statementRefs": [ + "assimilate" + ], + "blocker": "The work needs a full season of tools and insurance before anyone can see the paths" + }, + { + "title": "Conversation-session handoff", + "outcome": "Write the steps, contacts, and childcare arrangements so a second organizer can run the next Owen Sound session series.", + "statementRefs": [ + "assimilate" + ], + "blocker": "The sessions are a public good only if they survive the first organizer" + }, + { + "title": "Independent tutor-listing check", + "outcome": "For one season, have someone who does not run the sessions check Grey County language-tutor listings and publish which listings failed.", + "statementRefs": [ + "assimilate" + ], + "blocker": "A directory checked by its own organizer does not answer a skeptic" + } + ], + "christian-teaching": [ + { + "title": "Midweek class notes", + "outcome": "Release the notes for one Grey County congregation's midweek class under terms another congregation can reuse.", + "statementRefs": [ + "midweek-notes", + "named-confession" + ], + "blocker": "The second congregation can copy the notes, so neither congregation is paid by the other to write them" + }, + { + "title": "Midweek class transcript", + "outcome": "Transcribe that class for people who cannot hear the recordings, and publish the transcript with the confession named.", + "statementRefs": [ + "midweek-notes", + "named-confession" + ], + "blocker": "Transcription is useful to every later listener and costly to the first congregation" + }, + { + "title": "One-season substitute rota", + "outcome": "Publish a Sunday rota and sermon notes so a substitute can preach at one named Grey County church for one season.", + "statementRefs": [ + "substitute-rota" + ], + "blocker": "Each small church has too few substitutes to keep the rota alone" + }, + { + "title": "Second-church host kit", + "outcome": "Write a one-season kit so a second Grey County church can run the same rota without the first host.", + "statementRefs": [ + "substitute-rota" + ], + "blocker": "The rota dies with the first host unless the steps are written down" + }, + { + "title": "Plain-text Grey County notice", + "outcome": "Transcribe one published Grey County library, bus, or township notice into plain text and post that text beside the original for one year.", + "statementRefs": [ + "plain-text-notice" + ], + "blocker": "The first transcription is useful to every later reader, and neither the township office nor a church transcription rota is paid to do it" + }, + { + "title": "Grey County class-host directory", + "outcome": "Publish one directory of Grey County people who will host a small class, with affiliation and an independent checker's note, and maintain it for one year.", + "statementRefs": [ + "class-host-directory" + ], + "blocker": "Churches, tutors, and home-school hosts each need the same checked list, and none of them owns it" + } + ], + "home-learning": [ + { + "title": "Printable grade-six science unit", + "outcome": "Release one grade-six science unit a Grey County family can print, with the teaching method named on the first page and no religious claims in the activities.", + "statementRefs": [ + "science-unit", + "method-on-the-page", + "no-religious-claims" + ], + "blocker": "Every family can copy the unit after the first author writes it" + }, + { + "title": "Grey County field-trip pack", + "outcome": "Release the permission form, map, and safety notes for one Grey County field trip so another family, including a school family, can run it.", + "statementRefs": [ + "science-unit", + "school-families-may-borrow" + ], + "blocker": "The first family pays for the reconnaissance and every later family can copy the pack" + }, + { + "title": "Store-item science kits", + "outcome": "Publish instructions for a home science kit of ordinary store items, including hazards and the adult supervision each activity needs.", + "statementRefs": [ + "science-unit" + ], + "blocker": "A safe kit has to be tried once before other families can reuse it" + }, + { + "title": "Eight Owen Sound Saturdays", + "outcome": "Host eight Saturday meetups in Owen Sound for home-school families and publish the dates before the first meeting.", + "statementRefs": [ + "science-unit" + ], + "blocker": "The room and the dates have to be reserved before any family can rely on them" + }, + { + "title": "Successor host notes", + "outcome": "Name a successor and write the notes so the Owen Sound meetups can run a second season without the first host.", + "statementRefs": [ + "science-unit" + ], + "blocker": "A meetup series that only the first host can run is not a maintained public good" + } + ], + "abortion": [ + { + "title": "Grand Rapids settlement sessions", + "outcome": "Hold six moderated sessions in Grand Rapids, Michigan, on the accepted 12-16 week settlement sentence, and publish the notes. The notes do not say what Michigan law currently is.", + "statementRefs": [ + "commonality" + ], + "blocker": "A room, a moderator, and a published record have to be paid for before either camp can point at the same notes" + }, + { + "title": "Plain-language settlement page", + "outcome": "Publish one page that quotes the accepted settlement sentence and says, in plain language, what a 12-16 week cutoff would allow and forbid. Do not describe that sentence as current law.", + "statementRefs": [ + "commonality", + "modified-left", + "modified-right" + ], + "blocker": "Each camp already has its own explanation, and neither is paid to write the shared one" + }, + { + "title": "Five-statement posting", + "outcome": "Keep the five accepted abortion statements posted, unchanged, for one year, with the date of each posting.", + "statementRefs": [ + "natural-left", + "natural-right", + "modified-left", + "modified-right", + "commonality" + ], + "blocker": "The posting is useful to every later reader and owned by none of them" + }, + { + "title": "Settlement-session host kit", + "outcome": "Write the steps, the room notes, and the publication checklist so a second person can run the Grand Rapids sessions without the first host.", + "statementRefs": [ + "commonality" + ], + "blocker": "The sessions stop when the first host is busy unless the steps are written down" + }, + { + "title": "Independent notes check", + "outcome": "Have someone who did not host the Grand Rapids sessions check that the published notes quote the settlement sentence without adding a claim about current Michigan law.", + "statementRefs": [ + "commonality" + ], + "blocker": "The host is a poor judge of whether their own notes stayed inside the sentence" + } + ], + "abortion-forum": [ + { + "title": "Michigan authority brief", + "outcome": "Publish a two-page brief that quotes the legislature-decides sentence and the federal-statute sentence as opposing proposals, and does not say which proposal is law.", + "statementRefs": [ + "michigan-legislature", + "one-federal-rule" + ], + "blocker": "Each side publishes its own brief, and nobody is paid to put the two proposals on one page" + }, + { + "title": "From-the-start position page", + "outcome": "Publish one page that states the from-the-start ban and the keep-campaigning position as positions their signers hold, labeled as positions rather than as Michigan law.", + "statementRefs": [ + "no-early-abortions", + "no-settlement" + ], + "blocker": "The page is a public record of dissent, and no single dissenter captures the benefit of maintaining it" + } + ], + "schools": [ + { + "title": "Grand Rapids pushing-question meetings", + "outcome": "Hold four moderated meetings in Grand Rapids where the question is whether schools are pushing kids toward LGBT identities, and publish the transcripts without a clinical claim.", + "statementRefs": [ + "natural-left", + "natural-right", + "commonality" + ], + "blocker": "The transcript is useful to people who were not in the room, and the first host pays for the room" + }, + { + "title": "Unchanged schools packet", + "outcome": "Print the five accepted schools statements, unchanged, in a packet for one parent meeting, and record which statement each speaker is answering.", + "statementRefs": [ + "natural-left", + "natural-right", + "modified-left", + "modified-right", + "commonality" + ], + "blocker": "A packet everyone can copy is not paid for by the second parent who uses it" + }, + { + "title": "Schools-meeting host kit", + "outcome": "Write the agenda and the publication steps so a second person can run the next pushing-question meeting without the first host.", + "statementRefs": [ + "commonality" + ], + "blocker": "The meeting series dies with the first host unless the steps are written down" + } + ], + "gender-conduct": [ + { + "title": "Harassment-steps sheet", + "outcome": "Publish the reporting steps for one named Grey County school, including the line that the student need not agree with a classmate.", + "statementRefs": [ + "harassment-steps" + ], + "blocker": "The sheet has to be checked against the school's actual desk procedure before other parents can rely on it" + }, + { + "title": "Clinician boundary page", + "outcome": "Publish one page that states the clinician-outside-the-school proposal and the schools-do-not-approve-drugs proposal, without a claim about medical outcomes.", + "statementRefs": [ + "clinician-for-minors", + "school-not-clinic" + ], + "blocker": "The two sentences are short, and nobody is paid to keep them from being rewritten into a treatment claim" + }, + { + "title": "Courtesy and medicine one-pager", + "outcome": "Publish one page that separates using a requested classroom name from any decision about drugs or surgery, using the courtesy statement's own wording.", + "statementRefs": [ + "names-and-courtesy" + ], + "blocker": "Each argument keeps folding the name into the medical decision unless a maintained page holds them apart" + }, + { + "title": "Adult-speech note", + "outcome": "Publish the wording of the adult-speech statement and a one-season note of which Grey County school-board agendas allowed that speech.", + "statementRefs": [ + "adult-medical-speech" + ], + "blocker": "The agenda record is useful to the next speaker and owned by none of them" + }, + { + "title": "Conduct-page host kit", + "outcome": "Write who updates the harassment sheet and the boundary page for the next school year, so the first editor can leave.", + "statementRefs": [ + "harassment-steps" + ], + "blocker": "A page nobody is assigned to update becomes an old photocopy" + } + ], + "voting": [ + { + "title": "Owen Sound association poll", + "outcome": "Run one non-binding ranked-ballot poll at one named Owen Sound community association and publish the ballots and the ranked count. The poll does not change a municipal election.", + "statementRefs": [ + "ranked-poll" + ], + "blocker": "Printing, a room, and a published count have to be paid for before anyone can inspect the result" + }, + { + "title": "Approval count of the same ballots", + "outcome": "Publish an approval count of those same Owen Sound ballots beside the ranked count, with both methods named.", + "statementRefs": [ + "ranked-poll", + "approval-count" + ], + "blocker": "A second count is useful to people comparing methods, and the association is not paid to run it" + }, + { + "title": "Rerunnable counting notes", + "outcome": "Publish the counting method in enough detail that a second person can rerun it from the published ballots and match the count.", + "statementRefs": [ + "ranked-poll" + ], + "blocker": "The counter who ran the poll is a poor person to be the only one who can repeat it" + }, + { + "title": "Second-host poll kit", + "outcome": "Write the room, ballot, and publication steps so a second Owen Sound resident can run the next non-binding poll.", + "statementRefs": [ + "ranked-poll" + ], + "blocker": "The poll stops when the first host is busy unless the steps are written down" + }, + { + "title": "Printed moderator checklist", + "outcome": "Print the moderator checklist and file one copy with the Owen Sound poll notes and one copy with the Michigan forum notes.", + "statementRefs": [ + "moderator-checklist" + ], + "blocker": "Each meeting can use the same checklist, and neither meeting is paid to keep the card in print" + }, + { + "title": "Moderator checklist card", + "outcome": "Print the moderator checklist and use it for the Owen Sound poll and for one other published meeting, then file both checklists in the Grey County trial directory.", + "statementRefs": [ + "moderator-checklist", + "ranked-poll" + ], + "blocker": "The checklist is useful on more than one board, and neither meeting owns the maintenance" + } + ], + "grey-assimilation": [ + { + "title": "Owen Sound evening sessions", + "outcome": "Run twelve evening practical-English sessions in Owen Sound with childcare, covering the library, the bus, and a township office. Township business stays in English. The sessions do not tell newcomers which customs to keep.", + "statementRefs": [ + "commonality" + ], + "blocker": "Childcare and a room have to be paid for before either camp can see whether the limited program is the one they would accept" + }, + { + "title": "Session-limit card", + "outcome": "Print the commonality sentence and the two modified sentences, unchanged, so a host can show what the sessions will and will not do.", + "statementRefs": [ + "modified-left", + "modified-right", + "commonality" + ], + "blocker": "The limit is easy to drop in the room unless a card states it" + } + ], + "ranked-approval-poll": [ + { + "title": "Dual-count association poll", + "outcome": "One Owen Sound community association runs a non-binding poll and publishes a ranked count and an approval count of the same ballots. The poll does not change a municipal election.", + "statementRefs": [ + "commonality" + ], + "blocker": "Printing both counts costs more than the association's usual show of hands" + }, + { + "title": "Dual-count host card", + "outcome": "Print the two modified sentences so a host can say that publishing the other count is not a change of preferred system.", + "statementRefs": [ + "modified-left", + "modified-right" + ], + "blocker": "Without the card, each side hears the second count as a concession they did not make" + } + ], + "checkout-trial-bridge": [ + { + "title": "Six-shop trial on the bridge terms", + "outcome": "Six named Owen Sound shops try, for three months, a checkout that can take a crypto payment and refund it, show the fee on a twenty-dollar sale before the customer pays, and keep taking cash and cards.", + "statementRefs": [ + "commonality" + ], + "blocker": "No one shop pays for a trial whose useful result is a public record of fees and refunds" + }, + { + "title": "Trial-terms card", + "outcome": "Print the two modified sentences so a merchant and a payments person can see the trial limits in their own wording.", + "statementRefs": [ + "modified-left", + "modified-right" + ], + "blocker": "The shared sentence leaves out why each side showed up, and the card is what keeps those reasons visible" + } + ], + "minors-medicine": [ + { + "title": "Rule comparison page", + "outcome": "Publish the commonality sentence as a proposal, labeled as a proposal, with no claim about current law or clinical results.", + "statementRefs": [ + "commonality" + ], + "blocker": "A one-page proposal is useful to people who will not attend a meeting, and nobody owns the page" + }, + { + "title": "Separate-questions card", + "outcome": "Print the modified-right sentence so a host can keep classroom names and school drug approval off this page.", + "statementRefs": [ + "modified-right", + "commonality" + ], + "blocker": "Those questions keep getting folded back in unless a maintained card holds them out" + } + ], + "opinion-employment": [ + { + "title": "Appeal-before-blacklist card", + "outcome": "Publish the commonality sentence and a one-page appeal checklist a workplace can fill in before treating someone as unemployable for a stated opinion.", + "statementRefs": [ + "commonality" + ], + "blocker": "The checklist is useful to the next workplace and paid for by none of them" + }, + { + "title": "Still-a-sanction note", + "outcome": "Publish the modified-left sentence so the card does not get read as a ban on every workplace response.", + "statementRefs": [ + "modified-left" + ], + "blocker": "The exception for threats and refused work disappears if only the short sentence is copied" + } + ], + "canada-us-ties": [ + { + "title": "Ordinary-ties one-pager", + "outcome": "Publish the commonality sentence for one Canadian community group, labeled as a draft statement rather than as a finding about trade.", + "statementRefs": [ + "commonality" + ], + "blocker": "The page is a shared wording, and neither camp's organizer is paid to keep the other camp's wording intact" + }, + { + "title": "Not-an-endorsement card", + "outcome": "Print both modified sentences beside the commonality so a reader can see the administration question was left out on purpose.", + "statementRefs": [ + "modified-left", + "modified-right", + "commonality" + ], + "blocker": "Without both wordings, one camp hears the page as praise and the other hears it as a boycott refusal they did not sign" + }, + { + "title": "Owen Sound cross-border archive", + "outcome": "Publish one year of dated Owen Sound stories about family visits and ordinary purchases across the Canada-US border, with a name only when the contributor asked for one.", + "statementRefs": [ + "commonality" + ], + "blocker": "The stories are scattered across families, and no one family is paid to keep a public copy" + }, + { + "title": "Civic and business ties guide", + "outcome": "Publish a guide for Owen Sound that lists practical steps for a family visit to the US and for buying from a US business, and that names no party and no administration.", + "statementRefs": [ + "commonality" + ], + "blocker": "The steps are useful to the next traveler and written down by none of them" + }, + { + "title": "Owen Sound ties evening", + "outcome": "Hold one Owen Sound evening with a published agenda and a packet later hosts can copy. The evening is for talking about family visits and ordinary purchases. It does not ask anyone to praise or condemn the current US administration.", + "statementRefs": [ + "commonality" + ], + "blocker": "A one-night conversation leaves no materials unless someone is paid to write them down" + }, + { + "title": "Grey County exchange directory", + "outcome": "Keep, for one year, a monthly-checked directory of Grey County hosts for conversations about Canada-US family visits and ordinary purchases. Each listing has a name, a town, and a way to see that it is still current.", + "statementRefs": [ + "commonality" + ], + "blocker": "A host list that nobody checks becomes a list of people who moved" + }, + { + "title": "Host handoff card", + "outcome": "Write the steps a second person in Owen Sound needs in order to host the next conversation about Canada-US family visits without the first host.", + "statementRefs": [ + "commonality" + ], + "blocker": "The conversation stops when the first host is busy unless the hosting steps are written down" + } + ], + "ai-pause": [ + { + "title": "Pause-treaty petition packet", + "outcome": "Publish the petition text, the governments it is addressed to, and a running signature count for one year. The packet includes the shared pause sentence and does not claim a government has agreed.", + "statementRefs": [ + "commonality" + ], + "blocker": "A petition nobody maintains becomes a slogan, and no single signer is paid to keep the count honest" + }, + { + "title": "Small-chance explainer", + "outcome": "Publish a plain-language brief that states the small-chance modified sentence beside the shared pause sentence, so a reader can see what the shorter sentence does not claim.", + "statementRefs": [ + "modified-small-chance", + "commonality" + ], + "blocker": "The milder wording is useful only if someone writes it down where the certain-doom sentence is not the only text on offer" + }, + { + "title": "Checkable alignment note", + "outcome": "Commission one note on a published idea for keeping a more capable system from doing catastrophic harm. The note states the method, the result, and what was not shown. It does not claim the problem is solved.", + "statementRefs": [ + "commonality" + ], + "blocker": "A second person cannot check a safety claim that lives in a lab notebook nobody else is paid to read" + }, + { + "title": "One-year warning digest", + "outcome": "For one year, publish a digest of public warnings from people who work on AI, each with a date and a source, and no claim added beyond the source.", + "statementRefs": [ + "commonality" + ], + "blocker": "The warnings are scattered, and no newsroom is paid to keep a list that refuses to sharpen them" + }, + { + "title": "Pause-meeting host kit", + "outcome": "Write the agenda, the two sentences to read aloud, and the handoff steps so a second host can run the next meeting without the first host.", + "statementRefs": [ + "commonality" + ], + "blocker": "The meeting stops when the first host is busy unless the hosting steps are written down" + } + ] +} diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index de1f6ed0..7adbdc39 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -29,7 +29,30 @@ { "id": "civic-assimilation", "title": "Shared civic life in Grey County", + "notes": [ + "The board is the assimilation want plus constituencies that already say it, a milder English sentence that does not, and a refusal. Sessions, parks, and notices are projects. The retired ids below stay so already-mined copies still resolve. They are not on the board." + ], "statements": [ + { + "id": "assimilate", + "text": "If people from other cultures and other languages live in Grey County, Ontario, I want them to assimilate." + }, + { + "id": "some-immigration", + "text": "I want Grey County to keep welcoming some people from other cultures and other languages, and I want those people to assimilate." + }, + { + "id": "fewer-newcomers", + "text": "I would rather fewer people from other cultures and other languages moved to Grey County. If people like that live here, I want them to assimilate." + }, + { + "id": "english-around-here", + "text": "I don't have a strong view on how many newcomers Grey County should take. People around here speak English, and I want people who live here to get along in English." + }, + { + "id": "keep-own-ways", + "text": "I want people in Grey County who come from other cultures and languages to be able to keep those cultures and languages, and I do not want them expected to assimilate." + }, { "id": "language-sessions", "text": "I want newcomers in Grey County, Ontario, to be able to learn practical English, and to learn how the library, the bus, a school meeting, and a township office work." diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index b2cb7bc6..bd96dfeb 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -19,11 +19,11 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 94, - "maxStatements": 94, + "minStatements": 93, + "maxStatements": 93, "allowRepeatedStatementRefs": true }, - "projectStories": "network-societies-v1-b2-projects.json", + "projectStories": "network-societies-v1-b2-board-projects.json", "beliefDecisions": "network-societies-v1-b2-decisions.json", "causes": [ { @@ -58,32 +58,27 @@ { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "language-sessions" + "statementId": "assimilate" }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "park-paths" + "statementId": "some-immigration" }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "english-township-business" + "statementId": "fewer-newcomers" }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "own-language-communities" + "statementId": "english-around-here" }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "housing-before-recruiting" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "session-limit" + "statementId": "keep-own-ways" }, { "collectionId": "network-societies-v1-b2", @@ -1597,8 +1592,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 94, - "max": 94 + "min": 93, + "max": 93 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json b/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json index 45a3f95e..7ddf642d 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json @@ -16,11 +16,15 @@ "userId": "user-003", "name": "Imani", "signs": [ - "language-sessions", - "session-limit" + "some-immigration", + "assimilate" ], "rejects": [ - "housing-before-recruiting" + "keep-own-ways" + ], + "unsigned": [ + "english-around-here", + "fewer-newcomers" ], "funds": "Twelve conversation sessions" }, @@ -28,12 +32,15 @@ "userId": "user-006", "name": "Doug", "signs": [ - "park-paths", - "english-township-business", - "housing-before-recruiting" + "fewer-newcomers", + "assimilate" ], "rejects": [ - "own-language-communities" + "keep-own-ways", + "some-immigration" + ], + "unsigned": [ + "english-around-here" ], "funds": "Harrison Park path season" }, @@ -98,10 +105,10 @@ "reason": "No fresh affirmative result from the real implication-attester prompt is stored. The pilot therefore publishes no implication edges.", "proposed": [ { - "from": "language-sessions", - "to": "housing-before-recruiting", + "from": "english-around-here", + "to": "assimilate", "expect": "negative", - "why": "Wanting classes does not imply a recruiting pause." + "why": "Getting along in English does not already say assimilate. No arrow until a real attester pass, and this pair is a designed no." }, { "from": "class-host-directory", diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json b/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json index a1586857..9cd7ecad 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json @@ -46,7 +46,7 @@ "title": "Twelve conversation sessions", "outcome": "Hold twelve English conversation sessions in Owen Sound with childcare in the room, and publish attendance without naming children.", "statementRefs": [ - "language-sessions" + "assimilate" ], "blocker": "Childcare and a room have to be paid before the first session, and no single family captures the benefit" }, @@ -54,7 +54,7 @@ "title": "Grey County civics pack", "outcome": "Write and release a plain-English pack for the library, the bus, a school meeting, and a township office in Grey County.", "statementRefs": [ - "language-sessions" + "assimilate" ], "blocker": "Each office explains itself differently, and no office is paid to write the combined pack" }, @@ -62,7 +62,7 @@ "title": "Harrison Park path season", "outcome": "Run one summer of path repair in Harrison Park, Owen Sound, with newcomers and long-time residents, and publish hours and costs.", "statementRefs": [ - "park-paths" + "assimilate" ], "blocker": "The work needs a full season of tools and insurance before anyone can see the paths" }, @@ -70,7 +70,7 @@ "title": "Conversation-session handoff", "outcome": "Write the steps, contacts, and childcare arrangements so a second organizer can run the next Owen Sound session series.", "statementRefs": [ - "language-sessions" + "assimilate" ], "blocker": "The sessions are a public good only if they survive the first organizer" }, @@ -78,7 +78,7 @@ "title": "Independent tutor-listing check", "outcome": "For one season, have someone who does not run the sessions check Grey County language-tutor listings and publish which listings failed.", "statementRefs": [ - "language-sessions" + "assimilate" ], "blocker": "A directory checked by its own organizer does not answer a skeptic" } diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json index 7943db15..348732b0 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json @@ -28,7 +28,30 @@ { "id": "civic-assimilation", "title": "Shared civic life in Grey County", + "notes": [ + "Same board sentences as network-societies-v1-b2-statements.json. Retired ids stay so older manifests can still load." + ], "statements": [ + { + "id": "assimilate", + "text": "If people from other cultures and other languages live in Grey County, Ontario, I want them to assimilate." + }, + { + "id": "some-immigration", + "text": "I want Grey County to keep welcoming some people from other cultures and other languages, and I want those people to assimilate." + }, + { + "id": "fewer-newcomers", + "text": "I would rather fewer people from other cultures and other languages moved to Grey County. If people like that live here, I want them to assimilate." + }, + { + "id": "english-around-here", + "text": "I don't have a strong view on how many newcomers Grey County should take. People around here speak English, and I want people who live here to get along in English." + }, + { + "id": "keep-own-ways", + "text": "I want people in Grey County who come from other cultures and languages to be able to keep those cultures and languages, and I do not want them expected to assimilate." + }, { "id": "language-sessions", "text": "I want newcomers in Grey County, Ontario, to be able to learn practical English, and to learn how the library, the bus, a school meeting, and a township office work." diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot.json b/fake-data-generation/campaigns/network-societies-v1-pilot.json index beb190ad..773a5ec9 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 4, "maxCauses": 6, - "minStatements": 21, - "maxStatements": 21, + "minStatements": 20, + "maxStatements": 20, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-pilot-projects.json", @@ -58,32 +58,27 @@ { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", - "statementId": "language-sessions" + "statementId": "assimilate" }, { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", - "statementId": "park-paths" + "statementId": "some-immigration" }, { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", - "statementId": "english-township-business" + "statementId": "fewer-newcomers" }, { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", - "statementId": "own-language-communities" + "statementId": "english-around-here" }, { "collectionId": "network-societies-v1", "groupId": "civic-assimilation", - "statementId": "housing-before-recruiting" - }, - { - "collectionId": "network-societies-v1", - "groupId": "civic-assimilation", - "statementId": "session-limit" + "statementId": "keep-own-ways" }, { "collectionId": "network-societies-v1", @@ -438,8 +433,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 21, - "max": 21 + "min": 20, + "max": 20 } }, { diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 0ad1ba2f..0ab1f5f6 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -245,7 +245,7 @@ test('network-societies pilot reuses one directory statement and publishes no im const manifest = JSON.parse(await readFile(new URL('../campaigns/network-societies-v1-pilot.json', import.meta.url), 'utf8')) as CampaignManifestV1; const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 40); - assert.equal(plan.statements.length, 21); + assert.equal(plan.statements.length, 20); assert.equal(plan.projects.length, 20); const shared = plan.statements.find((statement) => statement.source.statementId === 'class-host-directory'); assert.ok(shared); @@ -273,7 +273,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one } const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); - assert.equal(plan.statements.length, 94); + assert.equal(plan.statements.length, 93); assert.equal(plan.projects.length, 65); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); From ef5aad57c146260bb538c6d310787a39ecb69a52 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 16:01:22 -0400 Subject: [PATCH 24/46] Drop the retired Grey County civic sentences. The note-spend and reimbursement manifests name the assimilation board instead, and Adam marked that board good enough for now. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 24 +- ...etwork-societies-v1-b2-board-projects.json | 584 ------------------ .../network-societies-v1-b2-note-spend.json | 23 +- .../network-societies-v1-b2-projects.json | 10 +- .../network-societies-v1-b2-reimburse.json | 23 +- .../network-societies-v1-b2-statements.json | 26 +- .../campaigns/network-societies-v1-b2.json | 2 +- .../campaigns/network-societies-v1-b2.md | 2 +- ...network-societies-v1-pilot-statements.json | 26 +- 10 files changed, 30 insertions(+), 692 deletions(-) delete mode 100644 fake-data-generation/campaigns/network-societies-v1-b2-board-projects.json diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 1d506370..c2f5d451 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-20 wording cut, is 72 users, 94 statements, and 64 projects. Seventeen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-20 wording cut, is 72 users, 93 statements, and 64 projects. Seventeen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 9cce8e7a..9e4ba156 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences and project titles, one board at a time. Crypto is checked. The board in front of him is Grey County civic life, written out under [Adam's review list](#adams-review-list-2026-10-20). Do not mine another copy, and do not edit statement or project text, until he checks that board. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto and Grey County civic life are good enough for now. The next board is Christian teaching. Do not mine another copy, and do not edit a board's statement or project text, until he is in that session. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -302,24 +302,4 @@ Read the current sentences in `network-societies-v1-b2-statements.json`. Adam is - [x] Crypto board sentences, 2026-10-20. Adam said they look pretty decent. Projects on the refundable-checkout sentence stayed. Added "Blocked-customer sale record," aligned only to bank-blocking. Imani and June sign that sentence, reject a ban on crypto payments, and each fund the five checkout projects plus the new record. Not mined. -### Grey County civic life (next) - -Rewritten 2026-10-20 after Adam said the earlier sentences were too specific. The board is the assimilation want, two constituencies that already say it, a milder English sentence that does not say it, and a refusal. No implication arrow is published. The two longer sentences contain the assimilation sentence on purpose, so a later attester pass could bless them. Getting along in English is a designed no. The old class, park, and office sentences are off the board and kept only so mined copies still resolve. The Grey County assimilation-sessions draft still has the old session wording and is not this board. - -- [ ] If people from other cultures and other languages live in Grey County, I want them to assimilate. (`assimilate`) -- [ ] Keep welcoming some people from other cultures and other languages, and want those people to assimilate. (`some-immigration`) -- [ ] Rather fewer people like that moved here. If they live here, they should assimilate. (`fewer-newcomers`) -- [ ] No strong view on how many newcomers. People around here speak English, and people who live here should get along in English. (`english-around-here`) -- [ ] People from other cultures and languages should be able to keep them, and should not be expected to assimilate. (`keep-own-ways`) - -Projects stay. All five civic projects are aligned only to `assimilate`. Class-host and the plain-text notice stay on their own sentences. - -- [ ] Twelve conversation sessions. Aligned to `assimilate`. -- [ ] Grey County civics pack. Aligned to `assimilate`. -- [ ] Harrison Park path season. Aligned to `assimilate`. -- [ ] Conversation-session handoff. Aligned to `assimilate`. -- [ ] Independent tutor-listing check. Aligned to `assimilate`. -- [ ] Grey County class-host directory. Still only `class-host-directory`. -- [ ] Plain-text Grey County notice. Still only `plain-text-notice`. Not mined. - -Pilot pins, not yet mined: Imani signs `some-immigration` and `assimilate`, and rejects `keep-own-ways`. Doug signs `fewer-newcomers` and `assimilate`, rejects `keep-own-ways` and `some-immigration`. Nobody spotlighted signs `english-around-here`. \ No newline at end of file +- [x] Grey County civic life, 2026-10-20. Good enough for now. The board is the assimilation want, two constituencies that already say it, a milder English sentence that does not, and a refusal. The five civic projects align only to `assimilate`. No implication arrow. The earlier class, park, and office sentences are deleted. The Grey County assimilation-sessions draft still has the old session wording and is not this board. Not mined. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-board-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-board-projects.json deleted file mode 100644 index cff886a4..00000000 --- a/fake-data-generation/campaigns/network-societies-v1-b2-board-projects.json +++ /dev/null @@ -1,584 +0,0 @@ -{ - "crypto-merchants": [ - { - "title": "Six-shop refundable checkout trial", - "outcome": "Ship an open-source checkout, with refunds, and run it for three months at six named Owen Sound shops. Publish the code and the shop list, and the shops keep taking cash and ordinary cards for the whole trial.", - "statementRefs": [ - "refundable-checkout" - ], - "blocker": "No one shop can justify building a checkout whose useful result is a public trial record" - }, - { - "title": "Independent checkout security review", - "outcome": "Pay a reviewer who does not write the checkout to publish findings and unfixed items before the Owen Sound trial ends.", - "statementRefs": [ - "refundable-checkout" - ], - "blocker": "The shops and the programmer are poor judges of their own security claims" - }, - { - "title": "Fee and failure table", - "outcome": "Publish the fee on a twenty-dollar Owen Sound trial sale, and a table of failed payments, before anyone calls the trial a success.", - "statementRefs": [ - "refundable-checkout" - ], - "blocker": "The numbers are useful to every later shop and owned by none of them" - }, - { - "title": "Owen Sound merchant directory", - "outcome": "Maintain, for one year, a directory that shows which trial shops still take the checkout and which shops stopped, with the date of each change.", - "statementRefs": [ - "refundable-checkout" - ], - "blocker": "A directory nobody maintains becomes an advertisement" - }, - { - "title": "Quarterly checkout clinic and host kit", - "outcome": "Run four Saturday clinics in Owen Sound and leave a host kit so a second person can run the next one.", - "statementRefs": [ - "refundable-checkout" - ], - "blocker": "The clinic stops when the first host is busy unless the hosting steps are written down" - }, - { - "title": "Blocked-customer sale record", - "outcome": "Write the steps a clerk at an Owen Sound shop follows when a customer's bank has blocked them, try those steps once at each of the six trial shops, and publish whether the sale completed. Do not publish the customer's name.", - "statementRefs": [ - "bank-blocking" - ], - "blocker": "A shop will not keep a public record of a blocked customer unless someone else writes the steps and checks that the name stays off the page" - } - ], - "civic-assimilation": [ - { - "title": "Twelve conversation sessions", - "outcome": "Hold twelve English conversation sessions in Owen Sound with childcare in the room, and publish attendance without naming children.", - "statementRefs": [ - "assimilate" - ], - "blocker": "Childcare and a room have to be paid before the first session, and no single family captures the benefit" - }, - { - "title": "Grey County civics pack", - "outcome": "Write and release a plain-English pack for the library, the bus, a school meeting, and a township office in Grey County.", - "statementRefs": [ - "assimilate" - ], - "blocker": "Each office explains itself differently, and no office is paid to write the combined pack" - }, - { - "title": "Harrison Park path season", - "outcome": "Run one summer of path repair in Harrison Park, Owen Sound, with newcomers and long-time residents, and publish hours and costs.", - "statementRefs": [ - "assimilate" - ], - "blocker": "The work needs a full season of tools and insurance before anyone can see the paths" - }, - { - "title": "Conversation-session handoff", - "outcome": "Write the steps, contacts, and childcare arrangements so a second organizer can run the next Owen Sound session series.", - "statementRefs": [ - "assimilate" - ], - "blocker": "The sessions are a public good only if they survive the first organizer" - }, - { - "title": "Independent tutor-listing check", - "outcome": "For one season, have someone who does not run the sessions check Grey County language-tutor listings and publish which listings failed.", - "statementRefs": [ - "assimilate" - ], - "blocker": "A directory checked by its own organizer does not answer a skeptic" - } - ], - "christian-teaching": [ - { - "title": "Midweek class notes", - "outcome": "Release the notes for one Grey County congregation's midweek class under terms another congregation can reuse.", - "statementRefs": [ - "midweek-notes", - "named-confession" - ], - "blocker": "The second congregation can copy the notes, so neither congregation is paid by the other to write them" - }, - { - "title": "Midweek class transcript", - "outcome": "Transcribe that class for people who cannot hear the recordings, and publish the transcript with the confession named.", - "statementRefs": [ - "midweek-notes", - "named-confession" - ], - "blocker": "Transcription is useful to every later listener and costly to the first congregation" - }, - { - "title": "One-season substitute rota", - "outcome": "Publish a Sunday rota and sermon notes so a substitute can preach at one named Grey County church for one season.", - "statementRefs": [ - "substitute-rota" - ], - "blocker": "Each small church has too few substitutes to keep the rota alone" - }, - { - "title": "Second-church host kit", - "outcome": "Write a one-season kit so a second Grey County church can run the same rota without the first host.", - "statementRefs": [ - "substitute-rota" - ], - "blocker": "The rota dies with the first host unless the steps are written down" - }, - { - "title": "Plain-text Grey County notice", - "outcome": "Transcribe one published Grey County library, bus, or township notice into plain text and post that text beside the original for one year.", - "statementRefs": [ - "plain-text-notice" - ], - "blocker": "The first transcription is useful to every later reader, and neither the township office nor a church transcription rota is paid to do it" - }, - { - "title": "Grey County class-host directory", - "outcome": "Publish one directory of Grey County people who will host a small class, with affiliation and an independent checker's note, and maintain it for one year.", - "statementRefs": [ - "class-host-directory" - ], - "blocker": "Churches, tutors, and home-school hosts each need the same checked list, and none of them owns it" - } - ], - "home-learning": [ - { - "title": "Printable grade-six science unit", - "outcome": "Release one grade-six science unit a Grey County family can print, with the teaching method named on the first page and no religious claims in the activities.", - "statementRefs": [ - "science-unit", - "method-on-the-page", - "no-religious-claims" - ], - "blocker": "Every family can copy the unit after the first author writes it" - }, - { - "title": "Grey County field-trip pack", - "outcome": "Release the permission form, map, and safety notes for one Grey County field trip so another family, including a school family, can run it.", - "statementRefs": [ - "science-unit", - "school-families-may-borrow" - ], - "blocker": "The first family pays for the reconnaissance and every later family can copy the pack" - }, - { - "title": "Store-item science kits", - "outcome": "Publish instructions for a home science kit of ordinary store items, including hazards and the adult supervision each activity needs.", - "statementRefs": [ - "science-unit" - ], - "blocker": "A safe kit has to be tried once before other families can reuse it" - }, - { - "title": "Eight Owen Sound Saturdays", - "outcome": "Host eight Saturday meetups in Owen Sound for home-school families and publish the dates before the first meeting.", - "statementRefs": [ - "science-unit" - ], - "blocker": "The room and the dates have to be reserved before any family can rely on them" - }, - { - "title": "Successor host notes", - "outcome": "Name a successor and write the notes so the Owen Sound meetups can run a second season without the first host.", - "statementRefs": [ - "science-unit" - ], - "blocker": "A meetup series that only the first host can run is not a maintained public good" - } - ], - "abortion": [ - { - "title": "Grand Rapids settlement sessions", - "outcome": "Hold six moderated sessions in Grand Rapids, Michigan, on the accepted 12-16 week settlement sentence, and publish the notes. The notes do not say what Michigan law currently is.", - "statementRefs": [ - "commonality" - ], - "blocker": "A room, a moderator, and a published record have to be paid for before either camp can point at the same notes" - }, - { - "title": "Plain-language settlement page", - "outcome": "Publish one page that quotes the accepted settlement sentence and says, in plain language, what a 12-16 week cutoff would allow and forbid. Do not describe that sentence as current law.", - "statementRefs": [ - "commonality", - "modified-left", - "modified-right" - ], - "blocker": "Each camp already has its own explanation, and neither is paid to write the shared one" - }, - { - "title": "Five-statement posting", - "outcome": "Keep the five accepted abortion statements posted, unchanged, for one year, with the date of each posting.", - "statementRefs": [ - "natural-left", - "natural-right", - "modified-left", - "modified-right", - "commonality" - ], - "blocker": "The posting is useful to every later reader and owned by none of them" - }, - { - "title": "Settlement-session host kit", - "outcome": "Write the steps, the room notes, and the publication checklist so a second person can run the Grand Rapids sessions without the first host.", - "statementRefs": [ - "commonality" - ], - "blocker": "The sessions stop when the first host is busy unless the steps are written down" - }, - { - "title": "Independent notes check", - "outcome": "Have someone who did not host the Grand Rapids sessions check that the published notes quote the settlement sentence without adding a claim about current Michigan law.", - "statementRefs": [ - "commonality" - ], - "blocker": "The host is a poor judge of whether their own notes stayed inside the sentence" - } - ], - "abortion-forum": [ - { - "title": "Michigan authority brief", - "outcome": "Publish a two-page brief that quotes the legislature-decides sentence and the federal-statute sentence as opposing proposals, and does not say which proposal is law.", - "statementRefs": [ - "michigan-legislature", - "one-federal-rule" - ], - "blocker": "Each side publishes its own brief, and nobody is paid to put the two proposals on one page" - }, - { - "title": "From-the-start position page", - "outcome": "Publish one page that states the from-the-start ban and the keep-campaigning position as positions their signers hold, labeled as positions rather than as Michigan law.", - "statementRefs": [ - "no-early-abortions", - "no-settlement" - ], - "blocker": "The page is a public record of dissent, and no single dissenter captures the benefit of maintaining it" - } - ], - "schools": [ - { - "title": "Grand Rapids pushing-question meetings", - "outcome": "Hold four moderated meetings in Grand Rapids where the question is whether schools are pushing kids toward LGBT identities, and publish the transcripts without a clinical claim.", - "statementRefs": [ - "natural-left", - "natural-right", - "commonality" - ], - "blocker": "The transcript is useful to people who were not in the room, and the first host pays for the room" - }, - { - "title": "Unchanged schools packet", - "outcome": "Print the five accepted schools statements, unchanged, in a packet for one parent meeting, and record which statement each speaker is answering.", - "statementRefs": [ - "natural-left", - "natural-right", - "modified-left", - "modified-right", - "commonality" - ], - "blocker": "A packet everyone can copy is not paid for by the second parent who uses it" - }, - { - "title": "Schools-meeting host kit", - "outcome": "Write the agenda and the publication steps so a second person can run the next pushing-question meeting without the first host.", - "statementRefs": [ - "commonality" - ], - "blocker": "The meeting series dies with the first host unless the steps are written down" - } - ], - "gender-conduct": [ - { - "title": "Harassment-steps sheet", - "outcome": "Publish the reporting steps for one named Grey County school, including the line that the student need not agree with a classmate.", - "statementRefs": [ - "harassment-steps" - ], - "blocker": "The sheet has to be checked against the school's actual desk procedure before other parents can rely on it" - }, - { - "title": "Clinician boundary page", - "outcome": "Publish one page that states the clinician-outside-the-school proposal and the schools-do-not-approve-drugs proposal, without a claim about medical outcomes.", - "statementRefs": [ - "clinician-for-minors", - "school-not-clinic" - ], - "blocker": "The two sentences are short, and nobody is paid to keep them from being rewritten into a treatment claim" - }, - { - "title": "Courtesy and medicine one-pager", - "outcome": "Publish one page that separates using a requested classroom name from any decision about drugs or surgery, using the courtesy statement's own wording.", - "statementRefs": [ - "names-and-courtesy" - ], - "blocker": "Each argument keeps folding the name into the medical decision unless a maintained page holds them apart" - }, - { - "title": "Adult-speech note", - "outcome": "Publish the wording of the adult-speech statement and a one-season note of which Grey County school-board agendas allowed that speech.", - "statementRefs": [ - "adult-medical-speech" - ], - "blocker": "The agenda record is useful to the next speaker and owned by none of them" - }, - { - "title": "Conduct-page host kit", - "outcome": "Write who updates the harassment sheet and the boundary page for the next school year, so the first editor can leave.", - "statementRefs": [ - "harassment-steps" - ], - "blocker": "A page nobody is assigned to update becomes an old photocopy" - } - ], - "voting": [ - { - "title": "Owen Sound association poll", - "outcome": "Run one non-binding ranked-ballot poll at one named Owen Sound community association and publish the ballots and the ranked count. The poll does not change a municipal election.", - "statementRefs": [ - "ranked-poll" - ], - "blocker": "Printing, a room, and a published count have to be paid for before anyone can inspect the result" - }, - { - "title": "Approval count of the same ballots", - "outcome": "Publish an approval count of those same Owen Sound ballots beside the ranked count, with both methods named.", - "statementRefs": [ - "ranked-poll", - "approval-count" - ], - "blocker": "A second count is useful to people comparing methods, and the association is not paid to run it" - }, - { - "title": "Rerunnable counting notes", - "outcome": "Publish the counting method in enough detail that a second person can rerun it from the published ballots and match the count.", - "statementRefs": [ - "ranked-poll" - ], - "blocker": "The counter who ran the poll is a poor person to be the only one who can repeat it" - }, - { - "title": "Second-host poll kit", - "outcome": "Write the room, ballot, and publication steps so a second Owen Sound resident can run the next non-binding poll.", - "statementRefs": [ - "ranked-poll" - ], - "blocker": "The poll stops when the first host is busy unless the steps are written down" - }, - { - "title": "Printed moderator checklist", - "outcome": "Print the moderator checklist and file one copy with the Owen Sound poll notes and one copy with the Michigan forum notes.", - "statementRefs": [ - "moderator-checklist" - ], - "blocker": "Each meeting can use the same checklist, and neither meeting is paid to keep the card in print" - }, - { - "title": "Moderator checklist card", - "outcome": "Print the moderator checklist and use it for the Owen Sound poll and for one other published meeting, then file both checklists in the Grey County trial directory.", - "statementRefs": [ - "moderator-checklist", - "ranked-poll" - ], - "blocker": "The checklist is useful on more than one board, and neither meeting owns the maintenance" - } - ], - "grey-assimilation": [ - { - "title": "Owen Sound evening sessions", - "outcome": "Run twelve evening practical-English sessions in Owen Sound with childcare, covering the library, the bus, and a township office. Township business stays in English. The sessions do not tell newcomers which customs to keep.", - "statementRefs": [ - "commonality" - ], - "blocker": "Childcare and a room have to be paid for before either camp can see whether the limited program is the one they would accept" - }, - { - "title": "Session-limit card", - "outcome": "Print the commonality sentence and the two modified sentences, unchanged, so a host can show what the sessions will and will not do.", - "statementRefs": [ - "modified-left", - "modified-right", - "commonality" - ], - "blocker": "The limit is easy to drop in the room unless a card states it" - } - ], - "ranked-approval-poll": [ - { - "title": "Dual-count association poll", - "outcome": "One Owen Sound community association runs a non-binding poll and publishes a ranked count and an approval count of the same ballots. The poll does not change a municipal election.", - "statementRefs": [ - "commonality" - ], - "blocker": "Printing both counts costs more than the association's usual show of hands" - }, - { - "title": "Dual-count host card", - "outcome": "Print the two modified sentences so a host can say that publishing the other count is not a change of preferred system.", - "statementRefs": [ - "modified-left", - "modified-right" - ], - "blocker": "Without the card, each side hears the second count as a concession they did not make" - } - ], - "checkout-trial-bridge": [ - { - "title": "Six-shop trial on the bridge terms", - "outcome": "Six named Owen Sound shops try, for three months, a checkout that can take a crypto payment and refund it, show the fee on a twenty-dollar sale before the customer pays, and keep taking cash and cards.", - "statementRefs": [ - "commonality" - ], - "blocker": "No one shop pays for a trial whose useful result is a public record of fees and refunds" - }, - { - "title": "Trial-terms card", - "outcome": "Print the two modified sentences so a merchant and a payments person can see the trial limits in their own wording.", - "statementRefs": [ - "modified-left", - "modified-right" - ], - "blocker": "The shared sentence leaves out why each side showed up, and the card is what keeps those reasons visible" - } - ], - "minors-medicine": [ - { - "title": "Rule comparison page", - "outcome": "Publish the commonality sentence as a proposal, labeled as a proposal, with no claim about current law or clinical results.", - "statementRefs": [ - "commonality" - ], - "blocker": "A one-page proposal is useful to people who will not attend a meeting, and nobody owns the page" - }, - { - "title": "Separate-questions card", - "outcome": "Print the modified-right sentence so a host can keep classroom names and school drug approval off this page.", - "statementRefs": [ - "modified-right", - "commonality" - ], - "blocker": "Those questions keep getting folded back in unless a maintained card holds them out" - } - ], - "opinion-employment": [ - { - "title": "Appeal-before-blacklist card", - "outcome": "Publish the commonality sentence and a one-page appeal checklist a workplace can fill in before treating someone as unemployable for a stated opinion.", - "statementRefs": [ - "commonality" - ], - "blocker": "The checklist is useful to the next workplace and paid for by none of them" - }, - { - "title": "Still-a-sanction note", - "outcome": "Publish the modified-left sentence so the card does not get read as a ban on every workplace response.", - "statementRefs": [ - "modified-left" - ], - "blocker": "The exception for threats and refused work disappears if only the short sentence is copied" - } - ], - "canada-us-ties": [ - { - "title": "Ordinary-ties one-pager", - "outcome": "Publish the commonality sentence for one Canadian community group, labeled as a draft statement rather than as a finding about trade.", - "statementRefs": [ - "commonality" - ], - "blocker": "The page is a shared wording, and neither camp's organizer is paid to keep the other camp's wording intact" - }, - { - "title": "Not-an-endorsement card", - "outcome": "Print both modified sentences beside the commonality so a reader can see the administration question was left out on purpose.", - "statementRefs": [ - "modified-left", - "modified-right", - "commonality" - ], - "blocker": "Without both wordings, one camp hears the page as praise and the other hears it as a boycott refusal they did not sign" - }, - { - "title": "Owen Sound cross-border archive", - "outcome": "Publish one year of dated Owen Sound stories about family visits and ordinary purchases across the Canada-US border, with a name only when the contributor asked for one.", - "statementRefs": [ - "commonality" - ], - "blocker": "The stories are scattered across families, and no one family is paid to keep a public copy" - }, - { - "title": "Civic and business ties guide", - "outcome": "Publish a guide for Owen Sound that lists practical steps for a family visit to the US and for buying from a US business, and that names no party and no administration.", - "statementRefs": [ - "commonality" - ], - "blocker": "The steps are useful to the next traveler and written down by none of them" - }, - { - "title": "Owen Sound ties evening", - "outcome": "Hold one Owen Sound evening with a published agenda and a packet later hosts can copy. The evening is for talking about family visits and ordinary purchases. It does not ask anyone to praise or condemn the current US administration.", - "statementRefs": [ - "commonality" - ], - "blocker": "A one-night conversation leaves no materials unless someone is paid to write them down" - }, - { - "title": "Grey County exchange directory", - "outcome": "Keep, for one year, a monthly-checked directory of Grey County hosts for conversations about Canada-US family visits and ordinary purchases. Each listing has a name, a town, and a way to see that it is still current.", - "statementRefs": [ - "commonality" - ], - "blocker": "A host list that nobody checks becomes a list of people who moved" - }, - { - "title": "Host handoff card", - "outcome": "Write the steps a second person in Owen Sound needs in order to host the next conversation about Canada-US family visits without the first host.", - "statementRefs": [ - "commonality" - ], - "blocker": "The conversation stops when the first host is busy unless the hosting steps are written down" - } - ], - "ai-pause": [ - { - "title": "Pause-treaty petition packet", - "outcome": "Publish the petition text, the governments it is addressed to, and a running signature count for one year. The packet includes the shared pause sentence and does not claim a government has agreed.", - "statementRefs": [ - "commonality" - ], - "blocker": "A petition nobody maintains becomes a slogan, and no single signer is paid to keep the count honest" - }, - { - "title": "Small-chance explainer", - "outcome": "Publish a plain-language brief that states the small-chance modified sentence beside the shared pause sentence, so a reader can see what the shorter sentence does not claim.", - "statementRefs": [ - "modified-small-chance", - "commonality" - ], - "blocker": "The milder wording is useful only if someone writes it down where the certain-doom sentence is not the only text on offer" - }, - { - "title": "Checkable alignment note", - "outcome": "Commission one note on a published idea for keeping a more capable system from doing catastrophic harm. The note states the method, the result, and what was not shown. It does not claim the problem is solved.", - "statementRefs": [ - "commonality" - ], - "blocker": "A second person cannot check a safety claim that lives in a lab notebook nobody else is paid to read" - }, - { - "title": "One-year warning digest", - "outcome": "For one year, publish a digest of public warnings from people who work on AI, each with a date and a source, and no claim added beyond the source.", - "statementRefs": [ - "commonality" - ], - "blocker": "The warnings are scattered, and no newsroom is paid to keep a list that refuses to sharpen them" - }, - { - "title": "Pause-meeting host kit", - "outcome": "Write the agenda, the two sentences to read aloud, and the handoff steps so a second host can run the next meeting without the first host.", - "statementRefs": [ - "commonality" - ], - "blocker": "The meeting stops when the first host is busy unless the hosting steps are written down" - } - ] -} diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json index ea0c3d37..bcf95d08 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 94, - "maxStatements": 94, + "minStatements": 93, + "maxStatements": 93, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -58,32 +58,27 @@ { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "language-sessions" + "statementId": "assimilate" }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "park-paths" + "statementId": "some-immigration" }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "english-township-business" + "statementId": "fewer-newcomers" }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "own-language-communities" + "statementId": "english-around-here" }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "housing-before-recruiting" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "session-limit" + "statementId": "keep-own-ways" }, { "collectionId": "network-societies-v1-b2", @@ -1612,8 +1607,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 94, - "max": 94 + "min": 93, + "max": 93 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index 6bde37a3..cff886a4 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -54,7 +54,7 @@ "title": "Twelve conversation sessions", "outcome": "Hold twelve English conversation sessions in Owen Sound with childcare in the room, and publish attendance without naming children.", "statementRefs": [ - "language-sessions" + "assimilate" ], "blocker": "Childcare and a room have to be paid before the first session, and no single family captures the benefit" }, @@ -62,7 +62,7 @@ "title": "Grey County civics pack", "outcome": "Write and release a plain-English pack for the library, the bus, a school meeting, and a township office in Grey County.", "statementRefs": [ - "language-sessions" + "assimilate" ], "blocker": "Each office explains itself differently, and no office is paid to write the combined pack" }, @@ -70,7 +70,7 @@ "title": "Harrison Park path season", "outcome": "Run one summer of path repair in Harrison Park, Owen Sound, with newcomers and long-time residents, and publish hours and costs.", "statementRefs": [ - "park-paths" + "assimilate" ], "blocker": "The work needs a full season of tools and insurance before anyone can see the paths" }, @@ -78,7 +78,7 @@ "title": "Conversation-session handoff", "outcome": "Write the steps, contacts, and childcare arrangements so a second organizer can run the next Owen Sound session series.", "statementRefs": [ - "language-sessions" + "assimilate" ], "blocker": "The sessions are a public good only if they survive the first organizer" }, @@ -86,7 +86,7 @@ "title": "Independent tutor-listing check", "outcome": "For one season, have someone who does not run the sessions check Grey County language-tutor listings and publish which listings failed.", "statementRefs": [ - "language-sessions" + "assimilate" ], "blocker": "A directory checked by its own organizer does not answer a skeptic" } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json index fe6e02fb..85a482f7 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 94, - "maxStatements": 94, + "minStatements": 93, + "maxStatements": 93, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -58,32 +58,27 @@ { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "language-sessions" + "statementId": "assimilate" }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "park-paths" + "statementId": "some-immigration" }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "english-township-business" + "statementId": "fewer-newcomers" }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "own-language-communities" + "statementId": "english-around-here" }, { "collectionId": "network-societies-v1-b2", "groupId": "civic-assimilation", - "statementId": "housing-before-recruiting" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "civic-assimilation", - "statementId": "session-limit" + "statementId": "keep-own-ways" }, { "collectionId": "network-societies-v1-b2", @@ -1597,8 +1592,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 94, - "max": 94 + "min": 93, + "max": 93 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 7adbdc39..da840c33 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -30,7 +30,7 @@ "id": "civic-assimilation", "title": "Shared civic life in Grey County", "notes": [ - "The board is the assimilation want plus constituencies that already say it, a milder English sentence that does not, and a refusal. Sessions, parks, and notices are projects. The retired ids below stay so already-mined copies still resolve. They are not on the board." + "The board is the assimilation want, two constituencies that already say it, a milder English sentence that does not, and a refusal. Adam called this good enough on 2026-10-20. Sessions and the park season are projects aligned to assimilate." ], "statements": [ { @@ -52,30 +52,6 @@ { "id": "keep-own-ways", "text": "I want people in Grey County who come from other cultures and languages to be able to keep those cultures and languages, and I do not want them expected to assimilate." - }, - { - "id": "language-sessions", - "text": "I want newcomers in Grey County, Ontario, to be able to learn practical English, and to learn how the library, the bus, a school meeting, and a township office work." - }, - { - "id": "park-paths", - "text": "I want newcomers and long-time residents in Grey County to take on practical work together in the county's public places." - }, - { - "id": "english-township-business", - "text": "I want township business in Grey County to stay in English, including when language classes are offered." - }, - { - "id": "own-language-communities", - "text": "I want newcomers in Grey County to be able to keep their own language communities without a public program that expects them to adopt local customs." - }, - { - "id": "housing-before-recruiting", - "text": "I want Grey County to stop recruiting more newcomers until the published housing and clinic wait times get shorter." - }, - { - "id": "session-limit", - "text": "I want practical-English classes in Grey County to stop short of telling newcomers which customs to keep." } ] }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index bd96dfeb..202ef38b 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -23,7 +23,7 @@ "maxStatements": 93, "allowRepeatedStatementRefs": true }, - "projectStories": "network-societies-v1-b2-board-projects.json", + "projectStories": "network-societies-v1-b2-projects.json", "beliefDecisions": "network-societies-v1-b2-decisions.json", "causes": [ { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 20698b7f..59cf1bd6 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -14,7 +14,7 @@ Canada–US stays a bridge. The shared sentence is still ordinary purchases and ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 94 statements and 64 projects. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 93 statements and 64 projects. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board and the Grey County conduct board are ordinary boards, so their own sentences stay visible there. diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json index 348732b0..9cc45756 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json @@ -29,7 +29,7 @@ "id": "civic-assimilation", "title": "Shared civic life in Grey County", "notes": [ - "Same board sentences as network-societies-v1-b2-statements.json. Retired ids stay so older manifests can still load." + "Same board sentences as network-societies-v1-b2-statements.json." ], "statements": [ { @@ -51,30 +51,6 @@ { "id": "keep-own-ways", "text": "I want people in Grey County who come from other cultures and languages to be able to keep those cultures and languages, and I do not want them expected to assimilate." - }, - { - "id": "language-sessions", - "text": "I want newcomers in Grey County, Ontario, to be able to learn practical English, and to learn how the library, the bus, a school meeting, and a township office work." - }, - { - "id": "park-paths", - "text": "I want newcomers and long-time residents in Grey County to take on practical work together in the county's public places." - }, - { - "id": "english-township-business", - "text": "I want township business in Grey County to stay in English, including when language classes are offered." - }, - { - "id": "own-language-communities", - "text": "I want newcomers in Grey County to be able to keep their own language communities without a public program that expects them to adopt local customs." - }, - { - "id": "housing-before-recruiting", - "text": "I want Grey County to stop recruiting more newcomers until the published housing and clinic wait times get shorter." - }, - { - "id": "session-limit", - "text": "I want practical-English classes in Grey County to stop short of telling newcomers which customs to keep." } ] }, From 24c0e73142c2e084d4cc0cfc28b8324285a8eccc Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 16:29:44 -0400 Subject: [PATCH 25/46] Broaden the Christian teaching board past the projects. The notes and independent-church sentences are wants a signer can hold. Confession, joint doctrine, and the two refusals stay as separate positions. Statement ids are unchanged. --- .../network-societies-campaign-plan.md | 6 ++++-- .../network-societies-v1-b2-statements.json | 15 +++++++++------ .../campaigns/network-societies-v1-b2.json | 4 ++-- .../network-societies-v1-pilot-statements.json | 15 +++++++++------ .../campaigns/network-societies-v1-pilot.json | 4 ++-- 5 files changed, 26 insertions(+), 18 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 9e4ba156..14f4b57a 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto and Grey County civic life are good enough for now. The next board is Christian teaching. Do not mine another copy, and do not edit a board's statement or project text, until he is in that session. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto and Grey County civic life are good enough for now. Christian teaching was rewritten on 2026-10-20 to broader wants and is waiting on his read. Do not mine another copy until he accepts that board. Do not edit the next board's statement or project text until he is in that session. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -302,4 +302,6 @@ Read the current sentences in `network-societies-v1-b2-statements.json`. Adam is - [x] Crypto board sentences, 2026-10-20. Adam said they look pretty decent. Projects on the refundable-checkout sentence stayed. Added "Blocked-customer sale record," aligned only to bank-blocking. Imani and June sign that sentence, reject a ban on crypto payments, and each fund the five checkout projects plus the new record. Not mined. -- [x] Grey County civic life, 2026-10-20. Good enough for now. The board is the assimilation want, two constituencies that already say it, a milder English sentence that does not, and a refusal. The five civic projects align only to `assimilate`. No implication arrow. The earlier class, park, and office sentences are deleted. The Grey County assimilation-sessions draft still has the old session wording and is not this board. Not mined. \ No newline at end of file +- [x] Grey County civic life, 2026-10-20. Good enough for now. The board is the assimilation want, two constituencies that already say it, a milder English sentence that does not, and a refusal. The five civic projects align only to `assimilate`. No implication arrow. The earlier class, park, and office sentences are deleted. The Grey County assimilation-sessions draft still has the old session wording and is not this board. Not mined. + +- [ ] Christian teaching, rewritten 2026-10-20 and not yet accepted. The notes sentence and the independent-churches sentence are broader wants. Confession-named and no joint doctrine stay as signer limits. Keeping notes inside the church, and civic transcription that excludes church teaching, stay as refusals. Ids are unchanged. Projects still align to those ids. Not mined. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index da840c33..676f575c 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -58,30 +58,33 @@ { "id": "christian-teaching", "title": "Christian teaching resources in Grey County", + "notes": [ + "Rewritten 2026-10-20 after Adam said the board was restating the projects. Ids are unchanged. Notes and a transcript are projects under the shared-notes want. A substitute rota and a host kit are projects under the independent-churches want. Naming a confession, and refusing a joint doctrinal statement, are further signer positions, not extra deliverables." + ], "statements": [ { "id": "midweek-notes", - "text": "I want a Grey County congregation to be able to reuse another congregation's teaching notes." + "text": "I want more freely available teaching notes that people from many English-speaking churches can use." }, { "id": "substitute-rota", - "text": "I want a Grey County church to be able to have a substitute preacher when the regular preacher is away." + "text": "I want independent churches in the Grey County area to be able to get the ordinary help they need without joining a larger denomination." }, { "id": "named-confession", - "text": "I want shared Grey County teaching notes to name the confession they come from." + "text": "I want shared church teaching notes to name the confession they come from." }, { "id": "no-joint-doctrine", - "text": "I want congregations that reuse the same Grey County teaching notes to stop short of publishing a joint statement of doctrine." + "text": "I want churches that reuse the same teaching notes to stop short of publishing a joint statement of doctrine." }, { "id": "civic-transcription-only", - "text": "I want to help transcribe public civic materials in Grey County, and I do not want that work to include church teaching." + "text": "I want to help transcribe public civic materials, and I do not want that work to include church teaching." }, { "id": "keep-notes-inside", - "text": "I want a congregation's teaching notes to stay inside that congregation." + "text": "I want a church's teaching notes to stay inside that church." } ] }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index 202ef38b..4ab102e4 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -840,7 +840,7 @@ { "userId": "user-002", "displayName": "Helen", - "bio": "Preaches at a small Grey County church and wants the midweek notes reusable, with the confession named. She does not treat a shared host directory as agreement on doctrine.", + "bio": "Preaches at a small Grey County church and wants freely available teaching notes that many English-speaking churches can use, with the confession named. She does not treat a shared host directory as agreement on doctrine.", "favoriteCauseId": "christian-teaching", "interests": [ "preaching", @@ -872,7 +872,7 @@ { "userId": "user-004", "displayName": "Owen", - "bio": "Home-schools in Grey County and wants the printable science unit with no religious claims. He will not sign a request to release a congregation's midweek notes.", + "bio": "Home-schools in Grey County and wants the printable science unit with no religious claims. He will not sign a request for freely available church teaching notes.", "favoriteCauseId": "home-learning", "interests": [ "home science", diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json index 9cc45756..97562ea5 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json @@ -57,30 +57,33 @@ { "id": "christian-teaching", "title": "Christian teaching resources in Grey County", + "notes": [ + "Same sentences as network-societies-v1-b2-statements.json. Rewritten 2026-10-20 so the board is wants, not project descriptions." + ], "statements": [ { "id": "midweek-notes", - "text": "I want a Grey County congregation to be able to reuse another congregation's teaching notes." + "text": "I want more freely available teaching notes that people from many English-speaking churches can use." }, { "id": "substitute-rota", - "text": "I want a Grey County church to be able to have a substitute preacher when the regular preacher is away." + "text": "I want independent churches in the Grey County area to be able to get the ordinary help they need without joining a larger denomination." }, { "id": "named-confession", - "text": "I want shared Grey County teaching notes to name the confession they come from." + "text": "I want shared church teaching notes to name the confession they come from." }, { "id": "no-joint-doctrine", - "text": "I want congregations that reuse the same Grey County teaching notes to stop short of publishing a joint statement of doctrine." + "text": "I want churches that reuse the same teaching notes to stop short of publishing a joint statement of doctrine." }, { "id": "civic-transcription-only", - "text": "I want to help transcribe public civic materials in Grey County, and I do not want that work to include church teaching." + "text": "I want to help transcribe public civic materials, and I do not want that work to include church teaching." }, { "id": "keep-notes-inside", - "text": "I want a congregation's teaching notes to stay inside that congregation." + "text": "I want a church's teaching notes to stay inside that church." } ] }, diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot.json b/fake-data-generation/campaigns/network-societies-v1-pilot.json index 773a5ec9..180c95f5 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot.json @@ -279,7 +279,7 @@ { "userId": "user-002", "displayName": "Helen", - "bio": "Preaches at a small Grey County church and wants the midweek notes reusable, with the confession named. She does not treat a shared host directory as agreement on doctrine.", + "bio": "Preaches at a small Grey County church and wants freely available teaching notes that many English-speaking churches can use, with the confession named. She does not treat a shared host directory as agreement on doctrine.", "favoriteCauseId": "christian-teaching", "interests": [ "preaching", @@ -309,7 +309,7 @@ { "userId": "user-004", "displayName": "Owen", - "bio": "Home-schools in Grey County and wants the printable science unit with no religious claims. He will not sign a request to release a congregation's midweek notes.", + "bio": "Home-schools in Grey County and wants the printable science unit with no religious claims. He will not sign a request for freely available church teaching notes.", "favoriteCauseId": "home-learning", "interests": [ "home science", From 0a3d505c9e7466fe2f696c9d61505394e6106106 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 16:44:21 -0400 Subject: [PATCH 26/46] Replace the Christian teaching sentences instead of keeping them. The board is two wants, with confession and qualifications inside those wants, plus two refusals. The old ids are deleted and the projects point at the new ones. A later board rewrite should follow the same deletion rule in the campaign plan. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 21 +++++++++---- fake-data-generation/campaignPlanner.ts | 22 +++++++++++--- .../network-societies-v1-b2-note-spend.json | 24 +++++---------- .../network-societies-v1-b2-projects.json | 10 +++---- .../network-societies-v1-b2-reimburse.json | 24 +++++---------- .../network-societies-v1-b2-statements.json | 22 +++++--------- .../campaigns/network-societies-v1-b2.json | 26 +++++----------- .../campaigns/network-societies-v1-b2.md | 2 +- .../network-societies-v1-pilot-decisions.json | 11 ++++--- .../network-societies-v1-pilot-projects.json | 10 +++---- ...network-societies-v1-pilot-statements.json | 22 +++++--------- .../campaigns/network-societies-v1-pilot.json | 30 +++++++------------ .../campaigns/network-societies-v1-pilot.md | 2 +- .../test/campaignPlanner.test.ts | 6 ++-- 15 files changed, 99 insertions(+), 135 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index c2f5d451..a22d5c08 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-20 wording cut, is 72 users, 93 statements, and 64 projects. Seventeen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-20 wording cut, is 72 users, 91 statements, and 64 projects. Seventeen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 14f4b57a..4055bb8d 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -50,7 +50,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | --- | --- | --- | --- | | Crypto-friendly checkout | 10 | 6 | Meets it. Includes a refusal of crypto payments. One project is aligned to the bank-blocking sentence. | | Grey County civic life | 10, plus a 5-statement assimilation draft | 5 on the main board, 2 on the draft | Main board meets it. The draft is not a second family. | -| Christian teaching | 9 | 5 | Meets it. | +| Christian teaching | 4, plus the class-host sentence and the plain-text notice on the board | 5 | Under review. Adam asked for fewer, broader wants on 2026-10-20. | | Home learning | 10 | 5 | Meets it. | | Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Meets it. Eli refuses the settlement. | | Schools and conduct | 7 on Grey County conduct, plus the accepted five | 3 on the schools cause, 5 on conduct | The family meets it. The schools cause alone has three projects. | @@ -59,7 +59,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | AI pause | 17 | 5 | Meets it. Five modified-to-commonality arrows are allowed. | | Low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation | none | none | Deferred. | -One statement, the class-host directory, is on the civic-life, Christian teaching, and home-learning boards. One statement, the moderator checklist, is on the Michigan authority board and the Owen Sound voting board. The class-host directory project is one contract aligned to that shared statement, so those three boards list the same raise. It is not aligned to the confession sentence or to the staffed-schools sentence. Two more single-statement projects are now in the batch 2 source: Printed moderator checklist, aligned only to the checklist already on the Michigan forum and the Owen Sound voting board, and Plain-text Grey County notice, aligned only to a new sentence on the civic and Christian teaching boards. They are not in the mined output directories. +One statement, the class-host directory, is on the civic-life, Christian teaching, and home-learning boards. One statement, the moderator checklist, is on the Michigan authority board and the Owen Sound voting board. The class-host directory project is one contract aligned to that shared statement, so those three boards list the same raise. It is not aligned to a Christian-teaching sentence or to the staffed-schools sentence. Two more single-statement projects are now in the batch 2 source: Printed moderator checklist, aligned only to the checklist already on the Michigan forum and the Owen Sound voting board, and Plain-text Grey County notice, aligned only to a new sentence on the civic and Christian teaching boards. They are not in the mined output directories. ## Journeys the frozen plan can and cannot show @@ -72,7 +72,7 @@ These are properties of the 523-write graph, not of a chain run. A browser walkt | 3. A bridge is declined | Mined. Eli's profile lists "Late-term abortion is horrific." and does not list the settlement sentence. The settlement statement page still offers him Sign. | | 4. Early risk and later reimbursement | Mined, reconciled, and walked on 2026-10-19 in `output/campaigns/network-societies-v1-b2-reimburse/`, not in the 523-write graph. As Ruth, [Six-shop refundable checkout trial](http://127.0.0.1:5199/projects/0x4251D15D9Ee936d6F489C5aF9646084dB23EE3DE) showed 2.04 of 2 USDZZZ raised, status Succeeded, and "Early contributors are still out 1.04 USDZZZ." Ruth's row is 1.01 USDZZZ net; Imani's is 1.00. A third row, `0x5eF7…6f74`, is 0.02. Len is the founder and the recipient, and he is not one of those rows. Ruth's scout reimbursement showed 0.495098 USDZZZ available now and 0.514901 future. The page says no success attestations yet. Crossing the threshold is not evidence that the fictional work was delivered. | | 5. Limited delegation | Delegate and revoke are mined. Pat's note to Ned was revoked, so the live page shows the note back with Pat. Walked 2026-10-19. The one-time spend is mined in `output/campaigns/network-societies-v1-b2-note-spend/`: June's payment-token note stays with Willa, who buys one 0.01 receipt. Walked 2026-10-20. A recurring monthly pledge stays a product gap. | -| 6. Same project, different boards | Mined in the 523-write graph and in the later copies, and walked on 2026-10-20 from `output/campaigns/network-societies-v1-b2-note-spend/`. [Grey County class-host directory](http://127.0.0.1:5199/projects/0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115) is one contract. Christian teaching and home learning both link it as `/projects/eip155:31337:0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`. Civic life lists the same title at 0.01 of 2 USDZZZ. The alignment is the shared class-host sentence, not the confession sentence and not the staffed-schools sentence. | +| 6. Same project, different boards | Mined in the 523-write graph and in the later copies, and walked on 2026-10-20 from `output/campaigns/network-societies-v1-b2-note-spend/`. [Grey County class-host directory](http://127.0.0.1:5199/projects/0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115) is one contract. Christian teaching and home learning both link it as `/projects/eip155:31337:0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`. Civic life lists the same title at 0.01 of 2 USDZZZ. The alignment is the shared class-host sentence, not a Christian-teaching sentence and not the staffed-schools sentence. | | 7. Independent judgment | Dropped 2026-10-20. A reviewer withholds a yes from a superficially relevant project. That is the judgment. Do not add a negative alignment attestation to make the refusal louder. | ## Purpose @@ -250,7 +250,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 5. A friend spends a delegated note.** Delegate and revoke already run. Pat (`user-021`) delegated note `note-0001` to Ned (`user-011`) and then revoked that same note, so that pair cannot also show a spend. The copy [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json) plans a different pair: June deposits one payment-token note, Willa keeps the delegation, and Willa spends it on one 0.01 receipt for the six-shop checkout trial. The action type is `spend-delegated-note`. It was mined on 2026-10-20. A recurring monthly pledge is still not an action type. Leave that as a product gap. Do not invent pledge transactions. -**Journey 6. One project on two boards.** Done for one project. `project-015` has one `causeId` (`christian-teaching`) and one alignment, to the class-host sentence. That sentence is also on the civic and home-learning boards, so those boards list the same contract. Publishing a second contract would double-count the raise. The confession sentence and the staffed-schools sentence are not alignments of this project. The other two are in the batch 2 source as of 2026-10-20: Printed moderator checklist (only `moderator-checklist`) and Plain-text Grey County notice (only `plain-text-notice`). Neither has been mined. +**Journey 6. One project on two boards.** Done for one project. `project-015` has one `causeId` (`christian-teaching`) and one alignment, to the class-host sentence. That sentence is also on the civic and home-learning boards, so those boards list the same contract. Publishing a second contract would double-count the raise. No Christian-teaching sentence is an alignment of this project, and the staffed-schools sentence is not either. The other two are in the batch 2 source as of 2026-10-20: Printed moderator checklist (only `moderator-checklist`) and Plain-text Grey County notice (only `plain-text-notice`). Neither has been mined. **Journey 7. Independent judgment.** Dropped on 2026-10-20. The contract records a yes or a later revoke of that same yes. Adam decided not to add a decline. A missing attestation is the refusal. Do not treat this as unfinished campaign work, and do not add a negative alignment type so the journey can be walked. @@ -273,6 +273,17 @@ The mined output directories still contain the old sentences. Do not regenerate The review list that used to sit here described the old sentences. Adam is reading the new ones one board at a time. +## How to rewrite a board Adam says is too specific + +Do what the Grey County civic rewrite did in `ef5aad57`, in the same session as the new sentences. + +- Delete the old statement ids. Remove them from the statement files, every cause `statementRefs` list, project alignments, persona pins, and the statement-count targets (`scale` and `publish-statement`). +- Do not leave the old sentences in the file. Mined output directories are frozen. They do not need the old ids to keep resolving. +- Do not keep an old id and only change its text. A new want gets a new id. +- A limit that makes the want usable belongs inside that want. Naming assumptions, naming a confession, or stating qualifications is not a second sentence. +- A real refusal of the want can stay as its own sentence. +- Show Adam the new board. Leave it unchecked until he says it is good enough. + ## Adam's review list (2026-10-20) Source of the sentences and project titles: `fake-data-generation/campaigns/network-societies-v1-b2-statements.json` and `network-societies-v1-b2-projects.json`. A box is checked only when Adam has said the item is fine. Nothing in the generated campaign text is checked yet. @@ -304,4 +315,4 @@ Read the current sentences in `network-societies-v1-b2-statements.json`. Adam is - [x] Grey County civic life, 2026-10-20. Good enough for now. The board is the assimilation want, two constituencies that already say it, a milder English sentence that does not, and a refusal. The five civic projects align only to `assimilate`. No implication arrow. The earlier class, park, and office sentences are deleted. The Grey County assimilation-sessions draft still has the old session wording and is not this board. Not mined. -- [ ] Christian teaching, rewritten 2026-10-20 and not yet accepted. The notes sentence and the independent-churches sentence are broader wants. Confession-named and no joint doctrine stay as signer limits. Keeping notes inside the church, and civic transcription that excludes church teaching, stay as refusals. Ids are unchanged. Projects still align to those ids. Not mined. \ No newline at end of file +- [ ] Christian teaching, rewritten again 2026-10-20 and not yet accepted. The old six ids are deleted. The board is two wants (freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated) and two refusals (notes stay inside the church; civic transcription excludes church teaching). Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. Not mined. \ No newline at end of file diff --git a/fake-data-generation/campaignPlanner.ts b/fake-data-generation/campaignPlanner.ts index f8f45037..8a882e6b 100644 --- a/fake-data-generation/campaignPlanner.ts +++ b/fake-data-generation/campaignPlanner.ts @@ -262,6 +262,7 @@ interface BeliefDecisionPerson { name?: string; signs?: string[]; rejects?: string[]; + unsigned?: string[]; funds?: string[] | string; } @@ -498,20 +499,33 @@ export async function buildCampaignPlan(manifest: CampaignManifestV1): Promise user.causeIds.some((causeId) => statement.causeId === causeId || statement.alsoOnCauseIds?.includes(causeId))); + const matches = visible.filter((statement) => statement.source.statementId === statementId); + if (matches.length !== 1) continue; + const key = `${user.id}/${matches[0].id}`; + if (pinnedBeliefs.has(key)) throw new Error(`${user.id} pins ${statementId} and also leaves it unsigned`); + reservedBeliefs.add(key); + } + } if (pinnedBeliefs.size > countByType['set-belief']) { throw new Error(`belief decisions pin ${pinnedBeliefs.size} writes, above the set-belief target ${countByType['set-belief']}`); } const randomBeliefCount = countByType['set-belief'] - pinnedBeliefs.size; for (let index = 0; index < randomBeliefCount; index++) { - const flipPool = [...latestBelief.values()].filter((action) => !pinnedBeliefs.has(`${action.actorUserId}/${action.statementId}`)); + const flipPool = [...latestBelief.values()].filter((action) => !reservedBeliefs.has(`${action.actorUserId}/${action.statementId}`)); const previous = index > Math.floor(randomBeliefCount * 0.92) && flipPool.length > 0 ? random.pick(flipPool) : undefined; let actor = previous ? usersById.get(previous.actorUserId!)! : random.weighted(activeUsers, (user) => user.activityWeight); - let openStatements = preferredStatements(actor, statements).filter((statement) => !pinnedBeliefs.has(`${actor.id}/${statement.id}`)); + let openStatements = preferredStatements(actor, statements).filter((statement) => !reservedBeliefs.has(`${actor.id}/${statement.id}`)); if (!previous && openStatements.length === 0) { - const eligible = activeUsers.filter((user) => preferredStatements(user, statements).some((statement) => !pinnedBeliefs.has(`${user.id}/${statement.id}`))); + const eligible = activeUsers.filter((user) => preferredStatements(user, statements).some((statement) => !reservedBeliefs.has(`${user.id}/${statement.id}`))); if (eligible.length === 0) throw new Error('no user has an unpinned statement to sign'); actor = random.weighted(eligible, (user) => user.activityWeight); - openStatements = preferredStatements(actor, statements).filter((statement) => !pinnedBeliefs.has(`${actor.id}/${statement.id}`)); + openStatements = preferredStatements(actor, statements).filter((statement) => !reservedBeliefs.has(`${actor.id}/${statement.id}`)); } const statement = previous ? statements.find((item) => item.id === previous.statementId)! : random.pick(openStatements); const beliefActor = users.find((user) => user.id === (previous?.actorUserId ?? actor.id))!; diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json index bcf95d08..38f574ec 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 93, - "maxStatements": 93, + "minStatements": 91, + "maxStatements": 91, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -101,33 +101,23 @@ { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", - "statementId": "midweek-notes" + "statementId": "shared-teaching-notes" }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", - "statementId": "substitute-rota" + "statementId": "independent-church-help" }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", - "statementId": "named-confession" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "no-joint-doctrine" + "statementId": "keep-notes-inside" }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", "statementId": "civic-transcription-only" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "keep-notes-inside" - }, { "collectionId": "network-societies-v1-b2", "groupId": "shared-goods", @@ -1607,8 +1597,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 93, - "max": 93 + "min": 91, + "max": 91 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index cff886a4..bc517036 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -96,8 +96,7 @@ "title": "Midweek class notes", "outcome": "Release the notes for one Grey County congregation's midweek class under terms another congregation can reuse.", "statementRefs": [ - "midweek-notes", - "named-confession" + "shared-teaching-notes" ], "blocker": "The second congregation can copy the notes, so neither congregation is paid by the other to write them" }, @@ -105,8 +104,7 @@ "title": "Midweek class transcript", "outcome": "Transcribe that class for people who cannot hear the recordings, and publish the transcript with the confession named.", "statementRefs": [ - "midweek-notes", - "named-confession" + "shared-teaching-notes" ], "blocker": "Transcription is useful to every later listener and costly to the first congregation" }, @@ -114,7 +112,7 @@ "title": "One-season substitute rota", "outcome": "Publish a Sunday rota and sermon notes so a substitute can preach at one named Grey County church for one season.", "statementRefs": [ - "substitute-rota" + "independent-church-help" ], "blocker": "Each small church has too few substitutes to keep the rota alone" }, @@ -122,7 +120,7 @@ "title": "Second-church host kit", "outcome": "Write a one-season kit so a second Grey County church can run the same rota without the first host.", "statementRefs": [ - "substitute-rota" + "independent-church-help" ], "blocker": "The rota dies with the first host unless the steps are written down" }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json index 85a482f7..d5ee9a94 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 93, - "maxStatements": 93, + "minStatements": 91, + "maxStatements": 91, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -101,33 +101,23 @@ { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", - "statementId": "midweek-notes" + "statementId": "shared-teaching-notes" }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", - "statementId": "substitute-rota" + "statementId": "independent-church-help" }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", - "statementId": "named-confession" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "no-joint-doctrine" + "statementId": "keep-notes-inside" }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", "statementId": "civic-transcription-only" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "keep-notes-inside" - }, { "collectionId": "network-societies-v1-b2", "groupId": "shared-goods", @@ -1592,8 +1582,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 93, - "max": 93 + "min": 91, + "max": 91 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 676f575c..8907fafc 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -59,32 +59,24 @@ "id": "christian-teaching", "title": "Christian teaching resources in Grey County", "notes": [ - "Rewritten 2026-10-20 after Adam said the board was restating the projects. Ids are unchanged. Notes and a transcript are projects under the shared-notes want. A substitute rota and a host kit are projects under the independent-churches want. Naming a confession, and refusing a joint doctrinal statement, are further signer positions, not extra deliverables." + "Rewritten 2026-10-20. Two wants, plus a refusal of sharing notes and a refusal to mix civic transcription with church teaching. Naming a confession and refusing a joint doctrinal statement are inside the notes want. Stating qualifications and doctrine is inside the independent-church want. The old midweek, rota, confession, and joint-doctrine ids are deleted." ], "statements": [ { - "id": "midweek-notes", - "text": "I want more freely available teaching notes that people from many English-speaking churches can use." + "id": "shared-teaching-notes", + "text": "I want more freely available teaching notes that people from many English-speaking churches can use. I want those notes to name the confession and the other assumptions they rely on, and I do not want the churches that use them to have to publish a joint statement of doctrine." }, { - "id": "substitute-rota", - "text": "I want independent churches in the Grey County area to be able to get the ordinary help they need without joining a larger denomination." + "id": "independent-church-help", + "text": "I want independent churches in the Grey County area to be able to get ordinary help, including a substitute preacher, without joining a larger denomination. I want the person offering that help to state their qualifications and doctrine, so a church can decide whether that person is acceptable." }, { - "id": "named-confession", - "text": "I want shared church teaching notes to name the confession they come from." - }, - { - "id": "no-joint-doctrine", - "text": "I want churches that reuse the same teaching notes to stop short of publishing a joint statement of doctrine." + "id": "keep-notes-inside", + "text": "I want a church's teaching notes to stay inside that church." }, { "id": "civic-transcription-only", "text": "I want to help transcribe public civic materials, and I do not want that work to include church teaching." - }, - { - "id": "keep-notes-inside", - "text": "I want a church's teaching notes to stay inside that church." } ] }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index 4ab102e4..3fc63fc2 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 93, - "maxStatements": 93, + "minStatements": 91, + "maxStatements": 91, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -101,33 +101,23 @@ { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", - "statementId": "midweek-notes" + "statementId": "shared-teaching-notes" }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", - "statementId": "substitute-rota" + "statementId": "independent-church-help" }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", - "statementId": "named-confession" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "no-joint-doctrine" + "statementId": "keep-notes-inside" }, { "collectionId": "network-societies-v1-b2", "groupId": "christian-teaching", "statementId": "civic-transcription-only" }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "christian-teaching", - "statementId": "keep-notes-inside" - }, { "collectionId": "network-societies-v1-b2", "groupId": "shared-goods", @@ -840,7 +830,7 @@ { "userId": "user-002", "displayName": "Helen", - "bio": "Preaches at a small Grey County church and wants freely available teaching notes that many English-speaking churches can use, with the confession named. She does not treat a shared host directory as agreement on doctrine.", + "bio": "Preaches at a small Grey County church and wants freely available teaching notes that many English-speaking churches can use, with the confession named and without a joint doctrinal statement. She does not treat a shared host directory as agreement on doctrine.", "favoriteCauseId": "christian-teaching", "interests": [ "preaching", @@ -1592,8 +1582,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 93, - "max": 93 + "min": 91, + "max": 91 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 59cf1bd6..0cd3b79b 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -14,7 +14,7 @@ Canada–US stays a bridge. The shared sentence is still ordinary purchases and ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 93 statements and 64 projects. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 91 statements and 64 projects. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board and the Grey County conduct board are ordinary boards, so their own sentences stay visible there. diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json b/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json index 7ddf642d..49322a2f 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json @@ -54,7 +54,7 @@ "class-host-directory" ], "rejects": [ - "midweek-notes", + "shared-teaching-notes", "keep-notes-inside" ], "unsigned": [ @@ -65,9 +65,8 @@ "userId": "user-002", "name": "Helen", "signs": [ - "midweek-notes", - "named-confession", - "no-joint-doctrine", + "shared-teaching-notes", + "independent-church-help", "class-host-directory" ], "rejects": [ @@ -112,9 +111,9 @@ }, { "from": "class-host-directory", - "to": "midweek-notes", + "to": "shared-teaching-notes", "expect": "negative", - "why": "A checked directory does not imply releasing church notes." + "why": "A checked directory does not imply freely available church teaching notes." } ], "allianceNotRequiringABridge": "Ruth and Len can both fund the checkout trial while Len refuses a crypto-identity plank. That is existing overlap, not a modified-statement triple." diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json b/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json index 9cd7ecad..97a651b1 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json @@ -88,8 +88,7 @@ "title": "Midweek class notes", "outcome": "Release the notes for one Grey County congregation's midweek class under terms another congregation can reuse.", "statementRefs": [ - "midweek-notes", - "named-confession" + "shared-teaching-notes" ], "blocker": "The second congregation can copy the notes, so neither congregation is paid by the other to write them" }, @@ -97,8 +96,7 @@ "title": "Midweek class transcript", "outcome": "Transcribe that class for people who cannot hear the recordings, and publish the transcript with the confession named.", "statementRefs": [ - "midweek-notes", - "named-confession" + "shared-teaching-notes" ], "blocker": "Transcription is useful to every later listener and costly to the first congregation" }, @@ -106,7 +104,7 @@ "title": "One-season substitute rota", "outcome": "Publish a Sunday rota and sermon notes so a substitute can preach at one named Grey County church for one season.", "statementRefs": [ - "substitute-rota" + "independent-church-help" ], "blocker": "Each small church has too few substitutes to keep the rota alone" }, @@ -114,7 +112,7 @@ "title": "Second-church host kit", "outcome": "Write a one-season kit so a second Grey County church can run the same rota without the first host.", "statementRefs": [ - "substitute-rota" + "independent-church-help" ], "blocker": "The rota dies with the first host unless the steps are written down" }, diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json index 97562ea5..181e8983 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json @@ -58,32 +58,24 @@ "id": "christian-teaching", "title": "Christian teaching resources in Grey County", "notes": [ - "Same sentences as network-societies-v1-b2-statements.json. Rewritten 2026-10-20 so the board is wants, not project descriptions." + "Same sentences as network-societies-v1-b2-statements.json." ], "statements": [ { - "id": "midweek-notes", - "text": "I want more freely available teaching notes that people from many English-speaking churches can use." + "id": "shared-teaching-notes", + "text": "I want more freely available teaching notes that people from many English-speaking churches can use. I want those notes to name the confession and the other assumptions they rely on, and I do not want the churches that use them to have to publish a joint statement of doctrine." }, { - "id": "substitute-rota", - "text": "I want independent churches in the Grey County area to be able to get the ordinary help they need without joining a larger denomination." + "id": "independent-church-help", + "text": "I want independent churches in the Grey County area to be able to get ordinary help, including a substitute preacher, without joining a larger denomination. I want the person offering that help to state their qualifications and doctrine, so a church can decide whether that person is acceptable." }, { - "id": "named-confession", - "text": "I want shared church teaching notes to name the confession they come from." - }, - { - "id": "no-joint-doctrine", - "text": "I want churches that reuse the same teaching notes to stop short of publishing a joint statement of doctrine." + "id": "keep-notes-inside", + "text": "I want a church's teaching notes to stay inside that church." }, { "id": "civic-transcription-only", "text": "I want to help transcribe public civic materials, and I do not want that work to include church teaching." - }, - { - "id": "keep-notes-inside", - "text": "I want a church's teaching notes to stay inside that church." } ] }, diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot.json b/fake-data-generation/campaigns/network-societies-v1-pilot.json index 180c95f5..526c57ee 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 4, "maxCauses": 6, - "minStatements": 20, - "maxStatements": 20, + "minStatements": 18, + "maxStatements": 18, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-pilot-projects.json", @@ -96,33 +96,23 @@ { "collectionId": "network-societies-v1", "groupId": "christian-teaching", - "statementId": "midweek-notes" + "statementId": "shared-teaching-notes" }, { "collectionId": "network-societies-v1", "groupId": "christian-teaching", - "statementId": "substitute-rota" + "statementId": "independent-church-help" }, { "collectionId": "network-societies-v1", "groupId": "christian-teaching", - "statementId": "named-confession" - }, - { - "collectionId": "network-societies-v1", - "groupId": "christian-teaching", - "statementId": "no-joint-doctrine" + "statementId": "keep-notes-inside" }, { "collectionId": "network-societies-v1", "groupId": "christian-teaching", "statementId": "civic-transcription-only" }, - { - "collectionId": "network-societies-v1", - "groupId": "christian-teaching", - "statementId": "keep-notes-inside" - }, { "collectionId": "network-societies-v1", "groupId": "shared-goods", @@ -279,7 +269,7 @@ { "userId": "user-002", "displayName": "Helen", - "bio": "Preaches at a small Grey County church and wants freely available teaching notes that many English-speaking churches can use, with the confession named. She does not treat a shared host directory as agreement on doctrine.", + "bio": "Preaches at a small Grey County church and wants freely available teaching notes that many English-speaking churches can use, with the confession named and without a joint doctrinal statement. She does not treat a shared host directory as agreement on doctrine.", "favoriteCauseId": "christian-teaching", "interests": [ "preaching", @@ -433,8 +423,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 20, - "max": 20 + "min": 18, + "max": 18 } }, { @@ -453,8 +443,8 @@ "publish-statement" ], "targetCount": { - "min": 60, - "max": 60 + "min": 59, + "max": 59 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot.md b/fake-data-generation/campaigns/network-societies-v1-pilot.md index f0af1dd5..8aadb572 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot.md +++ b/fake-data-generation/campaigns/network-societies-v1-pilot.md @@ -34,7 +34,7 @@ Seed: `commonality-network-societies-v1-pilot-2026-10-16`. A plan written on 202 Ruth and Len can both be on the checkout board while the dissent plank "shops refuse crypto" is a separate statement. That overlap does not use an implication arrow. -Imani's rejection of the recruiting pause, and Owen's refusal of the midweek notes, are pinned `set-belief` actions. Owen leaves `staffed-schools` unsigned, so that file does not disbelieve it. +Imani's rejection of the recruiting pause, and Owen's refusal of the shared teaching-notes sentence, are pinned `set-belief` actions. Owen leaves `staffed-schools` unsigned, so that file does not disbelieve it. Pat (`user-021`) delegates notes to Ned (`user-011`). Some delegations are later revoked. The plan does not show Ned spending Pat's note. diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 0ab1f5f6..755d28f5 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -223,7 +223,7 @@ test('network-societies pilot pins persona belief choices', async () => { }; const plan = await buildCampaignPlan(manifest); const beliefs = plan.actions.filter((action) => action.type === 'set-belief'); - assert.equal(beliefs.length, 60); + assert.equal(beliefs.length, 59); const byStatementId = (sourceId: string, userId: string) => beliefs.filter((action) => { const statement = plan.statements.find((item) => item.id === action.statementId); return action.actorUserId === userId && statement?.source.statementId === sourceId; @@ -245,7 +245,7 @@ test('network-societies pilot reuses one directory statement and publishes no im const manifest = JSON.parse(await readFile(new URL('../campaigns/network-societies-v1-pilot.json', import.meta.url), 'utf8')) as CampaignManifestV1; const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 40); - assert.equal(plan.statements.length, 20); + assert.equal(plan.statements.length, 18); assert.equal(plan.projects.length, 20); const shared = plan.statements.find((statement) => statement.source.statementId === 'class-host-directory'); assert.ok(shared); @@ -273,7 +273,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one } const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); - assert.equal(plan.statements.length, 93); + assert.equal(plan.statements.length, 91); assert.equal(plan.projects.length, 65); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); From 23616458b871d34446c3bdcb6c2507de0ed6521c Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 16:48:52 -0400 Subject: [PATCH 27/46] Note that the reviewed boards still need implication attestations. Crypto and Grey County civic life publish no arrows. The stored attester pass does not cover the rewritten sentences. --- .../network-societies-campaign-plan.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 4055bb8d..1aeca711 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto and Grey County civic life are good enough for now. Christian teaching was rewritten on 2026-10-20 to broader wants and is waiting on his read. Do not mine another copy until he accepts that board. Do not edit the next board's statement or project text until he is in that session. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto and Grey County civic life are good enough for now. Christian teaching was rewritten on 2026-10-20 to broader wants and is waiting on his read. Crypto and civic life have no implication arrows yet; that pass is listed under the review and waits until the wording sessions are done. Do not mine another copy until he accepts that board. Do not edit the next board's statement or project text until he is in that session. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -315,4 +315,17 @@ Read the current sentences in `network-societies-v1-b2-statements.json`. Adam is - [x] Grey County civic life, 2026-10-20. Good enough for now. The board is the assimilation want, two constituencies that already say it, a milder English sentence that does not, and a refusal. The five civic projects align only to `assimilate`. No implication arrow. The earlier class, park, and office sentences are deleted. The Grey County assimilation-sessions draft still has the old session wording and is not this board. Not mined. +### Implication attestations still to run + +Do this after the wording pass, not during it. A stored attester result is only evidence for the sentences that were evaluated. The 2026-10-16 pass does not bless a sentence we rewrote. + +The boards Adam has already called good enough publish **no** implication arrows: + +- [ ] Crypto (`refundable-checkout`, `bank-blocking`, `refuse-crypto-payments`). The checkout-trial bridge arrows were dropped when that wording changed. +- [ ] Grey County civic life. `some-immigration` and `fewer-newcomers` contain the assimilation sentence, so they are the candidates. `english-around-here` is a designed no. `keep-own-ways` is a refusal. + +Christian teaching has no arrows either. Do not evaluate it until Adam accepts that wording. + +Boards that still have live arrows, and have not had this wording review: the accepted abortion pair, the accepted schools pair, the dual-count poll, minors' medicine, employment, Canada–US (boycott and narrower-ties stay refused), and AI pause. Re-check those arrows only if a sentence on that board changes. + - [ ] Christian teaching, rewritten again 2026-10-20 and not yet accepted. The old six ids are deleted. The board is two wants (freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated) and two refusals (notes stay inside the church; civic transcription excludes church teaching). Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. Not mined. \ No newline at end of file From 61f67d1b538878b7c766f723bb54013d1679d471 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 16:51:02 -0400 Subject: [PATCH 28/46] Mark the Christian teaching board good enough for now. The next wording session is home learning. Implication attestations for this board stay unrun. --- .../brainstorming/network-societies-campaign-plan.md | 11 ++++++----- .../campaigns/network-societies-v1-b2-statements.json | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 1aeca711..6082143a 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -50,7 +50,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | --- | --- | --- | --- | | Crypto-friendly checkout | 10 | 6 | Meets it. Includes a refusal of crypto payments. One project is aligned to the bank-blocking sentence. | | Grey County civic life | 10, plus a 5-statement assimilation draft | 5 on the main board, 2 on the draft | Main board meets it. The draft is not a second family. | -| Christian teaching | 4, plus the class-host sentence and the plain-text notice on the board | 5 | Under review. Adam asked for fewer, broader wants on 2026-10-20. | +| Christian teaching | 4, plus the class-host sentence and the plain-text notice on the board | 5 | Good enough for now (2026-10-20). Adam asked for fewer, broader wants. | | Home learning | 10 | 5 | Meets it. | | Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Meets it. Eli refuses the settlement. | | Schools and conduct | 7 on Grey County conduct, plus the accepted five | 3 on the schools cause, 5 on conduct | The family meets it. The schools cause alone has three projects. | @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto and Grey County civic life are good enough for now. Christian teaching was rewritten on 2026-10-20 to broader wants and is waiting on his read. Crypto and civic life have no implication arrows yet; that pass is listed under the review and waits until the wording sessions are done. Do not mine another copy until he accepts that board. Do not edit the next board's statement or project text until he is in that session. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, and Christian teaching are good enough for now. The next board is home learning. Do not edit that board's statement or project text until he is in that session. Implication attestations for the three accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -323,9 +323,10 @@ The boards Adam has already called good enough publish **no** implication arrows - [ ] Crypto (`refundable-checkout`, `bank-blocking`, `refuse-crypto-payments`). The checkout-trial bridge arrows were dropped when that wording changed. - [ ] Grey County civic life. `some-immigration` and `fewer-newcomers` contain the assimilation sentence, so they are the candidates. `english-around-here` is a designed no. `keep-own-ways` is a refusal. - -Christian teaching has no arrows either. Do not evaluate it until Adam accepts that wording. +- [ ] Christian teaching (`shared-teaching-notes`, `independent-church-help`, `keep-notes-inside`, `civic-transcription-only`). No candidate pair has been chosen. Do not evaluate during a wording session. Boards that still have live arrows, and have not had this wording review: the accepted abortion pair, the accepted schools pair, the dual-count poll, minors' medicine, employment, Canada–US (boycott and narrower-ties stay refused), and AI pause. Re-check those arrows only if a sentence on that board changes. -- [ ] Christian teaching, rewritten again 2026-10-20 and not yet accepted. The old six ids are deleted. The board is two wants (freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated) and two refusals (notes stay inside the church; civic transcription excludes church teaching). Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. Not mined. \ No newline at end of file +- [x] Christian teaching, 2026-10-20. Good enough for now. Two wants: freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated. Two refusals: notes stay inside the church, and civic transcription excludes church teaching. Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. No implication arrow. Not mined. + +The next board is home learning. Do not edit it until Adam is in that session. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 8907fafc..90e806aa 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -59,7 +59,7 @@ "id": "christian-teaching", "title": "Christian teaching resources in Grey County", "notes": [ - "Rewritten 2026-10-20. Two wants, plus a refusal of sharing notes and a refusal to mix civic transcription with church teaching. Naming a confession and refusing a joint doctrinal statement are inside the notes want. Stating qualifications and doctrine is inside the independent-church want. The old midweek, rota, confession, and joint-doctrine ids are deleted." + "Rewritten 2026-10-20. Adam called this good enough for now. Two wants, plus a refusal of sharing notes and a refusal to mix civic transcription with church teaching. Naming a confession and refusing a joint doctrinal statement are inside the notes want. Stating qualifications and doctrine is inside the independent-church want. The old midweek, rota, confession, and joint-doctrine ids are deleted." ], "statements": [ { From b5d8ba65bc8a338ff2e5ed87d391f77d849cb2c9 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Tue, 20 Oct 2026 17:43:32 -0400 Subject: [PATCH 29/46] Raise the home-learning wants above Grey County. Reusable materials no longer name the county. The teaching method and school-family use sit inside that want. A separate sentence keeps materials free of religious claims, and the staffed-schools refusal stays local. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 7 +++--- .../network-societies-v1-b2-note-spend.json | 24 ++++++------------- .../network-societies-v1-b2-projects.json | 13 ++++------ .../network-societies-v1-b2-reimburse.json | 24 ++++++------------- .../network-societies-v1-b2-statements.json | 23 +++++++----------- .../campaigns/network-societies-v1-b2.json | 24 ++++++------------- .../campaigns/network-societies-v1-b2.md | 2 +- .../network-societies-v1-pilot-decisions.json | 7 +++--- .../network-societies-v1-pilot-projects.json | 13 ++++------ ...network-societies-v1-pilot-statements.json | 23 +++++++----------- .../campaigns/network-societies-v1-pilot.json | 24 ++++++------------- .../campaigns/network-societies-v1-pilot.md | 2 +- .../test/campaignPlanner.test.ts | 6 ++--- 14 files changed, 69 insertions(+), 125 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index a22d5c08..e7d5e4a3 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-20 wording cut, is 72 users, 91 statements, and 64 projects. Seventeen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-20 wording cut, is 72 users, 89 statements, and 64 projects. Seventeen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 6082143a..7874ba1f 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -51,7 +51,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | Crypto-friendly checkout | 10 | 6 | Meets it. Includes a refusal of crypto payments. One project is aligned to the bank-blocking sentence. | | Grey County civic life | 10, plus a 5-statement assimilation draft | 5 on the main board, 2 on the draft | Main board meets it. The draft is not a second family. | | Christian teaching | 4, plus the class-host sentence and the plain-text notice on the board | 5 | Good enough for now (2026-10-20). Adam asked for fewer, broader wants. | -| Home learning | 10 | 5 | Meets it. | +| Home learning | 3 | 5 | Rewritten 2026-10-20. Awaiting Adam. The materials wants are not local. The staffed-schools sentence is. | | Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Meets it. Eli refuses the settlement. | | Schools and conduct | 7 on Grey County conduct, plus the accepted five | 3 on the schools cause, 5 on conduct | The family meets it. The schools cause alone has three projects. | | Owen Sound voting trial | 7, plus a 5-statement dual-count draft | 5 on the trial, 2 on the draft | Main board meets it. | @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, and Christian teaching are good enough for now. The next board is home learning. Do not edit that board's statement or project text until he is in that session. Implication attestations for the three accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, and Christian teaching are good enough for now. Home learning was rewritten in the 2026-10-20 session and is waiting on Adam. Do not treat it as accepted. Implication attestations for the three accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -324,9 +324,10 @@ The boards Adam has already called good enough publish **no** implication arrows - [ ] Crypto (`refundable-checkout`, `bank-blocking`, `refuse-crypto-payments`). The checkout-trial bridge arrows were dropped when that wording changed. - [ ] Grey County civic life. `some-immigration` and `fewer-newcomers` contain the assimilation sentence, so they are the candidates. `english-around-here` is a designed no. `keep-own-ways` is a refusal. - [ ] Christian teaching (`shared-teaching-notes`, `independent-church-help`, `keep-notes-inside`, `civic-transcription-only`). No candidate pair has been chosen. Do not evaluate during a wording session. +- [ ] Home learning (`reusable-home-materials`, `materials-without-religion`, `taught-in-staffed-schools`). No candidate pair. `taught-in-staffed-schools` is a refusal. Do not evaluate during the wording session. Boards that still have live arrows, and have not had this wording review: the accepted abortion pair, the accepted schools pair, the dual-count poll, minors' medicine, employment, Canada–US (boycott and narrower-ties stay refused), and AI pause. Re-check those arrows only if a sentence on that board changes. - [x] Christian teaching, 2026-10-20. Good enough for now. Two wants: freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated. Two refusals: notes stay inside the church, and civic transcription excludes church teaching. Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. No implication arrow. Not mined. -The next board is home learning. Do not edit it until Adam is in that session. \ No newline at end of file +- [ ] Home learning, rewritten 2026-10-20. Not accepted yet. `reusable-home-materials` is unscoped and includes the method and school-family use. `materials-without-religion` is the further want with no religious claims. `taught-in-staffed-schools` is the Grey County refusal. The science unit aligns only to `materials-without-religion`. The other four home-learning projects align only to `reusable-home-materials`. The class-host sentence stays on the board. No implication arrow. Not mined. The old ids `science-unit`, `method-on-the-page`, `no-religious-claims`, `school-families-may-borrow`, and `staffed-schools` are deleted. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json index 38f574ec..3eb0b5c2 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 91, - "maxStatements": 91, + "minStatements": 89, + "maxStatements": 89, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -139,27 +139,17 @@ { "collectionId": "network-societies-v1-b2", "groupId": "home-learning", - "statementId": "science-unit" + "statementId": "reusable-home-materials" }, { "collectionId": "network-societies-v1-b2", "groupId": "home-learning", - "statementId": "method-on-the-page" + "statementId": "materials-without-religion" }, { "collectionId": "network-societies-v1-b2", "groupId": "home-learning", - "statementId": "no-religious-claims" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "school-families-may-borrow" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "staffed-schools" + "statementId": "taught-in-staffed-schools" }, { "collectionId": "network-societies-v1-b2", @@ -1597,8 +1587,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 91, - "max": 91 + "min": 89, + "max": 89 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index bc517036..796e37cb 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -146,9 +146,7 @@ "title": "Printable grade-six science unit", "outcome": "Release one grade-six science unit a Grey County family can print, with the teaching method named on the first page and no religious claims in the activities.", "statementRefs": [ - "science-unit", - "method-on-the-page", - "no-religious-claims" + "materials-without-religion" ], "blocker": "Every family can copy the unit after the first author writes it" }, @@ -156,8 +154,7 @@ "title": "Grey County field-trip pack", "outcome": "Release the permission form, map, and safety notes for one Grey County field trip so another family, including a school family, can run it.", "statementRefs": [ - "science-unit", - "school-families-may-borrow" + "reusable-home-materials" ], "blocker": "The first family pays for the reconnaissance and every later family can copy the pack" }, @@ -165,7 +162,7 @@ "title": "Store-item science kits", "outcome": "Publish instructions for a home science kit of ordinary store items, including hazards and the adult supervision each activity needs.", "statementRefs": [ - "science-unit" + "reusable-home-materials" ], "blocker": "A safe kit has to be tried once before other families can reuse it" }, @@ -173,7 +170,7 @@ "title": "Eight Owen Sound Saturdays", "outcome": "Host eight Saturday meetups in Owen Sound for home-school families and publish the dates before the first meeting.", "statementRefs": [ - "science-unit" + "reusable-home-materials" ], "blocker": "The room and the dates have to be reserved before any family can rely on them" }, @@ -181,7 +178,7 @@ "title": "Successor host notes", "outcome": "Name a successor and write the notes so the Owen Sound meetups can run a second season without the first host.", "statementRefs": [ - "science-unit" + "reusable-home-materials" ], "blocker": "A meetup series that only the first host can run is not a maintained public good" } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json index d5ee9a94..571583c8 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 91, - "maxStatements": 91, + "minStatements": 89, + "maxStatements": 89, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -139,27 +139,17 @@ { "collectionId": "network-societies-v1-b2", "groupId": "home-learning", - "statementId": "science-unit" + "statementId": "reusable-home-materials" }, { "collectionId": "network-societies-v1-b2", "groupId": "home-learning", - "statementId": "method-on-the-page" + "statementId": "materials-without-religion" }, { "collectionId": "network-societies-v1-b2", "groupId": "home-learning", - "statementId": "no-religious-claims" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "school-families-may-borrow" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "staffed-schools" + "statementId": "taught-in-staffed-schools" }, { "collectionId": "network-societies-v1-b2", @@ -1582,8 +1572,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 91, - "max": 91 + "min": 89, + "max": 89 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 90e806aa..990e41f0 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -82,26 +82,21 @@ }, { "id": "home-learning", - "title": "Home learning in Grey County", + "title": "Home learning", + "notes": [ + "Same sentences as network-societies-v1-pilot-statements.json." + ], "statements": [ { - "id": "science-unit", - "text": "I want Grey County families who teach their children at home to have teaching materials they can reuse." - }, - { - "id": "method-on-the-page", - "text": "I want a Grey County home-teaching unit to say which teaching method it uses." - }, - { - "id": "no-religious-claims", - "text": "I want a Grey County science unit that contains no religious claims, so a secular home-school family can use it." + "id": "reusable-home-materials", + "text": "I want families who teach their children at home to have teaching materials they can reuse. I want those materials to name the teaching method they use, and I want families whose children attend school to be able to use them too." }, { - "id": "school-families-may-borrow", - "text": "I want families whose children attend school in Grey County to be allowed to use the same home-teaching materials." + "id": "materials-without-religion", + "text": "I want home-teaching materials that contain no religious claims, so a family that does not share those claims can use them." }, { - "id": "staffed-schools", + "id": "taught-in-staffed-schools", "text": "I want children in Grey County taught in staffed schools, and I do not want public rooms booked for home-school programs." } ] diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index 3fc63fc2..628256e1 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 16, "maxCauses": 16, - "minStatements": 91, - "maxStatements": 91, + "minStatements": 89, + "maxStatements": 89, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -139,27 +139,17 @@ { "collectionId": "network-societies-v1-b2", "groupId": "home-learning", - "statementId": "science-unit" + "statementId": "reusable-home-materials" }, { "collectionId": "network-societies-v1-b2", "groupId": "home-learning", - "statementId": "method-on-the-page" + "statementId": "materials-without-religion" }, { "collectionId": "network-societies-v1-b2", "groupId": "home-learning", - "statementId": "no-religious-claims" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "school-families-may-borrow" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "home-learning", - "statementId": "staffed-schools" + "statementId": "taught-in-staffed-schools" }, { "collectionId": "network-societies-v1-b2", @@ -1582,8 +1572,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 91, - "max": 91 + "min": 89, + "max": 89 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 0cd3b79b..e6a0ff24 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -14,7 +14,7 @@ Canada–US stays a bridge. The shared sentence is still ordinary purchases and ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 91 statements and 64 projects. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 89 statements and 64 projects. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board and the Grey County conduct board are ordinary boards, so their own sentences stay visible there. diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json b/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json index 49322a2f..715638cb 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-decisions.json @@ -48,9 +48,8 @@ "userId": "user-004", "name": "Owen", "signs": [ - "science-unit", - "no-religious-claims", - "school-families-may-borrow", + "reusable-home-materials", + "materials-without-religion", "class-host-directory" ], "rejects": [ @@ -58,7 +57,7 @@ "keep-notes-inside" ], "unsigned": [ - "staffed-schools" + "taught-in-staffed-schools" ] }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json b/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json index 97a651b1..ff558ca9 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-projects.json @@ -130,9 +130,7 @@ "title": "Printable grade-six science unit", "outcome": "Release one grade-six science unit a Grey County family can print, with the teaching method named on the first page and no religious claims in the activities.", "statementRefs": [ - "science-unit", - "method-on-the-page", - "no-religious-claims" + "materials-without-religion" ], "blocker": "Every family can copy the unit after the first author writes it" }, @@ -140,8 +138,7 @@ "title": "Grey County field-trip pack", "outcome": "Release the permission form, map, and safety notes for one Grey County field trip so another family, including a school family, can run it.", "statementRefs": [ - "science-unit", - "school-families-may-borrow" + "reusable-home-materials" ], "blocker": "The first family pays for the reconnaissance and every later family can copy the pack" }, @@ -149,7 +146,7 @@ "title": "Store-item science kits", "outcome": "Publish instructions for a home science kit of ordinary store items, including hazards and the adult supervision each activity needs.", "statementRefs": [ - "science-unit" + "reusable-home-materials" ], "blocker": "A safe kit has to be tried once before other families can reuse it" }, @@ -157,7 +154,7 @@ "title": "Eight Owen Sound Saturdays", "outcome": "Host eight Saturday meetups in Owen Sound for home-school families and publish the dates before the first meeting.", "statementRefs": [ - "science-unit" + "reusable-home-materials" ], "blocker": "The room and the dates have to be reserved before any family can rely on them" }, @@ -165,7 +162,7 @@ "title": "Successor host notes", "outcome": "Name a successor and write the notes so the Owen Sound meetups can run a second season without the first host.", "statementRefs": [ - "science-unit" + "reusable-home-materials" ], "blocker": "A meetup series that only the first host can run is not a maintained public good" } diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json index 181e8983..a0ad2e5c 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json @@ -81,26 +81,21 @@ }, { "id": "home-learning", - "title": "Home learning in Grey County", + "title": "Home learning", + "notes": [ + "Reusable materials are not a Grey County good. The method and school-family use sit inside that want. A materials sentence with no religious claims is a real further want. The staffed-schools sentence is the local refusal." + ], "statements": [ { - "id": "science-unit", - "text": "I want Grey County families who teach their children at home to have teaching materials they can reuse." - }, - { - "id": "method-on-the-page", - "text": "I want a Grey County home-teaching unit to say which teaching method it uses." - }, - { - "id": "no-religious-claims", - "text": "I want a Grey County science unit that contains no religious claims, so a secular home-school family can use it." + "id": "reusable-home-materials", + "text": "I want families who teach their children at home to have teaching materials they can reuse. I want those materials to name the teaching method they use, and I want families whose children attend school to be able to use them too." }, { - "id": "school-families-may-borrow", - "text": "I want families whose children attend school in Grey County to be allowed to use the same home-teaching materials." + "id": "materials-without-religion", + "text": "I want home-teaching materials that contain no religious claims, so a family that does not share those claims can use them." }, { - "id": "staffed-schools", + "id": "taught-in-staffed-schools", "text": "I want children in Grey County taught in staffed schools, and I do not want public rooms booked for home-school programs." } ] diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot.json b/fake-data-generation/campaigns/network-societies-v1-pilot.json index 526c57ee..75b35a09 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 4, "maxCauses": 6, - "minStatements": 18, - "maxStatements": 18, + "minStatements": 16, + "maxStatements": 16, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-pilot-projects.json", @@ -129,27 +129,17 @@ { "collectionId": "network-societies-v1", "groupId": "home-learning", - "statementId": "science-unit" + "statementId": "reusable-home-materials" }, { "collectionId": "network-societies-v1", "groupId": "home-learning", - "statementId": "method-on-the-page" + "statementId": "materials-without-religion" }, { "collectionId": "network-societies-v1", "groupId": "home-learning", - "statementId": "no-religious-claims" - }, - { - "collectionId": "network-societies-v1", - "groupId": "home-learning", - "statementId": "school-families-may-borrow" - }, - { - "collectionId": "network-societies-v1", - "groupId": "home-learning", - "statementId": "staffed-schools" + "statementId": "taught-in-staffed-schools" }, { "collectionId": "network-societies-v1", @@ -423,8 +413,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 18, - "max": 18 + "min": 16, + "max": 16 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot.md b/fake-data-generation/campaigns/network-societies-v1-pilot.md index 8aadb572..45fee6da 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot.md +++ b/fake-data-generation/campaigns/network-societies-v1-pilot.md @@ -34,7 +34,7 @@ Seed: `commonality-network-societies-v1-pilot-2026-10-16`. A plan written on 202 Ruth and Len can both be on the checkout board while the dissent plank "shops refuse crypto" is a separate statement. That overlap does not use an implication arrow. -Imani's rejection of the recruiting pause, and Owen's refusal of the shared teaching-notes sentence, are pinned `set-belief` actions. Owen leaves `staffed-schools` unsigned, so that file does not disbelieve it. +Imani's rejection of the recruiting pause, and Owen's refusal of the shared teaching-notes sentence, are pinned `set-belief` actions. Owen leaves `taught-in-staffed-schools` unsigned, so that file does not disbelieve it. Pat (`user-021`) delegates notes to Ned (`user-011`). Some delegations are later revoked. The plan does not show Ned spending Pat's note. diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 755d28f5..25a91a91 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -237,7 +237,7 @@ test('network-societies pilot pins persona belief choices', async () => { } } const owen = plan.users.find((user) => user.displayName === 'Owen')!; - const staffed = plan.statements.find((statement) => statement.source.statementId === 'staffed-schools')!; + const staffed = plan.statements.find((statement) => statement.source.statementId === 'taught-in-staffed-schools')!; assert.equal(beliefs.some((action) => action.actorUserId === owen.id && action.statementId === staffed.id && action.belief === 'disbelieve'), false); }); @@ -245,7 +245,7 @@ test('network-societies pilot reuses one directory statement and publishes no im const manifest = JSON.parse(await readFile(new URL('../campaigns/network-societies-v1-pilot.json', import.meta.url), 'utf8')) as CampaignManifestV1; const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 40); - assert.equal(plan.statements.length, 18); + assert.equal(plan.statements.length, 16); assert.equal(plan.projects.length, 20); const shared = plan.statements.find((statement) => statement.source.statementId === 'class-host-directory'); assert.ok(shared); @@ -273,7 +273,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one } const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); - assert.equal(plan.statements.length, 91); + assert.equal(plan.statements.length, 89); assert.equal(plan.projects.length, 65); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); From acfc473ec3e3d55348974e19b5a47fc0cfbc240f Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 10:08:09 -0400 Subject: [PATCH 30/46] Mark the home-learning board good enough for now. --- .../brainstorming/network-societies-campaign-plan.md | 8 +++++--- .../campaigns/network-societies-v1-pilot-statements.json | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 7874ba1f..4408005a 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -51,7 +51,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | Crypto-friendly checkout | 10 | 6 | Meets it. Includes a refusal of crypto payments. One project is aligned to the bank-blocking sentence. | | Grey County civic life | 10, plus a 5-statement assimilation draft | 5 on the main board, 2 on the draft | Main board meets it. The draft is not a second family. | | Christian teaching | 4, plus the class-host sentence and the plain-text notice on the board | 5 | Good enough for now (2026-10-20). Adam asked for fewer, broader wants. | -| Home learning | 3 | 5 | Rewritten 2026-10-20. Awaiting Adam. The materials wants are not local. The staffed-schools sentence is. | +| Home learning | 3 | 5 | Good enough for now (2026-10-21). Materials wants are not local. The staffed-schools sentence is. | | Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Meets it. Eli refuses the settlement. | | Schools and conduct | 7 on Grey County conduct, plus the accepted five | 3 on the schools cause, 5 on conduct | The family meets it. The schools cause alone has three projects. | | Owen Sound voting trial | 7, plus a 5-statement dual-count draft | 5 on the trial, 2 on the draft | Main board meets it. | @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, and Christian teaching are good enough for now. Home learning was rewritten in the 2026-10-20 session and is waiting on Adam. Do not treat it as accepted. Implication attestations for the three accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, and home learning are good enough for now. The next board is the abortion settlement, including the accepted five. Do not edit that board's statement or project text until he is in that session. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -330,4 +330,6 @@ Boards that still have live arrows, and have not had this wording review: the ac - [x] Christian teaching, 2026-10-20. Good enough for now. Two wants: freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated. Two refusals: notes stay inside the church, and civic transcription excludes church teaching. Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. No implication arrow. Not mined. -- [ ] Home learning, rewritten 2026-10-20. Not accepted yet. `reusable-home-materials` is unscoped and includes the method and school-family use. `materials-without-religion` is the further want with no religious claims. `taught-in-staffed-schools` is the Grey County refusal. The science unit aligns only to `materials-without-religion`. The other four home-learning projects align only to `reusable-home-materials`. The class-host sentence stays on the board. No implication arrow. Not mined. The old ids `science-unit`, `method-on-the-page`, `no-religious-claims`, `school-families-may-borrow`, and `staffed-schools` are deleted. \ No newline at end of file +- [x] Home learning, 2026-10-21. Good enough for now. `reusable-home-materials` is unscoped and includes the method and school-family use. `materials-without-religion` is the further want with no religious claims. `taught-in-staffed-schools` is the Grey County refusal. The science unit aligns only to `materials-without-religion`. The other four home-learning projects align only to `reusable-home-materials`. The class-host sentence stays on the board. No implication arrow. Not mined. + +The next board is the abortion settlement. Do not edit it until Adam is in that session. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json index a0ad2e5c..e69cb038 100644 --- a/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-pilot-statements.json @@ -83,7 +83,7 @@ "id": "home-learning", "title": "Home learning", "notes": [ - "Reusable materials are not a Grey County good. The method and school-family use sit inside that want. A materials sentence with no religious claims is a real further want. The staffed-schools sentence is the local refusal." + "Reusable materials are not a Grey County good. The method and school-family use sit inside that want. A materials sentence with no religious claims is a real further want. The staffed-schools sentence is the local refusal. Adam called this good enough on 2026-10-21." ], "statements": [ { From edc0e10915b9e7bf19d167d30372e989096c7680 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 11:17:24 -0400 Subject: [PATCH 31/46] Mark the abortion settlement board good enough for now. --- .../network-societies-campaign-plan.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 4408005a..b52034b8 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -52,7 +52,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | Grey County civic life | 10, plus a 5-statement assimilation draft | 5 on the main board, 2 on the draft | Main board meets it. The draft is not a second family. | | Christian teaching | 4, plus the class-host sentence and the plain-text notice on the board | 5 | Good enough for now (2026-10-20). Adam asked for fewer, broader wants. | | Home learning | 3 | 5 | Good enough for now (2026-10-21). Materials wants are not local. The staffed-schools sentence is. | -| Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Meets it. Eli refuses the settlement. | +| Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Good enough for now (2026-10-21). Wording unchanged. Eli refuses the settlement. | | Schools and conduct | 7 on Grey County conduct, plus the accepted five | 3 on the schools cause, 5 on conduct | The family meets it. The schools cause alone has three projects. | | Owen Sound voting trial | 7, plus a 5-statement dual-count draft | 5 on the trial, 2 on the draft | Main board meets it. | | US-friendly Canadians | 12 | 7 | Meets it. Boycott and narrower-ties sentences are refused as arrows. | @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, and home learning are good enough for now. The next board is the abortion settlement, including the accepted five. Do not edit that board's statement or project text until he is in that session. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, and the abortion settlement (the accepted five and the Michigan authority sentences) are good enough for now. The next board is schools and pushing, including the accepted five and the Grey County conduct sentences. Do not edit that board's statement or project text until he is in that session. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -302,7 +302,7 @@ These are scope calls, not a pass on the wording. Skip these unless you want to re-read them. (ADAM: No, don't skip them; I want to reread them and make sure they're suitable for the current campaign's purposes.) The campaign boards only point at them. -- [ ] Abortion cutoff bridge: the accepted five (`compromise-abortion`). +- [x] Abortion cutoff bridge: the accepted five (`compromise-abortion`). Good enough for now (2026-10-21). Reused unchanged. - [ ] Schools and pushing: the accepted five (`lgbt-schools`). The campaign does not treat those five as a position on drugs, surgery, or classroom names. ### Still needs a look @@ -325,11 +325,14 @@ The boards Adam has already called good enough publish **no** implication arrows - [ ] Grey County civic life. `some-immigration` and `fewer-newcomers` contain the assimilation sentence, so they are the candidates. `english-around-here` is a designed no. `keep-own-ways` is a refusal. - [ ] Christian teaching (`shared-teaching-notes`, `independent-church-help`, `keep-notes-inside`, `civic-transcription-only`). No candidate pair has been chosen. Do not evaluate during a wording session. - [ ] Home learning (`reusable-home-materials`, `materials-without-religion`, `taught-in-staffed-schools`). No candidate pair. `taught-in-staffed-schools` is a refusal. Do not evaluate during the wording session. +- [ ] Abortion settlement. The accepted pair already has live arrows (`modified-left` and `modified-right` to `commonality`). The wording did not change on 2026-10-21, so those arrows stay. Do not re-evaluate them in a wording session. The Michigan sentences are separate wants and have no bridge roles. -Boards that still have live arrows, and have not had this wording review: the accepted abortion pair, the accepted schools pair, the dual-count poll, minors' medicine, employment, Canada–US (boycott and narrower-ties stay refused), and AI pause. Re-check those arrows only if a sentence on that board changes. +Boards that still have live arrows, and have not had this wording review: the accepted schools pair, the dual-count poll, minors' medicine, employment, Canada–US (boycott and narrower-ties stay refused), and AI pause. Re-check those arrows only if a sentence on that board changes. - [x] Christian teaching, 2026-10-20. Good enough for now. Two wants: freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated. Two refusals: notes stay inside the church, and civic transcription excludes church teaching. Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. No implication arrow. Not mined. - [x] Home learning, 2026-10-21. Good enough for now. `reusable-home-materials` is unscoped and includes the method and school-family use. `materials-without-religion` is the further want with no religious claims. `taught-in-staffed-schools` is the Grey County refusal. The science unit aligns only to `materials-without-religion`. The other four home-learning projects align only to `reusable-home-materials`. The class-host sentence stays on the board. No implication arrow. Not mined. -The next board is the abortion settlement. Do not edit it until Adam is in that session. \ No newline at end of file +- [x] Abortion settlement, 2026-10-21. Good enough for now. The accepted five stay as written. The Michigan board stays as written: legislature versus one federal statute, keep campaigning, a ban from the start of pregnancy, a labeled comparison of three proposals, and the moderator checklist. Settlement projects stay aligned as they are. The authority brief and the from-the-start page stay on the forum. Not mined. + +The next board is schools and pushing, including the accepted five and the Grey County conduct sentences. Do not edit it until Adam is in that session. \ No newline at end of file From 66e8a7f46064a6bcd7d3969af5d149d427929b28 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 11:47:43 -0400 Subject: [PATCH 32/46] Drop the Grey County conduct board and add local schools projects. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 8 +- .../network-societies-v1-b2-decisions.json | 6 +- .../network-societies-v1-b2-note-spend.json | 97 +++++------------ .../network-societies-v1-b2-projects.json | 49 ++++----- .../network-societies-v1-b2-reimburse.json | 97 +++++------------ .../network-societies-v1-b2-statements.json | 37 ------- .../campaigns/network-societies-v1-b2.json | 101 +++++------------- .../campaigns/network-societies-v1-b2.md | 6 +- .../test/campaignPlanner.test.ts | 4 +- 10 files changed, 111 insertions(+), 296 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index e7d5e4a3..ef7e5178 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-20 wording cut, is 72 users, 89 statements, and 64 projects. Seventeen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-20 wording cut, is 72 users, 82 statements, and 63 projects. Seventeen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index b52034b8..426994f7 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -36,7 +36,7 @@ The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli' **Decided out of this campaign for now.** A recurring monthly pledge. Pat already delegates a note, and revocation is a real action. The one-time spend is a separate mined copy, not this 523-write graph. The "$20/month" filter is still a product gap. -**Deferred, 2026-10-19.** Six of the fifteen rows below still have no campaign content: low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, and less regulation. Leave them. The nine that already have statements, boards, or projects are enough for now: crypto-friendly checkout, Grey County civic life, Christian teaching, home learning, the abortion settlement, schools and conduct, the Owen Sound voting trial, US-friendly Canadians, and the AI-pause board. Do not open a content batch for the six empty rows. +**Deferred, 2026-10-19.** Six of the fifteen rows below still have no campaign content: low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, and less regulation. Leave them. The nine that already have statements, boards, or projects are enough for now: crypto-friendly checkout, Grey County civic life, Christian teaching, home learning, the abortion settlement, schools and pushing, the Owen Sound voting trial, US-friendly Canadians, and the AI-pause board. Do not open a content batch for the six empty rows. US-friendly Canadians is in batch 2 past the five-statement draft. AI safety is a plain board in batch 2 (`ai-pause`): a shared pause-treaty sentence, milder wordings that contain it, naturals that do not, a full-stop refusal, and an accelerationist refusal. A 2026-10-16 attester pass blessed the five modified-to-commonality pairs and refused the designed negatives. Those five arrows are in the allowance list. Home learning and Grey County civic life stop at the pilot planks. Do not force a new triple onto an overlap that already shares a concrete want. The campaign note already treats several of these as overlaps. @@ -53,7 +53,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | Christian teaching | 4, plus the class-host sentence and the plain-text notice on the board | 5 | Good enough for now (2026-10-20). Adam asked for fewer, broader wants. | | Home learning | 3 | 5 | Good enough for now (2026-10-21). Materials wants are not local. The staffed-schools sentence is. | | Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Good enough for now (2026-10-21). Wording unchanged. Eli refuses the settlement. | -| Schools and conduct | 7 on Grey County conduct, plus the accepted five | 3 on the schools cause, 5 on conduct | The family meets it. The schools cause alone has three projects. | +| Schools and pushing | the accepted five only | 3 in Grand Rapids, 3 in Grey County | Accepted wording kept. The Grey County conduct sentences were deleted on 2026-10-21. The new Grey County projects are not mined. | | Owen Sound voting trial | 7, plus a 5-statement dual-count draft | 5 on the trial, 2 on the draft | Main board meets it. | | US-friendly Canadians | 12 | 7 | Meets it. Boycott and narrower-ties sentences are refused as arrows. | | AI pause | 17 | 5 | Meets it. Five modified-to-commonality arrows are allowed. | @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, and the abortion settlement (the accepted five and the Michigan authority sentences) are good enough for now. The next board is schools and pushing, including the accepted five and the Grey County conduct sentences. Do not edit that board's statement or project text until he is in that session. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, and the abortion settlement (the accepted five and the Michigan authority sentences) are good enough for now. The next board is schools and pushing. Adam likes the accepted five and the Grand Rapids projects. The Grey County conduct board was deleted on 2026-10-21. Three Grey County projects now sit on the schools board, aligned only to the accepted statements. Those three are waiting for his look. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -335,4 +335,4 @@ Boards that still have live arrows, and have not had this wording review: the ac - [x] Abortion settlement, 2026-10-21. Good enough for now. The accepted five stay as written. The Michigan board stays as written: legislature versus one federal statute, keep campaigning, a ban from the start of pregnancy, a labeled comparison of three proposals, and the moderator checklist. Settlement projects stay aligned as they are. The authority brief and the from-the-start page stay on the forum. Not mined. -The next board is schools and pushing, including the accepted five and the Grey County conduct sentences. Do not edit it until Adam is in that session. \ No newline at end of file +The schools board is in review. The accepted five and the Grand Rapids projects are liked. Three new Grey County projects are waiting for a look. The conduct sentences are gone. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json index d9cfa0b0..22dafb5d 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json @@ -6,8 +6,9 @@ { "userId": "user-041", "name": "Mara", "signs": ["modified-left", "commonality"], "rejects": ["no-early-abortions"], "unsigned": ["michigan-legislature", "one-federal-rule"], "notes": "The settlement signature is not a signature about which legislature writes the rule." }, { "userId": "user-052", "name": "Eli", "signs": ["natural-right"], "rejects": ["modified-right", "commonality", "modified-left"], "notes": "Keeps the natural position and refuses the settlement. He must not be treated as a supporter of the cutoff through an arrow from natural-right." }, { "userId": "user-054", "name": "Bea", "signs": ["michigan-legislature"], "unsigned": ["commonality", "modified-left", "modified-right"], "rejects": ["one-federal-rule"], "notes": "State-level authority is a separate proposition from the 12-16 week sentence." }, - { "userId": "user-053", "name": "Jo", "signs": ["commonality"], "rejects": ["no-medical-limit"], "notes": "The schools commonality she means is the accepted conditional about pushing. It is not a position on drugs or surgery." }, - { "userId": "user-042", "name": "Nina", "signs": ["natural-left", "harassment-steps", "names-and-courtesy"], "rejects": ["no-medical-limit"], "unsigned": ["clinician-for-minors"] }, + { "userId": "user-053", "name": "Jo", "signs": ["commonality"], "funds": ["Grey County schools packet", "Grey County meeting host kit"], "notes": "The schools commonality is the accepted conditional about pushing. She funds the Grey County packet and the host kit." }, + { "userId": "user-042", "name": "Nina", "signs": ["natural-left"], "funds": ["Owen Sound pushing-question meetings"], "unsigned": ["commonality"], "notes": "She keeps the left natural: support is not a push. She funds the Owen Sound meetings and has not signed the conditional." }, + { "userId": "user-047", "name": "Hugh", "signs": ["natural-right"], "funds": ["Owen Sound pushing-question meetings"], "unsigned": ["commonality"], "notes": "He keeps the right natural: the push is happening and should stop. He funds the same Owen Sound meetings. This Hugh is user-047, not the Canada-US Hugh." }, { "userId": "user-043", "name": "Wes", "signs": ["ranked-poll", "approval-count", "keep-fptp", "moderator-checklist"], "rejects": ["show-of-hands"], "notes": "A non-binding poll and keeping first-past-the-post for municipal elections are compatible. Refusing the poll is the incompatible position." }, { "userId": "user-061", "name": "Priya", "signs": ["modified-small-chance", "commonality"], "rejects": ["pole-stop"], "unsigned": ["natural-small-chance", "pole-accelerate"], "notes": "Will not sign certain doom. The small-chance modified already contains the shared pause sentence, and that arrow is allowed." }, { "userId": "user-062", "name": "Dean", "signs": ["natural-jobs", "modified-jobs", "commonality"], "rejects": ["pole-stop"], "unsigned": ["modified-small-chance"], "notes": "Jobs, not extinction. Signing the shared sentence is not a signature of the small-chance odds." }, @@ -61,7 +62,6 @@ "unevaluatedAndUnpublished": [ { "from": "commonality", "to": "michigan-legislature", "why": "Agreement on a cutoff does not imply who should have the authority to write it." }, { "from": "natural-right", "to": "commonality", "why": "Designed negative for the abortion bridge. Eli keeps this side." }, - { "from": "lgbt-schools/commonality", "to": "clinician-for-minors", "why": "The schools conditional does not settle medical treatment." }, { "from": "ranked-poll", "to": "keep-fptp", "why": "Wanting a non-binding poll does not imply a position on municipal elections, in either direction." } ] } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json index 3eb0b5c2..c9dcfe29 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -17,10 +17,10 @@ "campaignCollection": "network-societies-v1-b2-statements.json" }, "scale": { - "minCauses": 16, - "maxCauses": 16, - "minStatements": 89, - "maxStatements": 89, + "minCauses": 15, + "maxCauses": 15, + "minStatements": 82, + "maxStatements": 82, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -262,49 +262,6 @@ } ] }, - { - "id": "gender-conduct", - "title": "Grey County school conduct", - "activityTier": "small", - "membershipWeight": 6, - "statementRefs": [ - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "harassment-steps" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "clinician-for-minors" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "school-not-clinic" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "no-medical-limit" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "adult-medical-speech" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "names-and-courtesy" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "enrollment-name-only" - } - ] - }, { "id": "voting", "title": "Owen Sound voting trial", @@ -1006,15 +963,15 @@ { "userId": "user-042", "displayName": "Nina", - "bio": "Wants the schools question argued from the accepted statements. She does not treat that question as a decision about drugs or surgery.", + "bio": "Wants the schools question argued from the accepted statements. She signs the left natural, that support is not a push, and she funds the Owen Sound meetings.", "favoriteCauseId": "schools", "interests": [ "schools", - "Grey County" + "Owen Sound" ], "causeIds": [ "schools", - "gender-conduct" + "voting" ], "spotlightOrder": 12 }, @@ -1078,14 +1035,14 @@ { "userId": "user-047", "displayName": "Hugh", - "bio": "Publishes the Grey County harassment steps and keeps them off the medical question.", - "favoriteCauseId": "gender-conduct", + "bio": "Hosts the Owen Sound meetings on whether schools are pushing kids toward LGBT identities. He signs the right natural and funds those meetings.", + "favoriteCauseId": "schools", "interests": [ - "harassment reporting", - "Grey County schools" + "schools", + "Owen Sound" ], "causeIds": [ - "gender-conduct" + "schools" ], "spotlightOrder": 17 }, @@ -1113,8 +1070,7 @@ "independent checks" ], "causeIds": [ - "voting", - "gender-conduct" + "voting" ], "spotlightOrder": 19 }, @@ -1138,17 +1094,17 @@ { "userId": "user-051", "displayName": "Omar", - "bio": "Attests alignments on school conduct and will refuse a project that uses the schools statements as a medical claim.", - "favoriteCauseId": "gender-conduct", + "bio": "Attests alignments on the schools statements and the Owen Sound meetings. He will refuse a project that adds a claim about drugs, surgery, or classroom names.", + "favoriteCauseId": "schools", "interests": [ "review", "Grey County" ], "causeIds": [ - "gender-conduct", "schools", "voting", - "abortion-forum" + "abortion-forum", + "civic-assimilation" ], "spotlightOrder": 21 }, @@ -1168,15 +1124,14 @@ { "userId": "user-053", "displayName": "Jo", - "bio": "Signs the schools commonality if it is only the conditional about pushing. She rejects a school counselor approving a drug.", + "bio": "Signs the schools commonality, the conditional about pushing. She funds the Grey County packet and the host kit.", "favoriteCauseId": "schools", "interests": [ "schools", - "clinicians" + "Grey County" ], "causeIds": [ - "schools", - "gender-conduct" + "schools" ], "spotlightOrder": 23 }, @@ -1587,8 +1542,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 89, - "max": 89 + "min": 82, + "max": 82 } }, { @@ -1597,8 +1552,8 @@ "publish-statement" ], "targetCount": { - "min": 16, - "max": 16 + "min": 15, + "max": 15 } }, { @@ -1627,8 +1582,8 @@ "create-cause" ], "targetCount": { - "min": 65, - "max": 65 + "min": 63, + "max": 63 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index 796e37cb..9d57b34f 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -281,49 +281,36 @@ "commonality" ], "blocker": "The meeting series dies with the first host unless the steps are written down" - } - ], - "gender-conduct": [ - { - "title": "Harassment-steps sheet", - "outcome": "Publish the reporting steps for one named Grey County school, including the line that the student need not agree with a classmate.", - "statementRefs": [ - "harassment-steps" - ], - "blocker": "The sheet has to be checked against the school's actual desk procedure before other parents can rely on it" - }, - { - "title": "Clinician boundary page", - "outcome": "Publish one page that states the clinician-outside-the-school proposal and the schools-do-not-approve-drugs proposal, without a claim about medical outcomes.", - "statementRefs": [ - "clinician-for-minors", - "school-not-clinic" - ], - "blocker": "The two sentences are short, and nobody is paid to keep them from being rewritten into a treatment claim" }, { - "title": "Courtesy and medicine one-pager", - "outcome": "Publish one page that separates using a requested classroom name from any decision about drugs or surgery, using the courtesy statement's own wording.", + "title": "Owen Sound pushing-question meetings", + "outcome": "Hold four moderated meetings in Owen Sound on whether schools are pushing kids toward LGBT identities, and publish the transcripts. The transcripts quote the accepted statements and do not add a claim about drugs, surgery, or classroom names.", "statementRefs": [ - "names-and-courtesy" + "natural-left", + "natural-right", + "commonality" ], - "blocker": "Each argument keeps folding the name into the medical decision unless a maintained page holds them apart" + "blocker": "A room and a published transcript have to be paid for before either camp in Grey County can point at the same notes" }, { - "title": "Adult-speech note", - "outcome": "Publish the wording of the adult-speech statement and a one-season note of which Grey County school-board agendas allowed that speech.", + "title": "Grey County schools packet", + "outcome": "Print the five accepted schools statements, unchanged, for one Grey County parent meeting, and record which statement each speaker is answering.", "statementRefs": [ - "adult-medical-speech" + "natural-left", + "natural-right", + "modified-left", + "modified-right", + "commonality" ], - "blocker": "The agenda record is useful to the next speaker and owned by none of them" + "blocker": "The Grand Rapids packet does not reach a Grey County parent meeting unless someone prints this copy" }, { - "title": "Conduct-page host kit", - "outcome": "Write who updates the harassment sheet and the boundary page for the next school year, so the first editor can leave.", + "title": "Grey County meeting host kit", + "outcome": "Write the room, agenda, and publication steps so a second Grey County resident can run the next Owen Sound pushing-question meeting without the first host.", "statementRefs": [ - "harassment-steps" + "commonality" ], - "blocker": "A page nobody is assigned to update becomes an old photocopy" + "blocker": "The Owen Sound meetings stop when the first host is busy unless the steps are written down" } ], "voting": [ diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json index 571583c8..7497e2c8 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -17,10 +17,10 @@ "campaignCollection": "network-societies-v1-b2-statements.json" }, "scale": { - "minCauses": 16, - "maxCauses": 16, - "minStatements": 89, - "maxStatements": 89, + "minCauses": 15, + "maxCauses": 15, + "minStatements": 82, + "maxStatements": 82, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -262,49 +262,6 @@ } ] }, - { - "id": "gender-conduct", - "title": "Grey County school conduct", - "activityTier": "small", - "membershipWeight": 6, - "statementRefs": [ - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "harassment-steps" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "clinician-for-minors" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "school-not-clinic" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "no-medical-limit" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "adult-medical-speech" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "names-and-courtesy" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "enrollment-name-only" - } - ] - }, { "id": "voting", "title": "Owen Sound voting trial", @@ -991,15 +948,15 @@ { "userId": "user-042", "displayName": "Nina", - "bio": "Wants the schools question argued from the accepted statements. She does not treat that question as a decision about drugs or surgery.", + "bio": "Wants the schools question argued from the accepted statements. She signs the left natural, that support is not a push, and she funds the Owen Sound meetings.", "favoriteCauseId": "schools", "interests": [ "schools", - "Grey County" + "Owen Sound" ], "causeIds": [ "schools", - "gender-conduct" + "voting" ], "spotlightOrder": 12 }, @@ -1063,14 +1020,14 @@ { "userId": "user-047", "displayName": "Hugh", - "bio": "Publishes the Grey County harassment steps and keeps them off the medical question.", - "favoriteCauseId": "gender-conduct", + "bio": "Hosts the Owen Sound meetings on whether schools are pushing kids toward LGBT identities. He signs the right natural and funds those meetings.", + "favoriteCauseId": "schools", "interests": [ - "harassment reporting", - "Grey County schools" + "schools", + "Owen Sound" ], "causeIds": [ - "gender-conduct" + "schools" ], "spotlightOrder": 17 }, @@ -1098,8 +1055,7 @@ "independent checks" ], "causeIds": [ - "voting", - "gender-conduct" + "voting" ], "spotlightOrder": 19 }, @@ -1123,17 +1079,17 @@ { "userId": "user-051", "displayName": "Omar", - "bio": "Attests alignments on school conduct and will refuse a project that uses the schools statements as a medical claim.", - "favoriteCauseId": "gender-conduct", + "bio": "Attests alignments on the schools statements and the Owen Sound meetings. He will refuse a project that adds a claim about drugs, surgery, or classroom names.", + "favoriteCauseId": "schools", "interests": [ "review", "Grey County" ], "causeIds": [ - "gender-conduct", "schools", "voting", - "abortion-forum" + "abortion-forum", + "civic-assimilation" ], "spotlightOrder": 21 }, @@ -1153,15 +1109,14 @@ { "userId": "user-053", "displayName": "Jo", - "bio": "Signs the schools commonality if it is only the conditional about pushing. She rejects a school counselor approving a drug.", + "bio": "Signs the schools commonality, the conditional about pushing. She funds the Grey County packet and the host kit.", "favoriteCauseId": "schools", "interests": [ "schools", - "clinicians" + "Grey County" ], "causeIds": [ - "schools", - "gender-conduct" + "schools" ], "spotlightOrder": 23 }, @@ -1572,8 +1527,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 89, - "max": 89 + "min": 82, + "max": 82 } }, { @@ -1582,8 +1537,8 @@ "publish-statement" ], "targetCount": { - "min": 16, - "max": 16 + "min": 15, + "max": 15 } }, { @@ -1612,8 +1567,8 @@ "create-cause" ], "targetCount": { - "min": 65, - "max": 65 + "min": 63, + "max": 63 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 990e41f0..14b9f768 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -158,43 +158,6 @@ } ] }, - { - "id": "gender-conduct", - "title": "Grey County school conduct, separate from the schools-pushing bridge", - "notes": [ - "The accepted LGBT-schools statements are about pushing versus support. They do not settle medical treatment, adult speech, or classroom names. These statements do not use bridge roles." - ], - "statements": [ - { - "id": "harassment-steps", - "text": "I want a Grey County student to be able to report harassment without having to agree with a classmate." - }, - { - "id": "clinician-for-minors", - "text": "I want any drug or surgery offered to a minor in Grey County as a gender treatment to require a licensed clinician outside the school, not a decision by school staff." - }, - { - "id": "school-not-clinic", - "text": "I want Grey County schools to stay out of approving drugs or surgery for students." - }, - { - "id": "no-medical-limit", - "text": "I want a Grey County school counselor to be allowed to approve a gender-related drug for a student without a clinician outside the school." - }, - { - "id": "adult-medical-speech", - "text": "I want an adult in Grey County to be able to say, at a public school-board meeting, that they are seeking a gender-related medical treatment." - }, - { - "id": "names-and-courtesy", - "text": "I want a Grey County classroom to use the name a student asks for in class, and I want that courtesy kept separate from any decision about drugs or surgery." - }, - { - "id": "enrollment-name-only", - "text": "I want Grey County teachers to use only the name on a student's enrollment form, including when the student asks for a different name in class." - } - ] - }, { "id": "voting", "title": "Non-binding counts in Owen Sound", diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index 628256e1..c02b66b1 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -17,10 +17,10 @@ "campaignCollection": "network-societies-v1-b2-statements.json" }, "scale": { - "minCauses": 16, - "maxCauses": 16, - "minStatements": 89, - "maxStatements": 89, + "minCauses": 15, + "maxCauses": 15, + "minStatements": 82, + "maxStatements": 82, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -262,49 +262,6 @@ } ] }, - { - "id": "gender-conduct", - "title": "Grey County school conduct", - "activityTier": "small", - "membershipWeight": 6, - "statementRefs": [ - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "harassment-steps" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "clinician-for-minors" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "school-not-clinic" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "no-medical-limit" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "adult-medical-speech" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "names-and-courtesy" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "gender-conduct", - "statementId": "enrollment-name-only" - } - ] - }, { "id": "voting", "title": "Owen Sound voting trial", @@ -991,15 +948,15 @@ { "userId": "user-042", "displayName": "Nina", - "bio": "Wants the schools question argued from the accepted statements. She does not treat that question as a decision about drugs or surgery.", + "bio": "Wants the schools question argued from the accepted statements. She signs the left natural, that support is not a push, and she funds the Owen Sound meetings.", "favoriteCauseId": "schools", "interests": [ "schools", - "Grey County" + "Owen Sound" ], "causeIds": [ "schools", - "gender-conduct" + "voting" ], "spotlightOrder": 12 }, @@ -1063,14 +1020,14 @@ { "userId": "user-047", "displayName": "Hugh", - "bio": "Publishes the Grey County harassment steps and keeps them off the medical question.", - "favoriteCauseId": "gender-conduct", + "bio": "Hosts the Owen Sound meetings on whether schools are pushing kids toward LGBT identities. He signs the right natural and funds those meetings.", + "favoriteCauseId": "schools", "interests": [ - "harassment reporting", - "Grey County schools" + "schools", + "Owen Sound" ], "causeIds": [ - "gender-conduct" + "schools" ], "spotlightOrder": 17 }, @@ -1098,8 +1055,7 @@ "independent checks" ], "causeIds": [ - "voting", - "gender-conduct" + "voting" ], "spotlightOrder": 19 }, @@ -1123,17 +1079,17 @@ { "userId": "user-051", "displayName": "Omar", - "bio": "Attests alignments on school conduct and will refuse a project that uses the schools statements as a medical claim.", - "favoriteCauseId": "gender-conduct", + "bio": "Attests alignments on the schools statements and the Owen Sound meetings. He will refuse a project that adds a claim about drugs, surgery, or classroom names.", + "favoriteCauseId": "schools", "interests": [ "review", "Grey County" ], "causeIds": [ - "gender-conduct", "schools", "voting", - "abortion-forum" + "abortion-forum", + "civic-assimilation" ], "spotlightOrder": 21 }, @@ -1153,15 +1109,14 @@ { "userId": "user-053", "displayName": "Jo", - "bio": "Signs the schools commonality if it is only the conditional about pushing. She rejects a school counselor approving a drug.", + "bio": "Signs the schools commonality, the conditional about pushing. She funds the Grey County packet and the host kit.", "favoriteCauseId": "schools", "interests": [ "schools", - "clinicians" + "Grey County" ], "causeIds": [ - "schools", - "gender-conduct" + "schools" ], "spotlightOrder": 23 }, @@ -1572,8 +1527,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 89, - "max": 89 + "min": 82, + "max": 82 } }, { @@ -1582,8 +1537,8 @@ "publish-statement" ], "targetCount": { - "min": 16, - "max": 16 + "min": 15, + "max": 15 } }, { @@ -1612,8 +1567,8 @@ "create-cause" ], "targetCount": { - "min": 65, - "max": 65 + "min": 63, + "max": 63 } }, { @@ -1623,8 +1578,8 @@ "publish-statement" ], "targetCount": { - "min": 65, - "max": 65 + "min": 63, + "max": 63 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index e6a0ff24..0eeb7dc1 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -5,7 +5,7 @@ Campaign id: `network-societies-v1-b2`. Synthetic users and deliverables. This i Keeps the four pilot families (Owen Sound checkout, Grey County civic life, Christian teaching, home learning). Adds three families: - Abortion settlement, using the accepted `compromise-abortion` wording unchanged, plus a separate Michigan authority board. -- Schools and pushing, using the accepted `lgbt-schools` wording unchanged, plus a separate Grey County conduct board. The schools statements do not settle drugs, surgery, or classroom names. +- Schools and pushing, using the accepted `lgbt-schools` wording unchanged. Grey County work is three projects on that board: Owen Sound meetings, a Grey County packet, and a host kit. There is no separate conduct board. - An Owen Sound non-binding voting trial. The other families in the brainstorming plan are not in this manifest, except an AI-pause board and the Canada–US family past its five-statement draft. The AI-pause board is plain: every sentence stays visible. Five milder modified sentences contain one shared pause-treaty sentence and each keeps a reason the shared sentence leaves out. Naturals do not name the treaty. Hal wants a full stop and rejects the pause. Vic rejects the pause because other labs will not stop. Five modified-to-commonality arrows are allowed. Naturals, poles, and reverse arrows are not. @@ -14,9 +14,9 @@ Canada–US stays a bridge. The shared sentence is still ordinary purchases and ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 89 statements and 64 projects. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 82 statements and 63 projects. The Grey County conduct sentences were removed on 2026-10-21. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. -The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board and the Grey County conduct board are ordinary boards, so their own sentences stay visible there. +The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board is an ordinary board, so its own sentences stay visible there. Schools has no second board. Six more causes are also bridge-shaped, from `statement-generation-exercises/06-network-society-alliances.json`: Grey County assimilation sessions, the Owen Sound dual-count poll, the Owen Sound checkout trial, minors' medicine and courtesy, ordinary opinions and employment, and ordinary Canada–US ties. diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 25a91a91..9806c4e1 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -273,8 +273,8 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one } const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); - assert.equal(plan.statements.length, 89); - assert.equal(plan.projects.length, 65); + assert.equal(plan.statements.length, 82); + assert.equal(plan.projects.length, 63); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); assert.ok(checklist); From 5cddf70eff4966c97efc3bff5abc8f92081ab766 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 11:54:42 -0400 Subject: [PATCH 33/46] Mark the schools-and-pushing board good enough for now. --- .../network-societies-campaign-plan.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 426994f7..2183f942 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -53,7 +53,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | Christian teaching | 4, plus the class-host sentence and the plain-text notice on the board | 5 | Good enough for now (2026-10-20). Adam asked for fewer, broader wants. | | Home learning | 3 | 5 | Good enough for now (2026-10-21). Materials wants are not local. The staffed-schools sentence is. | | Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Good enough for now (2026-10-21). Wording unchanged. Eli refuses the settlement. | -| Schools and pushing | the accepted five only | 3 in Grand Rapids, 3 in Grey County | Accepted wording kept. The Grey County conduct sentences were deleted on 2026-10-21. The new Grey County projects are not mined. | +| Schools and pushing | the accepted five only | 3 in Grand Rapids, 3 in Grey County | Good enough for now (2026-10-21). Conduct sentences deleted. Grey County projects not mined. | | Owen Sound voting trial | 7, plus a 5-statement dual-count draft | 5 on the trial, 2 on the draft | Main board meets it. | | US-friendly Canadians | 12 | 7 | Meets it. Boycott and narrower-ties sentences are refused as arrows. | | AI pause | 17 | 5 | Meets it. Five modified-to-commonality arrows are allowed. | @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, and the abortion settlement (the accepted five and the Michigan authority sentences) are good enough for now. The next board is schools and pushing. Adam likes the accepted five and the Grand Rapids projects. The Grey County conduct board was deleted on 2026-10-21. Three Grey County projects now sit on the schools board, aligned only to the accepted statements. Those three are waiting for his look. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), and schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects) are good enough for now. The next board is the Owen Sound voting trial, including the dual-count draft. Do not edit that board's statement or project text until he is in that session. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -303,7 +303,7 @@ These are scope calls, not a pass on the wording. Skip these unless you want to re-read them. (ADAM: No, don't skip them; I want to reread them and make sure they're suitable for the current campaign's purposes.) The campaign boards only point at them. - [x] Abortion cutoff bridge: the accepted five (`compromise-abortion`). Good enough for now (2026-10-21). Reused unchanged. -- [ ] Schools and pushing: the accepted five (`lgbt-schools`). The campaign does not treat those five as a position on drugs, surgery, or classroom names. +- [x] Schools and pushing: the accepted five (`lgbt-schools`). Good enough for now (2026-10-21), with the three Grand Rapids projects and the three Grey County projects. The campaign does not treat those five as a position on drugs, surgery, or classroom names. The conduct board is deleted. ### Still needs a look @@ -326,8 +326,9 @@ The boards Adam has already called good enough publish **no** implication arrows - [ ] Christian teaching (`shared-teaching-notes`, `independent-church-help`, `keep-notes-inside`, `civic-transcription-only`). No candidate pair has been chosen. Do not evaluate during a wording session. - [ ] Home learning (`reusable-home-materials`, `materials-without-religion`, `taught-in-staffed-schools`). No candidate pair. `taught-in-staffed-schools` is a refusal. Do not evaluate during the wording session. - [ ] Abortion settlement. The accepted pair already has live arrows (`modified-left` and `modified-right` to `commonality`). The wording did not change on 2026-10-21, so those arrows stay. Do not re-evaluate them in a wording session. The Michigan sentences are separate wants and have no bridge roles. +- [ ] Schools and pushing. The accepted pair already has live arrows. The wording did not change on 2026-10-21, so those arrows stay. The Grey County projects do not add sentences. -Boards that still have live arrows, and have not had this wording review: the accepted schools pair, the dual-count poll, minors' medicine, employment, Canada–US (boycott and narrower-ties stay refused), and AI pause. Re-check those arrows only if a sentence on that board changes. +Boards that still have live arrows, and have not had this wording review: the dual-count poll, minors' medicine, employment, Canada–US (boycott and narrower-ties stay refused), and AI pause. Re-check those arrows only if a sentence on that board changes. - [x] Christian teaching, 2026-10-20. Good enough for now. Two wants: freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated. Two refusals: notes stay inside the church, and civic transcription excludes church teaching. Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. No implication arrow. Not mined. @@ -335,4 +336,6 @@ Boards that still have live arrows, and have not had this wording review: the ac - [x] Abortion settlement, 2026-10-21. Good enough for now. The accepted five stay as written. The Michigan board stays as written: legislature versus one federal statute, keep campaigning, a ban from the start of pregnancy, a labeled comparison of three proposals, and the moderator checklist. Settlement projects stay aligned as they are. The authority brief and the from-the-start page stay on the forum. Not mined. -The schools board is in review. The accepted five and the Grand Rapids projects are liked. Three new Grey County projects are waiting for a look. The conduct sentences are gone. \ No newline at end of file +- [x] Schools and pushing, 2026-10-21. Good enough for now. The accepted five stay as written. Grand Rapids keeps its three projects. Grey County adds the Owen Sound meetings, the schools packet, and the meeting host kit, aligned only to those five. The conduct sentences are deleted. Not mined. + +The next board is the Owen Sound voting trial. Do not edit it until Adam is in that session. \ No newline at end of file From a763d5040ca891af4591b68454c21a3768f58e8c Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 12:03:15 -0400 Subject: [PATCH 34/46] Rewrite the Grey County voting board as three broader wants. Delete the Owen Sound dual-count draft. The poll stays a project under the new sentences. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 10 +- .../network-societies-v1-b2-decisions.json | 9 +- .../network-societies-v1-b2-note-spend.json | 121 ++++-------------- .../network-societies-v1-b2-projects.json | 31 +---- .../network-societies-v1-b2-reimburse.json | 121 ++++-------------- .../network-societies-v1-b2-statements.json | 54 ++------ .../campaigns/network-societies-v1-b2.json | 121 ++++-------------- .../campaigns/network-societies-v1-b2.md | 8 +- .../test/campaignPlanner.test.ts | 13 +- 10 files changed, 119 insertions(+), 371 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index ef7e5178..6d3fb4f4 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-20 wording cut, is 72 users, 82 statements, and 63 projects. Seventeen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting rewrite, is 72 users, 76 statements, and 61 projects. Fifteen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 2183f942..f90df1d7 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -54,7 +54,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | Home learning | 3 | 5 | Good enough for now (2026-10-21). Materials wants are not local. The staffed-schools sentence is. | | Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Good enough for now (2026-10-21). Wording unchanged. Eli refuses the settlement. | | Schools and pushing | the accepted five only | 3 in Grand Rapids, 3 in Grey County | Good enough for now (2026-10-21). Conduct sentences deleted. Grey County projects not mined. | -| Owen Sound voting trial | 7, plus a 5-statement dual-count draft | 5 on the trial, 2 on the draft | Main board meets it. | +| Voting in Grey County | 3, plus the shared moderator checklist | 6 | Rewritten 2026-10-21. Not yet called good enough. The dual-count draft is deleted. | | US-friendly Canadians | 12 | 7 | Meets it. Boycott and narrower-ties sentences are refused as arrows. | | AI pause | 17 | 5 | Meets it. Five modified-to-commonality arrows are allowed. | | Low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation | none | none | Deferred. | @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), and schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects) are good enough for now. The next board is the Owen Sound voting trial, including the dual-count draft. Do not edit that board's statement or project text until he is in that session. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), and schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects) are good enough for now. The voting board was rewritten on 2026-10-21 and is waiting on Adam. The next board after he accepts or changes it is US-friendly Canadians. Do not edit that board's statement or project text until he is in that session. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -328,7 +328,7 @@ The boards Adam has already called good enough publish **no** implication arrows - [ ] Abortion settlement. The accepted pair already has live arrows (`modified-left` and `modified-right` to `commonality`). The wording did not change on 2026-10-21, so those arrows stay. Do not re-evaluate them in a wording session. The Michigan sentences are separate wants and have no bridge roles. - [ ] Schools and pushing. The accepted pair already has live arrows. The wording did not change on 2026-10-21, so those arrows stay. The Grey County projects do not add sentences. -Boards that still have live arrows, and have not had this wording review: the dual-count poll, minors' medicine, employment, Canada–US (boycott and narrower-ties stay refused), and AI pause. Re-check those arrows only if a sentence on that board changes. +Boards that still have live arrows, and have not had this wording review: minors' medicine, employment, Canada–US (boycott and narrower-ties stay refused), and AI pause. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. Re-check the remaining arrows only if a sentence on that board changes. - [x] Christian teaching, 2026-10-20. Good enough for now. Two wants: freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated. Two refusals: notes stay inside the church, and civic transcription excludes church teaching. Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. No implication arrow. Not mined. @@ -338,4 +338,6 @@ Boards that still have live arrows, and have not had this wording review: the du - [x] Schools and pushing, 2026-10-21. Good enough for now. The accepted five stay as written. Grand Rapids keeps its three projects. Grey County adds the Owen Sound meetings, the schools packet, and the meeting host kit, aligned only to those five. The conduct sentences are deleted. Not mined. -The next board is the Owen Sound voting trial. Do not edit it until Adam is in that session. \ No newline at end of file +- [ ] Voting in Grey County, 2026-10-21. Rewritten, not yet accepted. Three sentences: more voting in Grey County, Ontario should use other systems, like ranked choice; the same place should use approval voting and not ranked choice; voting there should keep first-past-the-post. The moderator checklist stays on the board. The poll, the counting notes, and the host kit align only to the ranked-choice example. The approval count aligns only to the approval sentence. Both checklist projects align only to the checklist. The dual-count draft is deleted. No implication arrow. Not mined. + +The next board is US-friendly Canadians. Do not edit it until Adam is in that session. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json index 22dafb5d..c8d020f2 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json @@ -1,5 +1,5 @@ { - "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Seventeen modified-to-commonality arrows are allowed. The four abortion and schools arrows keep accepted-bridge-role-pair. The Grey County assimilation bridge and the checkout-trial bridge dropped their arrows when the wording changed on 2026-10-20. The remaining eight draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US archive, guide, evening, directory, and host handoff are projects under the shared sentence, not extra sentences. Greta's boycott and Hugh's narrower sentence are not arrows. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", + "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Fifteen modified-to-commonality arrows are allowed. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. The four abortion and schools arrows keep accepted-bridge-role-pair. The Grey County assimilation bridge and the checkout-trial bridge dropped their arrows when the wording changed on 2026-10-20. The remaining eight draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US archive, guide, evening, directory, and host handoff are projects under the shared sentence, not extra sentences. Greta's boycott and Hugh's narrower sentence are not arrows. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", "people": [ { "userId": "user-003", "name": "Imani", "signs": ["bank-blocking", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "funds": ["Six-shop refundable checkout trial", "Independent checkout security review", "Fee and failure table", "Owen Sound merchant directory", "Quarterly checkout clinic and host kit", "Blocked-customer sale record"], "notes": "The bank-blocking sentence is why she funds the checkout projects. Those projects stay aligned to the refundable-checkout sentence. Signing the checkout want is not a signature that shops must take crypto from everyone." }, { "userId": "user-016", "name": "June", "signs": ["bank-blocking", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "funds": ["Six-shop refundable checkout trial", "Independent checkout security review", "Fee and failure table", "Owen Sound merchant directory", "Quarterly checkout clinic and host kit", "Blocked-customer sale record"], "notes": "Same funding as Imani. The blocked-customer record is the project aligned to bank-blocking. The other five are the earlier checkout steps." }, @@ -9,7 +9,7 @@ { "userId": "user-053", "name": "Jo", "signs": ["commonality"], "funds": ["Grey County schools packet", "Grey County meeting host kit"], "notes": "The schools commonality is the accepted conditional about pushing. She funds the Grey County packet and the host kit." }, { "userId": "user-042", "name": "Nina", "signs": ["natural-left"], "funds": ["Owen Sound pushing-question meetings"], "unsigned": ["commonality"], "notes": "She keeps the left natural: support is not a push. She funds the Owen Sound meetings and has not signed the conditional." }, { "userId": "user-047", "name": "Hugh", "signs": ["natural-right"], "funds": ["Owen Sound pushing-question meetings"], "unsigned": ["commonality"], "notes": "He keeps the right natural: the push is happening and should stop. He funds the same Owen Sound meetings. This Hugh is user-047, not the Canada-US Hugh." }, - { "userId": "user-043", "name": "Wes", "signs": ["ranked-poll", "approval-count", "keep-fptp", "moderator-checklist"], "rejects": ["show-of-hands"], "notes": "A non-binding poll and keeping first-past-the-post for municipal elections are compatible. Refusing the poll is the incompatible position." }, + { "userId": "user-043", "name": "Wes", "signs": ["other-voting-systems", "moderator-checklist"], "rejects": ["keep-first-past-the-post"], "notes": "He wants more voting in Grey County to use other systems, such as ranked choice. Keeping first-past-the-post is the refusal. Approval voting is a different want, and he has not signed it." }, { "userId": "user-061", "name": "Priya", "signs": ["modified-small-chance", "commonality"], "rejects": ["pole-stop"], "unsigned": ["natural-small-chance", "pole-accelerate"], "notes": "Will not sign certain doom. The small-chance modified already contains the shared pause sentence, and that arrow is allowed." }, { "userId": "user-062", "name": "Dean", "signs": ["natural-jobs", "modified-jobs", "commonality"], "rejects": ["pole-stop"], "unsigned": ["modified-small-chance"], "notes": "Jobs, not extinction. Signing the shared sentence is not a signature of the small-chance odds." }, { "userId": "user-063", "name": "Noor", "signs": ["natural-industry"], "unsigned": ["modified-industry", "commonality", "pole-stop"], "notes": "Has the warning and has not taken the treaty. A nudge target, not an implied supporter." }, @@ -29,8 +29,6 @@ { "from": "compromise-abortion/modified-right", "to": "compromise-abortion/commonality", "evidence": "accepted-bridge-role-pair", "why": "Accepted 2026-08-30." }, { "from": "lgbt-schools/modified-left", "to": "lgbt-schools/commonality", "evidence": "accepted-bridge-role-pair", "why": "Accepted 2026-08-31. This arrow is about pushing versus support. It is not a medical claim." }, { "from": "lgbt-schools/modified-right", "to": "lgbt-schools/commonality", "evidence": "accepted-bridge-role-pair", "why": "Accepted 2026-08-31." }, - { "from": "ranked-approval-poll/modified-left", "to": "ranked-approval-poll/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, - { "from": "ranked-approval-poll/modified-right", "to": "ranked-approval-poll/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, { "from": "minors-medicine/modified-left", "to": "minors-medicine/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, { "from": "minors-medicine/modified-right", "to": "minors-medicine/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, { "from": "opinion-employment/modified-left", "to": "opinion-employment/commonality", "evidence": "live-attester-modified-to-commonality", "why": "Blessed after the modifieds gained a camp priority the commonality does not contain." }, @@ -62,7 +60,8 @@ "unevaluatedAndUnpublished": [ { "from": "commonality", "to": "michigan-legislature", "why": "Agreement on a cutoff does not imply who should have the authority to write it." }, { "from": "natural-right", "to": "commonality", "why": "Designed negative for the abortion bridge. Eli keeps this side." }, - { "from": "ranked-poll", "to": "keep-fptp", "why": "Wanting a non-binding poll does not imply a position on municipal elections, in either direction." } + { "from": "other-voting-systems", "to": "approval-voting", "why": "Wanting other systems, with ranked choice as an example, does not imply a refusal of ranked choice. The approval sentence is a different want." }, + { "from": "other-voting-systems", "to": "keep-first-past-the-post", "why": "The two sentences are refusals of each other." } ] } } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json index c9dcfe29..70c7240e 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -17,10 +17,10 @@ "campaignCollection": "network-societies-v1-b2-statements.json" }, "scale": { - "minCauses": 15, - "maxCauses": 15, - "minStatements": 82, - "maxStatements": 82, + "minCauses": 14, + "maxCauses": 14, + "minStatements": 76, + "maxStatements": 76, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -264,29 +264,24 @@ }, { "id": "voting", - "title": "Owen Sound voting trial", + "title": "Voting in Grey County", "activityTier": "medium", "membershipWeight": 8, "statementRefs": [ { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "ranked-poll" + "statementId": "other-voting-systems" }, { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "approval-count" + "statementId": "approval-voting" }, { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "keep-fptp" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "voting", - "statementId": "show-of-hands" + "statementId": "keep-first-past-the-post" }, { "collectionId": "network-societies-v1-b2", @@ -328,39 +323,6 @@ } ] }, - { - "id": "ranked-approval-poll", - "title": "Owen Sound dual count", - "activityTier": "medium", - "membershipWeight": 7, - "statementRefs": [ - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "natural-left" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "natural-right" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "modified-left" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "modified-right" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "commonality" - } - ] - }, { "id": "checkout-trial-bridge", "title": "Owen Sound checkout bridge", @@ -785,8 +747,7 @@ ], "causeIds": [ "christian-teaching", - "home-learning", - "ranked-approval-poll" + "home-learning" ], "spotlightOrder": 2 }, @@ -978,11 +939,11 @@ { "userId": "user-043", "displayName": "Wes", - "bio": "Wants the Owen Sound association poll and the published counts. He can sign keeping first-past-the-post for real municipal elections.", + "bio": "Wants more voting in Grey County, Ontario to use a system other than first-past-the-post, such as ranked choice. He rejects keeping first-past-the-post.", "favoriteCauseId": "voting", "interests": [ - "Owen Sound", - "ballots" + "Grey County", + "ranked choice" ], "causeIds": [ "voting", @@ -1367,32 +1328,6 @@ }, "evidence": "accepted-bridge-role-pair" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1542,8 +1477,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 82, - "max": 82 + "min": 76, + "max": 76 } }, { @@ -1552,8 +1487,8 @@ "publish-statement" ], "targetCount": { - "min": 15, - "max": 15 + "min": 14, + "max": 14 } }, { @@ -1562,8 +1497,8 @@ "publish-statement" ], "targetCount": { - "min": 105, - "max": 105 + "min": 103, + "max": 103 } }, { @@ -1572,8 +1507,8 @@ "publish-statement" ], "targetCount": { - "min": 17, - "max": 17 + "min": 15, + "max": 15 } }, { @@ -1582,8 +1517,8 @@ "create-cause" ], "targetCount": { - "min": 63, - "max": 63 + "min": 61, + "max": 61 } }, { @@ -1593,8 +1528,8 @@ "publish-statement" ], "targetCount": { - "min": 62, - "max": 62 + "min": 61, + "max": 61 } }, { @@ -1642,8 +1577,8 @@ "publish-statement" ], "targetCount": { - "min": 32, - "max": 32 + "min": 28, + "max": 28 } }, { @@ -1653,8 +1588,8 @@ "create-bridge-board" ], "targetCount": { - "min": 8, - "max": 8 + "min": 7, + "max": 7 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index 9d57b34f..17c5f92b 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -318,7 +318,7 @@ "title": "Owen Sound association poll", "outcome": "Run one non-binding ranked-ballot poll at one named Owen Sound community association and publish the ballots and the ranked count. The poll does not change a municipal election.", "statementRefs": [ - "ranked-poll" + "other-voting-systems" ], "blocker": "Printing, a room, and a published count have to be paid for before anyone can inspect the result" }, @@ -326,8 +326,7 @@ "title": "Approval count of the same ballots", "outcome": "Publish an approval count of those same Owen Sound ballots beside the ranked count, with both methods named.", "statementRefs": [ - "ranked-poll", - "approval-count" + "approval-voting" ], "blocker": "A second count is useful to people comparing methods, and the association is not paid to run it" }, @@ -335,7 +334,7 @@ "title": "Rerunnable counting notes", "outcome": "Publish the counting method in enough detail that a second person can rerun it from the published ballots and match the count.", "statementRefs": [ - "ranked-poll" + "other-voting-systems" ], "blocker": "The counter who ran the poll is a poor person to be the only one who can repeat it" }, @@ -343,7 +342,7 @@ "title": "Second-host poll kit", "outcome": "Write the room, ballot, and publication steps so a second Owen Sound resident can run the next non-binding poll.", "statementRefs": [ - "ranked-poll" + "other-voting-systems" ], "blocker": "The poll stops when the first host is busy unless the steps are written down" }, @@ -359,8 +358,7 @@ "title": "Moderator checklist card", "outcome": "Print the moderator checklist and use it for the Owen Sound poll and for one other published meeting, then file both checklists in the Grey County trial directory.", "statementRefs": [ - "moderator-checklist", - "ranked-poll" + "moderator-checklist" ], "blocker": "The checklist is useful on more than one board, and neither meeting owns the maintenance" } @@ -385,25 +383,6 @@ "blocker": "The limit is easy to drop in the room unless a card states it" } ], - "ranked-approval-poll": [ - { - "title": "Dual-count association poll", - "outcome": "One Owen Sound community association runs a non-binding poll and publishes a ranked count and an approval count of the same ballots. The poll does not change a municipal election.", - "statementRefs": [ - "commonality" - ], - "blocker": "Printing both counts costs more than the association's usual show of hands" - }, - { - "title": "Dual-count host card", - "outcome": "Print the two modified sentences so a host can say that publishing the other count is not a change of preferred system.", - "statementRefs": [ - "modified-left", - "modified-right" - ], - "blocker": "Without the card, each side hears the second count as a concession they did not make" - } - ], "checkout-trial-bridge": [ { "title": "Six-shop trial on the bridge terms", diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json index 7497e2c8..3cb9b705 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -17,10 +17,10 @@ "campaignCollection": "network-societies-v1-b2-statements.json" }, "scale": { - "minCauses": 15, - "maxCauses": 15, - "minStatements": 82, - "maxStatements": 82, + "minCauses": 14, + "maxCauses": 14, + "minStatements": 76, + "maxStatements": 76, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -264,29 +264,24 @@ }, { "id": "voting", - "title": "Owen Sound voting trial", + "title": "Voting in Grey County", "activityTier": "medium", "membershipWeight": 8, "statementRefs": [ { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "ranked-poll" + "statementId": "other-voting-systems" }, { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "approval-count" + "statementId": "approval-voting" }, { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "keep-fptp" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "voting", - "statementId": "show-of-hands" + "statementId": "keep-first-past-the-post" }, { "collectionId": "network-societies-v1-b2", @@ -328,39 +323,6 @@ } ] }, - { - "id": "ranked-approval-poll", - "title": "Owen Sound dual count", - "activityTier": "medium", - "membershipWeight": 7, - "statementRefs": [ - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "natural-left" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "natural-right" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "modified-left" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "modified-right" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "commonality" - } - ] - }, { "id": "checkout-trial-bridge", "title": "Owen Sound checkout bridge", @@ -785,8 +747,7 @@ ], "causeIds": [ "christian-teaching", - "home-learning", - "ranked-approval-poll" + "home-learning" ], "spotlightOrder": 2 }, @@ -963,11 +924,11 @@ { "userId": "user-043", "displayName": "Wes", - "bio": "Wants the Owen Sound association poll and the published counts. He can sign keeping first-past-the-post for real municipal elections.", + "bio": "Wants more voting in Grey County, Ontario to use a system other than first-past-the-post, such as ranked choice. He rejects keeping first-past-the-post.", "favoriteCauseId": "voting", "interests": [ - "Owen Sound", - "ballots" + "Grey County", + "ranked choice" ], "causeIds": [ "voting", @@ -1352,32 +1313,6 @@ }, "evidence": "accepted-bridge-role-pair" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1527,8 +1462,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 82, - "max": 82 + "min": 76, + "max": 76 } }, { @@ -1537,8 +1472,8 @@ "publish-statement" ], "targetCount": { - "min": 15, - "max": 15 + "min": 14, + "max": 14 } }, { @@ -1547,8 +1482,8 @@ "publish-statement" ], "targetCount": { - "min": 105, - "max": 105 + "min": 103, + "max": 103 } }, { @@ -1557,8 +1492,8 @@ "publish-statement" ], "targetCount": { - "min": 17, - "max": 17 + "min": 15, + "max": 15 } }, { @@ -1567,8 +1502,8 @@ "create-cause" ], "targetCount": { - "min": 63, - "max": 63 + "min": 61, + "max": 61 } }, { @@ -1578,8 +1513,8 @@ "publish-statement" ], "targetCount": { - "min": 62, - "max": 62 + "min": 61, + "max": 61 } }, { @@ -1627,8 +1562,8 @@ "publish-statement" ], "targetCount": { - "min": 32, - "max": 32 + "min": 28, + "max": 28 } }, { @@ -1638,8 +1573,8 @@ "create-bridge-board" ], "targetCount": { - "min": 8, - "max": 8 + "min": 7, + "max": 7 } } ], diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 14b9f768..98997bd2 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -160,26 +160,22 @@ }, { "id": "voting", - "title": "Non-binding counts in Owen Sound", + "title": "Voting in Grey County", "notes": [ - "A non-binding association poll is not a change to municipal election law. No bridge roles." + "A want that more voting in Grey County use something other than first-past-the-post, an approval-voting want that refuses ranked choice, and a refusal that keeps first-past-the-post. No bridge roles. The dual-count draft was the old poll wording and is deleted." ], "statements": [ { - "id": "ranked-poll", - "text": "I want a community association in Owen Sound to be able to try a non-binding ranked ballot and to publish the ballots and the count." + "id": "other-voting-systems", + "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to be done using other voting systems, like ranked choice." }, { - "id": "approval-count", - "text": "I want that same non-binding poll to publish an approval count of the same ballots beside the ranked count." + "id": "approval-voting", + "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to be done using approval voting, and not ranked choice." }, { - "id": "keep-fptp", - "text": "I want Owen Sound municipal elections to keep first-past-the-post." - }, - { - "id": "show-of-hands", - "text": "I want the Owen Sound association to refuse a ranked-ballot poll and keep its usual show of hands." + "id": "keep-first-past-the-post", + "text": "I want voting in Grey County, Ontario to keep first-past-the-post." } ] }, @@ -217,40 +213,6 @@ } ] }, - { - "id": "ranked-approval-poll", - "title": "Owen Sound dual-count poll", - "notes": [ - "Draft bridge. Unevaluated. The older voting group stays a plain board of separate planks." - ], - "statements": [ - { - "id": "natural-left", - "role": "natural-left", - "text": "First-past-the-post wastes my vote. I want ranked ballots." - }, - { - "id": "natural-right", - "role": "natural-right", - "text": "First-past-the-post rewards the biggest camp. I want approval voting, not a ranked system." - }, - { - "id": "modified-left", - "role": "modified-left", - "text": "First-past-the-post wastes my vote. I want ranked ballots for a real election. I'd be okay with one Owen Sound community association running a non-binding poll and publishing both a ranked count and an approval count of the same ballots. That is not a change to Owen Sound's municipal elections, and publishing the approval count is not me dropping ranked ballots." - }, - { - "id": "modified-right", - "role": "modified-right", - "text": "First-past-the-post rewards the biggest camp. I want approval voting, not a ranked system, for a real election. I'd be okay with one Owen Sound community association running a non-binding poll and publishing both a ranked count and an approval count of the same ballots. That is not a change to Owen Sound's municipal elections, and publishing the ranked count is not me adopting ranked ballots." - }, - { - "id": "commonality", - "role": "commonality", - "text": "I'd be okay with one Owen Sound community association running a non-binding poll and publishing both a ranked count and an approval count of the same ballots. That is not a change to Owen Sound's municipal elections." - } - ] - }, { "id": "checkout-trial-bridge", "title": "Owen Sound checkout trial bridge", diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index c02b66b1..5df6213d 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -17,10 +17,10 @@ "campaignCollection": "network-societies-v1-b2-statements.json" }, "scale": { - "minCauses": 15, - "maxCauses": 15, - "minStatements": 82, - "maxStatements": 82, + "minCauses": 14, + "maxCauses": 14, + "minStatements": 76, + "maxStatements": 76, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -264,29 +264,24 @@ }, { "id": "voting", - "title": "Owen Sound voting trial", + "title": "Voting in Grey County", "activityTier": "medium", "membershipWeight": 8, "statementRefs": [ { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "ranked-poll" + "statementId": "other-voting-systems" }, { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "approval-count" + "statementId": "approval-voting" }, { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "keep-fptp" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "voting", - "statementId": "show-of-hands" + "statementId": "keep-first-past-the-post" }, { "collectionId": "network-societies-v1-b2", @@ -328,39 +323,6 @@ } ] }, - { - "id": "ranked-approval-poll", - "title": "Owen Sound dual count", - "activityTier": "medium", - "membershipWeight": 7, - "statementRefs": [ - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "natural-left" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "natural-right" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "modified-left" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "modified-right" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "commonality" - } - ] - }, { "id": "checkout-trial-bridge", "title": "Owen Sound checkout bridge", @@ -785,8 +747,7 @@ ], "causeIds": [ "christian-teaching", - "home-learning", - "ranked-approval-poll" + "home-learning" ], "spotlightOrder": 2 }, @@ -963,11 +924,11 @@ { "userId": "user-043", "displayName": "Wes", - "bio": "Wants the Owen Sound association poll and the published counts. He can sign keeping first-past-the-post for real municipal elections.", + "bio": "Wants more voting in Grey County, Ontario to use a system other than first-past-the-post, such as ranked choice. He rejects keeping first-past-the-post.", "favoriteCauseId": "voting", "interests": [ - "Owen Sound", - "ballots" + "Grey County", + "ranked choice" ], "causeIds": [ "voting", @@ -1352,32 +1313,6 @@ }, "evidence": "accepted-bridge-role-pair" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "ranked-approval-poll", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1527,8 +1462,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 82, - "max": 82 + "min": 76, + "max": 76 } }, { @@ -1537,8 +1472,8 @@ "publish-statement" ], "targetCount": { - "min": 15, - "max": 15 + "min": 14, + "max": 14 } }, { @@ -1547,8 +1482,8 @@ "publish-statement" ], "targetCount": { - "min": 105, - "max": 105 + "min": 103, + "max": 103 } }, { @@ -1557,8 +1492,8 @@ "publish-statement" ], "targetCount": { - "min": 17, - "max": 17 + "min": 15, + "max": 15 } }, { @@ -1567,8 +1502,8 @@ "create-cause" ], "targetCount": { - "min": 63, - "max": 63 + "min": 61, + "max": 61 } }, { @@ -1578,8 +1513,8 @@ "publish-statement" ], "targetCount": { - "min": 63, - "max": 63 + "min": 61, + "max": 61 } }, { @@ -1627,8 +1562,8 @@ "publish-statement" ], "targetCount": { - "min": 32, - "max": 32 + "min": 28, + "max": 28 } }, { @@ -1638,8 +1573,8 @@ "create-bridge-board" ], "targetCount": { - "min": 8, - "max": 8 + "min": 7, + "max": 7 } } ], diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 0eeb7dc1..236045a0 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -6,7 +6,7 @@ Keeps the four pilot families (Owen Sound checkout, Grey County civic life, Chri - Abortion settlement, using the accepted `compromise-abortion` wording unchanged, plus a separate Michigan authority board. - Schools and pushing, using the accepted `lgbt-schools` wording unchanged. Grey County work is three projects on that board: Owen Sound meetings, a Grey County packet, and a host kit. There is no separate conduct board. -- An Owen Sound non-binding voting trial. +- Voting in Grey County. Three sentences: other systems such as ranked choice, approval voting instead of ranked choice, and keeping first-past-the-post. The Owen Sound poll stays a project. The dual-count draft is deleted. The other families in the brainstorming plan are not in this manifest, except an AI-pause board and the Canada–US family past its five-statement draft. The AI-pause board is plain: every sentence stays visible. Five milder modified sentences contain one shared pause-treaty sentence and each keeps a reason the shared sentence leaves out. Naturals do not name the treaty. Hal wants a full stop and rejects the pause. Vic rejects the pause because other labs will not stop. Five modified-to-commonality arrows are allowed. Naturals, poles, and reverse arrows are not. @@ -14,13 +14,13 @@ Canada–US stays a bridge. The shared sentence is still ordinary purchases and ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 82 statements and 63 projects. The Grey County conduct sentences were removed on 2026-10-21. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 76 statements and 61 projects. The Grey County conduct sentences were removed on 2026-10-21. The Owen Sound dual-count draft was deleted the same day, when the voting board was rewritten. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board is an ordinary board, so its own sentences stay visible there. Schools has no second board. -Six more causes are also bridge-shaped, from `statement-generation-exercises/06-network-society-alliances.json`: Grey County assimilation sessions, the Owen Sound dual-count poll, the Owen Sound checkout trial, minors' medicine and courtesy, ordinary opinions and employment, and ordinary Canada–US ties. +Five more causes are also bridge-shaped, from `statement-generation-exercises/06-network-society-alliances.json`: Grey County assimilation sessions, the Owen Sound checkout trial, minors' medicine and courtesy, ordinary opinions and employment, and ordinary Canada–US ties. The Owen Sound dual-count poll is no longer a cause. -Twenty-one implication actions are planned. Four are the accepted abortion and schools pairs, labeled `accepted-bridge-role-pair`. Seventeen are modified-to-commonality pairs, labeled `live-attester-modified-to-commonality`: twelve from the draft bridges and five from the AI-pause board. The live record is `network-societies-v1-b2-implication-evaluations.json` (deepseek/deepseek-v3.2, prompt fingerprint `2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891`, 82 pairs). The draft bridges blessed every designed-yes and refused every designed-no after one rewrite. Employment modifieds now name a camp priority the commonality does not contain (on-the-clock campaigning; churches and private clubs). The Canada commonality no longer says "I'd be okay with saying that," and each modified keeps a priority the commonality omits. The AI-pause pass matched on the first wording: each modified implies the shared pause sentence, and the naturals, poles, and reverse arrows do not. Naturals, reverse arrows, cross-modified arrows, and the assimilation cluster against the accepted immigration statements stay unpublished. Those refusals are in the decisions file. A later pass refused the Canada–US boycott and the narrower sentence, both ways that were checked, at high confidence on the first wording. No new arrow was added. The five remaining draft clusters, the expanded Canada–US board, and the AI-pause board are still not accepted seed. +Nineteen implication actions are planned. Four are the accepted abortion and schools pairs, labeled `accepted-bridge-role-pair`. Fifteen are modified-to-commonality pairs, labeled `live-attester-modified-to-commonality`: ten from the draft bridges and five from the AI-pause board. The dual-count pair is not among them. The live record is `network-societies-v1-b2-implication-evaluations.json` (deepseek/deepseek-v3.2, prompt fingerprint `2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891`, 82 pairs). The draft bridges blessed every designed-yes and refused every designed-no after one rewrite. Employment modifieds now name a camp priority the commonality does not contain (on-the-clock campaigning; churches and private clubs). The Canada commonality no longer says "I'd be okay with saying that," and each modified keeps a priority the commonality omits. The AI-pause pass matched on the first wording: each modified implies the shared pause sentence, and the naturals, poles, and reverse arrows do not. Naturals, reverse arrows, cross-modified arrows, and the assimilation cluster against the accepted immigration statements stay unpublished. Those refusals are in the decisions file. A later pass refused the Canada–US boycott and the narrower sentence, both ways that were checked, at high confidence on the first wording. No new arrow was added. The five remaining draft clusters, the expanded Canada–US board, and the AI-pause board are still not accepted seed. `moderator-checklist` is one statement. It is on the Michigan authority board and the Owen Sound voting board. One project, "Moderator checklist card", references it. diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 9806c4e1..1a9d87da 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -273,8 +273,8 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one } const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); - assert.equal(plan.statements.length, 82); - assert.equal(plan.projects.length, 63); + assert.equal(plan.statements.length, 76); + assert.equal(plan.projects.length, 61); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); assert.ok(checklist); @@ -288,6 +288,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one }); assert.deepEqual(singleShared.map((project) => project.title).sort(), [ 'Grey County class-host directory', + 'Moderator checklist card', 'Plain-text Grey County notice', 'Printed moderator checklist', ]); @@ -295,11 +296,11 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one assert.equal(notice.causeId, 'civic-assimilation'); assert.deepEqual(notice.alsoOnCauseIds, ['christian-teaching']); const implications = plan.actions.filter((action) => action.type === 'attest-implication'); - assert.equal(implications.length, 17); + assert.equal(implications.length, 15); const accepted = implications.filter((action) => action.implication!.evidence === 'accepted-bridge-role-pair'); const live = implications.filter((action) => action.implication!.evidence === 'live-attester-modified-to-commonality'); assert.equal(accepted.length, 4); - assert.equal(live.length, 13); + assert.equal(live.length, 11); for (const action of accepted) { const from = plan.statements.find((statement) => statement.id === action.implication!.fromStatementId)!; assert.ok(from.source.collectionId === 'compromise-abortion' || from.source.collectionId === 'lgbt-schools'); @@ -327,7 +328,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one assert.equal(board.role, 'commonality'); assert.equal(implications.filter((action) => action.causeId === causeId).length, 0, causeId); } - for (const causeId of ['ranked-approval-poll', 'minors-medicine', 'opinion-employment', 'canada-us-ties']) { + for (const causeId of ['minors-medicine', 'opinion-employment', 'canada-us-ties']) { const board = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === causeId)!.board!; assert.equal(board.role, 'commonality'); assert.equal(implications.filter((action) => action.causeId === causeId).length, 2, causeId); @@ -364,7 +365,7 @@ test('batch 2 pins persona belief choices and never has Eli believe the settleme }; const plan = await buildCampaignPlan(manifest); const beliefs = plan.actions.filter((action) => action.type === 'set-belief'); - assert.equal(beliefs.length, 105); + assert.equal(beliefs.length, 103); const byStatementId = (sourceId: string, userId: string) => beliefs.filter((action) => { const statement = plan.statements.find((item) => item.id === action.statementId); return action.actorUserId === userId && statement?.source.statementId === sourceId; From 9f0b453c8e833b9e3c6e79a2bd90265a05003ba4 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 12:24:39 -0400 Subject: [PATCH 35/46] Add a Grey County voting bridge for trying a non-preferred system. The ranked-choice and approval wants stay. Their modifieds contain a shared trial sentence, and no arrow is published until an attester blesses it. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 4 +- .../network-societies-v1-b2-decisions.json | 9 ++-- .../network-societies-v1-b2-note-spend.json | 41 +++++++++++++------ .../network-societies-v1-b2-projects.json | 8 ++-- .../network-societies-v1-b2-reimburse.json | 41 +++++++++++++------ .../network-societies-v1-b2-statements.json | 27 +++++++++--- .../campaigns/network-societies-v1-b2.json | 41 +++++++++++++------ .../campaigns/network-societies-v1-b2.md | 4 +- .../test/campaignPlanner.test.ts | 6 +-- 10 files changed, 124 insertions(+), 59 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 6d3fb4f4..9179b99f 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting rewrite, is 72 users, 76 statements, and 61 projects. Fifteen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge, is 72 users, 79 statements, and 61 projects. Fifteen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index f90df1d7..a735c8ce 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -54,7 +54,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | Home learning | 3 | 5 | Good enough for now (2026-10-21). Materials wants are not local. The staffed-schools sentence is. | | Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Good enough for now (2026-10-21). Wording unchanged. Eli refuses the settlement. | | Schools and pushing | the accepted five only | 3 in Grand Rapids, 3 in Grey County | Good enough for now (2026-10-21). Conduct sentences deleted. Grey County projects not mined. | -| Voting in Grey County | 3, plus the shared moderator checklist | 6 | Rewritten 2026-10-21. Not yet called good enough. The dual-count draft is deleted. | +| Voting in Grey County | 6, plus the shared moderator checklist | 6 | Bridge rewritten 2026-10-21. Not yet called good enough. No arrow yet. | | US-friendly Canadians | 12 | 7 | Meets it. Boycott and narrower-ties sentences are refused as arrows. | | AI pause | 17 | 5 | Meets it. Five modified-to-commonality arrows are allowed. | | Low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation | none | none | Deferred. | @@ -338,6 +338,6 @@ Boards that still have live arrows, and have not had this wording review: minors - [x] Schools and pushing, 2026-10-21. Good enough for now. The accepted five stay as written. Grand Rapids keeps its three projects. Grey County adds the Owen Sound meetings, the schools packet, and the meeting host kit, aligned only to those five. The conduct sentences are deleted. Not mined. -- [ ] Voting in Grey County, 2026-10-21. Rewritten, not yet accepted. Three sentences: more voting in Grey County, Ontario should use other systems, like ranked choice; the same place should use approval voting and not ranked choice; voting there should keep first-past-the-post. The moderator checklist stays on the board. The poll, the counting notes, and the host kit align only to the ranked-choice example. The approval count aligns only to the approval sentence. Both checklist projects align only to the checklist. The dual-count draft is deleted. No implication arrow. Not mined. +- [ ] Voting in Grey County, 2026-10-21. Rewritten as a bridge, not yet accepted. The ranked-choice natural and the approval natural do not agree to try the other system. Each modified keeps that preference for the system that is chosen, and contains the commonality: try a system other than first-past-the-post in Grey County, including one that is not the preferred one, and trying it is not adopting it. Keeping first-past-the-post stays on the commonality board as a refusal. The poll, the approval count, the counting notes, and the host kit align only to the commonality. No arrow until an attester blesses this wording. Not mined. The next board is US-friendly Canadians. Do not edit it until Adam is in that session. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json index c8d020f2..96b66ff1 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json @@ -9,7 +9,7 @@ { "userId": "user-053", "name": "Jo", "signs": ["commonality"], "funds": ["Grey County schools packet", "Grey County meeting host kit"], "notes": "The schools commonality is the accepted conditional about pushing. She funds the Grey County packet and the host kit." }, { "userId": "user-042", "name": "Nina", "signs": ["natural-left"], "funds": ["Owen Sound pushing-question meetings"], "unsigned": ["commonality"], "notes": "She keeps the left natural: support is not a push. She funds the Owen Sound meetings and has not signed the conditional." }, { "userId": "user-047", "name": "Hugh", "signs": ["natural-right"], "funds": ["Owen Sound pushing-question meetings"], "unsigned": ["commonality"], "notes": "He keeps the right natural: the push is happening and should stop. He funds the same Owen Sound meetings. This Hugh is user-047, not the Canada-US Hugh." }, - { "userId": "user-043", "name": "Wes", "signs": ["other-voting-systems", "moderator-checklist"], "rejects": ["keep-first-past-the-post"], "notes": "He wants more voting in Grey County to use other systems, such as ranked choice. Keeping first-past-the-post is the refusal. Approval voting is a different want, and he has not signed it." }, + { "userId": "user-043", "name": "Wes", "signs": ["ranked-choice-and-try", "try-other-systems", "moderator-checklist"], "rejects": ["keep-first-past-the-post"], "unsigned": ["ranked-choice", "approval-not-ranked", "approval-and-try"], "notes": "He will try a Grey County system that is not ranked choice, and trying it is not adopting it. When one system is chosen he still wants ranked choice. That modified contains the commonality. He has not signed the approval side. Keeping first-past-the-post is the refusal. No arrow is published until an attester blesses this wording." }, { "userId": "user-061", "name": "Priya", "signs": ["modified-small-chance", "commonality"], "rejects": ["pole-stop"], "unsigned": ["natural-small-chance", "pole-accelerate"], "notes": "Will not sign certain doom. The small-chance modified already contains the shared pause sentence, and that arrow is allowed." }, { "userId": "user-062", "name": "Dean", "signs": ["natural-jobs", "modified-jobs", "commonality"], "rejects": ["pole-stop"], "unsigned": ["modified-small-chance"], "notes": "Jobs, not extinction. Signing the shared sentence is not a signature of the small-chance odds." }, { "userId": "user-063", "name": "Noor", "signs": ["natural-industry"], "unsigned": ["modified-industry", "commonality", "pole-stop"], "notes": "Has the warning and has not taken the treaty. A nudge target, not an implied supporter." }, @@ -60,8 +60,11 @@ "unevaluatedAndUnpublished": [ { "from": "commonality", "to": "michigan-legislature", "why": "Agreement on a cutoff does not imply who should have the authority to write it." }, { "from": "natural-right", "to": "commonality", "why": "Designed negative for the abortion bridge. Eli keeps this side." }, - { "from": "other-voting-systems", "to": "approval-voting", "why": "Wanting other systems, with ranked choice as an example, does not imply a refusal of ranked choice. The approval sentence is a different want." }, - { "from": "other-voting-systems", "to": "keep-first-past-the-post", "why": "The two sentences are refusals of each other." } + { "from": "voting/ranked-choice", "to": "voting/try-other-systems", "why": "Wanting ranked choice does not include trying a system he does not prefer." }, + { "from": "voting/approval-not-ranked", "to": "voting/try-other-systems", "why": "Wanting approval voting and not ranked choice does not include trying a system he does not prefer." }, + { "from": "voting/try-other-systems", "to": "voting/ranked-choice-and-try", "why": "Trying another system does not name ranked choice as the system he wants chosen." }, + { "from": "voting/try-other-systems", "to": "voting/approval-and-try", "why": "Trying another system does not name approval voting or refuse ranked choice." }, + { "from": "voting/keep-first-past-the-post", "to": "voting/commonality", "why": "Keeping first-past-the-post refuses the trial." } ] } } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json index 70c7240e..cc3ec40a 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 14, "maxCauses": 14, - "minStatements": 76, - "maxStatements": 76, + "minStatements": 79, + "maxStatements": 79, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -271,12 +271,27 @@ { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "other-voting-systems" + "statementId": "ranked-choice" }, { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "approval-voting" + "statementId": "approval-not-ranked" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "ranked-choice-and-try" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "approval-and-try" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "try-other-systems" }, { "collectionId": "network-societies-v1-b2", @@ -939,7 +954,7 @@ { "userId": "user-043", "displayName": "Wes", - "bio": "Wants more voting in Grey County, Ontario to use a system other than first-past-the-post, such as ranked choice. He rejects keeping first-past-the-post.", + "bio": "Wants ranked choice when Grey County chooses one system, and will try another system without adopting it. He rejects keeping first-past-the-post.", "favoriteCauseId": "voting", "interests": [ "Grey County", @@ -1477,8 +1492,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 76, - "max": 76 + "min": 79, + "max": 79 } }, { @@ -1497,8 +1512,8 @@ "publish-statement" ], "targetCount": { - "min": 103, - "max": 103 + "min": 104, + "max": 104 } }, { @@ -1577,8 +1592,8 @@ "publish-statement" ], "targetCount": { - "min": 28, - "max": 28 + "min": 32, + "max": 32 } }, { @@ -1588,8 +1603,8 @@ "create-bridge-board" ], "targetCount": { - "min": 7, - "max": 7 + "min": 8, + "max": 8 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index 17c5f92b..613e0faa 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -318,7 +318,7 @@ "title": "Owen Sound association poll", "outcome": "Run one non-binding ranked-ballot poll at one named Owen Sound community association and publish the ballots and the ranked count. The poll does not change a municipal election.", "statementRefs": [ - "other-voting-systems" + "try-other-systems" ], "blocker": "Printing, a room, and a published count have to be paid for before anyone can inspect the result" }, @@ -326,7 +326,7 @@ "title": "Approval count of the same ballots", "outcome": "Publish an approval count of those same Owen Sound ballots beside the ranked count, with both methods named.", "statementRefs": [ - "approval-voting" + "try-other-systems" ], "blocker": "A second count is useful to people comparing methods, and the association is not paid to run it" }, @@ -334,7 +334,7 @@ "title": "Rerunnable counting notes", "outcome": "Publish the counting method in enough detail that a second person can rerun it from the published ballots and match the count.", "statementRefs": [ - "other-voting-systems" + "try-other-systems" ], "blocker": "The counter who ran the poll is a poor person to be the only one who can repeat it" }, @@ -342,7 +342,7 @@ "title": "Second-host poll kit", "outcome": "Write the room, ballot, and publication steps so a second Owen Sound resident can run the next non-binding poll.", "statementRefs": [ - "other-voting-systems" + "try-other-systems" ], "blocker": "The poll stops when the first host is busy unless the steps are written down" }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json index 3cb9b705..7cc7804f 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 14, "maxCauses": 14, - "minStatements": 76, - "maxStatements": 76, + "minStatements": 79, + "maxStatements": 79, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -271,12 +271,27 @@ { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "other-voting-systems" + "statementId": "ranked-choice" }, { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "approval-voting" + "statementId": "approval-not-ranked" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "ranked-choice-and-try" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "approval-and-try" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "try-other-systems" }, { "collectionId": "network-societies-v1-b2", @@ -924,7 +939,7 @@ { "userId": "user-043", "displayName": "Wes", - "bio": "Wants more voting in Grey County, Ontario to use a system other than first-past-the-post, such as ranked choice. He rejects keeping first-past-the-post.", + "bio": "Wants ranked choice when Grey County chooses one system, and will try another system without adopting it. He rejects keeping first-past-the-post.", "favoriteCauseId": "voting", "interests": [ "Grey County", @@ -1462,8 +1477,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 76, - "max": 76 + "min": 79, + "max": 79 } }, { @@ -1482,8 +1497,8 @@ "publish-statement" ], "targetCount": { - "min": 103, - "max": 103 + "min": 104, + "max": 104 } }, { @@ -1562,8 +1577,8 @@ "publish-statement" ], "targetCount": { - "min": 28, - "max": 28 + "min": 32, + "max": 32 } }, { @@ -1573,8 +1588,8 @@ "create-bridge-board" ], "targetCount": { - "min": 7, - "max": 7 + "min": 8, + "max": 8 } } ], diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 98997bd2..3d39d546 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -162,16 +162,33 @@ "id": "voting", "title": "Voting in Grey County", "notes": [ - "A want that more voting in Grey County use something other than first-past-the-post, an approval-voting want that refuses ranked choice, and a refusal that keeps first-past-the-post. No bridge roles. The dual-count draft was the old poll wording and is deleted." + "Bridge. Each natural names one system and does not agree to try another. Each modified keeps that preference for the system that is chosen, and contains the commonality. The commonality is trying a system other than first-past-the-post in Grey County even when it is not the preferred one, and trying it is not adopting it. No attester pass yet, so no arrow is published. keep-first-past-the-post is a refusal on the commonality board." ], "statements": [ { - "id": "other-voting-systems", - "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to be done using other voting systems, like ranked choice." + "id": "ranked-choice", + "role": "natural-left", + "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use ranked choice." + }, + { + "id": "approval-not-ranked", + "role": "natural-right", + "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use approval voting, and not ranked choice." }, { - "id": "approval-voting", - "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to be done using approval voting, and not ranked choice." + "id": "ranked-choice-and-try", + "role": "modified-left", + "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use ranked choice when one system is chosen. I want more voting in Grey County, Ontario to try systems other than first-past-the-post, including a system that is not the one I prefer. Trying one is not a decision to adopt it." + }, + { + "id": "approval-and-try", + "role": "modified-right", + "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use approval voting, and not ranked choice, when one system is chosen. I want more voting in Grey County, Ontario to try systems other than first-past-the-post, including a system that is not the one I prefer. Trying one is not a decision to adopt it." + }, + { + "id": "try-other-systems", + "role": "commonality", + "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to try systems other than first-past-the-post, including a system that is not the one I prefer. Trying one is not a decision to adopt it." }, { "id": "keep-first-past-the-post", diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index 5df6213d..77a6f890 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -19,8 +19,8 @@ "scale": { "minCauses": 14, "maxCauses": 14, - "minStatements": 76, - "maxStatements": 76, + "minStatements": 79, + "maxStatements": 79, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -271,12 +271,27 @@ { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "other-voting-systems" + "statementId": "ranked-choice" }, { "collectionId": "network-societies-v1-b2", "groupId": "voting", - "statementId": "approval-voting" + "statementId": "approval-not-ranked" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "ranked-choice-and-try" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "approval-and-try" + }, + { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "try-other-systems" }, { "collectionId": "network-societies-v1-b2", @@ -924,7 +939,7 @@ { "userId": "user-043", "displayName": "Wes", - "bio": "Wants more voting in Grey County, Ontario to use a system other than first-past-the-post, such as ranked choice. He rejects keeping first-past-the-post.", + "bio": "Wants ranked choice when Grey County chooses one system, and will try another system without adopting it. He rejects keeping first-past-the-post.", "favoriteCauseId": "voting", "interests": [ "Grey County", @@ -1462,8 +1477,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 76, - "max": 76 + "min": 79, + "max": 79 } }, { @@ -1482,8 +1497,8 @@ "publish-statement" ], "targetCount": { - "min": 103, - "max": 103 + "min": 104, + "max": 104 } }, { @@ -1562,8 +1577,8 @@ "publish-statement" ], "targetCount": { - "min": 28, - "max": 28 + "min": 32, + "max": 32 } }, { @@ -1573,8 +1588,8 @@ "create-bridge-board" ], "targetCount": { - "min": 7, - "max": 7 + "min": 8, + "max": 8 } } ], diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 236045a0..6c0dbdf2 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -6,7 +6,7 @@ Keeps the four pilot families (Owen Sound checkout, Grey County civic life, Chri - Abortion settlement, using the accepted `compromise-abortion` wording unchanged, plus a separate Michigan authority board. - Schools and pushing, using the accepted `lgbt-schools` wording unchanged. Grey County work is three projects on that board: Owen Sound meetings, a Grey County packet, and a host kit. There is no separate conduct board. -- Voting in Grey County. Three sentences: other systems such as ranked choice, approval voting instead of ranked choice, and keeping first-past-the-post. The Owen Sound poll stays a project. The dual-count draft is deleted. +- Voting in Grey County, as a bridge. Ranked choice and approval voting are the two naturals. The commonality is trying a system other than first-past-the-post in Grey County even when it is not the preferred one. Trying it is not adopting it. Keeping first-past-the-post is a refusal on that board. No arrow is published until an attester blesses this wording. The other families in the brainstorming plan are not in this manifest, except an AI-pause board and the Canada–US family past its five-statement draft. The AI-pause board is plain: every sentence stays visible. Five milder modified sentences contain one shared pause-treaty sentence and each keeps a reason the shared sentence leaves out. Naturals do not name the treaty. Hal wants a full stop and rejects the pause. Vic rejects the pause because other labs will not stop. Five modified-to-commonality arrows are allowed. Naturals, poles, and reverse arrows are not. @@ -14,7 +14,7 @@ Canada–US stays a bridge. The shared sentence is still ordinary purchases and ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 76 statements and 61 projects. The Grey County conduct sentences were removed on 2026-10-21. The Owen Sound dual-count draft was deleted the same day, when the voting board was rewritten. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 79 statements and 61 projects. The Grey County conduct sentences were removed on 2026-10-21. The Owen Sound dual-count draft was deleted the same day, when the voting board was rewritten. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board is an ordinary board, so its own sentences stay visible there. Schools has no second board. diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 1a9d87da..fa54fbc8 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -273,7 +273,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one } const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); - assert.equal(plan.statements.length, 76); + assert.equal(plan.statements.length, 79); assert.equal(plan.projects.length, 61); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); @@ -323,7 +323,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one const forum = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === 'abortion-forum')!.board!; assert.equal(forum.role, 'plain'); assert.ok(forum.statementIds.includes(michigan.id)); - for (const causeId of ['grey-assimilation', 'checkout-trial-bridge']) { + for (const causeId of ['grey-assimilation', 'checkout-trial-bridge', 'voting']) { const board = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === causeId)!.board!; assert.equal(board.role, 'commonality'); assert.equal(implications.filter((action) => action.causeId === causeId).length, 0, causeId); @@ -365,7 +365,7 @@ test('batch 2 pins persona belief choices and never has Eli believe the settleme }; const plan = await buildCampaignPlan(manifest); const beliefs = plan.actions.filter((action) => action.type === 'set-belief'); - assert.equal(beliefs.length, 103); + assert.equal(beliefs.length, 104); const byStatementId = (sourceId: string, userId: string) => beliefs.filter((action) => { const statement = plan.statements.find((item) => item.id === action.statementId); return action.actorUserId === userId && statement?.source.statementId === sourceId; From d69e1d320e64c940616072bac4a9cbff7c476865 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 12:40:34 -0400 Subject: [PATCH 36/46] Use Adam's Grey County voting sentences for the two camps and the common ground. Each modified names its preferred system and still contains the shared sentence. --- .../brainstorming/network-societies-campaign-plan.md | 2 +- .../campaigns/network-societies-v1-b2-decisions.json | 8 ++++---- .../network-societies-v1-b2-statements.json | 12 ++++++------ .../campaigns/network-societies-v1-b2.md | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index a735c8ce..65cfd90e 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -338,6 +338,6 @@ Boards that still have live arrows, and have not had this wording review: minors - [x] Schools and pushing, 2026-10-21. Good enough for now. The accepted five stay as written. Grand Rapids keeps its three projects. Grey County adds the Owen Sound meetings, the schools packet, and the meeting host kit, aligned only to those five. The conduct sentences are deleted. Not mined. -- [ ] Voting in Grey County, 2026-10-21. Rewritten as a bridge, not yet accepted. The ranked-choice natural and the approval natural do not agree to try the other system. Each modified keeps that preference for the system that is chosen, and contains the commonality: try a system other than first-past-the-post in Grey County, including one that is not the preferred one, and trying it is not adopting it. Keeping first-past-the-post stays on the commonality board as a refusal. The poll, the approval count, the counting notes, and the host kit align only to the commonality. No arrow until an attester blesses this wording. Not mined. +- [ ] Voting in Grey County, 2026-10-21. Rewritten as a bridge, not yet accepted. Each natural wants some other system in Grey County, preferably ranked choice or preferably approval voting, and does not welcome an experiment with a less-preferred system. Each modified names that preference and contains the commonality: switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. Keeping first-past-the-post stays on the commonality board as a refusal. The poll, the approval count, the counting notes, and the host kit align only to the commonality. No arrow until an attester blesses this wording. Not mined. The next board is US-friendly Canadians. Do not edit it until Adam is in that session. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json index 96b66ff1..c7b43160 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json @@ -60,10 +60,10 @@ "unevaluatedAndUnpublished": [ { "from": "commonality", "to": "michigan-legislature", "why": "Agreement on a cutoff does not imply who should have the authority to write it." }, { "from": "natural-right", "to": "commonality", "why": "Designed negative for the abortion bridge. Eli keeps this side." }, - { "from": "voting/ranked-choice", "to": "voting/try-other-systems", "why": "Wanting ranked choice does not include trying a system he does not prefer." }, - { "from": "voting/approval-not-ranked", "to": "voting/try-other-systems", "why": "Wanting approval voting and not ranked choice does not include trying a system he does not prefer." }, - { "from": "voting/try-other-systems", "to": "voting/ranked-choice-and-try", "why": "Trying another system does not name ranked choice as the system he wants chosen." }, - { "from": "voting/try-other-systems", "to": "voting/approval-and-try", "why": "Trying another system does not name approval voting or refuse ranked choice." }, + { "from": "voting/ranked-choice", "to": "voting/try-other-systems", "why": "Preferring ranked choice does not say an experiment with a less-preferred system is welcome." }, + { "from": "voting/approval-not-ranked", "to": "voting/try-other-systems", "why": "Preferring approval voting does not say an experiment with a less-preferred system is welcome." }, + { "from": "voting/try-other-systems", "to": "voting/ranked-choice-and-try", "why": "Saying the preference is unnamed does not name ranked choice." }, + { "from": "voting/try-other-systems", "to": "voting/approval-and-try", "why": "Saying the preference is unnamed does not name approval voting." }, { "from": "voting/keep-first-past-the-post", "to": "voting/commonality", "why": "Keeping first-past-the-post refuses the trial." } ] } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 3d39d546..95ec3664 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -162,33 +162,33 @@ "id": "voting", "title": "Voting in Grey County", "notes": [ - "Bridge. Each natural names one system and does not agree to try another. Each modified keeps that preference for the system that is chosen, and contains the commonality. The commonality is trying a system other than first-past-the-post in Grey County even when it is not the preferred one, and trying it is not adopting it. No attester pass yet, so no arrow is published. keep-first-past-the-post is a refusal on the commonality board." + "Bridge. Each natural prefers one system and does not say an experiment with another system is welcome. Each modified names that preference and contains the commonality. The commonality says switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. No attester pass yet, so no arrow is published. keep-first-past-the-post is a refusal on the commonality board." ], "statements": [ { "id": "ranked-choice", "role": "natural-left", - "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use ranked choice." + "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use some other voting system, preferably ranked choice." }, { "id": "approval-not-ranked", "role": "natural-right", - "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use approval voting, and not ranked choice." + "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use some other voting system, preferably approval voting." }, { "id": "ranked-choice-and-try", "role": "modified-left", - "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use ranked choice when one system is chosen. I want more voting in Grey County, Ontario to try systems other than first-past-the-post, including a system that is not the one I prefer. Trying one is not a decision to adopt it." + "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use some other voting system, preferably ranked choice. I have some preferences about which one, but FPTP is particularly awful, so switching away from it is more important to me than which particular other system we use; I'd be happy to see experiments with some other voting system, even if it's not the one I most prefer." }, { "id": "approval-and-try", "role": "modified-right", - "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use approval voting, and not ranked choice, when one system is chosen. I want more voting in Grey County, Ontario to try systems other than first-past-the-post, including a system that is not the one I prefer. Trying one is not a decision to adopt it." + "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use some other voting system, preferably approval voting. I have some preferences about which one, but FPTP is particularly awful, so switching away from it is more important to me than which particular other system we use; I'd be happy to see experiments with some other voting system, even if it's not the one I most prefer." }, { "id": "try-other-systems", "role": "commonality", - "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to try systems other than first-past-the-post, including a system that is not the one I prefer. Trying one is not a decision to adopt it." + "text": "First-past-the-post is an awful voting system. I want more voting in Grey County, Ontario to use some other voting system; I have some preferences about which one, but FPTP is particularly awful, so switching away from it is more important to me than which particular other system we use; I'd be happy to see experiments with some other voting system, even if it's not the one I most prefer." }, { "id": "keep-first-past-the-post", diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 6c0dbdf2..84b252bc 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -6,7 +6,7 @@ Keeps the four pilot families (Owen Sound checkout, Grey County civic life, Chri - Abortion settlement, using the accepted `compromise-abortion` wording unchanged, plus a separate Michigan authority board. - Schools and pushing, using the accepted `lgbt-schools` wording unchanged. Grey County work is three projects on that board: Owen Sound meetings, a Grey County packet, and a host kit. There is no separate conduct board. -- Voting in Grey County, as a bridge. Ranked choice and approval voting are the two naturals. The commonality is trying a system other than first-past-the-post in Grey County even when it is not the preferred one. Trying it is not adopting it. Keeping first-past-the-post is a refusal on that board. No arrow is published until an attester blesses this wording. +- Voting in Grey County, as a bridge. One natural prefers ranked choice and the other prefers approval voting. The commonality is that switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. Keeping first-past-the-post is a refusal on that board. No arrow is published until an attester blesses this wording. The other families in the brainstorming plan are not in this manifest, except an AI-pause board and the Canada–US family past its five-statement draft. The AI-pause board is plain: every sentence stays visible. Five milder modified sentences contain one shared pause-treaty sentence and each keeps a reason the shared sentence leaves out. Naturals do not name the treaty. Hal wants a full stop and rejects the pause. Vic rejects the pause because other labs will not stop. Five modified-to-commonality arrows are allowed. Naturals, poles, and reverse arrows are not. From 5c43329b6474be51436b981f10eaf2c75132119d Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 13:13:35 -0400 Subject: [PATCH 37/46] Mark the Grey County voting board good enough for now. --- .../brainstorming/network-societies-campaign-plan.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 65cfd90e..b99cd0b3 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -54,7 +54,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | Home learning | 3 | 5 | Good enough for now (2026-10-21). Materials wants are not local. The staffed-schools sentence is. | | Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Good enough for now (2026-10-21). Wording unchanged. Eli refuses the settlement. | | Schools and pushing | the accepted five only | 3 in Grand Rapids, 3 in Grey County | Good enough for now (2026-10-21). Conduct sentences deleted. Grey County projects not mined. | -| Voting in Grey County | 6, plus the shared moderator checklist | 6 | Bridge rewritten 2026-10-21. Not yet called good enough. No arrow yet. | +| Voting in Grey County | 6, plus the shared moderator checklist | 6 | Good enough for now (2026-10-21). Bridge. No arrow yet. | | US-friendly Canadians | 12 | 7 | Meets it. Boycott and narrower-ties sentences are refused as arrows. | | AI pause | 17 | 5 | Meets it. Five modified-to-commonality arrows are allowed. | | Low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation | none | none | Deferred. | @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), and schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects) are good enough for now. The voting board was rewritten on 2026-10-21 and is waiting on Adam. The next board after he accepts or changes it is US-friendly Canadians. Do not edit that board's statement or project text until he is in that session. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects), and the Grey County voting bridge are good enough for now. The next board is US-friendly Canadians. Do not edit that board's statement or project text until he is in that session. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -338,6 +338,6 @@ Boards that still have live arrows, and have not had this wording review: minors - [x] Schools and pushing, 2026-10-21. Good enough for now. The accepted five stay as written. Grand Rapids keeps its three projects. Grey County adds the Owen Sound meetings, the schools packet, and the meeting host kit, aligned only to those five. The conduct sentences are deleted. Not mined. -- [ ] Voting in Grey County, 2026-10-21. Rewritten as a bridge, not yet accepted. Each natural wants some other system in Grey County, preferably ranked choice or preferably approval voting, and does not welcome an experiment with a less-preferred system. Each modified names that preference and contains the commonality: switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. Keeping first-past-the-post stays on the commonality board as a refusal. The poll, the approval count, the counting notes, and the host kit align only to the commonality. No arrow until an attester blesses this wording. Not mined. +- [x] Voting in Grey County, 2026-10-21. Good enough for now. Each natural wants some other system in Grey County, preferably ranked choice or preferably approval voting. Each modified names that preference and contains the commonality: switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. Keeping first-past-the-post stays on the commonality board as a refusal. The poll, the approval count, the counting notes, and the host kit align only to the commonality. No arrow until an attester blesses this wording. Not mined. The next board is US-friendly Canadians. Do not edit it until Adam is in that session. \ No newline at end of file From f159ac1989d1826e3916edea251c8053265bd678 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 14:28:41 -0400 Subject: [PATCH 38/46] Replace the Canada-US catalogue projects with shop-here asks. The boycott and narrower sentences drop the lines about refusing to sign. Signer counts stay on Tally. Five projects ask nearby people to shop at Grey County stores that kept ordinary US suppliers. The stored attester refusals stay as evidence for the longer wording only. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 6 +-- .../network-societies-v1-b2-decisions.json | 8 ++-- ...cieties-v1-b2-implication-evaluations.json | 3 +- .../network-societies-v1-b2-note-spend.json | 8 ++-- .../network-societies-v1-b2-projects.json | 48 ++++++------------- .../network-societies-v1-b2-reimburse.json | 8 ++-- .../network-societies-v1-b2-statements.json | 6 +-- .../campaigns/network-societies-v1-b2.json | 8 ++-- .../campaigns/network-societies-v1-b2.md | 4 +- .../test/campaignPlanner.test.ts | 4 +- 11 files changed, 44 insertions(+), 61 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 9179b99f..fe82a3db 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge, is 72 users, 79 statements, and 61 projects. Fifteen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge, is 72 users, 79 statements, and 59 projects. Fifteen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index b99cd0b3..67528f03 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -55,7 +55,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Good enough for now (2026-10-21). Wording unchanged. Eli refuses the settlement. | | Schools and pushing | the accepted five only | 3 in Grand Rapids, 3 in Grey County | Good enough for now (2026-10-21). Conduct sentences deleted. Grey County projects not mined. | | Voting in Grey County | 6, plus the shared moderator checklist | 6 | Good enough for now (2026-10-21). Bridge. No arrow yet. | -| US-friendly Canadians | 12 | 7 | Meets it. Boycott and narrower-ties sentences are refused as arrows. | +| US-friendly Canadians | 7 | 5 | In review (2026-10-21). Boycott and narrower sentences dropped the "I will not sign" clauses. Projects are shop-here asks, not a visit catalogue. Old attester refusals are for the longer wording. | | AI pause | 17 | 5 | Meets it. Five modified-to-commonality arrows are allowed. | | Low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation | none | none | Deferred. | @@ -127,7 +127,7 @@ These are project briefs and constituency suggestions, not finished statement wo | Unwoke | Open due-process policy templates; viewpoint-neutral selection-rubric pilot; audit of a fictional institution's complaint process | Editorial front door covering selected planks; independent review digest | Overlap with cancellation/gender causes, but users can support one plank and reject another. Include a liberal due-process supporter who refuses the umbrella label | | Democracy 2.0 | Open civic issue explorer; non-binding participatory allocation experiment; independent evaluation of the experiment | Local facilitator network; public methods/history archive | Voting reformers, decentralists, civic technologists; skeptics of online participation. Do not claim a binding election or verified population census | | AI safety before capabilities races | Open evaluation tooling; independent replication of a safety result; public comparison of hypothetical verification mechanisms | Research digest; workshop and contributor onboarding kit | Safety researchers, cautious technologists, concerned citizens; accelerationists and people who dispute proposed restrictions. No invented technical success claims | -| US-friendly Canadians | Shared cross-border cultural archive; public guide to maintaining civic/business ties; joint community event with reusable materials | Maintained exchange directory; local host succession | Conservatives, apolitical families, businesspeople, anti-Trump internationalists; people who favor a boycott or narrower ties | +| US-friendly Canadians | Shop-here notes for an Owen Sound grocer and a Meaford hardware store that kept US suppliers; one Saturday at the grocer | A one-year Grey County list of those asks, and a monthly check by someone who did not write the list. Signer counts stay on Tally | Conservatives, apolitical families, businesspeople, anti-Trump internationalists; people who favor a boycott or visits without a purchase call | | Christianity | Open teaching materials; accessibility/transcription of shared resources; regional substitute-preacher coordination pilot | Independently checked resource directory; inter-church organizer/host kit | Different denominations, secular collaborators on specific civic work, nonparticipants; doctrinal agreement is not inferred from shared project funding | | Islamic reform | Open discussion/study materials by fictional reform-minded authors; moderated interpretation forum with published materials; reusable civic-coexistence workshop | Maintained resource library; facilitator training | Reform-minded Muslims, secular civil-liberties allies, traditionalist dissenters; specify actual propositions rather than treating Muslims as one position | | Less regulation | Open dataset of burdens in one fictional permitting process; reproducible comparison of alternative procedures; small-business application guide | Maintained reform-project tracker; independent methodology review | Entrepreneurs, libertarians, frustrated residents; safety-minded reformers and defenders of particular rules. An experimental medical zone remains a hypothetical policy proposal | @@ -340,4 +340,4 @@ Boards that still have live arrows, and have not had this wording review: minors - [x] Voting in Grey County, 2026-10-21. Good enough for now. Each natural wants some other system in Grey County, preferably ranked choice or preferably approval voting. Each modified names that preference and contains the commonality: switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. Keeping first-past-the-post stays on the commonality board as a refusal. The poll, the approval count, the counting notes, and the host kit align only to the commonality. No arrow until an attester blesses this wording. Not mined. -The next board is US-friendly Canadians. Do not edit it until Adam is in that session. \ No newline at end of file +- [ ] US-friendly Canadians, drafted 2026-10-21. Not checked. Boycott and narrower sentences no longer say they will not sign. Projects are five shop-here asks aligned only to the commonality. Signer counts stay on Tally. The two modified-to-commonality arrows were not re-evaluated, because those sentences did not change. The boycott and narrower refusals in the evaluations file are for the longer wording. Do not mine another copy. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json index c7b43160..8b3fec9d 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json @@ -1,5 +1,5 @@ { - "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Fifteen modified-to-commonality arrows are allowed. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. The four abortion and schools arrows keep accepted-bridge-role-pair. The Grey County assimilation bridge and the checkout-trial bridge dropped their arrows when the wording changed on 2026-10-20. The remaining eight draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US archive, guide, evening, directory, and host handoff are projects under the shared sentence, not extra sentences. Greta's boycott and Hugh's narrower sentence are not arrows. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", + "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Fifteen modified-to-commonality arrows are allowed. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. The four abortion and schools arrows keep accepted-bridge-role-pair. The Grey County assimilation bridge and the checkout-trial bridge dropped their arrows when the wording changed on 2026-10-20. The remaining eight draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US projects are shop-here asks for Grey County businesses that kept ordinary US suppliers. Signer counts stay on Tally. Greta's boycott and Neil's narrower sentence are not arrows. On 2026-10-21 those two sentences dropped the clauses about refusing to sign. The stored attester refusal is for the longer wording. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", "people": [ { "userId": "user-003", "name": "Imani", "signs": ["bank-blocking", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "funds": ["Six-shop refundable checkout trial", "Independent checkout security review", "Fee and failure table", "Owen Sound merchant directory", "Quarterly checkout clinic and host kit", "Blocked-customer sale record"], "notes": "The bank-blocking sentence is why she funds the checkout projects. Those projects stay aligned to the refundable-checkout sentence. Signing the checkout want is not a signature that shops must take crypto from everyone." }, { "userId": "user-016", "name": "June", "signs": ["bank-blocking", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "funds": ["Six-shop refundable checkout trial", "Independent checkout security review", "Fee and failure table", "Owen Sound merchant directory", "Quarterly checkout clinic and host kit", "Blocked-customer sale record"], "notes": "Same funding as Imani. The blocked-customer record is the project aligned to bank-blocking. The other five are the earlier checkout steps." }, @@ -53,9 +53,9 @@ { "from": "ai-pause/pole-accelerate", "to": "ai-pause/commonality", "why": "2026-10-16 deepseek-v3.2 refused, high. Vic rejects the pause." }, { "from": "ai-pause/commonality", "to": "ai-pause/modified-small-chance", "why": "2026-10-16 deepseek-v3.2 refused, high. The shared sentence does not include the odds or the refusal to say extinction is certain." }, { "from": "ai-pause/commonality", "to": "ai-pause/modified-jobs", "why": "2026-10-16 deepseek-v3.2 refused, high. The shared sentence does not include the jobs priority." }, - { "from": "canada-us-ties/boycott-ordinary-ties", "to": "canada-us-ties/commonality", "why": "2026-10-16 deepseek-v3.2 refused, high, first wording. Greta's boycott is the negation of the shared sentence." }, - { "from": "canada-us-ties/narrower-than-visits", "to": "canada-us-ties/commonality", "why": "2026-10-16 deepseek-v3.2 refused, high, first wording. Neil keeps family visits and rejects the purchase call." }, - { "from": "canada-us-ties/commonality", "to": "canada-us-ties/boycott-ordinary-ties", "why": "2026-10-16 deepseek-v3.2 refused, high, first wording. The shared sentence does not contain a boycott." } + { "from": "canada-us-ties/boycott-ordinary-ties", "to": "canada-us-ties/commonality", "why": "2026-10-16 deepseek-v3.2 refused, high, first wording. Greta's boycott is the negation of the shared sentence. The 2026-10-21 cut removed the clause about not signing. This row is evidence for the longer sentence only." }, + { "from": "canada-us-ties/narrower-than-visits", "to": "canada-us-ties/commonality", "why": "2026-10-16 deepseek-v3.2 refused, high, first wording. Neil keeps family visits and rejects the purchase call. The 2026-10-21 cut removed the clause about not signing. This row is evidence for the longer sentence only." }, + { "from": "canada-us-ties/commonality", "to": "canada-us-ties/boycott-ordinary-ties", "why": "2026-10-16 deepseek-v3.2 refused, high, first wording. The shared sentence does not contain a boycott. The 2026-10-21 cut removed the clause about not signing. This row is evidence for the longer sentence only." } ], "unevaluatedAndUnpublished": [ { "from": "commonality", "to": "michigan-legislature", "why": "Agreement on a cutoff does not imply who should have the authority to write it." }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-implication-evaluations.json b/fake-data-generation/campaigns/network-societies-v1-b2-implication-evaluations.json index 6bc2ae66..0055f11a 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-implication-evaluations.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-implication-evaluations.json @@ -1405,5 +1405,6 @@ } ], "aiPauseEvaluatedAt": "2026-10-16T21:52:11.796Z", - "canadaUsEvaluatedAt": "2026-10-16T22:30:00.000Z" + "canadaUsEvaluatedAt": "2026-10-16T22:30:00.000Z", + "canadaUsWordingNote": "2026-10-21: boycott-ordinary-ties and narrower-than-visits dropped the clauses about refusing to sign. The fromHash and toHash values on those three rows are the longer wording. Do not treat the rows as evidence for the shorter sentences." } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json index cc3ec40a..552a6292 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -1532,8 +1532,8 @@ "create-cause" ], "targetCount": { - "min": 61, - "max": 61 + "min": 59, + "max": 59 } }, { @@ -1543,8 +1543,8 @@ "publish-statement" ], "targetCount": { - "min": 61, - "max": 61 + "min": 59, + "max": 59 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index 613e0faa..e664bf38 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -441,62 +441,44 @@ ], "canada-us-ties": [ { - "title": "Ordinary-ties one-pager", - "outcome": "Publish the commonality sentence for one Canadian community group, labeled as a draft statement rather than as a finding about trade.", + "title": "Owen Sound grocer shop-here note", + "outcome": "For one season, publish a note for one fictional Owen Sound grocery that kept its US suppliers. The note is the store's ask: if you live nearby, shop here. It names the store, the street, and which suppliers they kept. It says the store reports that some customers stopped coming because of that. It does not state a dollar loss.", "statementRefs": [ "commonality" ], - "blocker": "The page is a shared wording, and neither camp's organizer is paid to keep the other camp's wording intact" + "blocker": "People who would shop there do not hear the ask unless someone writes it down where they already look" }, { - "title": "Not-an-endorsement card", - "outcome": "Print both modified sentences beside the commonality so a reader can see the administration question was left out on purpose.", - "statementRefs": [ - "modified-left", - "modified-right", - "commonality" - ], - "blocker": "Without both wordings, one camp hears the page as praise and the other hears it as a boycott refusal they did not sign" - }, - { - "title": "Owen Sound cross-border archive", - "outcome": "Publish one year of dated Owen Sound stories about family visits and ordinary purchases across the Canada-US border, with a name only when the contributor asked for one.", - "statementRefs": [ - "commonality" - ], - "blocker": "The stories are scattered across families, and no one family is paid to keep a public copy" - }, - { - "title": "Civic and business ties guide", - "outcome": "Publish a guide for Owen Sound that lists practical steps for a family visit to the US and for buying from a US business, and that names no party and no administration.", + "title": "Meaford hardware shop-here note", + "outcome": "For one season, publish the same kind of note for one fictional Meaford hardware store that still orders ordinary US parts and tools. The note is the store's ask to people who live nearby. It names the store, the street, and what they kept ordering. It does not state a dollar loss.", "statementRefs": [ "commonality" ], - "blocker": "The steps are useful to the next traveler and written down by none of them" + "blocker": "A second store's ask dies in a group chat if nobody publishes it the same way" }, { - "title": "Owen Sound ties evening", - "outcome": "Hold one Owen Sound evening with a published agenda and a packet later hosts can copy. The evening is for talking about family visits and ordinary purchases. It does not ask anyone to praise or condemn the current US administration.", + "title": "One Saturday at the Owen Sound grocer", + "outcome": "Pick one Saturday when people who want those US goods still on the shelf shop at that Owen Sound grocery, and publish the store's count of how many came. No names unless someone asked to be named.", "statementRefs": [ "commonality" ], - "blocker": "A one-night conversation leaves no materials unless someone is paid to write them down" + "blocker": "A note does not become a trip unless someone picks the day and tells people" }, { - "title": "Grey County exchange directory", - "outcome": "Keep, for one year, a monthly-checked directory of Grey County hosts for conversations about Canada-US family visits and ordinary purchases. Each listing has a name, a town, and a way to see that it is still current.", + "title": "Grey County shop-here list", + "outcome": "For one year, keep a list of Grey County businesses that kept ordinary US suppliers and are asking nearby people to shop there. Each row has a name, a town, what they kept, and the date it was last confirmed.", "statementRefs": [ "commonality" ], - "blocker": "A host list that nobody checks becomes a list of people who moved" + "blocker": "The asks are useless to the next town if each one lives only on the store's door" }, { - "title": "Host handoff card", - "outcome": "Write the steps a second person in Owen Sound needs in order to host the next conversation about Canada-US family visits without the first host.", + "title": "Shop-here list check", + "outcome": "Once a month for that same year, someone who did not write the listings confirms each row with the business and removes a row the business no longer wants.", "statementRefs": [ "commonality" ], - "blocker": "The conversation stops when the first host is busy unless the hosting steps are written down" + "blocker": "A list the writer also checks becomes an advertisement" } ], "ai-pause": [ diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json index 7cc7804f..b5fde144 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -1517,8 +1517,8 @@ "create-cause" ], "targetCount": { - "min": 61, - "max": 61 + "min": 59, + "max": 59 } }, { @@ -1528,8 +1528,8 @@ "publish-statement" ], "targetCount": { - "min": 61, - "max": 61 + "min": 59, + "max": 59 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 95ec3664..a938d664 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -337,7 +337,7 @@ "title": "Ordinary Canada-US ties", "notes": [ "Bridge on one want: ordinary purchases and family visits, with the administration question left out. The two modified-to-commonality arrows stay. This is not a second compromise on that same want.", - "The archive, the guide, the Owen Sound evening, the directory, and the host handoff are separate planks. A boycott and narrower-than-both are incompatible positions. Neither is an implication of the commonality, and neither is published as an arrow. Not accepted seed." + "Knowing that other people agree is the signer count on Tally, not a project. The projects are shop-here asks for Grey County businesses that kept ordinary US suppliers and then lost customers over that. A boycott and visits-without-the-purchase-call are incompatible positions. Neither is an implication of the commonality, and neither is published as an arrow. The 2026-10-16 attester refusal is for the longer wording of those two sentences. Not accepted seed." ], "statements": [ { @@ -367,11 +367,11 @@ }, { "id": "boycott-ordinary-ties", - "text": "I want ordinary Canadians to stop buying from US businesses and to stop family visits to the US while the current administration is in office. I will not sign a call for them to keep doing either of those things." + "text": "I want ordinary Canadians to stop buying from US businesses and to stop family visits to the US while the current administration is in office." }, { "id": "narrower-than-visits", - "text": "I want Canadians to keep visiting family in the US. I do not want ordinary Canadians told to keep buying from US businesses. A sentence that asks for both of those is more than I will sign." + "text": "I want Canadians to keep visiting family in the US. I do not want ordinary Canadians told to keep buying from US businesses." } ] }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index 77a6f890..6169ab49 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -1517,8 +1517,8 @@ "create-cause" ], "targetCount": { - "min": 61, - "max": 61 + "min": 59, + "max": 59 } }, { @@ -1528,8 +1528,8 @@ "publish-statement" ], "targetCount": { - "min": 61, - "max": 61 + "min": 59, + "max": 59 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 84b252bc..2ea89261 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -10,11 +10,11 @@ Keeps the four pilot families (Owen Sound checkout, Grey County civic life, Chri The other families in the brainstorming plan are not in this manifest, except an AI-pause board and the Canada–US family past its five-statement draft. The AI-pause board is plain: every sentence stays visible. Five milder modified sentences contain one shared pause-treaty sentence and each keeps a reason the shared sentence leaves out. Naturals do not name the treaty. Hal wants a full stop and rejects the pause. Vic rejects the pause because other labs will not stop. Five modified-to-commonality arrows are allowed. Naturals, poles, and reverse arrows are not. -Canada–US stays a bridge. The shared sentence is still ordinary purchases and family visits, with the administration question left out. The archive, the Owen Sound guide, the evening, the Grey County directory, and the host handoff are separate planks on that same commonality board. Greta wants a boycott and rejects the shared sentence. Neil wants family visits without a general call to keep buying from US businesses, and he rejects the sentence that asks for both. Those two pairs were refused by the attester and are not arrows. Fern signs the five work planks and leaves the shared sentence unsigned. Adele signs the anti-Trump natural and the guide, and has not signed the shared sentence. +Canada–US stays a bridge. The shared sentence is still ordinary purchases and family visits, with the administration question left out. Knowing you are not alone is the signer count, not a project. The projects are shop-here asks for Grey County stores that kept ordinary US suppliers and then lost customers over that: an Owen Sound grocer, a Meaford hardware store, one Saturday at the grocer, a one-year list, and a monthly check by someone who did not write the list. Greta wants a boycott and rejects the shared sentence. Neil wants family visits and does not want a call to keep buying from US businesses. Those two pairs were refused by the attester on the longer wording and are not arrows. Fern funds the projects and leaves the shared sentence unsigned. Adele signs the anti-Trump natural and has not signed the shared sentence. ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 79 statements and 61 projects. The Grey County conduct sentences were removed on 2026-10-21. The Owen Sound dual-count draft was deleted the same day, when the voting board was rewritten. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 79 statements and 59 projects. On 2026-10-21 the Canada–US catalogue projects were replaced with five shop-here asks. The Grey County conduct sentences were removed on 2026-10-21. The Owen Sound dual-count draft was deleted the same day, when the voting board was rewritten. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board is an ordinary board, so its own sentences stay visible there. Schools has no second board. diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index fa54fbc8..838b2c16 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -274,7 +274,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); assert.equal(plan.statements.length, 79); - assert.equal(plan.projects.length, 61); + assert.equal(plan.projects.length, 59); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); assert.ok(checklist); @@ -343,7 +343,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one const canadaBoard = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === 'canada-us-ties')!.board!; const canadaIds = canadaBoard.statementIds.map((id) => plan.statements.find((statement) => statement.id === id)!.source.statementId); assert.deepEqual(canadaIds, ['commonality', 'boycott-ordinary-ties', 'narrower-than-visits']); - assert.equal(plan.projects.filter((project) => project.causeId === 'canada-us-ties').length, 7); + assert.equal(plan.projects.filter((project) => project.causeId === 'canada-us-ties').length, 5); const boycott = plan.statements.find((statement) => statement.source.groupId === 'canada-us-ties' && statement.source.statementId === 'boycott-ordinary-ties')!; const narrower = plan.statements.find((statement) => statement.source.groupId === 'canada-us-ties' && statement.source.statementId === 'narrower-than-visits')!; const canadaCommonality = plan.statements.find((statement) => statement.source.groupId === 'canada-us-ties' && statement.source.statementId === 'commonality')!; From 969c9790eaeda5c01cb30f9508359cc6db1884a0 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 14:37:30 -0400 Subject: [PATCH 39/46] Mark the US-friendly Canadians board good enough for now. Drop the Saturday shop-in. The narrower sentence only names family visits and does not reject purchases. Four shop-here asks remain. The stored attester refusals stay evidence for the longer wording only. --- fake-data-generation/PLAN.md | 2 +- .../brainstorming/network-societies-campaign-plan.md | 12 +++++++----- .../campaigns/network-societies-v1-b2-decisions.json | 4 ++-- ...work-societies-v1-b2-implication-evaluations.json | 2 +- .../network-societies-v1-b2-note-spend.json | 8 ++++---- .../campaigns/network-societies-v1-b2-projects.json | 8 -------- .../campaigns/network-societies-v1-b2-reimburse.json | 8 ++++---- .../network-societies-v1-b2-statements.json | 4 ++-- .../campaigns/network-societies-v1-b2.json | 8 ++++---- .../campaigns/network-societies-v1-b2.md | 4 ++-- fake-data-generation/test/campaignPlanner.test.ts | 4 ++-- 11 files changed, 29 insertions(+), 35 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index fe82a3db..159c3be6 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge, is 72 users, 79 statements, and 59 projects. Fifteen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. The nine families meet the plank and project minimum. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge, is 72 users, 79 statements, and 58 projects. Fifteen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. Reviewed boards are good enough for now. Canada–US has four shop-here projects. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 67528f03..19e35a9e 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -55,7 +55,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | Abortion settlement | 6 on the Michigan authority board, plus the accepted five | 5 on the settlement, 2 on the forum | Good enough for now (2026-10-21). Wording unchanged. Eli refuses the settlement. | | Schools and pushing | the accepted five only | 3 in Grand Rapids, 3 in Grey County | Good enough for now (2026-10-21). Conduct sentences deleted. Grey County projects not mined. | | Voting in Grey County | 6, plus the shared moderator checklist | 6 | Good enough for now (2026-10-21). Bridge. No arrow yet. | -| US-friendly Canadians | 7 | 5 | In review (2026-10-21). Boycott and narrower sentences dropped the "I will not sign" clauses. Projects are shop-here asks, not a visit catalogue. Old attester refusals are for the longer wording. | +| US-friendly Canadians | 7 | 4 | Good enough for now (2026-10-21). Narrower sentence only names family visits. Four shop-here asks. Old attester refusals are for the longer wording. | | AI pause | 17 | 5 | Meets it. Five modified-to-commonality arrows are allowed. | | Low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation | none | none | Deferred. | @@ -127,7 +127,7 @@ These are project briefs and constituency suggestions, not finished statement wo | Unwoke | Open due-process policy templates; viewpoint-neutral selection-rubric pilot; audit of a fictional institution's complaint process | Editorial front door covering selected planks; independent review digest | Overlap with cancellation/gender causes, but users can support one plank and reject another. Include a liberal due-process supporter who refuses the umbrella label | | Democracy 2.0 | Open civic issue explorer; non-binding participatory allocation experiment; independent evaluation of the experiment | Local facilitator network; public methods/history archive | Voting reformers, decentralists, civic technologists; skeptics of online participation. Do not claim a binding election or verified population census | | AI safety before capabilities races | Open evaluation tooling; independent replication of a safety result; public comparison of hypothetical verification mechanisms | Research digest; workshop and contributor onboarding kit | Safety researchers, cautious technologists, concerned citizens; accelerationists and people who dispute proposed restrictions. No invented technical success claims | -| US-friendly Canadians | Shop-here notes for an Owen Sound grocer and a Meaford hardware store that kept US suppliers; one Saturday at the grocer | A one-year Grey County list of those asks, and a monthly check by someone who did not write the list. Signer counts stay on Tally | Conservatives, apolitical families, businesspeople, anti-Trump internationalists; people who favor a boycott or visits without a purchase call | +| US-friendly Canadians | Shop-here notes for an Owen Sound grocer and a Meaford hardware store that kept US suppliers | A one-year Grey County list of those asks, and a monthly check by someone who did not write the list. Signer counts stay on Tally | Conservatives, apolitical families, businesspeople, anti-Trump internationalists; people who favor a boycott or who only name family visits | | Christianity | Open teaching materials; accessibility/transcription of shared resources; regional substitute-preacher coordination pilot | Independently checked resource directory; inter-church organizer/host kit | Different denominations, secular collaborators on specific civic work, nonparticipants; doctrinal agreement is not inferred from shared project funding | | Islamic reform | Open discussion/study materials by fictional reform-minded authors; moderated interpretation forum with published materials; reusable civic-coexistence workshop | Maintained resource library; facilitator training | Reform-minded Muslims, secular civil-liberties allies, traditionalist dissenters; specify actual propositions rather than treating Muslims as one position | | Less regulation | Open dataset of burdens in one fictional permitting process; reproducible comparison of alternative procedures; small-business application guide | Maintained reform-project tracker; independent methodology review | Entrepreneurs, libertarians, frustrated residents; safety-minded reformers and defenders of particular rules. An experimental medical zone remains a hypothetical policy proposal | @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects), and the Grey County voting bridge are good enough for now. The next board is US-friendly Canadians. Do not edit that board's statement or project text until he is in that session. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects), the Grey County voting bridge, and US-friendly Canadians are good enough for now. The next board is minors' medicine. Do not edit that board's statement or project text until he is in that session. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -328,7 +328,7 @@ The boards Adam has already called good enough publish **no** implication arrows - [ ] Abortion settlement. The accepted pair already has live arrows (`modified-left` and `modified-right` to `commonality`). The wording did not change on 2026-10-21, so those arrows stay. Do not re-evaluate them in a wording session. The Michigan sentences are separate wants and have no bridge roles. - [ ] Schools and pushing. The accepted pair already has live arrows. The wording did not change on 2026-10-21, so those arrows stay. The Grey County projects do not add sentences. -Boards that still have live arrows, and have not had this wording review: minors' medicine, employment, Canada–US (boycott and narrower-ties stay refused), and AI pause. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. Re-check the remaining arrows only if a sentence on that board changes. +Boards that still have live arrows, and have not had this wording review: minors' medicine, employment, and AI pause. Canada–US boycott and narrower-ties stay refused. The stored refusal is for the longer wording. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. Re-check the remaining arrows only if a sentence on that board changes. - [x] Christian teaching, 2026-10-20. Good enough for now. Two wants: freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated. Two refusals: notes stay inside the church, and civic transcription excludes church teaching. Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. No implication arrow. Not mined. @@ -340,4 +340,6 @@ Boards that still have live arrows, and have not had this wording review: minors - [x] Voting in Grey County, 2026-10-21. Good enough for now. Each natural wants some other system in Grey County, preferably ranked choice or preferably approval voting. Each modified names that preference and contains the commonality: switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. Keeping first-past-the-post stays on the commonality board as a refusal. The poll, the approval count, the counting notes, and the host kit align only to the commonality. No arrow until an attester blesses this wording. Not mined. -- [ ] US-friendly Canadians, drafted 2026-10-21. Not checked. Boycott and narrower sentences no longer say they will not sign. Projects are five shop-here asks aligned only to the commonality. Signer counts stay on Tally. The two modified-to-commonality arrows were not re-evaluated, because those sentences did not change. The boycott and narrower refusals in the evaluations file are for the longer wording. Do not mine another copy. \ No newline at end of file +- [x] US-friendly Canadians, 2026-10-21. Good enough for now. The boycott sentence does not talk about signing. The narrower sentence only names family visits and does not reject purchases. Four shop-here asks, all aligned only to the commonality: the Owen Sound grocer, the Meaford hardware store, the Grey County list, and the monthly check. Signer counts stay on Tally. The two modified-to-commonality arrows were not re-evaluated. The boycott and narrower refusals in the evaluations file are for the longer wording. Not mined. + +The next board is minors' medicine. Do not edit it until Adam is in that session. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json index 8b3fec9d..312e33c4 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json @@ -21,7 +21,7 @@ { "userId": "user-069", "name": "Cal", "signs": ["commonality"], "rejects": ["boycott-ordinary-ties"], "unsigned": ["narrower-than-visits", "natural-right"], "notes": "Signs the shared sentence. A boycott is a refusal." }, { "userId": "user-070", "name": "Adele", "signs": ["natural-left"], "unsigned": ["commonality", "modified-left", "boycott-ordinary-ties"], "notes": "Has the anti-Trump natural. The shared sentence is still a nudge, not an arrow from the natural." }, { "userId": "user-071", "name": "Greta", "signs": ["boycott-ordinary-ties"], "rejects": ["commonality", "modified-left", "modified-right"], "unsigned": ["natural-left"], "notes": "Wants a boycott. She rejects the shared sentence. No arrow runs from the boycott to that sentence." }, - { "userId": "user-072", "name": "Neil", "signs": ["narrower-than-visits"], "rejects": ["commonality"], "unsigned": ["boycott-ordinary-ties"], "notes": "Wants family visits without a general call to keep buying from US businesses. He rejects the sentence that asks for both." } + { "userId": "user-072", "name": "Neil", "signs": ["narrower-than-visits"], "rejects": ["commonality"], "unsigned": ["boycott-ordinary-ties"], "notes": "Signs only the family-visit sentence. That sentence does not reject purchases. He rejects the shared sentence, which asks for purchases and visits." } ], "implicationCandidates": { "published": [ @@ -54,7 +54,7 @@ { "from": "ai-pause/commonality", "to": "ai-pause/modified-small-chance", "why": "2026-10-16 deepseek-v3.2 refused, high. The shared sentence does not include the odds or the refusal to say extinction is certain." }, { "from": "ai-pause/commonality", "to": "ai-pause/modified-jobs", "why": "2026-10-16 deepseek-v3.2 refused, high. The shared sentence does not include the jobs priority." }, { "from": "canada-us-ties/boycott-ordinary-ties", "to": "canada-us-ties/commonality", "why": "2026-10-16 deepseek-v3.2 refused, high, first wording. Greta's boycott is the negation of the shared sentence. The 2026-10-21 cut removed the clause about not signing. This row is evidence for the longer sentence only." }, - { "from": "canada-us-ties/narrower-than-visits", "to": "canada-us-ties/commonality", "why": "2026-10-16 deepseek-v3.2 refused, high, first wording. Neil keeps family visits and rejects the purchase call. The 2026-10-21 cut removed the clause about not signing. This row is evidence for the longer sentence only." }, + { "from": "canada-us-ties/narrower-than-visits", "to": "canada-us-ties/commonality", "why": "2026-10-16 deepseek-v3.2 refused, high, on the wording that also rejected the purchase call. The current sentence only names family visits. This row is evidence for the longer sentence only." }, { "from": "canada-us-ties/commonality", "to": "canada-us-ties/boycott-ordinary-ties", "why": "2026-10-16 deepseek-v3.2 refused, high, first wording. The shared sentence does not contain a boycott. The 2026-10-21 cut removed the clause about not signing. This row is evidence for the longer sentence only." } ], "unevaluatedAndUnpublished": [ diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-implication-evaluations.json b/fake-data-generation/campaigns/network-societies-v1-b2-implication-evaluations.json index 0055f11a..c4856d35 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-implication-evaluations.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-implication-evaluations.json @@ -1406,5 +1406,5 @@ ], "aiPauseEvaluatedAt": "2026-10-16T21:52:11.796Z", "canadaUsEvaluatedAt": "2026-10-16T22:30:00.000Z", - "canadaUsWordingNote": "2026-10-21: boycott-ordinary-ties and narrower-than-visits dropped the clauses about refusing to sign. The fromHash and toHash values on those three rows are the longer wording. Do not treat the rows as evidence for the shorter sentences." + "canadaUsWordingNote": "2026-10-21: boycott-ordinary-ties dropped the clause about refusing to sign. narrower-than-visits now only names family visits. The fromHash and toHash values on those three rows are the longer wording. Do not treat the rows as evidence for the shorter sentences." } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json index 552a6292..dc1f8439 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -1532,8 +1532,8 @@ "create-cause" ], "targetCount": { - "min": 59, - "max": 59 + "min": 58, + "max": 58 } }, { @@ -1543,8 +1543,8 @@ "publish-statement" ], "targetCount": { - "min": 59, - "max": 59 + "min": 58, + "max": 58 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index e664bf38..1f4247b0 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -456,14 +456,6 @@ ], "blocker": "A second store's ask dies in a group chat if nobody publishes it the same way" }, - { - "title": "One Saturday at the Owen Sound grocer", - "outcome": "Pick one Saturday when people who want those US goods still on the shelf shop at that Owen Sound grocery, and publish the store's count of how many came. No names unless someone asked to be named.", - "statementRefs": [ - "commonality" - ], - "blocker": "A note does not become a trip unless someone picks the day and tells people" - }, { "title": "Grey County shop-here list", "outcome": "For one year, keep a list of Grey County businesses that kept ordinary US suppliers and are asking nearby people to shop there. Each row has a name, a town, what they kept, and the date it was last confirmed.", diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json index b5fde144..e89fdeb1 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -1517,8 +1517,8 @@ "create-cause" ], "targetCount": { - "min": 59, - "max": 59 + "min": 58, + "max": 58 } }, { @@ -1528,8 +1528,8 @@ "publish-statement" ], "targetCount": { - "min": 59, - "max": 59 + "min": 58, + "max": 58 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index a938d664..3269627b 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -337,7 +337,7 @@ "title": "Ordinary Canada-US ties", "notes": [ "Bridge on one want: ordinary purchases and family visits, with the administration question left out. The two modified-to-commonality arrows stay. This is not a second compromise on that same want.", - "Knowing that other people agree is the signer count on Tally, not a project. The projects are shop-here asks for Grey County businesses that kept ordinary US suppliers and then lost customers over that. A boycott and visits-without-the-purchase-call are incompatible positions. Neither is an implication of the commonality, and neither is published as an arrow. The 2026-10-16 attester refusal is for the longer wording of those two sentences. Not accepted seed." + "Knowing that other people agree is the signer count on Tally, not a project. The projects are shop-here asks for Grey County businesses that kept ordinary US suppliers and then lost customers over that. The boycott refuses the shared sentence. The narrower sentence only names family visits and does not reject the purchase call. Neither is an implication of the commonality, and neither is published as an arrow. The 2026-10-16 attester refusal is for the longer wording. Not accepted seed." ], "statements": [ { @@ -371,7 +371,7 @@ }, { "id": "narrower-than-visits", - "text": "I want Canadians to keep visiting family in the US. I do not want ordinary Canadians told to keep buying from US businesses." + "text": "I want Canadians to keep visiting family in the US." } ] }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index 6169ab49..f4185832 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -1517,8 +1517,8 @@ "create-cause" ], "targetCount": { - "min": 59, - "max": 59 + "min": 58, + "max": 58 } }, { @@ -1528,8 +1528,8 @@ "publish-statement" ], "targetCount": { - "min": 59, - "max": 59 + "min": 58, + "max": 58 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 2ea89261..d2ee2969 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -10,11 +10,11 @@ Keeps the four pilot families (Owen Sound checkout, Grey County civic life, Chri The other families in the brainstorming plan are not in this manifest, except an AI-pause board and the Canada–US family past its five-statement draft. The AI-pause board is plain: every sentence stays visible. Five milder modified sentences contain one shared pause-treaty sentence and each keeps a reason the shared sentence leaves out. Naturals do not name the treaty. Hal wants a full stop and rejects the pause. Vic rejects the pause because other labs will not stop. Five modified-to-commonality arrows are allowed. Naturals, poles, and reverse arrows are not. -Canada–US stays a bridge. The shared sentence is still ordinary purchases and family visits, with the administration question left out. Knowing you are not alone is the signer count, not a project. The projects are shop-here asks for Grey County stores that kept ordinary US suppliers and then lost customers over that: an Owen Sound grocer, a Meaford hardware store, one Saturday at the grocer, a one-year list, and a monthly check by someone who did not write the list. Greta wants a boycott and rejects the shared sentence. Neil wants family visits and does not want a call to keep buying from US businesses. Those two pairs were refused by the attester on the longer wording and are not arrows. Fern funds the projects and leaves the shared sentence unsigned. Adele signs the anti-Trump natural and has not signed the shared sentence. +Canada–US stays a bridge. The shared sentence is still ordinary purchases and family visits, with the administration question left out. Knowing you are not alone is the signer count, not a project. The projects are shop-here asks for Grey County stores that kept ordinary US suppliers and then lost customers over that: an Owen Sound grocer, a Meaford hardware store, a one-year list, and a monthly check by someone who did not write the list. Greta wants a boycott and rejects the shared sentence. Neil signs only the family-visit sentence and rejects the shared sentence. Those two pairs were refused by the attester on the longer wording and are not arrows. Fern funds the projects and leaves the shared sentence unsigned. Adele signs the anti-Trump natural and has not signed the shared sentence. ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 79 statements and 59 projects. On 2026-10-21 the Canada–US catalogue projects were replaced with five shop-here asks. The Grey County conduct sentences were removed on 2026-10-21. The Owen Sound dual-count draft was deleted the same day, when the voting board was rewritten. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 79 statements and 58 projects. On 2026-10-21 the Canada–US catalogue projects were replaced with four shop-here asks. The Grey County conduct sentences were removed on 2026-10-21. The Owen Sound dual-count draft was deleted the same day, when the voting board was rewritten. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board is an ordinary board, so its own sentences stay visible there. Schools has no second board. diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 838b2c16..99a8ae97 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -274,7 +274,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); assert.equal(plan.statements.length, 79); - assert.equal(plan.projects.length, 59); + assert.equal(plan.projects.length, 58); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); assert.ok(checklist); @@ -343,7 +343,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one const canadaBoard = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === 'canada-us-ties')!.board!; const canadaIds = canadaBoard.statementIds.map((id) => plan.statements.find((statement) => statement.id === id)!.source.statementId); assert.deepEqual(canadaIds, ['commonality', 'boycott-ordinary-ties', 'narrower-than-visits']); - assert.equal(plan.projects.filter((project) => project.causeId === 'canada-us-ties').length, 5); + assert.equal(plan.projects.filter((project) => project.causeId === 'canada-us-ties').length, 4); const boycott = plan.statements.find((statement) => statement.source.groupId === 'canada-us-ties' && statement.source.statementId === 'boycott-ordinary-ties')!; const narrower = plan.statements.find((statement) => statement.source.groupId === 'canada-us-ties' && statement.source.statementId === 'narrower-than-visits')!; const canadaCommonality = plan.statements.find((statement) => statement.source.groupId === 'canada-us-ties' && statement.source.statementId === 'commonality')!; From 6a8c9a206f7c5a69cccbd325907b41b99172c00e Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 14:53:21 -0400 Subject: [PATCH 40/46] Drop the minors' medicine draft from the network-societies campaign. Adam rejected the board. The five sentences, two projects, and two published arrows are gone from the source. The stored attester pass stays in the evaluations file and is not an arrow. Mined output directories are unchanged. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 10 +- .../network-societies-v1-b2-decisions.json | 4 +- .../network-societies-v1-b2-note-spend.json | 101 ++++-------------- .../network-societies-v1-b2-projects.json | 19 ---- .../network-societies-v1-b2-reimburse.json | 101 ++++-------------- .../network-societies-v1-b2-statements.json | 34 ------ .../campaigns/network-societies-v1-b2.json | 101 ++++-------------- .../campaigns/network-societies-v1-b2.md | 6 +- .../test/campaignPlanner.test.ts | 11 +- 10 files changed, 80 insertions(+), 309 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 159c3be6..69b743d1 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, six draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge, is 72 users, 79 statements, and 58 projects. Fifteen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. Reviewed boards are good enough for now. Canada–US has four shop-here projects. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, the remaining draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge, is 72 users, 74 statements, and 56 projects. The minors' medicine draft was deleted the same day. Thirteen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. Reviewed boards are good enough for now. Canada–US has four shop-here projects. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 19e35a9e..29e0c334 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -28,7 +28,7 @@ Two local campaigns exist. Neither is the finished fifteen-family world, and nei **Pilot** ([`network-societies-v1-pilot.md`](../campaigns/network-societies-v1-pilot.md)). Four families: Owen Sound checkout, Grey County civic life, Christian teaching, home learning. About 40 users, 40 statements, 20 projects. A local run on 2026-10-16 mined and reconciled 207/207. No implication edges. The class-host directory is one statement on two boards. Pat delegates a note to Ned; the adapter can revoke a delegation. Persona belief choices in the pilot decisions file are pinned the same way as batch 2. The mined pilot output is the plan from before those pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. -**Batch 2** ([`network-societies-v1-b2.md`](../campaigns/network-societies-v1-b2.md)). Keeps those four families and adds the accepted abortion settlement, the accepted schools-and-pushing bridge, an Owen Sound voting trial, six draft bridges (assimilation sessions, dual-count poll, checkout trial, minors' medicine, ordinary opinions and employment, Canada–US ties), and a plain AI-pause board. Canada–US is past the five-statement draft: five work planks, a boycott, and a narrower-ties sentence sit on the commonality board. The current manifest is 72 users, 124 statements, and 62 projects. Twenty-one modified-to-commonality arrows are allowed: four accepted bridge pairs and seventeen live attester blesses, including five AI-pause modifieds. The Canada–US boycott and narrower sentence were refused and stay unpublished. Designed-negative pairs stay unpublished. The other five draft clusters and the AI-pause board are not accepted seed. Canada–US is not accepted seed either. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That output is the plan from before the belief pins and before the AI-pause arrows. Do not regenerate into it. Do not regenerate into `output/campaigns/network-societies-v1-b2-ai-pause/`. The current plan lives in `output/campaigns/network-societies-v1-b2-canada-us/` and was mined locally on 2026-10-19. +**Batch 2** ([`network-societies-v1-b2.md`](../campaigns/network-societies-v1-b2.md)). Keeps those four families and adds the accepted abortion settlement, the accepted schools-and-pushing bridge, an Owen Sound voting trial, draft bridges (assimilation sessions, dual-count poll, checkout trial, ordinary opinions and employment, Canada–US ties; minors' medicine was deleted on 2026-10-21), and a plain AI-pause board. Canada–US is past the five-statement draft: five work planks, a boycott, and a narrower-ties sentence sit on the commonality board. The current manifest is 72 users, 74 statements, and 56 projects. Thirteen implication actions are allowed: four accepted bridge pairs and nine live attester blesses, including five AI-pause modifieds. The Canada–US boycott and narrower sentence were refused and stay unpublished. Designed-negative pairs stay unpublished. The other five draft clusters and the AI-pause board are not accepted seed. Canada–US is not accepted seed either. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That output is the plan from before the belief pins and before the AI-pause arrows. Do not regenerate into it. Do not regenerate into `output/campaigns/network-societies-v1-b2-ai-pause/`. The current plan lives in `output/campaigns/network-societies-v1-b2-canada-us/` and was mined locally on 2026-10-19. The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli's only planned belief on the abortion commonality is `disbelieve`. Unsigned is still not a rejection. @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects), the Grey County voting bridge, and US-friendly Canadians are good enough for now. The next board is minors' medicine. Do not edit that board's statement or project text until he is in that session. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects), the Grey County voting bridge, and US-friendly Canadians are good enough for now. Minors' medicine was deleted on 2026-10-21. The next board is ordinary opinions and employment. Do not edit that board's statement or project text until he is in that session. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -328,7 +328,7 @@ The boards Adam has already called good enough publish **no** implication arrows - [ ] Abortion settlement. The accepted pair already has live arrows (`modified-left` and `modified-right` to `commonality`). The wording did not change on 2026-10-21, so those arrows stay. Do not re-evaluate them in a wording session. The Michigan sentences are separate wants and have no bridge roles. - [ ] Schools and pushing. The accepted pair already has live arrows. The wording did not change on 2026-10-21, so those arrows stay. The Grey County projects do not add sentences. -Boards that still have live arrows, and have not had this wording review: minors' medicine, employment, and AI pause. Canada–US boycott and narrower-ties stay refused. The stored refusal is for the longer wording. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. Re-check the remaining arrows only if a sentence on that board changes. +Boards that still have live arrows, and have not had this wording review: employment and AI pause. Minors' medicine was deleted on 2026-10-21. Its stored attester pass is not a published arrow. Canada–US boycott and narrower-ties stay refused. The stored refusal is for the longer wording. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. Re-check the remaining arrows only if a sentence on that board changes. - [x] Christian teaching, 2026-10-20. Good enough for now. Two wants: freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated. Two refusals: notes stay inside the church, and civic transcription excludes church teaching. Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. No implication arrow. Not mined. @@ -342,4 +342,6 @@ Boards that still have live arrows, and have not had this wording review: minors - [x] US-friendly Canadians, 2026-10-21. Good enough for now. The boycott sentence does not talk about signing. The narrower sentence only names family visits and does not reject purchases. Four shop-here asks, all aligned only to the commonality: the Owen Sound grocer, the Meaford hardware store, the Grey County list, and the monthly check. Signer counts stay on Tally. The two modified-to-commonality arrows were not re-evaluated. The boycott and narrower refusals in the evaluations file are for the longer wording. Not mined. -The next board is minors' medicine. Do not edit it until Adam is in that session. \ No newline at end of file +- [x] Minors' medicine, 2026-10-21. Scrapped. The five sentences and two projects are gone from the campaign source. The stored attester pass stays in the evaluations file and is not a published arrow. Not mined. + +The next board is ordinary opinions and employment. Do not edit it until Adam is in that session. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json index 312e33c4..157296ee 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json @@ -1,5 +1,5 @@ { - "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Fifteen modified-to-commonality arrows are allowed. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. The four abortion and schools arrows keep accepted-bridge-role-pair. The Grey County assimilation bridge and the checkout-trial bridge dropped their arrows when the wording changed on 2026-10-20. The remaining eight draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US projects are shop-here asks for Grey County businesses that kept ordinary US suppliers. Signer counts stay on Tally. Greta's boycott and Neil's narrower sentence are not arrows. On 2026-10-21 those two sentences dropped the clauses about refusing to sign. The stored attester refusal is for the longer wording. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", + "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Thirteen modified-to-commonality arrows are allowed. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. The four abortion and schools arrows keep accepted-bridge-role-pair. The Grey County assimilation bridge and the checkout-trial bridge dropped their arrows when the wording changed on 2026-10-20. The remaining four draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US projects are shop-here asks for Grey County businesses that kept ordinary US suppliers. Signer counts stay on Tally. Greta's boycott and Neil's narrower sentence are not arrows. On 2026-10-21 those two sentences dropped the clauses about refusing to sign. The stored attester refusal is for the longer wording. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", "people": [ { "userId": "user-003", "name": "Imani", "signs": ["bank-blocking", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "funds": ["Six-shop refundable checkout trial", "Independent checkout security review", "Fee and failure table", "Owen Sound merchant directory", "Quarterly checkout clinic and host kit", "Blocked-customer sale record"], "notes": "The bank-blocking sentence is why she funds the checkout projects. Those projects stay aligned to the refundable-checkout sentence. Signing the checkout want is not a signature that shops must take crypto from everyone." }, { "userId": "user-016", "name": "June", "signs": ["bank-blocking", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "funds": ["Six-shop refundable checkout trial", "Independent checkout security review", "Fee and failure table", "Owen Sound merchant directory", "Quarterly checkout clinic and host kit", "Blocked-customer sale record"], "notes": "Same funding as Imani. The blocked-customer record is the project aligned to bank-blocking. The other five are the earlier checkout steps." }, @@ -29,8 +29,6 @@ { "from": "compromise-abortion/modified-right", "to": "compromise-abortion/commonality", "evidence": "accepted-bridge-role-pair", "why": "Accepted 2026-08-30." }, { "from": "lgbt-schools/modified-left", "to": "lgbt-schools/commonality", "evidence": "accepted-bridge-role-pair", "why": "Accepted 2026-08-31. This arrow is about pushing versus support. It is not a medical claim." }, { "from": "lgbt-schools/modified-right", "to": "lgbt-schools/commonality", "evidence": "accepted-bridge-role-pair", "why": "Accepted 2026-08-31." }, - { "from": "minors-medicine/modified-left", "to": "minors-medicine/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, - { "from": "minors-medicine/modified-right", "to": "minors-medicine/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high." }, { "from": "opinion-employment/modified-left", "to": "opinion-employment/commonality", "evidence": "live-attester-modified-to-commonality", "why": "Blessed after the modifieds gained a camp priority the commonality does not contain." }, { "from": "opinion-employment/modified-right", "to": "opinion-employment/commonality", "evidence": "live-attester-modified-to-commonality", "why": "Same rewrite. The first wording let commonality imply both modifieds." }, { "from": "canada-us-ties/modified-left", "to": "canada-us-ties/commonality", "evidence": "live-attester-modified-to-commonality", "why": "Blessed after the commonality dropped 'I'd be okay with saying that' and each modified kept a priority the commonality omits." }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json index dc1f8439..3dfd506a 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -17,10 +17,10 @@ "campaignCollection": "network-societies-v1-b2-statements.json" }, "scale": { - "minCauses": 14, - "maxCauses": 14, - "minStatements": 79, - "maxStatements": 79, + "minCauses": 13, + "maxCauses": 13, + "minStatements": 74, + "maxStatements": 74, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -371,39 +371,6 @@ } ] }, - { - "id": "minors-medicine", - "title": "Minors medicine and courtesy", - "activityTier": "medium", - "membershipWeight": 7, - "statementRefs": [ - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "natural-left" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "natural-right" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "modified-left" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "modified-right" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "commonality" - } - ] - }, { "id": "opinion-employment", "title": "Ordinary opinion and employment", @@ -793,8 +760,7 @@ ], "causeIds": [ "home-learning", - "christian-teaching", - "minors-medicine" + "christian-teaching" ], "spotlightOrder": 4 }, @@ -1343,32 +1309,6 @@ }, "evidence": "accepted-bridge-role-pair" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1492,8 +1432,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 79, - "max": 79 + "min": 74, + "max": 74 } }, { @@ -1502,8 +1442,8 @@ "publish-statement" ], "targetCount": { - "min": 14, - "max": 14 + "min": 13, + "max": 13 } }, { @@ -1522,8 +1462,8 @@ "publish-statement" ], "targetCount": { - "min": 15, - "max": 15 + "min": 13, + "max": 13 } }, { @@ -1532,8 +1472,8 @@ "create-cause" ], "targetCount": { - "min": 58, - "max": 58 + "min": 56, + "max": 56 } }, { @@ -1543,8 +1483,8 @@ "publish-statement" ], "targetCount": { - "min": 58, - "max": 58 + "min": 56, + "max": 56 } }, { @@ -1592,8 +1532,8 @@ "publish-statement" ], "targetCount": { - "min": 32, - "max": 32 + "min": 28, + "max": 28 } }, { @@ -1603,8 +1543,8 @@ "create-bridge-board" ], "targetCount": { - "min": 8, - "max": 8 + "min": 7, + "max": 7 } }, { @@ -1638,5 +1578,6 @@ "ownerUserId": "user-016", "delegateUserId": "user-012", "projectTitle": "Six-shop refundable checkout trial" - } + }, + "implicationCandidates": [] } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index 1f4247b0..cb4dbab8 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -402,25 +402,6 @@ "blocker": "The shared sentence leaves out why each side showed up, and the card is what keeps those reasons visible" } ], - "minors-medicine": [ - { - "title": "Rule comparison page", - "outcome": "Publish the commonality sentence as a proposal, labeled as a proposal, with no claim about current law or clinical results.", - "statementRefs": [ - "commonality" - ], - "blocker": "A one-page proposal is useful to people who will not attend a meeting, and nobody owns the page" - }, - { - "title": "Separate-questions card", - "outcome": "Print the modified-right sentence so a host can keep classroom names and school drug approval off this page.", - "statementRefs": [ - "modified-right", - "commonality" - ], - "blocker": "Those questions keep getting folded back in unless a maintained card holds them out" - } - ], "opinion-employment": [ { "title": "Appeal-before-blacklist card", diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json index e89fdeb1..7a4d634a 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -17,10 +17,10 @@ "campaignCollection": "network-societies-v1-b2-statements.json" }, "scale": { - "minCauses": 14, - "maxCauses": 14, - "minStatements": 79, - "maxStatements": 79, + "minCauses": 13, + "maxCauses": 13, + "minStatements": 74, + "maxStatements": 74, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -371,39 +371,6 @@ } ] }, - { - "id": "minors-medicine", - "title": "Minors medicine and courtesy", - "activityTier": "medium", - "membershipWeight": 7, - "statementRefs": [ - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "natural-left" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "natural-right" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "modified-left" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "modified-right" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "commonality" - } - ] - }, { "id": "opinion-employment", "title": "Ordinary opinion and employment", @@ -793,8 +760,7 @@ ], "causeIds": [ "home-learning", - "christian-teaching", - "minors-medicine" + "christian-teaching" ], "spotlightOrder": 4 }, @@ -1328,32 +1294,6 @@ }, "evidence": "accepted-bridge-role-pair" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1477,8 +1417,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 79, - "max": 79 + "min": 74, + "max": 74 } }, { @@ -1487,8 +1427,8 @@ "publish-statement" ], "targetCount": { - "min": 14, - "max": 14 + "min": 13, + "max": 13 } }, { @@ -1507,8 +1447,8 @@ "publish-statement" ], "targetCount": { - "min": 15, - "max": 15 + "min": 13, + "max": 13 } }, { @@ -1517,8 +1457,8 @@ "create-cause" ], "targetCount": { - "min": 58, - "max": 58 + "min": 56, + "max": 56 } }, { @@ -1528,8 +1468,8 @@ "publish-statement" ], "targetCount": { - "min": 58, - "max": 58 + "min": 56, + "max": 56 } }, { @@ -1577,8 +1517,8 @@ "publish-statement" ], "targetCount": { - "min": 32, - "max": 32 + "min": 28, + "max": 28 } }, { @@ -1588,8 +1528,8 @@ "create-bridge-board" ], "targetCount": { - "min": 8, - "max": 8 + "min": 7, + "max": 7 } } ], @@ -1611,5 +1551,6 @@ "projectTitle": "Six-shop refundable checkout trial", "earlyPurchases": 20, "retroactiveDonations": 4 - } + }, + "implicationCandidates": [] } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 3269627b..cfd22f8f 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -264,40 +264,6 @@ } ] }, - { - "id": "minors-medicine", - "title": "Minors' medicine and courtesy", - "notes": [ - "Draft bridge. Unevaluated. Does not settle the accepted schools-pushing cluster, classroom names, or a school approving drugs." - ], - "statements": [ - { - "id": "natural-left", - "role": "natural-left", - "text": "I want a young person in distress about their sex to be able to get medical treatment, including hormones, and I want the rest of us to stop being cruel about it." - }, - { - "id": "natural-right", - "role": "natural-right", - "text": "I don't want children given drugs or surgery to try to change their sex." - }, - { - "id": "modified-left", - "role": "modified-left", - "text": "I want adults to make their own medical decisions, and I want disagreeing with someone to not be a reason to harass them. I'd prefer doctors and families to decide about hormones for minors case by case, but I'd be okay with a rule that minors are not given cross-sex hormones or genital surgery, that an adult makes their own medical decision, and that disagreeing with someone is not a reason to harass them. This isn't my ideal." - }, - { - "id": "modified-right", - "role": "modified-right", - "text": "I don't want children given drugs or surgery to try to change their sex. I'd be okay with a rule that minors are not given cross-sex hormones or genital surgery, that an adult makes their own medical decision, and that disagreeing with someone is not a reason to harass them. What name a classroom uses, and whether a school may approve those drugs, are separate questions, and this isn't my whole view." - }, - { - "id": "commonality", - "role": "commonality", - "text": "I'd be okay with a rule that minors are not given cross-sex hormones or genital surgery, that an adult makes their own medical decision, and that disagreeing with someone is not a reason to harass them. This isn't my whole view." - } - ] - }, { "id": "opinion-employment", "title": "Ordinary opinions and employment", diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index f4185832..41cc39ab 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -17,10 +17,10 @@ "campaignCollection": "network-societies-v1-b2-statements.json" }, "scale": { - "minCauses": 14, - "maxCauses": 14, - "minStatements": 79, - "maxStatements": 79, + "minCauses": 13, + "maxCauses": 13, + "minStatements": 74, + "maxStatements": 74, "allowRepeatedStatementRefs": true }, "projectStories": "network-societies-v1-b2-projects.json", @@ -371,39 +371,6 @@ } ] }, - { - "id": "minors-medicine", - "title": "Minors medicine and courtesy", - "activityTier": "medium", - "membershipWeight": 7, - "statementRefs": [ - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "natural-left" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "natural-right" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "modified-left" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "modified-right" - }, - { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "commonality" - } - ] - }, { "id": "opinion-employment", "title": "Ordinary opinion and employment", @@ -793,8 +760,7 @@ ], "causeIds": [ "home-learning", - "christian-teaching", - "minors-medicine" + "christian-teaching" ], "spotlightOrder": 4 }, @@ -1328,32 +1294,6 @@ }, "evidence": "accepted-bridge-role-pair" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "minors-medicine", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1477,8 +1417,8 @@ "type": "publish-statement", "prerequisites": [], "targetCount": { - "min": 79, - "max": 79 + "min": 74, + "max": 74 } }, { @@ -1487,8 +1427,8 @@ "publish-statement" ], "targetCount": { - "min": 14, - "max": 14 + "min": 13, + "max": 13 } }, { @@ -1507,8 +1447,8 @@ "publish-statement" ], "targetCount": { - "min": 15, - "max": 15 + "min": 13, + "max": 13 } }, { @@ -1517,8 +1457,8 @@ "create-cause" ], "targetCount": { - "min": 58, - "max": 58 + "min": 56, + "max": 56 } }, { @@ -1528,8 +1468,8 @@ "publish-statement" ], "targetCount": { - "min": 58, - "max": 58 + "min": 56, + "max": 56 } }, { @@ -1577,8 +1517,8 @@ "publish-statement" ], "targetCount": { - "min": 32, - "max": 32 + "min": 28, + "max": 28 } }, { @@ -1588,8 +1528,8 @@ "create-bridge-board" ], "targetCount": { - "min": 8, - "max": 8 + "min": 7, + "max": 7 } } ], @@ -1606,5 +1546,6 @@ "reconciliation": "reports/reconciliation.json", "browserObservations": "reports/browser-observations.json", "summary": "reports/summary.md" - } + }, + "implicationCandidates": [] } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index d2ee2969..0a3eec2d 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -14,13 +14,13 @@ Canada–US stays a bridge. The shared sentence is still ordinary purchases and ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 79 statements and 58 projects. On 2026-10-21 the Canada–US catalogue projects were replaced with four shop-here asks. The Grey County conduct sentences were removed on 2026-10-21. The Owen Sound dual-count draft was deleted the same day, when the voting board was rewritten. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 74 statements and 56 projects. The minors' medicine draft was deleted on 2026-10-21. On 2026-10-21 the Canada–US catalogue projects were replaced with four shop-here asks. The Grey County conduct sentences were removed on 2026-10-21. The Owen Sound dual-count draft was deleted the same day, when the voting board was rewritten. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board is an ordinary board, so its own sentences stay visible there. Schools has no second board. -Five more causes are also bridge-shaped, from `statement-generation-exercises/06-network-society-alliances.json`: Grey County assimilation sessions, the Owen Sound checkout trial, minors' medicine and courtesy, ordinary opinions and employment, and ordinary Canada–US ties. The Owen Sound dual-count poll is no longer a cause. +Four more causes are also bridge-shaped, from `statement-generation-exercises/06-network-society-alliances.json`: Grey County assimilation sessions, the Owen Sound checkout trial, ordinary opinions and employment, and ordinary Canada–US ties. The Owen Sound dual-count poll is no longer a cause. Minors' medicine and courtesy was deleted on 2026-10-21. Its stored attester pass is not a published arrow. -Nineteen implication actions are planned. Four are the accepted abortion and schools pairs, labeled `accepted-bridge-role-pair`. Fifteen are modified-to-commonality pairs, labeled `live-attester-modified-to-commonality`: ten from the draft bridges and five from the AI-pause board. The dual-count pair is not among them. The live record is `network-societies-v1-b2-implication-evaluations.json` (deepseek/deepseek-v3.2, prompt fingerprint `2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891`, 82 pairs). The draft bridges blessed every designed-yes and refused every designed-no after one rewrite. Employment modifieds now name a camp priority the commonality does not contain (on-the-clock campaigning; churches and private clubs). The Canada commonality no longer says "I'd be okay with saying that," and each modified keeps a priority the commonality omits. The AI-pause pass matched on the first wording: each modified implies the shared pause sentence, and the naturals, poles, and reverse arrows do not. Naturals, reverse arrows, cross-modified arrows, and the assimilation cluster against the accepted immigration statements stay unpublished. Those refusals are in the decisions file. A later pass refused the Canada–US boycott and the narrower sentence, both ways that were checked, at high confidence on the first wording. No new arrow was added. The five remaining draft clusters, the expanded Canada–US board, and the AI-pause board are still not accepted seed. +Thirteen implication actions are planned. Four are the accepted abortion and schools pairs, labeled `accepted-bridge-role-pair`. Nine are modified-to-commonality pairs, labeled `live-attester-modified-to-commonality`: four from the remaining draft bridges and five from the AI-pause board. The minors' medicine pair is not among them. The dual-count pair is not among them. The live record is `network-societies-v1-b2-implication-evaluations.json` (deepseek/deepseek-v3.2, prompt fingerprint `2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891`, 82 pairs). The draft bridges blessed every designed-yes and refused every designed-no after one rewrite. Employment modifieds now name a camp priority the commonality does not contain (on-the-clock campaigning; churches and private clubs). The Canada commonality no longer says "I'd be okay with saying that," and each modified keeps a priority the commonality omits. The AI-pause pass matched on the first wording: each modified implies the shared pause sentence, and the naturals, poles, and reverse arrows do not. Naturals, reverse arrows, cross-modified arrows, and the assimilation cluster against the accepted immigration statements stay unpublished. Those refusals are in the decisions file. A later pass refused the Canada–US boycott and the narrower sentence, both ways that were checked, at high confidence on the first wording. No new arrow was added. The five remaining draft clusters, the expanded Canada–US board, and the AI-pause board are still not accepted seed. `moderator-checklist` is one statement. It is on the Michigan authority board and the Owen Sound voting board. One project, "Moderator checklist card", references it. diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 99a8ae97..ae391647 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -273,8 +273,8 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one } const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); - assert.equal(plan.statements.length, 79); - assert.equal(plan.projects.length, 58); + assert.equal(plan.statements.length, 74); + assert.equal(plan.projects.length, 56); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); assert.ok(checklist); @@ -296,11 +296,11 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one assert.equal(notice.causeId, 'civic-assimilation'); assert.deepEqual(notice.alsoOnCauseIds, ['christian-teaching']); const implications = plan.actions.filter((action) => action.type === 'attest-implication'); - assert.equal(implications.length, 15); + assert.equal(implications.length, 13); const accepted = implications.filter((action) => action.implication!.evidence === 'accepted-bridge-role-pair'); const live = implications.filter((action) => action.implication!.evidence === 'live-attester-modified-to-commonality'); assert.equal(accepted.length, 4); - assert.equal(live.length, 11); + assert.equal(live.length, 9); for (const action of accepted) { const from = plan.statements.find((statement) => statement.id === action.implication!.fromStatementId)!; assert.ok(from.source.collectionId === 'compromise-abortion' || from.source.collectionId === 'lgbt-schools'); @@ -328,7 +328,8 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one assert.equal(board.role, 'commonality'); assert.equal(implications.filter((action) => action.causeId === causeId).length, 0, causeId); } - for (const causeId of ['minors-medicine', 'opinion-employment', 'canada-us-ties']) { + assert.equal(plan.actions.some((action) => action.type === 'create-cause' && action.causeId === 'minors-medicine'), false); + for (const causeId of ['opinion-employment', 'canada-us-ties']) { const board = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === causeId)!.board!; assert.equal(board.role, 'commonality'); assert.equal(implications.filter((action) => action.causeId === causeId).length, 2, causeId); From 78b8bd2db5b95496102f6d60fde4042baf668329 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 15:35:14 -0400 Subject: [PATCH 41/46] Drop the published-appeal clause from the employment board. The appeal checklist project goes with it. The stored attester bless was for the longer wording, so those two arrows are unpublished. The rest of the board stays in review. --- fake-data-generation/PLAN.md | 2 +- .../network-societies-campaign-plan.md | 8 ++-- .../network-societies-v1-b2-decisions.json | 6 +-- .../network-societies-v1-b2-note-spend.json | 38 +++---------------- .../network-societies-v1-b2-projects.json | 12 +----- .../network-societies-v1-b2-reimburse.json | 38 +++---------------- .../network-societies-v1-b2-statements.json | 8 ++-- .../campaigns/network-societies-v1-b2.json | 38 +++---------------- .../campaigns/network-societies-v1-b2.md | 4 +- .../06-network-society-alliances.json | 6 +-- .../test/campaignPlanner.test.ts | 14 ++++--- 11 files changed, 45 insertions(+), 129 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 69b743d1..3fa42a51 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, the remaining draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge, is 72 users, 74 statements, and 56 projects. The minors' medicine draft was deleted the same day. Thirteen modified-to-commonality arrows are allowed. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. Reviewed boards are good enough for now. Canada–US has four shop-here projects. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, the remaining draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge and the employment appeal cut, is 72 users, 74 statements, and 55 projects. The minors' medicine draft was deleted the same day. Eleven modified-to-commonality arrows are allowed. The employment pair is not among them. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. Reviewed boards are good enough for now. Canada–US has four shop-here projects. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 29e0c334..91d698df 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -28,7 +28,7 @@ Two local campaigns exist. Neither is the finished fifteen-family world, and nei **Pilot** ([`network-societies-v1-pilot.md`](../campaigns/network-societies-v1-pilot.md)). Four families: Owen Sound checkout, Grey County civic life, Christian teaching, home learning. About 40 users, 40 statements, 20 projects. A local run on 2026-10-16 mined and reconciled 207/207. No implication edges. The class-host directory is one statement on two boards. Pat delegates a note to Ned; the adapter can revoke a delegation. Persona belief choices in the pilot decisions file are pinned the same way as batch 2. The mined pilot output is the plan from before those pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. -**Batch 2** ([`network-societies-v1-b2.md`](../campaigns/network-societies-v1-b2.md)). Keeps those four families and adds the accepted abortion settlement, the accepted schools-and-pushing bridge, an Owen Sound voting trial, draft bridges (assimilation sessions, dual-count poll, checkout trial, ordinary opinions and employment, Canada–US ties; minors' medicine was deleted on 2026-10-21), and a plain AI-pause board. Canada–US is past the five-statement draft: five work planks, a boycott, and a narrower-ties sentence sit on the commonality board. The current manifest is 72 users, 74 statements, and 56 projects. Thirteen implication actions are allowed: four accepted bridge pairs and nine live attester blesses, including five AI-pause modifieds. The Canada–US boycott and narrower sentence were refused and stay unpublished. Designed-negative pairs stay unpublished. The other five draft clusters and the AI-pause board are not accepted seed. Canada–US is not accepted seed either. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That output is the plan from before the belief pins and before the AI-pause arrows. Do not regenerate into it. Do not regenerate into `output/campaigns/network-societies-v1-b2-ai-pause/`. The current plan lives in `output/campaigns/network-societies-v1-b2-canada-us/` and was mined locally on 2026-10-19. +**Batch 2** ([`network-societies-v1-b2.md`](../campaigns/network-societies-v1-b2.md)). Keeps those four families and adds the accepted abortion settlement, the accepted schools-and-pushing bridge, an Owen Sound voting trial, draft bridges (assimilation sessions, dual-count poll, checkout trial, ordinary opinions and employment, Canada–US ties; minors' medicine was deleted on 2026-10-21), and a plain AI-pause board. Canada–US is past the five-statement draft: five work planks, a boycott, and a narrower-ties sentence sit on the commonality board. The current manifest is 72 users, 74 statements, and 55 projects. Eleven implication actions are allowed: four accepted bridge pairs and seven live attester blesses, including five AI-pause modifieds. The employment arrows came off on 2026-10-21 with the published-appeal clause. The Canada–US boycott and narrower sentence were refused and stay unpublished. Designed-negative pairs stay unpublished. The other five draft clusters and the AI-pause board are not accepted seed. Canada–US is not accepted seed either. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That output is the plan from before the belief pins and before the AI-pause arrows. Do not regenerate into it. Do not regenerate into `output/campaigns/network-societies-v1-b2-ai-pause/`. The current plan lives in `output/campaigns/network-societies-v1-b2-canada-us/` and was mined locally on 2026-10-19. The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli's only planned belief on the abortion commonality is `disbelieve`. Unsigned is still not a rejection. @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects), the Grey County voting bridge, and US-friendly Canadians are good enough for now. Minors' medicine was deleted on 2026-10-21. The next board is ordinary opinions and employment. Do not edit that board's statement or project text until he is in that session. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects), the Grey County voting bridge, and US-friendly Canadians are good enough for now. Minors' medicine was deleted on 2026-10-21. The next board is ordinary opinions and employment. On 2026-10-21 the published-appeal clause and the appeal checklist project were removed. The rest of that board is still in review. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -328,7 +328,7 @@ The boards Adam has already called good enough publish **no** implication arrows - [ ] Abortion settlement. The accepted pair already has live arrows (`modified-left` and `modified-right` to `commonality`). The wording did not change on 2026-10-21, so those arrows stay. Do not re-evaluate them in a wording session. The Michigan sentences are separate wants and have no bridge roles. - [ ] Schools and pushing. The accepted pair already has live arrows. The wording did not change on 2026-10-21, so those arrows stay. The Grey County projects do not add sentences. -Boards that still have live arrows, and have not had this wording review: employment and AI pause. Minors' medicine was deleted on 2026-10-21. Its stored attester pass is not a published arrow. Canada–US boycott and narrower-ties stay refused. The stored refusal is for the longer wording. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. Re-check the remaining arrows only if a sentence on that board changes. +Boards that still have live arrows, and have not had this wording review: AI pause. Employment's arrows came off on 2026-10-21 with the published-appeal clause. Minors' medicine was deleted on 2026-10-21. Its stored attester pass is not a published arrow. Canada–US boycott and narrower-ties stay refused. The stored refusal is for the longer wording. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. Re-check the remaining arrows only if a sentence on that board changes. - [x] Christian teaching, 2026-10-20. Good enough for now. Two wants: freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated. Two refusals: notes stay inside the church, and civic transcription excludes church teaching. Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. No implication arrow. Not mined. @@ -344,4 +344,4 @@ Boards that still have live arrows, and have not had this wording review: employ - [x] Minors' medicine, 2026-10-21. Scrapped. The five sentences and two projects are gone from the campaign source. The stored attester pass stays in the evaluations file and is not a published arrow. Not mined. -The next board is ordinary opinions and employment. Do not edit it until Adam is in that session. \ No newline at end of file +- [ ] Ordinary opinions and employment, 2026-10-21. The published-appeal clause is out of the commonality and both modifieds. The appeal checklist project is gone. One project remains, the still-a-sanction note, aligned only to modified-left. The two modified-to-commonality arrows are unpublished. The stored bless is for the longer wording. The board is not checked. Not mined. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json index 157296ee..127cf8e2 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json @@ -1,5 +1,5 @@ { - "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Thirteen modified-to-commonality arrows are allowed. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. The four abortion and schools arrows keep accepted-bridge-role-pair. The Grey County assimilation bridge and the checkout-trial bridge dropped their arrows when the wording changed on 2026-10-20. The remaining four draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US projects are shop-here asks for Grey County businesses that kept ordinary US suppliers. Signer counts stay on Tally. Greta's boycott and Neil's narrower sentence are not arrows. On 2026-10-21 those two sentences dropped the clauses about refusing to sign. The stored attester refusal is for the longer wording. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", + "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Eleven modified-to-commonality arrows are allowed. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. The employment arrows were dropped the same day when the published-appeal clause was removed. The four abortion and schools arrows keep accepted-bridge-role-pair. The Grey County assimilation bridge and the checkout-trial bridge dropped their arrows when the wording changed on 2026-10-20. The remaining two Canada-US draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US projects are shop-here asks for Grey County businesses that kept ordinary US suppliers. Signer counts stay on Tally. Greta's boycott and Neil's narrower sentence are not arrows. On 2026-10-21 those two sentences dropped the clauses about refusing to sign. The stored attester refusal is for the longer wording. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", "people": [ { "userId": "user-003", "name": "Imani", "signs": ["bank-blocking", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "funds": ["Six-shop refundable checkout trial", "Independent checkout security review", "Fee and failure table", "Owen Sound merchant directory", "Quarterly checkout clinic and host kit", "Blocked-customer sale record"], "notes": "The bank-blocking sentence is why she funds the checkout projects. Those projects stay aligned to the refundable-checkout sentence. Signing the checkout want is not a signature that shops must take crypto from everyone." }, { "userId": "user-016", "name": "June", "signs": ["bank-blocking", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "funds": ["Six-shop refundable checkout trial", "Independent checkout security review", "Fee and failure table", "Owen Sound merchant directory", "Quarterly checkout clinic and host kit", "Blocked-customer sale record"], "notes": "Same funding as Imani. The blocked-customer record is the project aligned to bank-blocking. The other five are the earlier checkout steps." }, @@ -29,8 +29,6 @@ { "from": "compromise-abortion/modified-right", "to": "compromise-abortion/commonality", "evidence": "accepted-bridge-role-pair", "why": "Accepted 2026-08-30." }, { "from": "lgbt-schools/modified-left", "to": "lgbt-schools/commonality", "evidence": "accepted-bridge-role-pair", "why": "Accepted 2026-08-31. This arrow is about pushing versus support. It is not a medical claim." }, { "from": "lgbt-schools/modified-right", "to": "lgbt-schools/commonality", "evidence": "accepted-bridge-role-pair", "why": "Accepted 2026-08-31." }, - { "from": "opinion-employment/modified-left", "to": "opinion-employment/commonality", "evidence": "live-attester-modified-to-commonality", "why": "Blessed after the modifieds gained a camp priority the commonality does not contain." }, - { "from": "opinion-employment/modified-right", "to": "opinion-employment/commonality", "evidence": "live-attester-modified-to-commonality", "why": "Same rewrite. The first wording let commonality imply both modifieds." }, { "from": "canada-us-ties/modified-left", "to": "canada-us-ties/commonality", "evidence": "live-attester-modified-to-commonality", "why": "Blessed after the commonality dropped 'I'd be okay with saying that' and each modified kept a priority the commonality omits." }, { "from": "canada-us-ties/modified-right", "to": "canada-us-ties/commonality", "evidence": "live-attester-modified-to-commonality", "why": "The first modified-right was implied by the commonality. The rewrite was not." }, { "from": "ai-pause/modified-small-chance", "to": "ai-pause/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high, first wording. Role modified-left." }, @@ -40,6 +38,8 @@ { "from": "ai-pause/modified-children", "to": "ai-pause/commonality", "evidence": "live-attester-modified-to-commonality", "why": "2026-10-16 deepseek-v3.2 bless, high. Plain-board modified." } ], "refusedAndUnpublished": [ + { "from": "opinion-employment/modified-left", "to": "opinion-employment/commonality", "why": "2026-10-16 deepseek-v3.2 blessed the wording that required a published appeal. That clause was removed on 2026-10-21. This row is evidence for the longer sentence only." }, + { "from": "opinion-employment/modified-right", "to": "opinion-employment/commonality", "why": "Same stored bless, same cut. Evidence for the longer sentence only." }, { "from": "opinion-employment/commonality", "to": "opinion-employment/modified-left", "why": "First wording, 2026-10-16, implies true high. Rewritten. The replacement refuses." }, { "from": "opinion-employment/commonality", "to": "opinion-employment/modified-right", "why": "First wording, implies true high. Rewritten." }, { "from": "opinion-employment/modified-left", "to": "opinion-employment/modified-right", "why": "First wording, implies true high. Rewritten." }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json index 3dfd506a..8f2492fb 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-note-spend.json @@ -1309,32 +1309,6 @@ }, "evidence": "accepted-bridge-role-pair" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "opinion-employment", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "opinion-employment", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "opinion-employment", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "opinion-employment", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1462,8 +1436,8 @@ "publish-statement" ], "targetCount": { - "min": 13, - "max": 13 + "min": 11, + "max": 11 } }, { @@ -1472,8 +1446,8 @@ "create-cause" ], "targetCount": { - "min": 56, - "max": 56 + "min": 55, + "max": 55 } }, { @@ -1483,8 +1457,8 @@ "publish-statement" ], "targetCount": { - "min": 56, - "max": 56 + "min": 55, + "max": 55 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json index cb4dbab8..8756df1d 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-projects.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-projects.json @@ -403,21 +403,13 @@ } ], "opinion-employment": [ - { - "title": "Appeal-before-blacklist card", - "outcome": "Publish the commonality sentence and a one-page appeal checklist a workplace can fill in before treating someone as unemployable for a stated opinion.", - "statementRefs": [ - "commonality" - ], - "blocker": "The checklist is useful to the next workplace and paid for by none of them" - }, { "title": "Still-a-sanction note", - "outcome": "Publish the modified-left sentence so the card does not get read as a ban on every workplace response.", + "outcome": "Publish the modified-left sentence, which keeps a workplace response to threats, harassment of coworkers, and someone refusing to do the job.", "statementRefs": [ "modified-left" ], - "blocker": "The exception for threats and refused work disappears if only the short sentence is copied" + "blocker": "Those exceptions disappear if only the short sentence is copied" } ], "canada-us-ties": [ diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json index 7a4d634a..8f5d2613 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-reimburse.json @@ -1294,32 +1294,6 @@ }, "evidence": "accepted-bridge-role-pair" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "opinion-employment", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "opinion-employment", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "opinion-employment", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "opinion-employment", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1447,8 +1421,8 @@ "publish-statement" ], "targetCount": { - "min": 13, - "max": 13 + "min": 11, + "max": 11 } }, { @@ -1457,8 +1431,8 @@ "create-cause" ], "targetCount": { - "min": 56, - "max": 56 + "min": 55, + "max": 55 } }, { @@ -1468,8 +1442,8 @@ "publish-statement" ], "targetCount": { - "min": 56, - "max": 56 + "min": 55, + "max": 55 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index cfd22f8f..e430c3b0 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -268,7 +268,7 @@ "id": "opinion-employment", "title": "Ordinary opinions and employment", "notes": [ - "Draft bridge. Unevaluated." + "Draft bridge. On 2026-10-21 the published-appeal clause was removed from the commonality and both modifieds. The stored attester bless is for the longer wording and is not a published arrow." ], "statements": [ { @@ -284,17 +284,17 @@ { "id": "modified-left", "role": "modified-left", - "text": "I don't want someone treated as unemployable for an ordinary political opinion. I still want a workplace to respond to threats, to harassment of coworkers, and to someone refusing to do the job. I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, if threats, harassment of coworkers, and refusing the work still were, and if a published appeal came before that treatment. I'd still rather a workplace could tell people not to campaign for a candidate while they are on the clock. I feel less strongly about that than about someone losing a livelihood, and I don't have to defend every opinion." + "text": "I don't want someone treated as unemployable for an ordinary political opinion. I still want a workplace to respond to threats, to harassment of coworkers, and to someone refusing to do the job. I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, and if threats, harassment of coworkers, and refusing the work still were. I'd still rather a workplace could tell people not to campaign for a candidate while they are on the clock. I feel less strongly about that than about someone losing a livelihood, and I don't have to defend every opinion." }, { "id": "modified-right", "role": "modified-right", - "text": "Institutions should stop ending people's careers over ordinary political opinions. I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, if threats, harassment of coworkers, and refusing the work still were, and if a published appeal came before that treatment. I'd still rather a church or a private club could refuse membership over an ordinary political opinion. I feel more strongly about that freedom than about employment rules, and I don't need every sanction anywhere to be forbidden." + "text": "Institutions should stop ending people's careers over ordinary political opinions. I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, and if threats, harassment of coworkers, and refusing the work still were. I'd still rather a church or a private club could refuse membership over an ordinary political opinion. I feel more strongly about that freedom than about employment rules, and I don't need every sanction anywhere to be forbidden." }, { "id": "commonality", "role": "commonality", - "text": "I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, if threats, harassment of coworkers, and refusing the work still were, and if a published appeal came before that treatment." + "text": "I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, and if threats, harassment of coworkers, and refusing the work still were." } ] }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index 41cc39ab..41ac5005 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -1294,32 +1294,6 @@ }, "evidence": "accepted-bridge-role-pair" }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "opinion-employment", - "statementId": "modified-left" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "opinion-employment", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, - { - "from": { - "collectionId": "network-societies-v1-b2", - "groupId": "opinion-employment", - "statementId": "modified-right" - }, - "to": { - "collectionId": "network-societies-v1-b2", - "groupId": "opinion-employment", - "statementId": "commonality" - }, - "evidence": "live-attester-modified-to-commonality" - }, { "from": { "collectionId": "network-societies-v1-b2", @@ -1447,8 +1421,8 @@ "publish-statement" ], "targetCount": { - "min": 13, - "max": 13 + "min": 11, + "max": 11 } }, { @@ -1457,8 +1431,8 @@ "create-cause" ], "targetCount": { - "min": 56, - "max": 56 + "min": 55, + "max": 55 } }, { @@ -1468,8 +1442,8 @@ "publish-statement" ], "targetCount": { - "min": 56, - "max": 56 + "min": 55, + "max": 55 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 0a3eec2d..720f32d6 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -14,13 +14,13 @@ Canada–US stays a bridge. The shared sentence is still ordinary purchases and ## What the plan publishes -A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 74 statements and 56 projects. The minors' medicine draft was deleted on 2026-10-21. On 2026-10-21 the Canada–US catalogue projects were replaced with four shop-here asks. The Grey County conduct sentences were removed on 2026-10-21. The Owen Sound dual-count draft was deleted the same day, when the voting board was rewritten. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. +A plan written on 2026-10-16 has 72 users, 124 statements, 62 projects, and 523 writes, in `output/campaigns/network-societies-v1-b2-canada-us/`. On 2026-10-20 the source sentences were cut back to signable wants. The current manifest is 74 statements and 55 projects. The minors' medicine draft was deleted on 2026-10-21. On 2026-10-21 the Canada–US catalogue projects were replaced with four shop-here asks. The Grey County conduct sentences were removed on 2026-10-21. The Owen Sound dual-count draft was deleted the same day, when the voting board was rewritten. That is not the mined graph. The Grey County assimilation bridge and the checkout-trial bridge no longer publish implication arrows, because their wording changed after the attester pass. On 2026-10-19 that directory mined 523/523 and reconciled 523/523. Do not regenerate it. The earlier mined run was 60 users, 100 statements, and 52 projects. The AI-pause plan, before the Canada–US planks, was 67 users, 117 statements, and 57 projects. Seed: `commonality-network-societies-v1-b2-2026-10-16`. Regenerate the plan before quoting a write count. The old 356-write figure was for 70 statements and 40 projects. The abortion cause and the schools cause are bridge-shaped. Each main board lists only the accepted commonality sentence. The natural and modified sentences are on the side boards. The Michigan authority board is an ordinary board, so its own sentences stay visible there. Schools has no second board. Four more causes are also bridge-shaped, from `statement-generation-exercises/06-network-society-alliances.json`: Grey County assimilation sessions, the Owen Sound checkout trial, ordinary opinions and employment, and ordinary Canada–US ties. The Owen Sound dual-count poll is no longer a cause. Minors' medicine and courtesy was deleted on 2026-10-21. Its stored attester pass is not a published arrow. -Thirteen implication actions are planned. Four are the accepted abortion and schools pairs, labeled `accepted-bridge-role-pair`. Nine are modified-to-commonality pairs, labeled `live-attester-modified-to-commonality`: four from the remaining draft bridges and five from the AI-pause board. The minors' medicine pair is not among them. The dual-count pair is not among them. The live record is `network-societies-v1-b2-implication-evaluations.json` (deepseek/deepseek-v3.2, prompt fingerprint `2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891`, 82 pairs). The draft bridges blessed every designed-yes and refused every designed-no after one rewrite. Employment modifieds now name a camp priority the commonality does not contain (on-the-clock campaigning; churches and private clubs). The Canada commonality no longer says "I'd be okay with saying that," and each modified keeps a priority the commonality omits. The AI-pause pass matched on the first wording: each modified implies the shared pause sentence, and the naturals, poles, and reverse arrows do not. Naturals, reverse arrows, cross-modified arrows, and the assimilation cluster against the accepted immigration statements stay unpublished. Those refusals are in the decisions file. A later pass refused the Canada–US boycott and the narrower sentence, both ways that were checked, at high confidence on the first wording. No new arrow was added. The five remaining draft clusters, the expanded Canada–US board, and the AI-pause board are still not accepted seed. +Eleven implication actions are planned. Four are the accepted abortion and schools pairs, labeled `accepted-bridge-role-pair`. Seven are modified-to-commonality pairs, labeled `live-attester-modified-to-commonality`: two from the Canada–US draft and five from the AI-pause board. The employment pair is not among them. On 2026-10-21 the published-appeal clause was removed, and the stored bless is for the longer wording. The appeal checklist project is gone. One project remains: the still-a-sanction note. The minors' medicine pair is not among them. The dual-count pair is not among them. The live record is `network-societies-v1-b2-implication-evaluations.json` (deepseek/deepseek-v3.2, prompt fingerprint `2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891`, 82 pairs). The draft bridges blessed every designed-yes and refused every designed-no after one rewrite. Employment modifieds now name a camp priority the commonality does not contain (on-the-clock campaigning; churches and private clubs). The Canada commonality no longer says "I'd be okay with saying that," and each modified keeps a priority the commonality omits. The AI-pause pass matched on the first wording: each modified implies the shared pause sentence, and the naturals, poles, and reverse arrows do not. Naturals, reverse arrows, cross-modified arrows, and the assimilation cluster against the accepted immigration statements stay unpublished. Those refusals are in the decisions file. A later pass refused the Canada–US boycott and the narrower sentence, both ways that were checked, at high confidence on the first wording. No new arrow was added. The five remaining draft clusters, the expanded Canada–US board, and the AI-pause board are still not accepted seed. `moderator-checklist` is one statement. It is on the Michigan authority board and the Owen Sound voting board. One project, "Moderator checklist card", references it. diff --git a/fake-data-generation/statement-generation-exercises/06-network-society-alliances.json b/fake-data-generation/statement-generation-exercises/06-network-society-alliances.json index 8ea0f330..01f5b629 100644 --- a/fake-data-generation/statement-generation-exercises/06-network-society-alliances.json +++ b/fake-data-generation/statement-generation-exercises/06-network-society-alliances.json @@ -157,17 +157,17 @@ { "id": "modified-left", "role": "modified-left", - "text": "I don't want someone treated as unemployable for an ordinary political opinion. I still want a workplace to respond to threats, to harassment of coworkers, and to someone refusing to do the job. I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, if threats, harassment of coworkers, and refusing the work still were, and if a published appeal came before that treatment. I'd still rather a workplace could tell people not to campaign for a candidate while they are on the clock. I feel less strongly about that than about someone losing a livelihood, and I don't have to defend every opinion." + "text": "I don't want someone treated as unemployable for an ordinary political opinion. I still want a workplace to respond to threats, to harassment of coworkers, and to someone refusing to do the job. I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, and if threats, harassment of coworkers, and refusing the work still were. I'd still rather a workplace could tell people not to campaign for a candidate while they are on the clock. I feel less strongly about that than about someone losing a livelihood, and I don't have to defend every opinion." }, { "id": "modified-right", "role": "modified-right", - "text": "Institutions should stop ending people's careers over ordinary political opinions. I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, if threats, harassment of coworkers, and refusing the work still were, and if a published appeal came before that treatment. I'd still rather a church or a private club could refuse membership over an ordinary political opinion. I feel more strongly about that freedom than about employment rules, and I don't need every sanction anywhere to be forbidden." + "text": "Institutions should stop ending people's careers over ordinary political opinions. I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, and if threats, harassment of coworkers, and refusing the work still were. I'd still rather a church or a private club could refuse membership over an ordinary political opinion. I feel more strongly about that freedom than about employment rules, and I don't need every sanction anywhere to be forbidden." }, { "id": "commonality", "role": "commonality", - "text": "I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, if threats, harassment of coworkers, and refusing the work still were, and if a published appeal came before that treatment." + "text": "I'd be okay with it if an ordinary political opinion, by itself, were not grounds for treating someone as unemployable, and if threats, harassment of coworkers, and refusing the work still were." } ] }, diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index ae391647..1098a8be 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -274,7 +274,7 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one const plan = await buildCampaignPlan(manifest); assert.equal(plan.users.length, 72); assert.equal(plan.statements.length, 74); - assert.equal(plan.projects.length, 56); + assert.equal(plan.projects.length, 55); assert.equal(plan.actions.filter((action) => action.funding?.kind === 'retroactive').length, 0); const checklist = plan.statements.find((statement) => statement.source.statementId === 'moderator-checklist'); assert.ok(checklist); @@ -296,11 +296,11 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one assert.equal(notice.causeId, 'civic-assimilation'); assert.deepEqual(notice.alsoOnCauseIds, ['christian-teaching']); const implications = plan.actions.filter((action) => action.type === 'attest-implication'); - assert.equal(implications.length, 13); + assert.equal(implications.length, 11); const accepted = implications.filter((action) => action.implication!.evidence === 'accepted-bridge-role-pair'); const live = implications.filter((action) => action.implication!.evidence === 'live-attester-modified-to-commonality'); assert.equal(accepted.length, 4); - assert.equal(live.length, 9); + assert.equal(live.length, 7); for (const action of accepted) { const from = plan.statements.find((statement) => statement.id === action.implication!.fromStatementId)!; assert.ok(from.source.collectionId === 'compromise-abortion' || from.source.collectionId === 'lgbt-schools'); @@ -332,9 +332,10 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one for (const causeId of ['opinion-employment', 'canada-us-ties']) { const board = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === causeId)!.board!; assert.equal(board.role, 'commonality'); - assert.equal(implications.filter((action) => action.causeId === causeId).length, 2, causeId); - assert.ok(implications.filter((action) => action.causeId === causeId).every((action) => action.implication!.evidence === 'live-attester-modified-to-commonality')); } + assert.equal(implications.filter((action) => action.causeId === 'opinion-employment').length, 0); + assert.equal(implications.filter((action) => action.causeId === 'canada-us-ties').length, 2); + assert.ok(implications.filter((action) => action.causeId === 'canada-us-ties').every((action) => action.implication!.evidence === 'live-attester-modified-to-commonality')); const pauseBoard = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === 'ai-pause')!.board!; assert.equal(pauseBoard.role, 'plain'); const pauseArrows = implications.filter((action) => action.causeId === 'ai-pause'); @@ -355,7 +356,8 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one assert.equal(implications.some((action) => action.implication!.fromStatementId === statement.id || action.implication!.toStatementId === statement.id), false, statementId); } for (const causeId of manifest.causes.map((cause) => cause.id)) { - assert.ok(plan.projects.filter((project) => project.causeId === causeId).length >= 2, causeId); + const minimum = causeId === 'opinion-employment' ? 1 : 2; + assert.ok(plan.projects.filter((project) => project.causeId === causeId).length >= minimum, causeId); } }); From 61344099b1b93f444c965ce87b7e69c8be3c5034 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 15:41:14 -0400 Subject: [PATCH 42/46] Mark the employment board good enough for now. Adam accepted the sentences after the published-appeal cut. The next wording session is the AI-pause board. --- .../brainstorming/network-societies-campaign-plan.md | 4 ++-- .../campaigns/network-societies-v1-b2-statements.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 91d698df..6aa52e38 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects), the Grey County voting bridge, and US-friendly Canadians are good enough for now. Minors' medicine was deleted on 2026-10-21. The next board is ordinary opinions and employment. On 2026-10-21 the published-appeal clause and the appeal checklist project were removed. The rest of that board is still in review. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects), the Grey County voting bridge, US-friendly Canadians, and ordinary opinions and employment are good enough for now. Minors' medicine was deleted on 2026-10-21. The next board is AI pause. Do not edit that board's statement or project text until he is in that session. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -344,4 +344,4 @@ Boards that still have live arrows, and have not had this wording review: AI pau - [x] Minors' medicine, 2026-10-21. Scrapped. The five sentences and two projects are gone from the campaign source. The stored attester pass stays in the evaluations file and is not a published arrow. Not mined. -- [ ] Ordinary opinions and employment, 2026-10-21. The published-appeal clause is out of the commonality and both modifieds. The appeal checklist project is gone. One project remains, the still-a-sanction note, aligned only to modified-left. The two modified-to-commonality arrows are unpublished. The stored bless is for the longer wording. The board is not checked. Not mined. \ No newline at end of file +- [x] Ordinary opinions and employment, 2026-10-21. Good enough for now. The published-appeal clause is out of the commonality and both modifieds. The appeal checklist project is gone. One project remains, the still-a-sanction note, aligned only to modified-left. The two modified-to-commonality arrows stay unpublished. The stored bless is for the longer wording. Not mined. \ No newline at end of file diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index e430c3b0..9083edf7 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -268,7 +268,7 @@ "id": "opinion-employment", "title": "Ordinary opinions and employment", "notes": [ - "Draft bridge. On 2026-10-21 the published-appeal clause was removed from the commonality and both modifieds. The stored attester bless is for the longer wording and is not a published arrow." + "Draft bridge. Good enough for now (2026-10-21). The published-appeal clause is out of the commonality and both modifieds. The stored attester bless is for the longer wording and is not a published arrow." ], "statements": [ { From 7550a375e28de83e83fbcba9d637652bfca875c1 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 16:18:53 -0400 Subject: [PATCH 43/46] Record the post-wording implication pass for the network-societies campaign. A deepseek-v3.2 pass blessed the voting and shortened employment modifieds and the two civic containment sentences, and refused the designed negatives including every crypto pair. Those six blesses are now allowed. Christian teaching and home learning still have no candidate pair. Nothing was mined. --- .../network-societies-campaign-plan.md | 26 +- fake-data-generation/campaignPlanner.ts | 4 +- fake-data-generation/campaignSchema.ts | 7 +- .../network-societies-v1-b2-decisions.json | 2 +- ...cieties-v1-b2-implication-evaluations.json | 364 +++++++++++++++++- .../network-societies-v1-b2-statements.json | 6 +- .../campaigns/network-societies-v1-b2.json | 82 +++- .../campaigns/network-societies-v1-b2.md | 4 +- .../test/campaignPlanner.test.ts | 18 +- 9 files changed, 481 insertions(+), 32 deletions(-) diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 6aa52e38..92beb10b 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -28,7 +28,7 @@ Two local campaigns exist. Neither is the finished fifteen-family world, and nei **Pilot** ([`network-societies-v1-pilot.md`](../campaigns/network-societies-v1-pilot.md)). Four families: Owen Sound checkout, Grey County civic life, Christian teaching, home learning. About 40 users, 40 statements, 20 projects. A local run on 2026-10-16 mined and reconciled 207/207. No implication edges. The class-host directory is one statement on two boards. Pat delegates a note to Ned; the adapter can revoke a delegation. Persona belief choices in the pilot decisions file are pinned the same way as batch 2. The mined pilot output is the plan from before those pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. -**Batch 2** ([`network-societies-v1-b2.md`](../campaigns/network-societies-v1-b2.md)). Keeps those four families and adds the accepted abortion settlement, the accepted schools-and-pushing bridge, an Owen Sound voting trial, draft bridges (assimilation sessions, dual-count poll, checkout trial, ordinary opinions and employment, Canada–US ties; minors' medicine was deleted on 2026-10-21), and a plain AI-pause board. Canada–US is past the five-statement draft: five work planks, a boycott, and a narrower-ties sentence sit on the commonality board. The current manifest is 72 users, 74 statements, and 55 projects. Eleven implication actions are allowed: four accepted bridge pairs and seven live attester blesses, including five AI-pause modifieds. The employment arrows came off on 2026-10-21 with the published-appeal clause. The Canada–US boycott and narrower sentence were refused and stay unpublished. Designed-negative pairs stay unpublished. The other five draft clusters and the AI-pause board are not accepted seed. Canada–US is not accepted seed either. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That output is the plan from before the belief pins and before the AI-pause arrows. Do not regenerate into it. Do not regenerate into `output/campaigns/network-societies-v1-b2-ai-pause/`. The current plan lives in `output/campaigns/network-societies-v1-b2-canada-us/` and was mined locally on 2026-10-19. +**Batch 2** ([`network-societies-v1-b2.md`](../campaigns/network-societies-v1-b2.md)). Keeps those four families and adds the accepted abortion settlement, the accepted schools-and-pushing bridge, an Owen Sound voting trial, draft bridges (assimilation sessions, dual-count poll, checkout trial, ordinary opinions and employment, Canada–US ties; minors' medicine was deleted on 2026-10-21), and a plain AI-pause board. Canada–US is past the five-statement draft: five work planks, a boycott, and a narrower-ties sentence sit on the commonality board. The current manifest is 72 users, 74 statements, and 55 projects. Seventeen implication actions are allowed: four accepted bridge pairs, eleven live modified-to-commonality blesses (Canada–US, AI pause, voting, and the shortened employment pair), and two civic containment blesses. The 2026-10-16 employment bless is for the longer wording and is not the published evidence. The Canada–US boycott and narrower sentence were refused and stay unpublished. Designed-negative pairs stay unpublished. The other five draft clusters and the AI-pause board are not accepted seed. Canada–US is not accepted seed either. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That output is the plan from before the belief pins and before the AI-pause arrows. Do not regenerate into it. Do not regenerate into `output/campaigns/network-societies-v1-b2-ai-pause/`. The current plan lives in `output/campaigns/network-societies-v1-b2-canada-us/` and was mined locally on 2026-10-19. The planner now pins batch-2 `signs` and `rejects` from the decisions file. Eli's only planned belief on the abortion commonality is `disbelieve`. Unsigned is still not a rejection. @@ -260,7 +260,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Adam is reviewing the generated sentences one board at a time, in fresh sessions. Crypto, Grey County civic life, Christian teaching, home learning, the abortion settlement (the accepted five and the Michigan authority sentences), schools and pushing (the accepted five, the Grand Rapids projects, and the three Grey County projects), the Grey County voting bridge, US-friendly Canadians, and ordinary opinions and employment are good enough for now. Minors' medicine was deleted on 2026-10-21. The next board is AI pause. Do not edit that board's statement or project text until he is in that session. Do not mine another copy. Implication attestations for the accepted boards are listed under the review and wait until the wording sessions are done. Do not mine another copy. After that, Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Next task:** Wording review is done for the boards that have sentences. A 2026-10-21 attester pass published the voting, employment, and civic arrows named in the review. Christian teaching and home learning still have no candidate pair. Do not invent one. Do not edit statement or project text on a board Adam has called good enough. Do not mine another copy. Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. @@ -319,16 +319,16 @@ Read the current sentences in `network-societies-v1-b2-statements.json`. Adam is Do this after the wording pass, not during it. A stored attester result is only evidence for the sentences that were evaluated. The 2026-10-16 pass does not bless a sentence we rewrote. -The boards Adam has already called good enough publish **no** implication arrows: +The boards Adam has already called good enough. A 2026-10-21 deepseek-v3.2 pass (prompt fingerprint unchanged) evaluated the pairs that had candidates. Christian teaching and home learning still have no candidate pair, so they were not sent. -- [ ] Crypto (`refundable-checkout`, `bank-blocking`, `refuse-crypto-payments`). The checkout-trial bridge arrows were dropped when that wording changed. -- [ ] Grey County civic life. `some-immigration` and `fewer-newcomers` contain the assimilation sentence, so they are the candidates. `english-around-here` is a designed no. `keep-own-ways` is a refusal. -- [ ] Christian teaching (`shared-teaching-notes`, `independent-church-help`, `keep-notes-inside`, `civic-transcription-only`). No candidate pair has been chosen. Do not evaluate during a wording session. -- [ ] Home learning (`reusable-home-materials`, `materials-without-religion`, `taught-in-staffed-schools`). No candidate pair. `taught-in-staffed-schools` is a refusal. Do not evaluate during the wording session. -- [ ] Abortion settlement. The accepted pair already has live arrows (`modified-left` and `modified-right` to `commonality`). The wording did not change on 2026-10-21, so those arrows stay. Do not re-evaluate them in a wording session. The Michigan sentences are separate wants and have no bridge roles. -- [ ] Schools and pushing. The accepted pair already has live arrows. The wording did not change on 2026-10-21, so those arrows stay. The Grey County projects do not add sentences. +- [x] Crypto (`refundable-checkout`, `bank-blocking`, `refuse-crypto-payments`). 2026-10-21. Both directions of checkout versus bank-blocking, and both directions of the refusal versus checkout, refused at high confidence. No arrow. The checkout-trial bridge arrows stay dropped. +- [x] Grey County civic life. 2026-10-21. `some-immigration` and `fewer-newcomers` bless `assimilate` at high confidence. Those two are allowed as `live-attester-recorded-bless`. `english-around-here`, `keep-own-ways`, and both reverse arrows refused. Not mined. +- [ ] Christian teaching (`shared-teaching-notes`, `independent-church-help`, `keep-notes-inside`, `civic-transcription-only`). No candidate pair has been chosen. +- [ ] Home learning (`reusable-home-materials`, `materials-without-religion`, `taught-in-staffed-schools`). No candidate pair. `taught-in-staffed-schools` is a refusal. +- [x] Abortion settlement. The accepted pair already has live arrows (`modified-left` and `modified-right` to `commonality`). The wording did not change on 2026-10-21, so those arrows stay. Not re-evaluated. The Michigan sentences are separate wants and have no bridge roles. +- [x] Schools and pushing. The accepted pair already has live arrows. The wording did not change on 2026-10-21, so those arrows stay. Not re-evaluated. The Grey County projects do not add sentences. -Boards that still have live arrows, and have not had this wording review: AI pause. Employment's arrows came off on 2026-10-21 with the published-appeal clause. Minors' medicine was deleted on 2026-10-21. Its stored attester pass is not a published arrow. Canada–US boycott and narrower-ties stay refused. The stored refusal is for the longer wording. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. Re-check the remaining arrows only if a sentence on that board changes. +Boards that still have live arrows: AI pause. Adam called that wording good enough on 2026-10-21. The five modified-to-commonality blesses are still for the current text (sha256 of each sentence matches the 2026-10-16 evaluation). Employment's arrows came off on 2026-10-21 with the published-appeal clause. Minors' medicine was deleted on 2026-10-21. Its stored attester pass is not a published arrow. Canada–US boycott and narrower-ties stay refused. The stored refusal is for the longer wording. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. Re-check the remaining arrows only if a sentence on that board changes. - [x] Christian teaching, 2026-10-20. Good enough for now. Two wants: freely available notes, with the confession named and no joint doctrine; independent-church help, with qualifications and doctrine stated. Two refusals: notes stay inside the church, and civic transcription excludes church teaching. Notes projects align only to `shared-teaching-notes`. The rota and the host kit align only to `independent-church-help`. No implication arrow. Not mined. @@ -338,10 +338,12 @@ Boards that still have live arrows, and have not had this wording review: AI pau - [x] Schools and pushing, 2026-10-21. Good enough for now. The accepted five stay as written. Grand Rapids keeps its three projects. Grey County adds the Owen Sound meetings, the schools packet, and the meeting host kit, aligned only to those five. The conduct sentences are deleted. Not mined. -- [x] Voting in Grey County, 2026-10-21. Good enough for now. Each natural wants some other system in Grey County, preferably ranked choice or preferably approval voting. Each modified names that preference and contains the commonality: switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. Keeping first-past-the-post stays on the commonality board as a refusal. The poll, the approval count, the counting notes, and the host kit align only to the commonality. No arrow until an attester blesses this wording. Not mined. +- [x] Voting in Grey County, 2026-10-21. Good enough for now. Each natural wants some other system in Grey County, preferably ranked choice or preferably approval voting. Each modified names that preference and contains the commonality: switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. Keeping first-past-the-post stays on the commonality board as a refusal. The poll, the approval count, the counting notes, and the host kit align only to the commonality. A 2026-10-21 pass blessed both modifieds and refused the naturals, the refusal, and the reverse arrow. Those two arrows are allowed. Not mined. - [x] US-friendly Canadians, 2026-10-21. Good enough for now. The boycott sentence does not talk about signing. The narrower sentence only names family visits and does not reject purchases. Four shop-here asks, all aligned only to the commonality: the Owen Sound grocer, the Meaford hardware store, the Grey County list, and the monthly check. Signer counts stay on Tally. The two modified-to-commonality arrows were not re-evaluated. The boycott and narrower refusals in the evaluations file are for the longer wording. Not mined. - [x] Minors' medicine, 2026-10-21. Scrapped. The five sentences and two projects are gone from the campaign source. The stored attester pass stays in the evaluations file and is not a published arrow. Not mined. -- [x] Ordinary opinions and employment, 2026-10-21. Good enough for now. The published-appeal clause is out of the commonality and both modifieds. The appeal checklist project is gone. One project remains, the still-a-sanction note, aligned only to modified-left. The two modified-to-commonality arrows stay unpublished. The stored bless is for the longer wording. Not mined. \ No newline at end of file +- [x] Ordinary opinions and employment, 2026-10-21. Good enough for now. The published-appeal clause is out of the commonality and both modifieds. The appeal checklist project is gone. One project remains, the still-a-sanction note, aligned only to modified-left. A 2026-10-21 pass blessed both shortened modifieds and refused the naturals and the reverse arrow. Those two arrows are allowed. The 2026-10-16 bless is for the longer wording. Not mined. + +- [x] AI pause, 2026-10-21. Good enough for now. The shared treaty sentence, the five naturals, the five modifieds, and the two poles stay as written. The five modifieds contain the commonality verbatim. Their 2026-10-16 blesses still match those hashes. Not mined. \ No newline at end of file diff --git a/fake-data-generation/campaignPlanner.ts b/fake-data-generation/campaignPlanner.ts index 8a882e6b..6e1ad654 100644 --- a/fake-data-generation/campaignPlanner.ts +++ b/fake-data-generation/campaignPlanner.ts @@ -210,7 +210,9 @@ function validateImplicationPair(from: PlannedStatement, to: PlannedStatement, e const liveModified = evidence === 'live-attester-modified-to-commonality' && to.role === 'commonality' && (from.role === 'modified-left' || from.role === 'modified-right' || from.source.statementId.startsWith('modified-')); - if (!sameGroup || (!bridgeRoles && !liveModified)) throw new Error(`unsuitable implication ${from.id} -> ${to.id}: pair lacks accepted bridge-role evidence`); + // A same-group pair with no bridge role. The allowance exists only after a stored bless of the current text. + const recordedBless = evidence === 'live-attester-recorded-bless'; + if (!sameGroup || (!bridgeRoles && !liveModified && !recordedBless)) throw new Error(`unsuitable implication ${from.id} -> ${to.id}: pair lacks accepted bridge-role evidence`); } function statementsOnCause(statements: PlannedStatement[], causeId: string): PlannedStatement[] { diff --git a/fake-data-generation/campaignSchema.ts b/fake-data-generation/campaignSchema.ts index 191b3c3a..7cfe8394 100644 --- a/fake-data-generation/campaignSchema.ts +++ b/fake-data-generation/campaignSchema.ts @@ -137,7 +137,10 @@ export interface CampaignManifestV1 { }; } -export type CampaignImplicationEvidence = 'accepted-bridge-role-pair' | 'live-attester-modified-to-commonality'; +export type CampaignImplicationEvidence = + | 'accepted-bridge-role-pair' + | 'live-attester-modified-to-commonality' + | 'live-attester-recorded-bless'; export interface CampaignImplicationAllowance { from: CampaignStatementRef; @@ -186,7 +189,7 @@ function validateCauses(manifest: CampaignManifestV1): void { const allowanceKeys = allowances.map((item) => `${statementRefKey(item.from)}=>${statementRefKey(item.to)}`); requireUnique(allowanceKeys, 'implication allowances'); for (const item of allowances) { - if (item.evidence !== 'accepted-bridge-role-pair' && item.evidence !== 'live-attester-modified-to-commonality') { + if (item.evidence !== 'accepted-bridge-role-pair' && item.evidence !== 'live-attester-modified-to-commonality' && item.evidence !== 'live-attester-recorded-bless') { throw new Error(`invalid implication evidence for ${allowanceKeys[allowances.indexOf(item)]}`); } if (item.from.collectionId !== item.to.collectionId || item.from.groupId !== item.to.groupId) { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json index 127cf8e2..a02c9187 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-decisions.json @@ -1,5 +1,5 @@ { - "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Eleven modified-to-commonality arrows are allowed. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. The employment arrows were dropped the same day when the published-appeal clause was removed. The four abortion and schools arrows keep accepted-bridge-role-pair. The Grey County assimilation bridge and the checkout-trial bridge dropped their arrows when the wording changed on 2026-10-20. The remaining two Canada-US draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US projects are shop-here asks for Grey County businesses that kept ordinary US suppliers. Signer counts stay on Tally. Greta's boycott and Neil's narrower sentence are not arrows. On 2026-10-21 those two sentences dropped the clauses about refusing to sign. The stored attester refusal is for the longer wording. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", + "note": "Authored persona decisions for batch 2. The planner pins each signs and rejects entry as one set-belief and does not overwrite it. Unsigned is not the same as an explicit rejection. Eli's rejection of the abortion commonality is authoring intent. Seventeen implication arrows are allowed as of 2026-10-21: four accepted bridge pairs, eleven modified-to-commonality blesses, and two civic containment blesses. The older sentence that eleven arrows are allowed is stale. The dual-count arrows were dropped on 2026-10-21 when that draft was deleted. The employment arrows were dropped that day when the published-appeal clause was removed, then allowed again after the 2026-10-21 pass on the shorter wording. The four abortion and schools arrows keep accepted-bridge-role-pair. The Grey County assimilation bridge and the checkout-trial bridge dropped their arrows when the wording changed on 2026-10-20. The remaining two Canada-US draft arrows and five AI-pause modified arrows use live-attester-modified-to-commonality from campaigns/network-societies-v1-b2-implication-evaluations.json (deepseek/deepseek-v3.2, 2026-10-16). Designed-no pairs in that file stay unpublished. The Canada-US projects are shop-here asks for Grey County businesses that kept ordinary US suppliers. Signer counts stay on Tally. Greta's boycott and Neil's narrower sentence are not arrows. On 2026-10-21 those two sentences dropped the clauses about refusing to sign. The stored attester refusal is for the longer wording. The AI-pause pass matched on the first wording. v4-flash returned empty content on longer pairs and was not used as a judgment. Delegated spending and a monthly pledge stay out of this campaign: the adapter can delegate and revoke a note, and Pat already does that with Ned, but nothing spends a delegated note or repeats a pledge.", "people": [ { "userId": "user-003", "name": "Imani", "signs": ["bank-blocking", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "funds": ["Six-shop refundable checkout trial", "Independent checkout security review", "Fee and failure table", "Owen Sound merchant directory", "Quarterly checkout clinic and host kit", "Blocked-customer sale record"], "notes": "The bank-blocking sentence is why she funds the checkout projects. Those projects stay aligned to the refundable-checkout sentence. Signing the checkout want is not a signature that shops must take crypto from everyone." }, { "userId": "user-016", "name": "June", "signs": ["bank-blocking", "refundable-checkout"], "rejects": ["refuse-crypto-payments"], "funds": ["Six-shop refundable checkout trial", "Independent checkout security review", "Fee and failure table", "Owen Sound merchant directory", "Quarterly checkout clinic and host kit", "Blocked-customer sale record"], "notes": "Same funding as Imani. The blocked-customer record is the project aligned to bank-blocking. The other five are the earlier checkout steps." }, diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-implication-evaluations.json b/fake-data-generation/campaigns/network-societies-v1-b2-implication-evaluations.json index c4856d35..207e105f 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-implication-evaluations.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-implication-evaluations.json @@ -5,8 +5,8 @@ "promptFingerprintAlgorithm": "sha256", "statementHashAlgorithm": "sha256", "source": "evaluateImplicationWithLLM", - "note": "Live model decisions. Heuristic fallback was not used. A bless is not acceptance into seed-content. The AI-pause pairs were evaluated in a later pass on the same model and prompt fingerprint; see aiPauseEvaluatedAt. The Canada-US boycott and narrower pairs were evaluated in a later pass on the same model and prompt fingerprint; see canadaUsEvaluatedAt.", - "pairCount": 82, + "note": "Live model decisions. Heuristic fallback was not used. A bless is not acceptance into seed-content. The AI-pause pairs were evaluated in a later pass on the same model and prompt fingerprint; see aiPauseEvaluatedAt. The Canada-US boycott and narrower pairs were evaluated in a later pass on the same model and prompt fingerprint; see canadaUsEvaluatedAt. A 2026-10-21 pass evaluated the current civic, voting, employment, and crypto sentences. See wordingPassEvaluatedAt. Civic containment blesses are not bridge-role pairs. Crypto pairs refused.", + "pairCount": 103, "mismatchCount": 0, "evaluations": [ { @@ -1402,9 +1402,367 @@ "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", "matched": true, "ms": 2933 + }, + { + "id": "civic-assimilation:some-immigration->assimilate", + "expectImplies": true, + "fromGroup": "civic-assimilation", + "toGroup": "civic-assimilation", + "fromRole": null, + "toRole": null, + "fromHash": "0a0e82a21c9d621797665ec3f84ad45e4dcaf7b34ec3cbacacb5d896046d6710", + "toHash": "3cc443d8d4c6f8aa88adcab19c45518873de402840fe48257a973d4d13757d4c", + "implies": true, + "confidence": "high", + "reasoning": "Strict subset — S2 retains the core claim about assimilation from S1 while dropping the separate claim about welcoming people. The assimilation claim is explicitly contained in S1.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 3792 + }, + { + "id": "civic-assimilation:fewer-newcomers->assimilate", + "expectImplies": true, + "fromGroup": "civic-assimilation", + "toGroup": "civic-assimilation", + "fromRole": null, + "toRole": null, + "fromHash": "7120b6741e628f5f16acc52cd7eb3a6bfa8a6b158bee01e375e598aee3fe6273", + "toHash": "3cc443d8d4c6f8aa88adcab19c45518873de402840fe48257a973d4d13757d4c", + "implies": true, + "confidence": "high", + "reasoning": "Strict subset — S2 retains the explicit conditional claim about assimilation from the second sentence of S1 and drops the preceding preference about fewer people moving in. The retained proposition is unchanged.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 2648 + }, + { + "id": "civic-assimilation:english-around-here->assimilate", + "expectImplies": false, + "fromGroup": "civic-assimilation", + "toGroup": "civic-assimilation", + "fromRole": null, + "toRole": null, + "fromHash": "26d22e44719bafff1abc2e21b78bbaa291346710cc3c5621a9f22e30d0abb872", + "toHash": "3cc443d8d4c6f8aa88adcab19c45518873de402840fe48257a973d4d13757d4c", + "implies": false, + "confidence": "high", + "reasoning": "S1 expresses a desire for people to 'get along in English' as a practical communication preference. S2 adds a substantive claim about cultural and linguistic 'assimilation' that is not present in S1. The concept of assimilation is a stronger, more specific, and potentially controversial claim that goes beyond a simple preference for a common language.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 3970 + }, + { + "id": "civic-assimilation:keep-own-ways->assimilate", + "expectImplies": false, + "fromGroup": "civic-assimilation", + "toGroup": "civic-assimilation", + "fromRole": null, + "toRole": null, + "fromHash": "69e7ff39594f1aad0967cf8a06b833c70e04fbc0a1fcca81aa253548083e45de", + "toHash": "3cc443d8d4c6f8aa88adcab19c45518873de402840fe48257a973d4d13757d4c", + "implies": false, + "confidence": "high", + "reasoning": "S2 asserts a desire for assimilation, which is the direct opposite of the desire explicitly stated in S1 ('I do not want them expected to assimilate'). S2 adds a claim that contradicts S1.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 4402 + }, + { + "id": "civic-assimilation:assimilate->some-immigration", + "expectImplies": false, + "fromGroup": "civic-assimilation", + "toGroup": "civic-assimilation", + "fromRole": null, + "toRole": null, + "fromHash": "3cc443d8d4c6f8aa88adcab19c45518873de402840fe48257a973d4d13757d4c", + "toHash": "0a0e82a21c9d621797665ec3f84ad45e4dcaf7b34ec3cbacacb5d896046d6710", + "implies": false, + "confidence": "high", + "reasoning": "S2 adds a new, substantive claim about welcoming people that is not present in S1. S1 states a conditional desire for assimilation if people are present, but does not express a desire for them to be welcomed or to come.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 3302 + }, + { + "id": "civic-assimilation:assimilate->fewer-newcomers", + "expectImplies": false, + "fromGroup": "civic-assimilation", + "toGroup": "civic-assimilation", + "fromRole": null, + "toRole": null, + "fromHash": "3cc443d8d4c6f8aa88adcab19c45518873de402840fe48257a973d4d13757d4c", + "toHash": "7120b6741e628f5f16acc52cd7eb3a6bfa8a6b158bee01e375e598aee3fe6273", + "implies": false, + "confidence": "high", + "reasoning": "S2 adds a new, controversial claim not present in S1: a preference for fewer immigrants. S1 only states a condition for assimilation if immigrants are present, not a preference for their absence.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 2731 + }, + { + "id": "voting:ranked-choice-and-try->try-other-systems", + "expectImplies": true, + "fromGroup": "voting", + "toGroup": "voting", + "fromRole": "modified-left", + "toRole": "commonality", + "fromHash": "f5a54bedbf37116d4af7065566b0fd254a80cc446aef31e1e6f92b923e235c10", + "toHash": "df07d284b45ef354a2fa4570c0e73b522ae5e8a951d0c12c23d3e085f1bc225a", + "implies": true, + "confidence": "high", + "reasoning": "Strict subset — S2 removes the parenthetical specification 'preferably ranked choice' from S1. The core proposition about wanting to switch away from FPTP to some other system, with the stated priorities and openness to experiments, remains unchanged. Removing a preferred example does not add a new claim or change the meaning of the assertion.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 3360 + }, + { + "id": "voting:approval-and-try->try-other-systems", + "expectImplies": true, + "fromGroup": "voting", + "toGroup": "voting", + "fromRole": "modified-right", + "toRole": "commonality", + "fromHash": "d46411e130920d277c656ad2ebb7c4cb433110c99bcbef0d3d368c67b58742ca", + "toHash": "df07d284b45ef354a2fa4570c0e73b522ae5e8a951d0c12c23d3e085f1bc225a", + "implies": true, + "confidence": "high", + "reasoning": "Strict subset — S2 is identical to S1 except for the removal of the parenthetical phrase 'preferably approval voting'. This removal does not add any new claim; it only omits a specific preference that was already presented as secondary to the main claim of switching away from FPTP. The core proposition remains unchanged.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 2962 + }, + { + "id": "voting:ranked-choice->try-other-systems", + "expectImplies": false, + "fromGroup": "voting", + "toGroup": "voting", + "fromRole": "natural-left", + "toRole": "commonality", + "fromHash": "0d7eafec729ee326d4673dde1e83e657aef387e9341bc2f509eeb1bae2916da4", + "toHash": "df07d284b45ef354a2fa4570c0e73b522ae5e8a951d0c12c23d3e085f1bc225a", + "implies": false, + "confidence": "high", + "reasoning": "S2 adds a new, substantive claim about the relative importance of switching away from FPTP versus the choice of a specific alternative system. This concession or prioritization is not present in S1, which expresses a preference for ranked choice but does not state that the switch itself is more important than the specific alternative.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 4247 + }, + { + "id": "voting:approval-not-ranked->try-other-systems", + "expectImplies": false, + "fromGroup": "voting", + "toGroup": "voting", + "fromRole": "natural-right", + "toRole": "commonality", + "fromHash": "950fa44a208d306e2b352b7859bc811b49ac93819a8d47720ab0ff3a0f08a8cf", + "toHash": "df07d284b45ef354a2fa4570c0e73b522ae5e8a951d0c12c23d3e085f1bc225a", + "implies": false, + "confidence": "high", + "reasoning": "S2 adds a new, substantive claim about the relative importance of switching away from FPTP versus the choice of the alternative system. This claim about priorities and openness to experiments is not present in S1, which simply states a preference for approval voting.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 3618 + }, + { + "id": "voting:keep-first-past-the-post->try-other-systems", + "expectImplies": false, + "fromGroup": "voting", + "toGroup": "voting", + "fromRole": null, + "toRole": "commonality", + "fromHash": "ea7dfac8d244c5d8d3068997c0dd190cf43274cfd8b2c25280a03cfc3f0d7da1", + "toHash": "df07d284b45ef354a2fa4570c0e73b522ae5e8a951d0c12c23d3e085f1bc225a", + "implies": false, + "confidence": "high", + "reasoning": "S2 adds multiple new and controversial claims not present in S1. S1 expresses a desire to keep FPTP in a specific place. S2 makes a strong negative value judgment about FPTP, advocates for switching away from it, and expresses openness to experiments with other systems. This is a direct opposition to the position in S1.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 3376 + }, + { + "id": "voting:try-other-systems->ranked-choice-and-try", + "expectImplies": false, + "fromGroup": "voting", + "toGroup": "voting", + "fromRole": "commonality", + "toRole": "modified-left", + "fromHash": "df07d284b45ef354a2fa4570c0e73b522ae5e8a951d0c12c23d3e085f1bc225a", + "toHash": "f5a54bedbf37116d4af7065566b0fd254a80cc446aef31e1e6f92b923e235c10", + "implies": false, + "confidence": "high", + "reasoning": "S2 adds a specific preference ('preferably ranked choice') that is not present in S1. S1 explicitly states that the signer has preferences but does not name them, and that switching away from FPTP is more important than the particular system. Adding a named preference is a new claim not contained in S1.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 3203 + }, + { + "id": "opinion-employment:modified-left->commonality", + "expectImplies": true, + "fromGroup": "opinion-employment", + "toGroup": "opinion-employment", + "fromRole": "modified-left", + "toRole": "commonality", + "fromHash": "9e8ad64ae1c8f5aaa8cca061f386c8b1816c7ddce654be35edfbe43f96c69daf", + "toHash": "85c10e18017cb8941acaa2f59ef36bc31a39d1356aef1b4907489411c481fb10", + "implies": true, + "confidence": "high", + "reasoning": "Strict subset — S2 is a direct, verbatim quote of a proposition explicitly contained within S1. S2 adds no new claim and omits the surrounding context and other claims from S1.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 2459 + }, + { + "id": "opinion-employment:modified-right->commonality", + "expectImplies": true, + "fromGroup": "opinion-employment", + "toGroup": "opinion-employment", + "fromRole": "modified-right", + "toRole": "commonality", + "fromHash": "d9b2ed55107e23071c83a161a39dcad577a2ab19335e26bbd452b5b1ab96adcb", + "toHash": "85c10e18017cb8941acaa2f59ef36bc31a39d1356aef1b4907489411c481fb10", + "implies": true, + "confidence": "high", + "reasoning": "Strict subset — S2 is a direct quote of a specific claim that is explicitly contained within S1. S2 adds no new proposition and removes the surrounding context and other claims from S1.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 2704 + }, + { + "id": "opinion-employment:natural-left->commonality", + "expectImplies": false, + "fromGroup": "opinion-employment", + "toGroup": "opinion-employment", + "fromRole": "natural-left", + "toRole": "commonality", + "fromHash": "e8242b3628780319ffde749cf29aa2904c835e4e0810fbf033bf8f1fc50da737", + "toHash": "85c10e18017cb8941acaa2f59ef36bc31a39d1356aef1b4907489411c481fb10", + "implies": false, + "confidence": "high", + "reasoning": "S2 adds a reservation and a set of exceptions (threats, harassment, refusing work) that are not present in S1. S1 makes a universal claim against losing livelihood for unpopular speech, while S2 explicitly carves out conditions where losing livelihood would be acceptable.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 3286 + }, + { + "id": "opinion-employment:natural-right->commonality", + "expectImplies": false, + "fromGroup": "opinion-employment", + "toGroup": "opinion-employment", + "fromRole": "natural-right", + "toRole": "commonality", + "fromHash": "d97f093b95e8878bcbb491286c4935ebc82a93125c8e4fbdb112fcc61c538bf8", + "toHash": "85c10e18017cb8941acaa2f59ef36bc31a39d1356aef1b4907489411c481fb10", + "implies": false, + "confidence": "high", + "reasoning": "S2 adds a substantive reservation and concession absent from S1. S1 asserts a universal claim that ending careers over ordinary political opinions should stop. S2 modifies this by accepting that such opinions alone should not be grounds, while explicitly preserving other grounds (threats, harassment, refusing work). This is a negotiated commitment not present in S1.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 4019 + }, + { + "id": "opinion-employment:commonality->modified-left", + "expectImplies": false, + "fromGroup": "opinion-employment", + "toGroup": "opinion-employment", + "fromRole": "commonality", + "toRole": "modified-left", + "fromHash": "85c10e18017cb8941acaa2f59ef36bc31a39d1356aef1b4907489411c481fb10", + "toHash": "9e8ad64ae1c8f5aaa8cca061f386c8b1816c7ddce654be35edfbe43f96c69daf", + "implies": false, + "confidence": "high", + "reasoning": "S2 adds multiple new claims and propositions that are absent from S1, including a specific preference about campaigning on the clock and a statement about the relative strength of feelings. This violates the core rule that S2 must add no new claim beyond what is in S1.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 3201 + }, + { + "id": "crypto-merchants:refundable-checkout->bank-blocking", + "expectImplies": false, + "fromGroup": "crypto-merchants", + "toGroup": "crypto-merchants", + "fromRole": null, + "toRole": null, + "fromHash": "de7b287b2a114ed426a57636429a751083fb230f7ad20708c5f370da2c43e738", + "toHash": "ac5fb03c587837ec0319932263de12b09e89a9fcc1c9ffeabb1b916b5f852b2c", + "implies": false, + "confidence": "high", + "reasoning": "S2 adds a new, specific scenario (a bank blocking a customer) that is not mentioned or logically required by S1. S1 is about enabling blockchain payments upon customer request, which does not imply a commitment to enabling payments specifically in the context of bank blocks.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 3320 + }, + { + "id": "crypto-merchants:bank-blocking->refundable-checkout", + "expectImplies": false, + "fromGroup": "crypto-merchants", + "toGroup": "crypto-merchants", + "fromRole": null, + "toRole": null, + "fromHash": "ac5fb03c587837ec0319932263de12b09e89a9fcc1c9ffeabb1b916b5f852b2c", + "toHash": "de7b287b2a114ed426a57636429a751083fb230f7ad20708c5f370da2c43e738", + "implies": false, + "confidence": "high", + "reasoning": "S2 adds a specific payment method (blockchain) and a specific customer request condition that are not present in S1. S1 is about a bank-blocked customer and any payment method that would work; S2 is about a specific payment technology and a customer-initiated request.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 3449 + }, + { + "id": "crypto-merchants:refuse-crypto-payments->refundable-checkout", + "expectImplies": false, + "fromGroup": "crypto-merchants", + "toGroup": "crypto-merchants", + "fromRole": null, + "toRole": null, + "fromHash": "ad21c0f2923259585e3f52b39e0ca42230df09741bb122d8a5a48f2ad0227d73", + "toHash": "de7b287b2a114ed426a57636429a751083fb230f7ad20708c5f370da2c43e738", + "implies": false, + "confidence": "high", + "reasoning": "S1 and S2 express directly opposing desires regarding crypto payments in Grey County. S1 wants shops to refuse such payments, while S2 wants a business to be able to accept them. Believing S1 does not commit the signer to S2; it commits them to the opposite.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 4144 + }, + { + "id": "crypto-merchants:refundable-checkout->refuse-crypto-payments", + "expectImplies": false, + "fromGroup": "crypto-merchants", + "toGroup": "crypto-merchants", + "fromRole": null, + "toRole": null, + "fromHash": "de7b287b2a114ed426a57636429a751083fb230f7ad20708c5f370da2c43e738", + "toHash": "ad21c0f2923259585e3f52b39e0ca42230df09741bb122d8a5a48f2ad0227d73", + "implies": false, + "confidence": "high", + "reasoning": "S1 and S2 express directly contradictory desires regarding the acceptance of crypto payments. S1 wants businesses to be *able* to accept such payments, while S2 wants shops to *refuse* them. Believing S1 does not commit a person to believing S2; in fact, it commits them to the opposite.", + "model": "deepseek/deepseek-v3.2", + "promptFingerprint": "2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891", + "matched": true, + "ms": 3876 } ], "aiPauseEvaluatedAt": "2026-10-16T21:52:11.796Z", "canadaUsEvaluatedAt": "2026-10-16T22:30:00.000Z", - "canadaUsWordingNote": "2026-10-21: boycott-ordinary-ties dropped the clause about refusing to sign. narrower-than-visits now only names family visits. The fromHash and toHash values on those three rows are the longer wording. Do not treat the rows as evidence for the shorter sentences." + "canadaUsWordingNote": "2026-10-21: boycott-ordinary-ties dropped the clause about refusing to sign. narrower-than-visits now only names family visits. The fromHash and toHash values on those three rows are the longer wording. Do not treat the rows as evidence for the shorter sentences.", + "wordingPassEvaluatedAt": "2026-10-21T20:16:31.760Z" } diff --git a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json index 9083edf7..27e1042c 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2-statements.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2-statements.json @@ -30,7 +30,7 @@ "id": "civic-assimilation", "title": "Shared civic life in Grey County", "notes": [ - "The board is the assimilation want, two constituencies that already say it, a milder English sentence that does not, and a refusal. Adam called this good enough on 2026-10-20. Sessions and the park season are projects aligned to assimilate." + "The board is the assimilation want, two constituencies that already say it, a milder English sentence that does not, and a refusal. Adam called this good enough on 2026-10-20. A 2026-10-21 deepseek-v3.2 pass blessed some-immigration and fewer-newcomers toward assimilate, and refused the English sentence, the refusal, and the reverse arrows. Those two blesses are allowed as live-attester-recorded-bless. They are not bridge roles. Sessions and the park season are projects aligned to assimilate." ], "statements": [ { @@ -162,7 +162,7 @@ "id": "voting", "title": "Voting in Grey County", "notes": [ - "Bridge. Each natural prefers one system and does not say an experiment with another system is welcome. Each modified names that preference and contains the commonality. The commonality says switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. No attester pass yet, so no arrow is published. keep-first-past-the-post is a refusal on the commonality board." + "Bridge. Each natural prefers one system and does not say an experiment with another system is welcome. Each modified names that preference and contains the commonality. The commonality says switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. A 2026-10-21 deepseek-v3.2 pass blessed both modifieds and refused the naturals, the first-past-the-post refusal, and the reverse arrow. Those two modified arrows are allowed. keep-first-past-the-post is a refusal on the commonality board." ], "statements": [ { @@ -268,7 +268,7 @@ "id": "opinion-employment", "title": "Ordinary opinions and employment", "notes": [ - "Draft bridge. Good enough for now (2026-10-21). The published-appeal clause is out of the commonality and both modifieds. The stored attester bless is for the longer wording and is not a published arrow." + "Draft bridge. Good enough for now (2026-10-21). The published-appeal clause is out of the commonality and both modifieds. A 2026-10-21 deepseek-v3.2 pass blessed both shortened modifieds and refused the naturals and the reverse arrow. Those two arrows are allowed. The 2026-10-16 bless is for the longer wording and is not this evidence." ], "statements": [ { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.json b/fake-data-generation/campaigns/network-societies-v1-b2.json index 41ac5005..c1a88e8c 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.json +++ b/fake-data-generation/campaigns/network-societies-v1-b2.json @@ -1384,6 +1384,84 @@ "statementId": "commonality" }, "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "ranked-choice-and-try" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "try-other-systems" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "approval-and-try" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "voting", + "statementId": "try-other-systems" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-left" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "modified-right" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "opinion-employment", + "statementId": "commonality" + }, + "evidence": "live-attester-modified-to-commonality" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "some-immigration" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "assimilate" + }, + "evidence": "live-attester-recorded-bless" + }, + { + "from": { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "fewer-newcomers" + }, + "to": { + "collectionId": "network-societies-v1-b2", + "groupId": "civic-assimilation", + "statementId": "assimilate" + }, + "evidence": "live-attester-recorded-bless" } ], "actionRules": [ @@ -1421,8 +1499,8 @@ "publish-statement" ], "targetCount": { - "min": 11, - "max": 11 + "min": 17, + "max": 17 } }, { diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 720f32d6..d3f08a44 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -6,7 +6,7 @@ Keeps the four pilot families (Owen Sound checkout, Grey County civic life, Chri - Abortion settlement, using the accepted `compromise-abortion` wording unchanged, plus a separate Michigan authority board. - Schools and pushing, using the accepted `lgbt-schools` wording unchanged. Grey County work is three projects on that board: Owen Sound meetings, a Grey County packet, and a host kit. There is no separate conduct board. -- Voting in Grey County, as a bridge. One natural prefers ranked choice and the other prefers approval voting. The commonality is that switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. Keeping first-past-the-post is a refusal on that board. No arrow is published until an attester blesses this wording. +- Voting in Grey County, as a bridge. One natural prefers ranked choice and the other prefers approval voting. The commonality is that switching off first-past-the-post matters more than which other system, and an experiment with a less-preferred system is welcome. Keeping first-past-the-post is a refusal on that board. A 2026-10-21 attester pass blessed both modifieds. Those two arrows are allowed. The naturals and the refusal are not. The other families in the brainstorming plan are not in this manifest, except an AI-pause board and the Canada–US family past its five-statement draft. The AI-pause board is plain: every sentence stays visible. Five milder modified sentences contain one shared pause-treaty sentence and each keeps a reason the shared sentence leaves out. Naturals do not name the treaty. Hal wants a full stop and rejects the pause. Vic rejects the pause because other labs will not stop. Five modified-to-commonality arrows are allowed. Naturals, poles, and reverse arrows are not. @@ -20,7 +20,7 @@ The abortion cause and the schools cause are bridge-shaped. Each main board list Four more causes are also bridge-shaped, from `statement-generation-exercises/06-network-society-alliances.json`: Grey County assimilation sessions, the Owen Sound checkout trial, ordinary opinions and employment, and ordinary Canada–US ties. The Owen Sound dual-count poll is no longer a cause. Minors' medicine and courtesy was deleted on 2026-10-21. Its stored attester pass is not a published arrow. -Eleven implication actions are planned. Four are the accepted abortion and schools pairs, labeled `accepted-bridge-role-pair`. Seven are modified-to-commonality pairs, labeled `live-attester-modified-to-commonality`: two from the Canada–US draft and five from the AI-pause board. The employment pair is not among them. On 2026-10-21 the published-appeal clause was removed, and the stored bless is for the longer wording. The appeal checklist project is gone. One project remains: the still-a-sanction note. The minors' medicine pair is not among them. The dual-count pair is not among them. The live record is `network-societies-v1-b2-implication-evaluations.json` (deepseek/deepseek-v3.2, prompt fingerprint `2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891`, 82 pairs). The draft bridges blessed every designed-yes and refused every designed-no after one rewrite. Employment modifieds now name a camp priority the commonality does not contain (on-the-clock campaigning; churches and private clubs). The Canada commonality no longer says "I'd be okay with saying that," and each modified keeps a priority the commonality omits. The AI-pause pass matched on the first wording: each modified implies the shared pause sentence, and the naturals, poles, and reverse arrows do not. Naturals, reverse arrows, cross-modified arrows, and the assimilation cluster against the accepted immigration statements stay unpublished. Those refusals are in the decisions file. A later pass refused the Canada–US boycott and the narrower sentence, both ways that were checked, at high confidence on the first wording. No new arrow was added. The five remaining draft clusters, the expanded Canada–US board, and the AI-pause board are still not accepted seed. +Seventeen implication actions are planned. Four are the accepted abortion and schools pairs, labeled `accepted-bridge-role-pair`. Eleven are modified-to-commonality pairs, labeled `live-attester-modified-to-commonality`: two from Canada–US, five from AI pause, two from the Grey County voting bridge, and two from ordinary opinions and employment. Two more are Grey County civic containment blesses (`some-immigration` and `fewer-newcomers` to `assimilate`), labeled `live-attester-recorded-bless`, because those sentences have no bridge role. On 2026-10-21 a deepseek-v3.2 pass (same prompt fingerprint) blessed the voting and shortened employment modifieds and refused their designed negatives. The 2026-10-16 employment bless is for the longer wording and is not this evidence. The appeal checklist project is gone. One project remains: the still-a-sanction note. The minors' medicine pair is not among them. The dual-count pair is not among them. The live record is `network-societies-v1-b2-implication-evaluations.json` (deepseek/deepseek-v3.2, prompt fingerprint `2f61d4d61235214eceee97e9a364da48b8a6833f509089941cb758728302e891`, 103 pairs). The draft bridges blessed every designed-yes and refused every designed-no after one rewrite. Employment modifieds now name a camp priority the commonality does not contain (on-the-clock campaigning; churches and private clubs). The Canada commonality no longer says "I'd be okay with saying that," and each modified keeps a priority the commonality omits. The AI-pause pass matched on the first wording: each modified implies the shared pause sentence, and the naturals, poles, and reverse arrows do not. Naturals, reverse arrows, cross-modified arrows, and the assimilation cluster against the accepted immigration statements stay unpublished. Those refusals are in the decisions file. A later pass refused the Canada–US boycott and the narrower sentence, both ways that were checked, at high confidence on the first wording. The 2026-10-21 pass added the voting, employment, and civic arrows named above. Crypto pairs on the current board all refused. The five remaining draft clusters, the expanded Canada–US board, and the AI-pause board are still not accepted seed. `moderator-checklist` is one statement. It is on the Michigan authority board and the Owen Sound voting board. One project, "Moderator checklist card", references it. diff --git a/fake-data-generation/test/campaignPlanner.test.ts b/fake-data-generation/test/campaignPlanner.test.ts index 1098a8be..98cbb119 100644 --- a/fake-data-generation/test/campaignPlanner.test.ts +++ b/fake-data-generation/test/campaignPlanner.test.ts @@ -296,11 +296,13 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one assert.equal(notice.causeId, 'civic-assimilation'); assert.deepEqual(notice.alsoOnCauseIds, ['christian-teaching']); const implications = plan.actions.filter((action) => action.type === 'attest-implication'); - assert.equal(implications.length, 11); + assert.equal(implications.length, 17); const accepted = implications.filter((action) => action.implication!.evidence === 'accepted-bridge-role-pair'); const live = implications.filter((action) => action.implication!.evidence === 'live-attester-modified-to-commonality'); + const recorded = implications.filter((action) => action.implication!.evidence === 'live-attester-recorded-bless'); assert.equal(accepted.length, 4); - assert.equal(live.length, 7); + assert.equal(live.length, 11); + assert.equal(recorded.length, 2); for (const action of accepted) { const from = plan.statements.find((statement) => statement.id === action.implication!.fromStatementId)!; assert.ok(from.source.collectionId === 'compromise-abortion' || from.source.collectionId === 'lgbt-schools'); @@ -309,8 +311,9 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one const from = plan.statements.find((statement) => statement.id === action.implication!.fromStatementId)!; const to = plan.statements.find((statement) => statement.id === action.implication!.toStatementId)!; const plainModified = from.role === null && from.source.statementId.startsWith('modified-') && action.implication!.evidence === 'live-attester-modified-to-commonality'; - assert.ok(from.role === 'modified-left' || from.role === 'modified-right' || plainModified); - assert.equal(to.role, 'commonality'); + const recordedBless = action.implication!.evidence === 'live-attester-recorded-bless'; + assert.ok(from.role === 'modified-left' || from.role === 'modified-right' || plainModified || recordedBless); + assert.equal(to.role, recordedBless ? null : 'commonality'); assert.equal(from.source.groupId, to.source.groupId); } const michigan = plan.statements.find((statement) => statement.source.statementId === 'michigan-legislature')!; @@ -323,17 +326,20 @@ test('batch 2 keeps the pilot families, reuses accepted bridges, and shares one const forum = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === 'abortion-forum')!.board!; assert.equal(forum.role, 'plain'); assert.ok(forum.statementIds.includes(michigan.id)); - for (const causeId of ['grey-assimilation', 'checkout-trial-bridge', 'voting']) { + for (const causeId of ['grey-assimilation', 'checkout-trial-bridge']) { const board = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === causeId)!.board!; assert.equal(board.role, 'commonality'); assert.equal(implications.filter((action) => action.causeId === causeId).length, 0, causeId); } + const votingBoard = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === 'voting')!.board!; + assert.equal(votingBoard.role, 'commonality'); + assert.equal(implications.filter((action) => action.causeId === 'voting').length, 2); assert.equal(plan.actions.some((action) => action.type === 'create-cause' && action.causeId === 'minors-medicine'), false); for (const causeId of ['opinion-employment', 'canada-us-ties']) { const board = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === causeId)!.board!; assert.equal(board.role, 'commonality'); } - assert.equal(implications.filter((action) => action.causeId === 'opinion-employment').length, 0); + assert.equal(implications.filter((action) => action.causeId === 'opinion-employment').length, 2); assert.equal(implications.filter((action) => action.causeId === 'canada-us-ties').length, 2); assert.ok(implications.filter((action) => action.causeId === 'canada-us-ties').every((action) => action.implication!.evidence === 'live-attester-modified-to-commonality')); const pauseBoard = plan.actions.find((action) => action.type === 'create-cause' && action.causeId === 'ai-pause')!.board!; From d9d3e1c49273893f7fdd0fa4f4dd4507682b4a46 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 16:35:12 -0400 Subject: [PATCH 44/46] Record the current network-societies plan run. --- fake-data-generation/PLAN.md | 2 +- .../brainstorming/network-societies-campaign-plan.md | 8 +++++--- fake-data-generation/campaigns/network-societies-v1-b2.md | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 3fa42a51..000a311b 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, the remaining draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge and the employment appeal cut, is 72 users, 74 statements, and 55 projects. The minors' medicine draft was deleted the same day. Eleven modified-to-commonality arrows are allowed. The employment pair is not among them. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. Reviewed boards are good enough for now. Canada–US has four shop-here projects. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The batch 2 source now has 125 statements and 64 projects, including Printed moderator checklist and Plain-text Grey County notice. Those two are not in the mined output directories. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, the remaining draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge and the employment appeal cut, is 72 users, 74 statements, and 55 projects. The minors' medicine draft was deleted the same day. Eleven modified-to-commonality arrows are allowed. The employment pair is not among them. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. Reviewed boards are good enough for now. Canada–US has four shop-here projects. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The current manifest was planned and mined on 2026-10-21 into `output/campaigns/network-societies-v1-b2-current/` (446/446, head 606). That run includes Printed moderator checklist and Plain-text Grey County notice. Do not regenerate that directory. The older mined directories still have the earlier sentence set. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 92beb10b..3bde5920 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -59,7 +59,7 @@ Counted from `network-societies-v1-b2-statements.json`, `network-societies-v1-b2 | AI pause | 17 | 5 | Meets it. Five modified-to-commonality arrows are allowed. | | Low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation | none | none | Deferred. | -One statement, the class-host directory, is on the civic-life, Christian teaching, and home-learning boards. One statement, the moderator checklist, is on the Michigan authority board and the Owen Sound voting board. The class-host directory project is one contract aligned to that shared statement, so those three boards list the same raise. It is not aligned to a Christian-teaching sentence or to the staffed-schools sentence. Two more single-statement projects are now in the batch 2 source: Printed moderator checklist, aligned only to the checklist already on the Michigan forum and the Owen Sound voting board, and Plain-text Grey County notice, aligned only to a new sentence on the civic and Christian teaching boards. They are not in the mined output directories. +One statement, the class-host directory, is on the civic-life, Christian teaching, and home-learning boards. One statement, the moderator checklist, is on the Michigan authority board and the Owen Sound voting board. The class-host directory project is one contract aligned to that shared statement, so those three boards list the same raise. It is not aligned to a Christian-teaching sentence or to the staffed-schools sentence. Two more single-statement projects are in the batch 2 source and in the 2026-10-21 current plan: Printed moderator checklist, aligned only to the checklist already on the Michigan forum and the Owen Sound voting board, and Plain-text Grey County notice, aligned only to a sentence on the civic and Christian teaching boards. They are not in the older mined directories. ## Journeys the frozen plan can and cannot show @@ -250,7 +250,7 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 5. A friend spends a delegated note.** Delegate and revoke already run. Pat (`user-021`) delegated note `note-0001` to Ned (`user-011`) and then revoked that same note, so that pair cannot also show a spend. The copy [`network-societies-v1-b2-note-spend.json`](../campaigns/network-societies-v1-b2-note-spend.json) plans a different pair: June deposits one payment-token note, Willa keeps the delegation, and Willa spends it on one 0.01 receipt for the six-shop checkout trial. The action type is `spend-delegated-note`. It was mined on 2026-10-20. A recurring monthly pledge is still not an action type. Leave that as a product gap. Do not invent pledge transactions. -**Journey 6. One project on two boards.** Done for one project. `project-015` has one `causeId` (`christian-teaching`) and one alignment, to the class-host sentence. That sentence is also on the civic and home-learning boards, so those boards list the same contract. Publishing a second contract would double-count the raise. No Christian-teaching sentence is an alignment of this project, and the staffed-schools sentence is not either. The other two are in the batch 2 source as of 2026-10-20: Printed moderator checklist (only `moderator-checklist`) and Plain-text Grey County notice (only `plain-text-notice`). Neither has been mined. +**Journey 6. One project on two boards.** Done for one project in the older graphs, and for the other two in the 2026-10-21 current plan. `project-015` has one `causeId` (`christian-teaching`) and one alignment, to the class-host sentence. That sentence is also on the civic and home-learning boards, so those boards list the same contract. Publishing a second contract would double-count the raise. No Christian-teaching sentence is an alignment of this project, and the staffed-schools sentence is not either. Printed moderator checklist (`project-040`, only `moderator-checklist`) and Plain-text Grey County notice (`project-016`, only `plain-text-notice`) are in `output/campaigns/network-societies-v1-b2-current/`. A second contract, Moderator checklist card, is also aligned only to the checklist. Do not regenerate that directory. **Journey 7. Independent judgment.** Dropped on 2026-10-20. The contract records a yes or a later revoke of that same yes. Adam decided not to add a decline. A missing attestation is the refusal. Do not treat this as unfinished campaign work, and do not add a negative alignment type so the journey can be walked. @@ -260,7 +260,9 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Next task:** Wording review is done for the boards that have sentences. A 2026-10-21 attester pass published the voting, employment, and civic arrows named in the review. Christian teaching and home learning still have no candidate pair. Do not invent one. Do not edit statement or project text on a board Adam has called good enough. Do not mine another copy. Printed moderator checklist and Plain-text Grey County notice still need a fresh local plan and run. Journeys 4, 5, and 6 have been walked, and journey 7 is dropped. The three cross-family projects are in the batch 2 source. Do not regenerate `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Current plan run, 2026-10-21.** The current manifest (74 statements, 55 projects, including Printed moderator checklist and Plain-text Grey County notice) was planned into `output/campaigns/network-societies-v1-b2-current/`: 72 users and 446 writes. A clean local chain (`./scripts/data.sh --wipe`, then `./scripts/services.sh --start`) mined 442, then four `fund-project` buys failed for insufficient ETH (`action-00382`, `action-00406`, `action-00418`, `action-00422`). Those four wallets were topped up with `hardhat_setBalance` and the run resumed with `--skip-provision`. Mined 446/446. Reconciliation matched 446/446 (indexer lag 0, head 606). Test-data run id `20261021T203254843Z`. Printed moderator checklist is `project-040` at `0x238BADd1c44ca8a377516F30f27C433f79C67BB6`. Plain-text Grey County notice is `project-016` at `0x18BFE92Fd174B81f7185C3F37071B6935F9F7eB0`. Do not regenerate that directory. Do not commit the capability key. The two project pages have not been walked in the browser. + +**Next task:** Wording review is done for the boards that have sentences. A 2026-10-21 attester pass published the voting, employment, and civic arrows named in the review. Christian teaching and home learning still have no candidate pair. Do not invent one. Do not edit statement or project text on a board Adam has called good enough. Do not mine another copy. Walk Printed moderator checklist and Plain-text Grey County notice on the boards that share their sentences. Journeys 4, 5, and 6 were walked on the older graphs, and journey 7 is dropped. Do not regenerate `output/campaigns/network-societies-v1-b2-current/`, `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at. diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index d3f08a44..90ee1e8c 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -33,10 +33,10 @@ A recurring monthly pledge stays out of this manifest. Pat already delegates a n From `fake-data-generation/`: ```bash -npm run gen:campaign:plan -- campaigns/network-societies-v1-b2.json output/campaigns/network-societies-v1-b2-canada-us +npm run gen:campaign:plan -- campaigns/network-societies-v1-b2.json output/campaigns/network-societies-v1-b2-current ``` -Do not write this plan over `output/campaigns/network-societies-v1-b2/`. That directory is the mined run from before the belief pins and the AI-pause arrows. Do not write it over `output/campaigns/network-societies-v1-b2-ai-pause/`. That directory is the plan from before the Canada–US planks. Do not write it over `network-societies-v1-pilot` or `medium-realistic-v2`. Pilot statement texts in `network-societies-v1-b2-statements.json` are a copy so the loader can see them. The accepted bridge sentences are referenced from `seed-content/`, not copied. +That directory is the 2026-10-21 plan of the current manifest: 72 users, 74 statements, 55 projects, 446 writes. It mined 446/446 and reconciled 446/446 on a clean local chain (head 606, test-data run `20261021T203254843Z`). Do not regenerate it. Do not write this plan over `output/campaigns/network-societies-v1-b2/`. That directory is the mined run from before the belief pins and the AI-pause arrows. Do not write it over `output/campaigns/network-societies-v1-b2-ai-pause/`. That directory is the plan from before the Canada–US planks. Do not write it over `network-societies-v1-pilot` or `medium-realistic-v2`. Pilot statement texts in `network-societies-v1-b2-statements.json` are a copy so the loader can see them. The accepted bridge sentences are referenced from `seed-content/`, not copied. ## Local execution From b296274b4d9751be594667bc4f66c931bb12d608 Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 16:45:40 -0400 Subject: [PATCH 45/46] Fund campaign wallets for project-buy gas and approvals. --- fake-data-generation/campaignBatching.ts | 11 +++++++- fake-data-generation/campaignPlanner.ts | 2 +- fake-data-generation/campaignProvisioning.ts | 25 +++++++++++++++---- .../campaigns/network-societies-v1-b2.md | 2 +- .../test/campaignProvisioning.test.ts | 17 +++++++++++-- 5 files changed, 47 insertions(+), 10 deletions(-) diff --git a/fake-data-generation/campaignBatching.ts b/fake-data-generation/campaignBatching.ts index 45d1f4e8..aa6d0b32 100644 --- a/fake-data-generation/campaignBatching.ts +++ b/fake-data-generation/campaignBatching.ts @@ -24,11 +24,20 @@ export const SOLO_GAS_UNITS: Record = { // used 4,073,876–4,073,924 gas. A 3,000,000 quote left 17 founder wallets // short of the balance viem requires for that limit. Headroom above the max. 'attest-implication': 130_000n, 'create-project': 4_500_000n, 'attest-alignment': 130_000n, - 'fund-project': 180_000n, 'deposit-note': 350_000n, 'delegate-note': 100_000n, 'revoke-delegation': 90_000n, + // 2026-10-21 local buys used 252,635–257,259 gas. viem submits a higher gas + // limit than gas used, and the node checks that limit against the balance. + // A 180,000 quote, even with the 25% wallet buffer, left frequent funders short. + 'fund-project': 400_000n, 'deposit-note': 350_000n, 'delegate-note': 100_000n, 'revoke-delegation': 90_000n, // ERC-20 deposit approves then deposits. A delegated-note purchase is larger than a wallet buy. 'spend-delegated-note': 400_000n, }; +/** + * Gas limit for one ERC-20 `approve` the writer sends outside the planned action. + * A project buy approves once per project. An ERC-20 note deposit approves every time. + */ +export const ERC20_APPROVAL_GAS_UNITS = 80_000n; + /** Storage and log cost of one extra item once the transaction overhead is paid. */ const MARGINAL_GAS_UNITS: Partial> = { 'publish-statement': 500_000n, diff --git a/fake-data-generation/campaignPlanner.ts b/fake-data-generation/campaignPlanner.ts index 6e1ad654..e1327848 100644 --- a/fake-data-generation/campaignPlanner.ts +++ b/fake-data-generation/campaignPlanner.ts @@ -121,7 +121,7 @@ export interface CampaignPlan { const GAS_UNITS: Record = { 'publish-statement': 4_000_000, 'create-cause': 120_000, 'create-bridge-board': 120_000, 'create-bridge': 120_000, 'set-belief': 120_000, 'attest-implication': 130_000, 'create-project': 4_500_000, 'attest-alignment': 130_000, - 'fund-project': 180_000, 'deposit-note': 350_000, 'delegate-note': 100_000, 'revoke-delegation': 90_000, + 'fund-project': 400_000, 'deposit-note': 350_000, 'delegate-note': 100_000, 'revoke-delegation': 90_000, 'spend-delegated-note': 400_000, }; diff --git a/fake-data-generation/campaignProvisioning.ts b/fake-data-generation/campaignProvisioning.ts index 494d3401..69118271 100644 --- a/fake-data-generation/campaignProvisioning.ts +++ b/fake-data-generation/campaignProvisioning.ts @@ -3,7 +3,7 @@ import path from 'node:path'; import { parseEther, type Address, type Hex } from 'viem'; import type { CampaignContracts, CampaignEnvironment, CampaignWalletBinding } from './campaignEnvironment.js'; import type { CampaignPlan, PlannedAction } from './campaignPlanner.js'; -import { estimateGroupGas, groupCampaignWrites } from './campaignBatching.js'; +import { ERC20_APPROVAL_GAS_UNITS, estimateGroupGas, groupCampaignWrites } from './campaignBatching.js'; import { campaignActionFundingCost } from './paymentTokenUnits.js'; import { createSeedClients } from './seedRpc.js'; @@ -90,6 +90,7 @@ export function computeCampaignFundingNeeds(plan: CampaignPlan, wallets: readonl const users = new Map(plan.users.map((user) => [user.id, user])); const bySlot = new Map(); const gasBySlot = new Map(); + const approvedProjects = new Set(); for (const wallet of wallets) { bySlot.set(wallet.walletSlot, { walletSlot: wallet.walletSlot, address: wallet.address, nativeWei: 0n, paymentTokenUnits: 0n }); } @@ -104,12 +105,26 @@ export function computeCampaignFundingNeeds(plan: CampaignPlan, wallets: readonl if (!need) continue; const gasWei = estimateGroupGas(group) * gasPrice; need.nativeWei += gasWei; - gasBySlot.set(walletSlot, (gasBySlot.get(walletSlot) ?? 0n) + gasWei); + let slotGas = (gasBySlot.get(walletSlot) ?? 0n) + gasWei; for (const action of group) { - if (action.type === 'deposit-note' && action.noteAsset === 'erc20') need.paymentTokenUnits += campaignActionFundingCost(action); - else if (action.type === 'deposit-note') need.nativeWei += campaignNoteWei(action); - if (action.type === 'fund-project') need.paymentTokenUnits += campaignActionFundingCost(action); + if (action.type === 'deposit-note' && action.noteAsset === 'erc20') { + need.paymentTokenUnits += campaignActionFundingCost(action); + const approvalWei = ERC20_APPROVAL_GAS_UNITS * gasPrice; + need.nativeWei += approvalWei; + slotGas += approvalWei; + } else if (action.type === 'deposit-note') need.nativeWei += campaignNoteWei(action); + if (action.type === 'fund-project') { + need.paymentTokenUnits += campaignActionFundingCost(action); + const approvalKey = `${walletSlot}:${action.projectId ?? action.id}`; + if (!approvedProjects.has(approvalKey)) { + approvedProjects.add(approvalKey); + const approvalWei = ERC20_APPROVAL_GAS_UNITS * gasPrice; + need.nativeWei += approvalWei; + slotGas += approvalWei; + } + } } + gasBySlot.set(walletSlot, slotGas); } return [...bySlot.values()].map((need) => { // Deposits are principal, not gas; apply the percentage only to estimated gas. diff --git a/fake-data-generation/campaigns/network-societies-v1-b2.md b/fake-data-generation/campaigns/network-societies-v1-b2.md index 90ee1e8c..6ce1bb33 100644 --- a/fake-data-generation/campaigns/network-societies-v1-b2.md +++ b/fake-data-generation/campaigns/network-societies-v1-b2.md @@ -42,7 +42,7 @@ That directory is the 2026-10-21 plan of the current manifest: 72 users, 74 stat A plan written after the attester pass has 446 writes. On 2026-10-16 the local chain mined 446/446 and reconciliation matched 446/446. The first pass left 14 actions failed for insufficient ETH; those wallets were topped up and the run resumed. Output is `output/campaigns/network-societies-v1-b2/`. Pilot and medium-realistic-v2 outputs were not overwritten. -The shortfall was the funder, not the chain. `computeCampaignFundingNeeds` priced a belief write at 90_000 gas and a publish at 180_000. The executor asks viem for `40_000 + 80_000 * n` on `setBeliefsInBatch` (280_000 for three) and leaves `publishDataBatch` to viem, which estimated about 4_000_000 on the large publishes. Funding now uses those figures, with 500_000 extra gas per publish after the first in a batch. A later local run should not need a manual `hardhat_setBalance`. +The shortfall was the funder, not the chain. `computeCampaignFundingNeeds` priced a belief write at 90_000 gas and a publish at 180_000. The executor asks viem for `40_000 + 80_000 * n` on `setBeliefsInBatch` (280_000 for three) and leaves `publishDataBatch` to viem, which estimated about 4_000_000 on the large publishes. Funding now uses those figures, with 500_000 extra gas per publish after the first in a batch. A 2026-10-21 run still failed four `fund-project` buys: receipts used about 257,000 gas, and each project also sends an ERC-20 approval that the quote omitted. `fund-project` is now 400,000 gas, plus 80,000 for one approval per project. OpenCode Go DeepSeek ids (`deepseek-v4-flash`, `deepseek-v4.1-flash`, `deepseek-v4-pro`) return HTTP 400 on this workspace until privacy is set to Global. `opencode-go/qwen3.8-flash` returned parseable JSON and matched the v3.2 decision on the short dual-count natural-to-commonality refusal and the long Grey County modified-left-to-commonality bless. Verifier `clear-communication` leaves use that model. Other verifier leaves stay on `xai/grok-4.7`. Production `PRODUCTION_OPENROUTER_MODEL` stays `deepseek/deepseek-v4-flash-0731`. diff --git a/fake-data-generation/test/campaignProvisioning.test.ts b/fake-data-generation/test/campaignProvisioning.test.ts index 17a4bd8f..8ff04fe9 100644 --- a/fake-data-generation/test/campaignProvisioning.test.ts +++ b/fake-data-generation/test/campaignProvisioning.test.ts @@ -42,13 +42,13 @@ test('funding needs include gas, note deposits, and project token buys', () => { const [need] = computeCampaignFundingNeeds(plan, [wallet], 1_000_000_000n); assert.equal(need.walletSlot, 'wallet-user-001'); assert.equal(need.paymentTokenUnits, parseUnits('0.01', 6)); - assert.ok(need.nativeWei >= 120_000n * 1_000_000_000n + 180_000n * 1_000_000_000n + 350_000n * 1_000_000_000n + CAMPAIGN_NOTE_WEI); + assert.ok(need.nativeWei >= 120_000n * 1_000_000_000n + 400_000n * 1_000_000_000n + 80_000n * 1_000_000_000n + 350_000n * 1_000_000_000n + CAMPAIGN_NOTE_WEI); }); test('native reserve scales with gas and leaves idle wallets unfunded', () => { const idle = { ...wallet, walletSlot: 'wallet-idle' }; const needs = computeCampaignFundingNeeds(plan, [wallet, idle], 1_000_000_000n); - const estimatedGasWei = (120_000n + 180_000n + 350_000n) * 1_000_000_000n; + const estimatedGasWei = (120_000n + 400_000n + 80_000n + 350_000n) * 1_000_000_000n; assert.equal(needs[0].nativeWei, CAMPAIGN_NOTE_WEI + estimatedGasWei * 125n / 100n + parseEther('0.0001')); assert.equal(needs[1].nativeWei, 0n); }); @@ -59,6 +59,19 @@ test('publisher wallet receives gas for actorless statement writes', () => { assert.ok(need.nativeWei >= 4_000_000n * 6_000_000n); }); +test('project buys fund one approval per project and the observed purchase gas', () => { + const buys = [ + action({ id: 'buy-1', type: 'fund-project', projectId: 'project-001', sequence: 1 }), + action({ id: 'buy-2', type: 'fund-project', projectId: 'project-001', sequence: 2 }), + action({ id: 'buy-3', type: 'fund-project', projectId: 'project-002', sequence: 3 }), + ]; + const buyPlan = { ...plan, actions: buys } as CampaignPlan; + const [need] = computeCampaignFundingNeeds(buyPlan, [wallet], 1_000_000_000n); + const gasWei = (400_000n * 3n + 80_000n * 2n) * 1_000_000_000n; + assert.equal(need.nativeWei, gasWei * 125n / 100n + parseEther('0.0001')); + assert.ok(need.nativeWei >= 257_259n * 3n * 1_000_000_000n); +}); + test('create-project quotes cover the local clone-factory receipt', () => { const create = action({ id: 'project', type: 'create-project' }); // 2026-10-19 local receipts used 4,073,924 gas. The old 3,000,000 quote From 084d953133f779b95116ba2c1779cfe37b08e51e Mon Sep 17 00:00:00 2001 From: Adam Spitz Date: Wed, 21 Oct 2026 17:01:21 -0400 Subject: [PATCH 46/46] Record the shared-project walk for the current campaign plan. Printed moderator checklist and Plain-text Grey County notice each appear once, on both boards that share their sentence. --- fake-data-generation/PLAN.md | 2 +- .../brainstorming/network-societies-campaign-plan.md | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/fake-data-generation/PLAN.md b/fake-data-generation/PLAN.md index 000a311b..187431ca 100644 --- a/fake-data-generation/PLAN.md +++ b/fake-data-generation/PLAN.md @@ -82,7 +82,7 @@ Do these in order unless Adam names a different one. Each item is a session-size The four-family pilot (crypto merchants, Grey County civic life, Christian teaching, home learning) is in [`campaigns/network-societies-v1-pilot.md`](./campaigns/network-societies-v1-pilot.md). A local run on 2026-10-16 mined and reconciled 207/207. That output predates the persona belief pins. Do not regenerate into `output/campaigns/network-societies-v1-pilot/`. Cause pages list the shared class-host directory once the alignment-trust bootstrap wallet has gas. Six brainstorm families (low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, less regulation) stay unauthored on purpose. The campaign plan is [`brainstorming/network-societies-campaign-plan.md`](./brainstorming/network-societies-campaign-plan.md). -Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, the remaining draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge and the employment appeal cut, is 72 users, 74 statements, and 55 projects. The minors' medicine draft was deleted the same day. Eleven modified-to-commonality arrows are allowed. The employment pair is not among them. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. Reviewed boards are good enough for now. Canada–US has four shop-here projects. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The current manifest was planned and mined on 2026-10-21 into `output/campaigns/network-societies-v1-b2-current/` (446/446, head 606). That run includes Printed moderator checklist and Plain-text Grey County notice. Do not regenerate that directory. The older mined directories still have the earlier sentence set. Do not start the unchecked items 4–8 above while `focus.md` still points here. +Batch 2 keeps those four families and adds the accepted abortion bridge, the accepted schools-pushing bridge, an Owen Sound voting trial, the remaining draft bridges, a Canada–US family past the five-statement draft, and a plain AI-pause board. The note is [`campaigns/network-societies-v1-b2.md`](./campaigns/network-societies-v1-b2.md). The source manifest, after the 2026-10-21 voting bridge and the employment appeal cut, is 72 users, 74 statements, and 55 projects. The minors' medicine draft was deleted the same day. Eleven modified-to-commonality arrows are allowed. The employment pair is not among them. The mined directories still have the older sentence set. A local run on 2026-10-16 mined and reconciled 446/446 into `output/campaigns/network-societies-v1-b2/`. That directory is the earlier plan. Do not regenerate into it or into `output/campaigns/network-societies-v1-b2-ai-pause/`. The later plan, in `output/campaigns/network-societies-v1-b2-canada-us/`, mined and reconciled 523/523 on 2026-10-19. Do not regenerate that directory either. Reviewed boards are good enough for now. Canada–US has four shop-here projects. Journey 2 was walked in the browser on 2026-10-19; the note is at the end of the campaign plan. Journey 5 was walked in the browser on 2026-10-19; Pat's note is back with Pat after the planned revoke, and Ned does not hold it. A copy of that manifest, [`campaigns/network-societies-v1-b2-reimburse.json`](./campaigns/network-societies-v1-b2-reimburse.json), adds the reimbursement field. Its plan mined and reconciled 527/527 on 2026-10-19 into `output/campaigns/network-societies-v1-b2-reimburse/`. Do not regenerate that directory. That project page was walked on 2026-10-19. A further copy, [`campaigns/network-societies-v1-b2-note-spend.json`](./campaigns/network-societies-v1-b2-note-spend.json), plans one delegated payment-token spend (June to Willa, one 0.01 receipt). That plan mined and reconciled 524/524 on 2026-10-20 into `output/campaigns/network-societies-v1-b2-note-spend/`. Do not regenerate that directory. That note and project were walked on 2026-10-20. The class-host directory is one contract on the civic, Christian teaching, and home-learning boards; that walk is in the campaign plan. Journey 7 (a recorded alignment decline) was dropped on 2026-10-20. Do not add negative alignment attestations for it. The current manifest was planned and mined on 2026-10-21 into `output/campaigns/network-societies-v1-b2-current/` (446/446, head 606). That run includes Printed moderator checklist and Plain-text Grey County notice. Both were walked on the boards that share their sentences on 2026-10-21. Do not regenerate that directory. The older mined directories still have the earlier sentence set. Do not start the unchecked items 4–8 above while `focus.md` still points here. ## Pointers diff --git a/fake-data-generation/brainstorming/network-societies-campaign-plan.md b/fake-data-generation/brainstorming/network-societies-campaign-plan.md index 3bde5920..bf299459 100644 --- a/fake-data-generation/brainstorming/network-societies-campaign-plan.md +++ b/fake-data-generation/brainstorming/network-societies-campaign-plan.md @@ -260,9 +260,11 @@ Adam decided on 2026-10-19 to flesh these out. Nothing about the demo says they **Journey 6 walk, 2026-10-20.** Same static server as journey 5: `http://127.0.0.1:5199`, indexer head 2603, run `20261020T130207000Z`. The project is `project-015`, contract `0x4be59d6F5BC7e4D4b215CCEa1252522C1A307115`, founder Nadia, 0.01 of 2 USDZZZ raised, one alignment to `statement-shared-goods-class-host-directory`. Christian teaching (`/cause/0x7099…79C8/campaign-ns-v1-b2-note-spend-christian-teaching`) and home learning (`/cause/0x90F7…b906/campaign-ns-v1-b2-note-spend-home-learning`) both list that contract under Fundable Projects, each as Direct, 0.01 / 2 USDZZZ. Grey County civic life lists the same title and the same 0.01 / 2. The home board's fundable list appears after the signer counts finish. The staffed-schools statement page does not list this project. A second alignment to a contradictory plank was not added. -**Current plan run, 2026-10-21.** The current manifest (74 statements, 55 projects, including Printed moderator checklist and Plain-text Grey County notice) was planned into `output/campaigns/network-societies-v1-b2-current/`: 72 users and 446 writes. A clean local chain (`./scripts/data.sh --wipe`, then `./scripts/services.sh --start`) mined 442, then four `fund-project` buys failed for insufficient ETH (`action-00382`, `action-00406`, `action-00418`, `action-00422`). Those four wallets were topped up with `hardhat_setBalance` and the run resumed with `--skip-provision`. Mined 446/446. Reconciliation matched 446/446 (indexer lag 0, head 606). Test-data run id `20261021T203254843Z`. Printed moderator checklist is `project-040` at `0x238BADd1c44ca8a377516F30f27C433f79C67BB6`. Plain-text Grey County notice is `project-016` at `0x18BFE92Fd174B81f7185C3F37071B6935F9F7eB0`. Do not regenerate that directory. Do not commit the capability key. The two project pages have not been walked in the browser. +**Current plan run, 2026-10-21.** The current manifest (74 statements, 55 projects, including Printed moderator checklist and Plain-text Grey County notice) was planned into `output/campaigns/network-societies-v1-b2-current/`: 72 users and 446 writes. A clean local chain (`./scripts/data.sh --wipe`, then `./scripts/services.sh --start`) mined 442, then four `fund-project` buys failed for insufficient ETH (`action-00382`, `action-00406`, `action-00418`, `action-00422`). Those four wallets were topped up with `hardhat_setBalance` and the run resumed with `--skip-provision`. Mined 446/446. Reconciliation matched 446/446 (indexer lag 0, head 606). Test-data run id `20261021T203254843Z`. Printed moderator checklist is `project-040` at `0x238BADd1c44ca8a377516F30f27C433f79C67BB6`. Plain-text Grey County notice is `project-016` at `0x18BFE92Fd174B81f7185C3F37071B6935F9F7eB0`. Do not regenerate that directory. Do not commit the capability key. The two project pages were walked on 2026-10-21. -**Next task:** Wording review is done for the boards that have sentences. A 2026-10-21 attester pass published the voting, employment, and civic arrows named in the review. Christian teaching and home learning still have no candidate pair. Do not invent one. Do not edit statement or project text on a board Adam has called good enough. Do not mine another copy. Walk Printed moderator checklist and Plain-text Grey County notice on the boards that share their sentences. Journeys 4, 5, and 6 were walked on the older graphs, and journey 7 is dropped. Do not regenerate `output/campaigns/network-societies-v1-b2-current/`, `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. +**Shared-project walk, 2026-10-21.** Same static server shape as the earlier walks: current `ui/dist/commonality` on `http://127.0.0.1:5199`, `/test-data` from `fake-data-generation/output/test-data`, and `/graphql` plus `/api` proxied to the indexer on port 42069. Indexer head 606. Run `20261021T203254843Z`. No wallet was connected. [Plain-text Grey County notice](http://127.0.0.1:5199/projects/0x18BFE92Fd174B81f7185C3F37071B6935F9F7eB0) is one contract, founder Nadia, recipient `0x976E…0aa9`, 0.01 of 2 USDZZZ raised, one direct vouch, and no success attestations. Grey County civic life (`/cause/0x3C44…93BC/campaign-network-societies-v1-b2-civic-assimilation`) and Grey County Christian teaching (`/cause/0x7099…79C8/campaign-network-societies-v1-b2-christian-teaching`) both list that title as Direct, 0.01 / 2 USDZZZ, at `/projects/eip155:31337:0x18BFE92Fd174B81f7185C3F37071B6935F9F7eB0`. The statement page for that alignment lists the same project. [Printed moderator checklist](http://127.0.0.1:5199/projects/0x238BADd1c44ca8a377516F30f27C433f79C67BB6) is one contract, founder Kent, 0 of 2 USDZZZ raised, one direct vouch, and no success attestations. Voting in Grey County (`/cause/0x91eA…804e/network-societies-v1-b2-voting-bridge`) and Michigan abortion authority (`/cause/0x371D…9Cc9/campaign-network-societies-v1-b2-abortion-forum`) both list that title as Direct, 0 / 2 USDZZZ, at `/projects/eip155:31337:0x238BADd1c44ca8a377516F30f27C433f79C67BB6`. Moderator checklist card is a second contract on those same two boards. + +**Next task:** The wording review, the 2026-10-21 attester pass, and the shared-project walk are done. Christian teaching and home learning still have no candidate pair. Do not invent one. Do not edit statement or project text on a board Adam has called good enough. Do not mine another copy. Journeys 4, 5, and 6 were walked, and journey 7 is dropped. Do not regenerate `output/campaigns/network-societies-v1-b2-current/`, `output/campaigns/network-societies-v1-b2-note-spend/`, `output/campaigns/network-societies-v1-b2-reimburse/`, `output/campaigns/network-societies-v1-b2-canada-us/`, `output/campaigns/network-societies-v1-pilot/`, `output/campaigns/network-societies-v1-b2/`, or `output/campaigns/network-societies-v1-b2-ai-pause/`. Do not author low-carb, cancel-proof support, unwoke, Democracy 2.0, Islamic reform, or less regulation. Do not start a bulk random run. Remote publication is a separate step. `fake-data-generation/PLAN.md` items 4–8 are not this chunk. Nothing in this campaign plan is left to implement until Adam names a new chunk. NOTE FROM ADAM: Now that we've generated a bunch of fake data, I want to go through it myself and see whether it looks reasonable to me; I don't trust our LLM-generated stuff yet to be good without supervision. So let's make a list here of what I've approved and what still needs to be looked at.