@bongos/core 1.20.24 → 1.20.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/.bongos-core.json +70 -40
  2. package/clients/bongos-client/README.md +1 -1
  3. package/clients/bongos-client/bongos-client.global.js +2 -0
  4. package/clients/bongos-client/index.cjs +2 -0
  5. package/clients/bongos-client/index.d.ts +2 -0
  6. package/clients/bongos-client/index.mjs +2 -0
  7. package/docs/adr/0354-a-builder-hosts-one-project-free-and-more-takes-the-fleet-permission.md +46 -0
  8. package/docs/adr/README.md +1 -0
  9. package/docs/api/openapi.json +36 -2
  10. package/docs/api-reference.md +3 -2
  11. package/docs/copy-inventory.md +18 -18
  12. package/docs/copy-registry.json +20 -20
  13. package/docs/design/project-startup-direction.md +131 -0
  14. package/docs/module-api-changelog.md +4 -0
  15. package/docs/page-readings.json +15 -15
  16. package/modules/discord/board-broadcast.js +1 -0
  17. package/modules/government/board.js +204 -2
  18. package/modules/government/db.js +42 -1
  19. package/modules/government/migrations/government_020_genesis_stage_subject.sql +55 -0
  20. package/modules/government/routes/government.js +20 -0
  21. package/modules/hall-ui/public/board-room.js +5 -0
  22. package/modules/provisioning/free-place-lock.js +52 -0
  23. package/modules/provisioning/paid-shape-gate.js +90 -30
  24. package/modules/provisioning/routes/provisioning.js +6 -6
  25. package/modules/public-landing/public/projects.html +7 -0
  26. package/package-lock.json +2 -2
  27. package/package.json +1 -1
  28. package/release-notes.json +16 -0
  29. package/src/bongos/route-rank-check.js +3 -0
  30. package/src/module-api.js +1 -1
  31. package/tests/government_board_genesis_stage.mjs +305 -0
  32. package/tests/government_seed.mjs +1 -0
  33. package/tests/project_catalog_routes.mjs +2 -0
  34. package/tests/projects_hub_pre_uat.mjs +1 -1
  35. package/tests/provisioning_capacity_gate.mjs +2 -0
  36. package/tests/provisioning_domain_attach.mjs +2 -0
  37. package/tests/provisioning_paid_shape_gate.mjs +43 -11
  38. package/tests/provisioning_teardown_intent.mjs +2 -0
  39. package/tests/provisioning_wizard_create_xenos.mjs +381 -0
@@ -52,7 +52,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
52
52
  | `a5257c88eb07` | 4x | GitHub username | modules/public-landing/public/projects.html:1009, modules/public-landing/public/projects.html:1010, modules/public-landing/public/projects.html:1497 |
53
53
  | `971f3eb36342` | 4x | How to read the sky | modules/hall-ui/public/goal-map.html:69, modules/hall-ui/public/goal-map.html:108, modules/hall-ui/public/thinking.html:86 |
54
54
  | `3eb67b892dea` | 4x | Percy Jackson | modules/public-landing/public/index.html:806, modules/public-landing/public/index.html:824, modules/public-landing/public/index.html:830 |
55
- | `0887725744f2` | 4x | Restricted. | modules/hall-ui/public/board-room.js:521, modules/hall-ui/public/gate.js:234, modules/hall-ui/public/government.js:879 |
55
+ | `0887725744f2` | 4x | Restricted. | modules/hall-ui/public/board-room.js:526, modules/hall-ui/public/gate.js:234, modules/hall-ui/public/government.js:879 |
56
56
  | `47b6199cc471` | 4x | Show or hide the clock | modules/hall-ui/public/goal-map.html:68, modules/hall-ui/public/goal-map.html:68, modules/hall-ui/public/thinking.html:85 |
57
57
  | `df38941b25a6` | 4x | Sign in with GitHub | modules/public-landing/public/account.html:106, modules/public-landing/public/projects.html:679, modules/public-landing/public/projects.html:781 |
58
58
  | `2ae36be1c531` | 4x | Start a project | modules/public-landing/public/index.html:730, modules/public-landing/public/index.html:894, modules/public-landing/public/projects.html:567 |
@@ -97,7 +97,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
97
97
  | `27d9721f358f` | certain | + Invite | `modules/hall-ui/public/goals-render.js:1189` |
98
98
  | `646fab1157fe` | certain | + {…} more project{…} not publicly listed. | `modules/hall-ui/public/profile.js:320` |
99
99
  | `05da3082c8c5` | certain | +{…} more | `modules/hall-ui/public/gate.js:149` |
100
- | `9c8aba2b2fa4` | certain | , // membership | `modules/hall-ui/public/board-room.js:300` |
100
+ | `9c8aba2b2fa4` | certain | , // membership | `modules/hall-ui/public/board-room.js:305` |
101
101
  | `37964829d693` | certain | , and | `modules/hall-ui/public/government.html:55` |
102
102
  | `1f8aceffb15e` | certain | , claiming, and shipping show — spend on explaining themselves. Richer cards say more and cost more tokens; le | `modules/hall-ui/public/settings.html:299` |
103
103
  | `ac57fe1ccd6e` | certain | , follow its acceptance criteria, stay within touches[], /builder-ship | `modules/hall-ui/public/work.js:872` |
@@ -237,7 +237,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
237
237
  | `181cfa50b127` | certain | By the numbers | `modules/hall-ui/public/profile.html:60` |
238
238
  | `a015a43bfc7f` | certain | CLI access | `modules/hall-ui/public/settings.html:133` |
239
239
  | `084eb64bce72` | certain | Capabilities held by a machine identity, never by a person or a rank. Shown for completeness; nothing here can | `modules/hall-ui/public/government.html:123` |
240
- | `bdca1f219e6f` | certain | Cast objection | `modules/hall-ui/public/board-room.js:363` |
240
+ | `bdca1f219e6f` | certain | Cast objection | `modules/hall-ui/public/board-room.js:368` |
241
241
  | `a974494e44f3` | certain | Catalog at a glance | `modules/hall-ui/public/modules.html:50` |
242
242
  | `c1c7158e0a43` | certain | Category saved. | `modules/hall-ui/public/project-settings.js:214` |
243
243
  | `0279db21e29a` | certain | Change in Settings → | `modules/hall-ui/public/hall-render.js:577` |
@@ -377,7 +377,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
377
377
  | `3db890b074a7` | certain | Could not update visibility just now. | `modules/hall-ui/public/goals-render.js:1341` |
378
378
  | `112d12b24879` | certain | Could not verify your access. Go back and try again. | `modules/hall-ui/public/watch.js:1344` |
379
379
  | `6bd74fd20311` | certain | Could not verify your access. Try again. | `modules/hall-ui/public/sessions.js:436` |
380
- | `278e8281c82f` | certain | Could not vote: {…} | `modules/hall-ui/public/board-room.js:391` |
380
+ | `278e8281c82f` | certain | Could not vote: {…} | `modules/hall-ui/public/board-room.js:396` |
381
381
  | `a48e9f098392` | certain | Could not {…} just now. | `modules/hall-ui/public/goals-render.js:1327` |
