@bongos/core 1.20.76 → 1.20.77
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.
- package/.bongos-core.json +30 -25
- package/docs/copy-inventory.md +512 -447
- package/docs/copy-registry.json +1144 -548
- package/docs/module-api-changelog.md +2 -0
- package/docs/page-inventory.json +7 -1
- package/docs/page-readings.json +1059 -946
- package/modules/provisioning/planet-physics.js +8 -0
- package/modules/provisioning/soft-limits.js +9 -0
- package/modules/public-landing/public/projects.html +579 -37
- package/modules/public-landing/public/projects.probes.json +6 -3
- package/modules/public-landing/public/projects.states.json +20 -14
- package/modules/ui-design/kit/serve.js +26 -3
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +6 -0
- package/src/module-api.js +1 -1
- package/tests/projects_hub_app_step.mjs +4 -1
- package/tests/provisioning_planet_physics.mjs +24 -2
- package/tests/wizard_physics.mjs +11 -4
- package/tests/wizard_physics_more.mjs +470 -0
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
// 6 rewards reward_intents (all being considered — intent, never binding)
|
|
15
15
|
// 7 framing framing (A–D: managed, hybrid, local, open-source) and services
|
|
16
16
|
//
|
|
17
|
+
// plus `voice` (planet · professional), which nobody is asked: it follows the entity
|
|
18
|
+
// answer (spec D5) and can be switched later.
|
|
19
|
+
//
|
|
17
20
|
// THREE KINDS OF QUESTION. `one` takes a single member of its list, `many` takes an
|
|
18
21
|
// array of members (stored de-duplicated, in the list's own order, so two spellings of
|
|
19
22
|
// one answer store the same bytes), and `count` takes a whole number in a range.
|
|
@@ -100,6 +103,11 @@ const PLANET_PHYSICS_QUESTIONS = Object.freeze({
|
|
|
100
103
|
reward_intents: Object.freeze({ kind: 'many', values: Object.freeze(['non-monetary', 'cash', 'equity', 'future-payouts']) }),
|
|
101
104
|
framing: Object.freeze({ kind: 'one', values: FRAMINGS }),
|
|
102
105
|
services: Object.freeze({ kind: 'many', values: SERVICES }),
|
|
106
|
+
// Not a question: the VOICE the project's copy speaks in (spec D5, task 1004419). The
|
|
107
|
+
// startup flow sets it from the entity answer — the planet voice for individuals and
|
|
108
|
+
// groups, a plain professional one for a formed organization — and stores it here
|
|
109
|
+
// so the project's settings can switch it later with an ordinary PATCH …/detail.
|
|
110
|
+
voice: Object.freeze({ kind: 'one', values: Object.freeze(['planet', 'professional']) }),
|
|
103
111
|
});
|
|
104
112
|
|
|
105
113
|
// The answer as it may be STORED, or undefined when it is not one. `many` answers come
|
|
@@ -42,6 +42,15 @@ const SOFT_LIMIT_RULES = Object.freeze([
|
|
|
42
42
|
effect: 'hide',
|
|
43
43
|
reason: 'Your planet is new, so there is nothing built yet to describe.',
|
|
44
44
|
}),
|
|
45
|
+
// Task 1004419: question 6 is hidden for a founder building alone with nobody
|
|
46
|
+
// expected — one builder now AND one by month three. Expecting company keeps it.
|
|
47
|
+
Object.freeze({
|
|
48
|
+
id: 'rewards-need-other-builders',
|
|
49
|
+
when: { builders_at_start: { in: [1] }, builders_expected: { in: [1] } },
|
|
50
|
+
options: ['reward_intents'],
|
|
51
|
+
effect: 'hide',
|
|
52
|
+
reason: "You're building solo, so there is nobody to reward yet. Expect builders to join and the question comes back.",
|
|
53
|
+
}),
|
|
45
54
|
Object.freeze({
|
|
46
55
|
id: 'equity-needs-a-company',
|
|
47
56
|
when: { entity: { in: ['intent-company', 'intent-nonprofit', 'intent-solo', 'intent-unsure', 'university-project', 'social-group', 'private-individual'] } },
|