382
382
  | `cb09ee26014f` | certain | Could not {…}: {…} | `modules/hall-ui/public/government.js:314` |
383
383
  | `f53f7aaa189f` | certain | Couldn’t load this goal’s task dependencies right now. | `modules/hall-ui/public/goal-forest-render.js:111` |
@@ -577,15 +577,15 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
577
577
  | `b9cb720ad5d1` | certain | Invited? Sign in | `modules/hall-ui/public/hall-render.js:286` |
578
578
  | `0e48bb2c8c94` | certain | Island index | `modules/hall-ui/public/atlas.html:76` |
579
579
  | `2170b74c6526` | certain | Isometric map of the repository | `modules/hall-ui/public/atlas.html:54` |
580
- | `bd8d04eb265c` | certain | It cleared the completeness grade at {…}/100. | `modules/hall-ui/public/board-room.js:326` |
580
+ | `bd8d04eb265c` | certain | It cleared the completeness grade at {…}/100. | `modules/hall-ui/public/board-room.js:331` |
581
581
  | `bef8dbf78170` | certain | It comes back to your studio once it is applied, and nothing ships until you have seen it. | `modules/hall-ui/public/tweak-editor.html:95` |
582
582
  | `4f5b39802b07` | certain | It holds no unfinished work, so this is a single step. Archiving is reversible — an archived goal can be reope | `modules/hall-ui/public/goals-render.js:1008` |
583
583
  | `a28aa368453f` | certain | It shipped and it is live. Say what you see — your review coaches the grader and never blocks what shipped. | `modules/hall-ui/public/studio.js:231` |
584
584
  | `d751fe51e178` | certain | It shipped and it is live. Your review coaches the grader on how it judged the work, then remakes or tweaks th | `modules/hall-ui/public/studio.js:232` |
585
- | `a21788f84e29` | certain | Its author gave no scope recommendation. | `modules/hall-ui/public/board-room.js:295` |
585
+ | `a21788f84e29` | certain | Its author gave no scope recommendation. | `modules/hall-ui/public/board-room.js:300` |
586
586
  | `a21788f84e29` | certain | Its author gave no scope recommendation. | `modules/hall-ui/public/idea.js:162` |
587
587
  | `b0bcb3f844ec` | certain | Its author marked this as needing development — anyone can turn it into a Full Idea, and they keep the credit | `modules/hall-ui/public/idea.js:473` |
588
- | `680491549e47` | certain | Its author recommends this becomes | `modules/hall-ui/public/board-room.js:294` |
588
+ | `680491549e47` | certain | Its author recommends this becomes | `modules/hall-ui/public/board-room.js:299` |
589
589
  | `680491549e47` | certain | Its author recommends this becomes | `modules/hall-ui/public/idea.js:166` |
590
590
  | `5e62ee5addf1` | certain | Its details are below. | `modules/hall-ui/public/shell.js:734` |
591
591
  | `d42a078838bf` | certain | Its notes could not be read. | `modules/hall-ui/public/settings-software-update.js:101` |
@@ -625,7 +625,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
625
625
  | `93ceeaa4e226` | certain | Loading idea | `modules/hall-ui/public/idea.html:32` |
626
626
  | `2b5826012538` | certain | Loading profile… | `modules/hall-ui/public/profile.html:34` |
627
627
  | `554b156a08d6` | certain | Loading sessions… | `modules/hall-ui/public/sessions.html:32` |
628
- | `a0c18cece568` | certain | Loading sittings… | `modules/hall-ui/public/board-room.js:539` |
628
+ | `a0c18cece568` | certain | Loading sittings… | `modules/hall-ui/public/board-room.js:544` |
629
629
  | `7ca55f9ba183` | certain | Loading task | `modules/hall-ui/public/task.html:35` |
630
630
  | `20d8552e13db` | certain | Loading tasks… | `modules/hall-ui/public/work.html:32` |
631
631
  | `217f64ef8667` | certain | Loading the catalog… | `modules/hall-ui/public/modules.html:59` |
@@ -913,7 +913,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
913
913
  | `3ef9382d4726` | certain | Resolved — the copy was changed | `modules/hall-ui/public/copy-desk.html:122` |
914
914
  | `1e99596fc787` | certain | Restore the original words | `modules/hall-ui/public/tweak-editor.js:225` |
915
915
  | `60d8790ebce8` | certain | Restore the page's words for this {…} line | `modules/hall-ui/public/tweak-editor.js:225` |
916
- | `0887725744f2` | certain | Restricted. | `modules/hall-ui/public/board-room.js:521` |
916
+ | `0887725744f2` | certain | Restricted. | `modules/hall-ui/public/board-room.js:526` |
917
917
  | `0887725744f2` | certain | Restricted. | `modules/hall-ui/public/gate.js:234` |
918
918
  | `0887725744f2` | certain | Restricted. | `modules/hall-ui/public/government.js:879` |
919
919
  | `0887725744f2` | certain | Restricted. | `modules/hall-ui/public/watch.js:1294` |
@@ -1059,7 +1059,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1059
1059
  | `34017119ce22` | certain | That work is genuinely gone | `modules/hall-ui/public/goal-inbox.js:374` |
1060
1060
  | `6e5a324b2972` | certain | That's you | `modules/hall-ui/public/watch.js:826` |
1061
1061
  | `50198c465225` | certain | The 16-value rank enum in three bands, which ranks are live, and the permissions each rank holds. | `modules/hall-ui/public/diagrams.html:59` |
1062
- | `c5e6bdd32fe3` | certain | The Board Room is open to the builders this project’s constitution seats on its board. | `modules/hall-ui/public/board-room.js:524` |
1062
+ | `c5e6bdd32fe3` | certain | The Board Room is open to the builders this project’s constitution seats on its board. | `modules/hall-ui/public/board-room.js:529` |
1063
1063
  | `6e93ef49d63f` | certain | The adversarial panel. Each worker reports pass, concerns or fail on its own; the gating workers must all pass | `modules/hall-ui/public/task.js:440` |
1064
1064
  | `600b90074021` | certain | The art pipeline draws tiles and sprites with Google AI Studio (Gemini). Needed only if you generate art — you | `modules/hall-ui/public/settings.html:174` |
1065
1065
  | `4462dcaaaa7d` | certain | The artist reads this instead of guessing. A pointer with no judgement costs them a look and tells them nothin | `modules/hall-ui/public/copy-desk.html:103` |
@@ -1177,7 +1177,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1177
1177
  | `3c8aaec39c40` | certain | This project's code expects {…} database change{…} that its database has not applied yet. Anything that relies | `modules/hall-ui/public/deploy.js:413` |
1178
1178
  | `6e9dfe1fb903` | certain | This restarts {…} onto core | `modules/hall-ui/public/deploy.js:395` |
1179
1179
  | `b9ed9a5f38dd` | certain | This round changed no lines. | `modules/hall-ui/public/approval-queue.js:149` |
1180
- | `69e8beced2ff` | certain | This sends the idea back to its author. Say why, and which section. | `modules/hall-ui/public/board-room.js:363` |
1180
+ | `69e8beced2ff` | certain | This sends the idea back to its author. Say why, and which section. | `modules/hall-ui/public/board-room.js:368` |
1181
1181
  | `09256febc32d` | certain | This sentence has {…} {…} where a value is dropped in when it is shown. | `modules/hall-ui/public/copy-desk.js:422` |
1182
1182
  | `9333d71e3e15` | certain | This speciality offers no skills to choose. | `modules/hall-ui/public/settings-specialities.js:106` |
1183
1183
  | `c9e50a67988a` | certain | This task has shipped and its credits have landed. Neither Ship it nor Confirm is available. | `modules/hall-ui/public/task.js:742` |
@@ -1217,7 +1217,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1217
1217
  | `71c09cda8246` | certain | Voice for {…} | `modules/hall-ui/public/settings.js:74` |
1218
1218
  | `2940b7828d26` | certain | Volume {…}%. | `modules/hall-ui/public/settings.js:216` |
1219
1219
  | `6905f2ee5702` | certain | Vote on this work | `modules/hall-ui/public/builders.js:775` |
1220
- | `b2937e14ee9b` | certain | Vote yes | `modules/hall-ui/public/board-room.js:363` |
1220
+ | `b2937e14ee9b` | certain | Vote yes | `modules/hall-ui/public/board-room.js:368` |
1221
1221
  | `8cc425582984` | certain | Vulnerability reports | `modules/hall-ui/public/watch.html:125` |
1222
1222
  | `b1e63e33f739` | certain | Vulnerability reports, engagement reports, override requests, and the audit log. | `modules/hall-ui/public/watch.html:122` |
1223
1223
  | `411b2ff58094` | certain | Wait for task | `modules/hall-ui/public/task.js:620` |
@@ -1273,7 +1273,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1273
1273
  | `62ab2e60f629` | certain | Why is this better? | `modules/hall-ui/public/copy-desk.html:164` |
1274
1274
  | `ef4614d549d5` | certain | Why retire this task? | `modules/hall-ui/public/task.js:802` |
1275
1275
  | `2b047710fd6d` | certain | Why this goal is being retired (required) | `modules/hall-ui/public/goals-render.js:1018` |
1276
- | `fbd8a815b808` | certain | Why — the reason the author will act on | `modules/hall-ui/public/board-room.js:363` |
1276
+ | `fbd8a815b808` | certain | Why — the reason the author will act on | `modules/hall-ui/public/board-room.js:368` |
1277
1277
  | `a3ac116b499a` | certain | Why? | `modules/hall-ui/public/copy-desk.html:99` |
1278
1278
  | `c5fd76a9e03d` | certain | Won {…} | `modules/hall-ui/public/builders.js:477` |
1279
1279
  | `c5fd76a9e03d` | certain | Won {…} | `modules/hall-ui/public/profile.js:151` |
@@ -1294,7 +1294,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1294
1294
  | `da274462bb30` | certain | You have no open asks. | `modules/hall-ui/public/collab.html:72` |
1295
1295
  | `6b759151f722` | certain | You have reached the end. The button below is now active. | `modules/hall-ui/public/primer.js:309` |
1296
1296
  | `6d5a4ca58dd6` | certain | You haven’t joined any goals yet. | `modules/hall-ui/public/goals.js:83` |
1297
- | `8e527ab12334` | certain | You {…}. One vote per member. | `modules/hall-ui/public/board-room.js:435` |
1297
+ | `8e527ab12334` | certain | You {…}. One vote per member. | `modules/hall-ui/public/board-room.js:440` |
1298
1298
  | `8e1915b19274` | certain | You're in the {…} server with your rank role. | `modules/hall-ui/public/settings.js:677` |
1299
1299
  | `56cfdcc60079` | certain | You're not signed in yet. Sign in to manage your connections, your keys and the way the hall behaves. | `modules/hall-ui/public/settings.html:44` |
1300
1300
  | `3a6ed99ec333` | certain | You've been approved before — sign in and pick up where you left off. | `modules/hall-ui/public/hall-render.js:367` |
@@ -1312,7 +1312,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1312
1312
  | `20d453b11ae5` | certain | Your name | `modules/hall-ui/public/hall-render.js:294` |
1313
1313
  | `6dadadffa36e` | certain | Your name cannot be blank. | `modules/hall-ui/public/settings.js:606` |
1314
1314
  | `bd77210a8c90` | certain | Your name must be {…} characters or fewer. | `modules/hall-ui/public/settings.js:611` |
1315
- | `c0a01a95e97e` | certain | Your own idea. You may vote, but it can’t be decided by your vote alone, and a vote on your own idea earns no | `modules/hall-ui/public/board-room.js:361` |
1315
+ | `c0a01a95e97e` | certain | Your own idea. You may vote, but it can’t be decided by your vote alone, and a vote on your own idea earns no | `modules/hall-ui/public/board-room.js:366` |
1316
1316
  | `5e0ec4cd1cfe` | certain | Your own row carries no controls. Nobody can change their own rank or standing — that guard is what stops the | `modules/hall-ui/public/watch.js:858` |
1317
1317
  | `8fc605026acf` | certain | Your pending join {…}: {…} — awaiting approval. | `modules/hall-ui/public/goal-inbox.js:88` |
1318
1318
  | `e91418db3962` | certain | Your preferences, {…}. | `modules/hall-ui/public/settings.js:630` |
@@ -1458,7 +1458,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1458
1458
  | `8ca0a499ec86` | certain | nothing recorded yet · {…} | `modules/hall-ui/public/profile-charts.js:223` |
1459
1459
  | `a85339717a72` | certain | nothing was saved | `modules/hall-ui/public/tweak-editor.html:119` |
1460
1460
  | `e2c643fbf4d6` | certain | npm install | `modules/hall-ui/public/hall-render.js:806` |
1461
- | `e90b5601ce16` | certain | objected to | `modules/hall-ui/public/board-room.js:168` |
1461
+ | `e90b5601ce16` | certain | objected to | `modules/hall-ui/public/board-room.js:173` |
1462
1462
  | `351d56b80a6c` | certain | of all in-flight tasks shipped | `modules/hall-ui/public/roadmap.js:298` |
1463
1463
  | `09172f45e6da` | certain | of the 90% needed | `modules/hall-ui/public/primer.html:101` |
1464
1464
  | `99f88f2af2ee` | certain | of work — a tangent, an investigation, an unprompted suggestion — instead of staying on your claimed task. It | `modules/hall-ui/public/settings.html:280` |
@@ -1586,7 +1586,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1586
1586
  | `ec7c228cb4ce` | certain | why this isn’t worth doing | `modules/hall-ui/public/task-detail.js:616` |
1587
1587
  | `c612ab426c2f` | certain | your sky | `modules/hall-ui/public/thinking.html:72` |
1588
1588
  | `3491d859e66a` | certain | your thinking | `modules/hall-ui/public/thinking.html:77` |
1589
- | `66d979d0db89` | certain | your vote | `modules/hall-ui/public/board-room.js:163` |
1589
+ | `66d979d0db89` | certain | your vote | `modules/hall-ui/public/board-room.js:168` |
1590
1590
  | `d2bd1c3ab0f5` | certain | { if (row.key === 'rot_timer' && row.editable) return rowHtml(row, rotBodyHtml(row)); if (row.key === 'work_ca | `modules/hall-ui/public/project-settings.js:152` |
1591
1591
  | `3d8611c2e79d` | certain | {{worldName}} · studio | `modules/hall-ui/public/studio.html:79` |
1592
1592
  | `50d4a70a2eb2` | certain | {…} Access is invite-based: an Archon approves each new builder. To begin, request access below. | `modules/hall-ui/public/hall-render.js:294` |
@@ -1638,7 +1638,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
1638
1638
  | `0d4016a5531c` | certain | {…} {…}{…} | `modules/hall-ui/public/work.js:265` |
1639
1639
  | `b3757ba3bb46` | certain | {…} · Stored encrypted; never shown again after saving. | `modules/hall-ui/public/settings.js:834` |
1640
1640
  | `a6e4ed98fbea` | certain | {…} · revoke it any time under Active sessions. | `modules/hall-ui/public/settings.js:766` |
1641
- | `d73256fbc395` | certain | {…} · who votes, and how it {…} | `modules/hall-ui/public/board-room.js:444` |
1641
+ | `d73256fbc395` | certain | {…} · who votes, and how it {…} | `modules/hall-ui/public/board-room.js:449` |
1642
1642
  | `cab2a4296aec` | certain | {…} · {…} · {…}{…} | `modules/hall-ui/public/goal-inbox.js:458` |
1643
1643
  | `1ac723849449` | certain | {…} · {…}{…} | `modules/hall-ui/public/sky-interaction.js:33` |
1644
1644
  | `085f93f3f775` | certain | {…} — see all standings | `modules/hall-ui/public/hall-render.js:80` |
@@ -265,7 +265,7 @@
265
265
  "text": "Restricted.",
266
266
  "occurrences": 4,
267
267
  "at": [
268
- "modules/hall-ui/public/board-room.js:521",
268
+ "modules/hall-ui/public/board-room.js:526",
269
269
  "modules/hall-ui/public/gate.js:234",
270
270
  "modules/hall-ui/public/government.js:879",
271
271
  "modules/hall-ui/public/watch.js:1294"
@@ -1087,7 +1087,7 @@
1087
1087
  "text": "Its author gave no scope recommendation.",
1088
1088
  "occurrences": 2,
1089
1089
  "at": [
1090
- "modules/hall-ui/public/board-room.js:295",
1090
+ "modules/hall-ui/public/board-room.js:300",
1091
1091
  "modules/hall-ui/public/idea.js:162"
1092
1092
  ]
1093
1093
  },
@@ -1097,7 +1097,7 @@
1097
1097
  "text": "Its author recommends this becomes",
1098
1098
  "occurrences": 2,
1099
1099
  "at": [
1100
- "modules/hall-ui/public/board-room.js:294",
1100
+ "modules/hall-ui/public/board-room.js:299",
1101
1101
  "modules/hall-ui/public/idea.js:166"
1102
1102
  ]
1103
1103
  },
@@ -2343,7 +2343,7 @@
2343
2343
  "surface": "builders-hall",
2344
2344
  "text": ", // membership",
2345
2345
  "file": "modules/hall-ui/public/board-room.js",
2346
- "line": 300,
2346
+ "line": 305,
2347
2347
  "origin": "js-markup",
2348
2348
  "confidence": "certain"
2349
2349
  },
@@ -3603,7 +3603,7 @@
3603
3603
  "surface": "builders-hall",
3604
3604
  "text": "Cast objection",
3605
3605
  "file": "modules/hall-ui/public/board-room.js",
3606
- "line": 363,
3606
+ "line": 368,
3607
3607
  "origin": "js-markup",
3608
3608
  "confidence": "certain"
3609
3609
  },
@@ -4863,7 +4863,7 @@
4863
4863
  "surface": "builders-hall",
4864
4864
  "text": "Could not vote: {…}",
4865
4865
  "file": "modules/hall-ui/public/board-room.js",
4866
- "line": 391,
4866
+ "line": 396,
4867
4867
  "origin": "js-notice",
4868
4868
  "confidence": "certain"
4869
4869
  },
@@ -6663,7 +6663,7 @@
6663
6663
  "surface": "builders-hall",
6664
6664
  "text": "It cleared the completeness grade at {…}/100.",
6665
6665
  "file": "modules/hall-ui/public/board-room.js",
6666
- "line": 326,
6666
+ "line": 331,
6667
6667
  "origin": "js-markup",
6668
6668
  "confidence": "certain"
6669
6669
  },
@@ -6708,7 +6708,7 @@
6708
6708
  "surface": "builders-hall",
6709
6709
  "text": "Its author gave no scope recommendation.",
6710
6710
  "file": "modules/hall-ui/public/board-room.js",
6711
- "line": 295,
6711
+ "line": 300,
6712
6712
  "origin": "js-markup",
6713
6713
  "confidence": "certain"
6714
6714
  },
@@ -6735,7 +6735,7 @@
6735
6735
  "surface": "builders-hall",
6736
6736
  "text": "Its author recommends this becomes",
6737
6737
  "file": "modules/hall-ui/public/board-room.js",
6738
- "line": 294,
6738
+ "line": 299,
6739
6739
  "origin": "js-markup",
6740
6740
  "confidence": "certain"
6741
6741
  },
@@ -7095,7 +7095,7 @@
7095
7095
  "surface": "builders-hall",
7096
7096
  "text": "Loading sittings…",
7097
7097
  "file": "modules/hall-ui/public/board-room.js",
7098
- "line": 539,
7098
+ "line": 544,
7099
7099
  "origin": "js-text-assign",
7100
7100
  "confidence": "certain"
7101
7101
  },
@@ -9687,7 +9687,7 @@
9687
9687
  "surface": "builders-hall",
9688
9688
  "text": "Restricted.",
9689
9689
  "file": "modules/hall-ui/public/board-room.js",
9690
- "line": 521,
9690
+ "line": 526,
9691
9691
  "origin": "js-text-assign",
9692
9692
  "confidence": "certain"
9693
9693
  },
@@ -11001,7 +11001,7 @@
11001
11001
  "surface": "builders-hall",
11002
11002
  "text": "The Board Room is open to the builders this project’s constitution seats on its board.",
11003
11003
  "file": "modules/hall-ui/public/board-room.js",
11004
- "line": 524,
11004
+ "line": 529,
11005
11005
  "origin": "js-text-assign",
11006
11006
  "confidence": "certain"
11007
11007
  },
@@ -12063,7 +12063,7 @@
12063
12063
  "surface": "builders-hall",
12064
12064
  "text": "This sends the idea back to its author. Say why, and which section.",
12065
12065
  "file": "modules/hall-ui/public/board-room.js",
12066
- "line": 363,
12066
+ "line": 368,
12067
12067
  "origin": "js-markup",
12068
12068
  "confidence": "certain"
12069
12069
  },
@@ -12423,7 +12423,7 @@
12423
12423
  "surface": "builders-hall",
12424
12424
  "text": "Vote yes",
12425
12425
  "file": "modules/hall-ui/public/board-room.js",
12426
- "line": 363,
12426
+ "line": 368,
12427
12427
  "origin": "js-markup",
12428
12428
  "confidence": "certain"
12429
12429
  },
@@ -12927,7 +12927,7 @@
12927
12927
  "surface": "builders-hall",
12928
12928
  "text": "Why — the reason the author will act on",
12929
12929
  "file": "modules/hall-ui/public/board-room.js",
12930
- "line": 363,
12930
+ "line": 368,
12931
12931
  "origin": "js-markup",
12932
12932
  "confidence": "certain"
12933
12933
  },
@@ -13116,7 +13116,7 @@
13116
13116
  "surface": "builders-hall",
13117
13117
  "text": "You {…}. One vote per member.",
13118
13118
  "file": "modules/hall-ui/public/board-room.js",
13119
- "line": 435,
13119
+ "line": 440,
13120
13120
  "origin": "js-markup",
13121
13121
  "confidence": "certain"
13122
13122
  },
@@ -13278,7 +13278,7 @@
13278
13278
  "surface": "builders-hall",
13279
13279
  "text": "Your own idea. You may vote, but it can’t be decided by your vote alone, and a vote on your own idea earns no karma.",
13280
13280
  "file": "modules/hall-ui/public/board-room.js",
13281
- "line": 361,
13281
+ "line": 366,
13282
13282
  "origin": "js-markup",
13283
13283
  "confidence": "certain"
13284
13284
  },
@@ -14592,7 +14592,7 @@
14592
14592
  "surface": "builders-hall",
14593
14593
  "text": "objected to",
14594
14594
  "file": "modules/hall-ui/public/board-room.js",
14595
- "line": 168,
14595
+ "line": 173,
14596
14596
  "origin": "js-markup",
14597
14597
  "confidence": "certain"
14598
14598
  },
@@ -15744,7 +15744,7 @@
15744
15744
  "surface": "builders-hall",
15745
15745
  "text": "your vote",
15746
15746
  "file": "modules/hall-ui/public/board-room.js",
15747
- "line": 163,
15747
+ "line": 168,
15748
15748
  "origin": "js-markup",
15749
15749
  "confidence": "certain"
15750
15750
  },
@@ -16212,7 +16212,7 @@
16212
16212
  "surface": "builders-hall",
16213
16213
  "text": "{…} · who votes, and how it {…}",
16214
16214
  "file": "modules/hall-ui/public/board-room.js",
16215
- "line": 444,
16215
+ "line": 449,
16216
16216
  "origin": "js-markup",
16217
16217
  "confidence": "certain"
16218
16218
  },
@@ -0,0 +1,131 @@
1
+ # Project startup — design direction (the design of record)
2
+
3
+ > Goal 1000121 · task BV2.PS01 (1004415) · spec [`docs/specs/<redacted>.md`](../specs/<redacted>.md) (final) · idea 1001172.
4
+ > Live prototype: the Claude Design canvas "Project Startup Onboarding" (https://claude.ai/artifact/<redacted>). It is private to the owner. Its sources are committed in [`mocks/project-startup/`](mocks/project-startup/README.md).
5
+
6
+ This document is what every build task in goal 1000121 cites. Name a screen by its canvas file (for example "`Charter.dc.html`") and look it up here. It records:
7
+
8
+ - **what each screen is**;
9
+ - **what the live product KEEPS**;
10
+ - **what the new design ADDS**;
11
+ - the decisions that govern both.
12
+
13
+ ## The blend rule — read this first (owner, 2026-09-30)
14
+
15
+ > *No UI battle between existing and new. Build the prototype's design, then blend it where needed with existing design. Don't hijack the builders hall.*
16
+
17
+ Four consequences, applied in every row below:
18
+
19
+ 1. **Genesis is a MODE the existing hall wears, never a second hall.**
20
+ - It follows the social-mode precedent (`html[data-social]`): one attribute on the hall, off by default, and off whenever the founding state cannot be read.
21
+ - It keeps today's v3 glass hall: the shell, the 64px rail, the navigation groups, the panels, the tokens and both modes.
22
+ 2. **Founding mode adds exactly four things, and nothing else changes:**
23
+ - the founding band;
24
+ - the genesis home;
25
+ - the asleep state on existing navigation items;
26
+ - the founding mark.
27
+
28
+ A test must pin that a hall that is not founding renders exactly as today.
29
+ 3. **Where the canvas's hall chrome differs from the live hall, the live hall wins.**
30
+ - The canvas drew a hall to show the idea: an expanded 232px rail, its own panel spacing, its own icons. Those are illustration, not instruction.
31
+ - Build the four additions *into* the real hall's components (`OTBKit`, the archetype sheets, `shell.js` NAV, the widget registry). Never port the canvas's markup.
32
+ 4. **The hub-side screens (front door, questions, look) are new surfaces in the apex world.**
33
+ - They extend the existing create wizard (`projects.html ?view=new`) and follow `DESIGN.md` exactly.
34
+ - Where the wizard already has a component, reuse it rather than the canvas's version: the lifecycle rail, hairline choice cells, one-hairline fields, doors and ledger rows.
35
+
36
+ ## The screens
37
+
38
+ ### Front door (hub, apex world)
39
+
40
+ | Canvas screen | What it is | Keep | Add |
41
+ |---|---|---|---|
42
+ | `Main.dc.html` · Before you begin | A terms acknowledgement before creation. | Sign-in stays where it is today, before this screen. The terms version stamp (the platform's existing acceptance machinery) records what was accepted. | A new first screen: display headline, two lede paragraphs, one checkbox, a "read the terms" link, one primary door. |
43
+ | `Fork.dc.html` · Demo or create | "You are now creating a digital planet." | The world's **door pill**, as specified in `DESIGN.md`: two equal doors joined into one glass object. | A full-bleed composition: the seed on the field plate, the headline, the door pill, and two route descriptions on a hairline band. |
44
+
45
+ ### Route 1 · the demo
46
+
47
+ | Canvas screen | What it is | Keep | Add |
48
+ |---|---|---|---|
49
+ | `DemoSetup.dc.html` | People, hours each, an idea, and a fit check. | The wizard's steppers-as-fields grammar and hairline fields. | A fit-check panel in Bongos's voice, and a time-box ring on the planet. The copy says each person uses their own AI plan. |
50
+ | `DemoReady.dc.html` | Defaults picked, plus invites. | Ledger rows for the defaults; the existing invite step's shape. | The demo defaults (D-list below) and two invite fields. |
51
+ | `DemoKeep.dc.html` | "Keep your planet?" | — | Two cells: carry it over (pre-fills part 1) or keep it as a demo. |
52
+
53
+ **Demo decisions:**
54
+ - **D3 — the time box is soft.** A countdown shows; at zero the demo asks "keep your planet?". Work is never frozen.
55
+ - **D9 — an unkept demo is archived after 30 days.** It goes offline and can be restored, and the owner is warned first.
56
+
57
+ ### Route 2 · part 1, planet physics (hub, apex world)
58
+
59
+ Every question screen shares one layout. On the left are the rail of seven steps, the question, the choices and the doors. On the right is the **stage**: the field plate, with the planet forming.
60
+
61
+ | Canvas screen | Question | Keep | Add |
62
+ |---|---|---|---|
63
+ | `Autofill.dc.html` | Start from your account, or from scratch? | Hairline cells. | The seven-step rail, shown up front. |
64
+ | `State.dc.html` / `StateExisting.dc.html` | 1 · New or existing, the idea text, and existing work types. | Cells, a hairline textarea, and check rows. | The planet begins as a **seed** (new) or **already formed** (existing). |
65
+ | `NotPossible.dc.html` | The screening stop. | — | A calm stop screen: nothing created, contact us, start over. No planet forms. |
66
+ | `Geography.dc.html` | 2 · Home country and state, and where builders are. | Hairline selects and option rows. | The planet's **coordinates** (a mono line on the stage). |
67
+ | `Ages.dc.html` | 3 · Anyone under 18? | Cells, and a ledger for the tiers. | A **protective ring**; the guardian tiers stated plainly. |
68
+ | `Entity.dc.html` / `EntityExisting.dc.html` | 4 · Intent (new) or legal type (existing). | Option rows with group heads. | The planet's **core material**: frost for an individual, chrome for a group, gold for an organization, obsidian for a nonprofit. This is placeholder art direction. |
69
+ | `Builders.dc.html` / `BuildersPro.dc.html` | 5 · One or many, how many, and a growth guess. | Cells and a stepper. | **Moons**, plus a dashed orbit for expected growth. Two voices (D5). |
70
+ | `Rewards.dc.html` | 6 · Reward intents (hidden when solo). | Check rows. | **Rings**: currents of value. |
71
+ | `Framing.dc.html` | 7 · A–D, plus the service checklist. | Option rows and a two-column check grid. | The planet's **orbit** around the Bongos pair: all managed is close, hybrid is middle, local is far, open source is its own system. |
72
+ | `Physics.dc.html` | The summary. | Ledger rows with change links. | The full planet, with every addition. |
73
+
74
+ **Decisions for part 1:**
75
+ - **D5 — the voice follows the entity answer automatically.** Planet voice for individuals and groups; professional voice for organizations. It can be switched later in settings.
76
+ - **D6 — soft limits only.** An option that does not apply is hidden or greyed, with a plain "why" line from one rule table that carries its reasons. Nothing claims to be enforced.
77
+
78
+ ### Coordinates, a look, then birth (hub, apex world)
79
+
80
+ | Canvas screen | What it is | Keep | Add |
81
+ |---|---|---|---|
82
+ | `Coordinates.dc.html` | Name, handle and address; where the code lives; where the app runs. | **Today's wizard steps as they are.** This screen only shows them **pre-filled from part 1**, and skipped when they do not apply. | The planet named under the stage. |
83
+ | `Look.dc.html` | Pick a look for light and dark mode, plus a logo. | **A look is a branding pack**: the style library's real looks (Chrome World, Expedition, Grove, Blueprint), with no sixteenth token. | A look picker with two mini-hall previews. A night-tint switch, **on by default** (D2 — its ADR is PS06's first job). A logo upload. |
84
+ | `Birth.dc.html` | The planet forming while setup runs. | **Today's done panel**: the standup rail and the three owner-only steps. | The planet arriving on the stage. The primary door starts genesis while the machine setup finishes. |
85
+
86
+ **D8 — existing projects get the look and the logo only**, from project settings. They never get genesis.
87
+
88
+ ### Part 2 · genesis, planet biology (the builders' hall, founding mode)
89
+
90
+ **Every row here is governed by the blend rule.** The canvas shows Kestrel's chosen look (Grove, with the night tint) on purpose, to show that halls differ. The real hall renders the project's own branding pack, whatever it is.
91
+
92
+ | Canvas screen | What it is | Keep (the live hall) | Add (founding mode only) |
93
+ |---|---|---|---|
94
+ | All four genesis screens | The frame. | The v3 glass hall: rail, topbar, panels, tokens, both modes, and the project's logo in the topbar. | **The founding band**: a 44px strip above the topbar reading "project founding mode", with the stage and day and a "what's this?" link. **Asleep navigation items**: today's items, dimmed, each naming the stage that wakes it. |
95
+ | `GenesisDecide.dc.html` | Decide: stage lengths, what counts as done, the starting government, passes, advisors. | The hall's panels, ledger rows and pills. | **The genesis home** as the founding-mode landing page, including a solo fast-track (D4, about ten minutes). |
96
+ | `GenesisHall.dc.html` | Mid-genesis. | The home widget registry and the roster rows. | A **life strip** (one rendered plate per stage; PS12 renders them), the stage list, and a founding builders panel. |
97
+ | `Charter.dc.html` | Pick a form of government. | The charter library's real forms and trajectories. | Forms under their **real academic names** with plain explanations (D10). The founding builders' reviews are shown. |
98
+ | `Legislation.dc.html` | Fine-tune the variables. | The Board Room constitution: franchise plus pass rule. | The variables under their academic names with plain explanations. The unbuilt variables are shown as coming later. "Limits from your answers" (D6). |
99
+ | `Alive.dc.html` | The planet comes alive. | The hub sky: the planet joins it. | A moment screen: the founding builders credited, then enter the full hall. **Founding mode switches off.** |
100
+ | `FoundingBuilders.dc.html` | The founding mark, after genesis. | The ranks page, profile and roster exactly as they are. | **The founding mark**: a numbered seed badge (D1 — badge only, it grants nothing), a column on ranks, and a founding wall on the home page. |
101
+
102
+ **How rooms wake.** Each finished stage wakes today's navigation items:
103
+
104
+ | Stage finished | Wakes |
105
+ |---|---|
106
+ | scope | goals & roadmap |
107
+ | strategize | tasks |
108
+ | charter | board room |
109
+ | legalize | economy |
110
+ | legislation | ranks |
111
+ | alive | community, and the public sky |
112
+
113
+ **D7 — a stage closes when the constitution in force decides it** (a Board Room item; PS04). Under a monarchy that is the founder's single confirmation.
114
+
115
+ ## The planet as a system
116
+
117
+ The planet is built from the world's own rendered plates: `r2-*` and `r3-*`, the cutouts, and `r3-space-nebula` for the field. Nothing on the stage is drawn:
118
+
119
+ - orbits are hairline circles;
120
+ - moons are beads;
121
+ - the Bongos pair is the platform's mark.
122
+
123
+ Motion follows `DESIGN.md`: breathe (32s), sheen (40s), drift (90s), orbits of 160s or more, arrive (700ms). All of it is CSS on the objects only, and dead under the kill switch.
124
+
125
+ **The planet the flow forms is the planet that appears in the sky.** Its shape, material and style come from the hub's existing template fields, and the look's accent tints it.
126
+
127
+ ## Copy
128
+
129
+ - **The screen text is user-facing copy, drawn from the owner's scope doc.** Italic text and footnotes in that doc were internal; they live in the canvas's notes and in the spec.
130
+ - **Voice:** the planet voice keeps the owner's energy (one ":)" on the fork). The professional voice drops the planet words but keeps the same flow.
131
+ - **The sample data is sample.** Kestrel, Avery, Jordan, Sam and Rae, the counts, and the "[n]" placeholders are not product copy.
@@ -2705,5 +2705,9 @@ is load-bearing: the script throws rather than guess if it is missing, and
2705
2705
  landed since 1.20.22 with no explicit bump. run 36747567551. (task 1002620)
2706
2706
  1.20.24 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2707
2707
  landed since 1.20.23 with no explicit bump. run 36759918201. (task 1002620)
2708
+ 1.20.25 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2709
+ landed since 1.20.24 with no explicit bump. run 36762454104. (task 1002620)
2710
+ 1.20.26 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2711
+ landed since 1.20.25 with no explicit bump. run 36764011836. (task 1002620)
2708
2712
  ---------------------------------------------------------------------------
2709
2713
  ```
@@ -67,7 +67,7 @@
67
67
  "surface": "builders",
68
68
  "title": "Board Room",
69
69
  "states_read": ["room","out","sitting-meta","objection-form"],
70
- "files_hash": "7e203a1e5dfd2520",
70
+ "files_hash": "c1978638f2ef9558",
71
71
  "reading_hash": "202a0cbb6bc54aac",
72
72
  "counts": {"lines":56,"placed":26,"shared":5,"unplaced":25},
73
73
  "omitted": {"data":9},
@@ -83,32 +83,32 @@
83
83
  {"key":"L0008","section":"{…} Full Idea","text":"Full Idea","placement":"unplaced","occurrences":3},
84
84
  {"key":"L0009","section":"{…} Full Idea","text":"open","placement":"placed","file":"modules/hall-ui/public/approval-queue.js","line":163,"string_id":"9a803563c948"},
85
85
  {"key":"L0010","section":"{…} Full Idea","text":"closes in 73m","placement":"unplaced"},
86
- {"key":"L0011","section":"{…} Full Idea","text":"Vote yes","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":363,"string_id":"b2937e14ee9b"},
86
+ {"key":"L0011","section":"{…} Full Idea","text":"Vote yes","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":368,"string_id":"b2937e14ee9b"},
87
87
  {"key":"L0012","section":"{…} Full Idea","text":"Object…","placement":"unplaced"},
88
- {"key":"L0013","section":"{…} Full Idea","text":"This sends the idea back to its author. Say why, and which section.","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":363,"string_id":"69e8beced2ff","state":"objection-form"},
89
- {"key":"L0014","section":"{…} Full Idea","text":"Why — the reason the author will act on","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":363,"string_id":"fbd8a815b808","attr":"placeholder","state":"objection-form"},
90
- {"key":"L0015","section":"{…} Full Idea","text":"Its author gave no scope recommendation.","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":295,"string_id":"a21788f84e29"},
88
+ {"key":"L0013","section":"{…} Full Idea","text":"This sends the idea back to its author. Say why, and which section.","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":368,"string_id":"69e8beced2ff","state":"objection-form"},
89
+ {"key":"L0014","section":"{…} Full Idea","text":"Why — the reason the author will act on","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":368,"string_id":"fbd8a815b808","attr":"placeholder","state":"objection-form"},
90
+ {"key":"L0015","section":"{…} Full Idea","text":"Its author gave no scope recommendation.","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":300,"string_id":"a21788f84e29"},
91
91
  {"key":"L0016","section":"{…} Full Idea","text":"{…} of {…}","placement":"placed","file":"modules/hall-ui/public/sky-panel.js","line":120,"string_id":"73c1372b43d9","occurrences":2},
92
92
  {"key":"L0017","section":"{…} Full Idea","text":"{…} and {…}","placement":"placed","file":"modules/hall-ui/public/profile-nudge.js","line":77,"string_id":"56b00d773232","occurrences":4},
93
93
  {"key":"L0018","section":"{…} Full Idea","text":"What does the Big Picture look like","placement":"unplaced","occurrences":2},
94
94
  {"key":"L0019","section":"{…} Full Idea","text":"Why did you have the Idea","placement":"unplaced","occurrences":2},
95
95
  {"key":"L0020","section":"{…} Full Idea","text":"Why does the Idea Matter","placement":"unplaced","occurrences":2},
96
96
  {"key":"L0021","section":"{…} Full Idea","text":"{…} project{…}","placement":"placed","file":"modules/hall-ui/public/fleet.js","line":39,"string_id":"771bef3d31b5","occurrences":3},
97
- {"key":"L0022","section":"{…} Full Idea","text":"Cast objection","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":363,"string_id":"bdca1f219e6f","state":"objection-form"},
98
- {"key":"L0023","section":"{…} Full Idea","text":"{…} · who votes, and how it {…}","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":444,"string_id":"d73256fbc395","occurrences":3},
97
+ {"key":"L0022","section":"{…} Full Idea","text":"Cast objection","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":368,"string_id":"bdca1f219e6f","state":"objection-form"},
98
+ {"key":"L0023","section":"{…} Full Idea","text":"{…} · who votes, and how it {…}","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":449,"string_id":"d73256fbc395","occurrences":3},
99
99
  {"key":"L0024","section":"{…} Full Idea","text":"Every {…}","placement":"unplaced","state":"sitting-meta"},
100
100
  {"key":"L0025","section":"{…} Full Idea","text":"{…} or {…}","placement":"unplaced","state":"sitting-meta"},
101
101
  {"key":"L0026","section":"{…} Full Idea","text":"may vote on this.","placement":"unplaced","state":"sitting-meta"},
102
102
  {"key":"L0027","section":"{…} Full Idea","text":"The sitting runs 1 day, closing early once every member has voted.","placement":"unplaced","state":"sitting-meta"},
103
- {"key":"L0028","section":"{…} Full Idea","text":"It cleared the completeness grade at {…}/100.","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":326,"string_id":"bd8d04eb265c","state":"sitting-meta"},
103
+ {"key":"L0028","section":"{…} Full Idea","text":"It cleared the completeness grade at {…}/100.","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":331,"string_id":"bd8d04eb265c","state":"sitting-meta"},
104
104
  {"key":"L0029","section":"{…} and {…}","text":"{…} and {…}","placement":"placed","file":"modules/hall-ui/public/profile-nudge.js","line":77,"string_id":"56b00d773232","occurrences":4},
105
105
  {"key":"L0030","section":"{…} and {…}","text":"Full Idea","placement":"unplaced"},
106
106
  {"key":"L0031","section":"{…} and {…}","text":"open","placement":"placed","file":"modules/hall-ui/public/approval-queue.js","line":163,"string_id":"9a803563c948"},
107
107
  {"key":"L0032","section":"{…} and {…}","text":"no clock","placement":"placed","file":"modules/hall-ui/public/government.js","line":607,"string_id":"b9f2e0d43c94"},
108
- {"key":"L0033","section":"{…} and {…}","text":"Your own idea. You may vote, but it can’t be decided by your vote alone, and a vote on your own idea earns no karma.","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":361,"string_id":"c0a01a95e97e"},
109
- {"key":"L0034","section":"{…} and {…}","text":"Vote yes","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":363,"string_id":"b2937e14ee9b"},
108
+ {"key":"L0033","section":"{…} and {…}","text":"Your own idea. You may vote, but it can’t be decided by your vote alone, and a vote on your own idea earns no karma.","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":366,"string_id":"c0a01a95e97e"},
109
+ {"key":"L0034","section":"{…} and {…}","text":"Vote yes","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":368,"string_id":"b2937e14ee9b"},
110
110
  {"key":"L0035","section":"{…} and {…}","text":"Object…","placement":"unplaced"},
111
- {"key":"L0036","section":"{…} and {…}","text":"Its author recommends this becomes","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":294,"string_id":"680491549e47"},
111
+ {"key":"L0036","section":"{…} and {…}","text":"Its author recommends this becomes","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":299,"string_id":"680491549e47"},
112
112
  {"key":"L0037","section":"{…} and {…}","text":"a {…} inside an existing goal","placement":"unplaced"},
113
113
  {"key":"L0038","section":"{…} and {…}","text":". The board decides.","placement":"unplaced"},
114
114
  {"key":"L0039","section":"{…} and {…}","text":"What made you have the idea","placement":"unplaced"},
@@ -116,16 +116,16 @@
116
116
  {"key":"L0041","section":"{…} and {…}","text":"What should an {…} or artist know prior to building","placement":"unplaced"},
117
117
  {"key":"L0042","section":"{…} and {…}","text":"{…} project{…}","placement":"placed","file":"modules/hall-ui/public/fleet.js","line":39,"string_id":"771bef3d31b5","occurrences":2},
118
118
  {"key":"L0043","section":"{…} and {…}","text":"{…} of {…}","placement":"placed","file":"modules/hall-ui/public/sky-panel.js","line":120,"string_id":"73c1372b43d9","occurrences":2},
119
- {"key":"L0044","section":"{…} and {…}","text":"{…} · who votes, and how it {…}","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":444,"string_id":"d73256fbc395"},
119
+ {"key":"L0044","section":"{…} and {…}","text":"{…} · who votes, and how it {…}","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":449,"string_id":"d73256fbc395"},
120
120
  {"key":"L0045","section":"Constitutional amendment amendment","text":"Constitutional amendment","placement":"unplaced"},
121
121
  {"key":"L0046","section":"Constitutional amendment amendment","text":"amendment","placement":"unplaced"},
122
122
  {"key":"L0047","section":"Constitutional amendment amendment","text":"open","placement":"placed","file":"modules/hall-ui/public/approval-queue.js","line":163,"string_id":"9a803563c948"},
123
123
  {"key":"L0048","section":"Constitutional amendment amendment","text":"closes in 15m","placement":"unplaced"},
124
124
  {"key":"L0049","section":"Constitutional amendment amendment","text":"Proposes","placement":"unplaced"},
125
125
  {"key":"L0050","section":"Constitutional amendment amendment","text":"{\"pass_rule\":\"{…}\",\"window_minutes\":2880}","placement":"unplaced"},
126
- {"key":"L0051","section":"Constitutional amendment amendment","text":"Vote yes","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":363,"string_id":"b2937e14ee9b"},
126
+ {"key":"L0051","section":"Constitutional amendment amendment","text":"Vote yes","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":368,"string_id":"b2937e14ee9b"},
127
127
  {"key":"L0052","section":"Constitutional amendment amendment","text":"Object…","placement":"unplaced"},
128
- {"key":"L0053","section":"Constitutional amendment amendment","text":"{…} · who votes, and how it {…}","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":444,"string_id":"d73256fbc395"},
128
+ {"key":"L0053","section":"Constitutional amendment amendment","text":"{…} · who votes, and how it {…}","placement":"placed","file":"modules/hall-ui/public/board-room.js","line":449,"string_id":"d73256fbc395"},
129
129
  {"key":"L0054","section":"Constitutional amendment amendment","text":"Closed sittings","placement":"unplaced"},
130
130
  {"key":"L0055","section":"{…} Full Idea","text":"passed","placement":"placed","file":"modules/hall-ui/public/government.js","line":633,"string_id":"da5368d10f85"},
131
131
  {"key":"L0056","section":"footer","text":"Sign out","placement":"shared","file":"modules/hall-ui/public/shell.js","line":464,"string_id":"1883ad7f07fc"}
@@ -3606,7 +3606,7 @@
3606
3606
  "surface": "landing",
3607
3607
  "title": "{{productName}} — projects",
3608
3608
  "states_read": ["out-map","in-map","in-map-projects","in-map-profile","in-map-kbd","in-map-search","in-map-mine-on","in-table","in-table-by-builders","in-mine","in-manage","in-manage-address","in-manage-planet","in-manage-card","in-manage-kind","in-manage-invite","in-manage-invite-handoff","in-manage-app-live","in-manage-app-building","in-manage-app-failed","in-manage-app-retry","in-manage-app-offer","in-manage-app-connect","in-manage-snag","in-manage-gone","in-manage-missing","out-manage","in-new","out-new","in-new-type","in-new-about","in-new-modules","in-new-modules-search","in-new-home","in-new-address","in-new-app","in-new-app-render","in-new-review","in-new-done","in-new-resume-offer","out-map-projects","card","card-noart","card-self","in-mine-empty","card-floor","card-backdrop"],
3609
- "files_hash": "4d039ad9637045e2",
3609
+ "files_hash": "0175af500182c5d2",
3610
3610
  "reading_hash": "1b2c6ce40c79925e",
3611
3611
  "counts": {"lines":517,"placed":182,"shared":20,"unplaced":315},
3612
3612
  "omitted": {"data":107},
@@ -148,6 +148,7 @@ async function postBoardAnnouncement(payload, deps = {}) {
148
148
  const CHANNEL = 'board_room';
149
149
 
150
150
  function subjectLabel(subjectType) {
151
+ if (subjectType === 'genesis_stage') return 'A genesis stage'; // task 1004429
151
152
  return subjectType === 'constitutional_amendment' ? 'A constitutional amendment' : 'A Full Idea';
152
153
  }
153
154