@synap-core/workspace-templates 0.12.0 → 0.23.0

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 (245) hide show
  1. package/README.md +483 -0
  2. package/automations/bookmark-enrichment.automation.json +321 -0
  3. package/automations/github-pr-events.automation.json +505 -0
  4. package/automations/mail-feed.automation.json +86 -0
  5. package/automations/ship-a-change-checks-green.automation.json +106 -0
  6. package/automations/ship-a-change-checks-red.automation.json +106 -0
  7. package/automations/ship-a-change-deployed.automation.json +56 -0
  8. package/automations/ship-a-change-pr-merged.automation.json +110 -0
  9. package/automations/ship-a-change-pr-opened.automation.json +104 -0
  10. package/automations/url-bookmark-capture.automation.json +132 -0
  11. package/capabilities/agency-skills.capability.json +157 -0
  12. package/capabilities/apify.capability.json +265 -0
  13. package/capabilities/apollo.capability.json +120 -0
  14. package/capabilities/arch-backend.capability.json +97 -0
  15. package/capabilities/arch-client-intelligence.capability.json +401 -0
  16. package/capabilities/backblaze-b2.capability.json +205 -0
  17. package/capabilities/cal-com.capability.json +266 -0
  18. package/capabilities/canva.capability.json +274 -0
  19. package/capabilities/claude-code-routines.capability.json +172 -0
  20. package/capabilities/claude-managed-agents.capability.json +215 -0
  21. package/capabilities/client-comms-report.capability.json +246 -0
  22. package/capabilities/content-idea-to-production.capability.json +29 -0
  23. package/capabilities/datagouv.capability.json +315 -0
  24. package/capabilities/discord-bot.capability.json +157 -0
  25. package/capabilities/dropbox.capability.json +281 -0
  26. package/capabilities/exa.capability.json +109 -0
  27. package/capabilities/fal-ai.capability.json +83 -0
  28. package/capabilities/fal-media-lab.capability.json +158 -0
  29. package/capabilities/fireflies.capability.json +191 -0
  30. package/capabilities/freellmapi.capability.json +114 -0
  31. package/capabilities/generic-apikey.capability.json +92 -0
  32. package/capabilities/github-merge.capability.json +99 -0
  33. package/capabilities/github-read.capability.json +325 -0
  34. package/capabilities/governance-tighten-recommender.capability.json +81 -0
  35. package/capabilities/jev.capability.json +226 -0
  36. package/capabilities/lead-conversion-enrollment.capability.json +246 -0
  37. package/capabilities/mail-feed.capability.json +277 -0
  38. package/capabilities/mailgun.capability.json +52 -0
  39. package/capabilities/nango-google.capability.json +639 -0
  40. package/capabilities/notion.capability.json +417 -0
  41. package/capabilities/omniroute.capability.json +137 -0
  42. package/capabilities/posthog-analytics.capability.json +258 -0
  43. package/capabilities/postiz.capability.json +467 -0
  44. package/capabilities/proactive-digest.capability.json +190 -0
  45. package/capabilities/proton.capability.json +288 -0
  46. package/capabilities/replicate-rvm.capability.json +97 -0
  47. package/capabilities/research-methods.capability.json +57 -0
  48. package/capabilities/shopify.capability.json +395 -0
  49. package/capabilities/slack.capability.json +369 -0
  50. package/capabilities/stripe.capability.json +420 -0
  51. package/capabilities/telegram-bridge.capability.json +56 -0
  52. package/capabilities/treg.capability.json +102 -0
  53. package/capabilities/unipile-linkedin.capability.json +471 -0
  54. package/capabilities/vercel.capability.json +424 -0
  55. package/dist/define-CPS0n8BV.d.ts +1331 -0
  56. package/dist/index.d.ts +174 -900
  57. package/dist/index.js +26148 -23931
  58. package/dist/index.js.map +1 -1
  59. package/dist/wire.d.ts +222 -0
  60. package/dist/wire.js +77 -0
  61. package/dist/wire.js.map +1 -0
  62. package/package.json +27 -4
  63. package/packs/bookmark-views-pack.json +33 -0
  64. package/packs/crm-pack.json +76 -0
  65. package/packs/customer-profile.json +28 -0
  66. package/packs/deep-research.playbook.json +30 -0
  67. package/packs/event-views-pack.json +33 -0
  68. package/packs/habit-profile.json +27 -0
  69. package/packs/hr-pack.json +54 -0
  70. package/packs/invoice-profile.json +28 -0
  71. package/packs/knowledge-base-pack.json +56 -0
  72. package/packs/meeting-profile.json +29 -0
  73. package/packs/product-profile.json +30 -0
  74. package/packs/project-management-pack.json +49 -0
  75. package/packs/recipe-profile.json +29 -0
  76. package/packs/task-views-pack.json +39 -0
  77. package/retired.yaml +136 -0
  78. package/skills/app-factory-build-slice/SKILL.md +70 -0
  79. package/skills/app-factory-build-slice.catalog.json +17 -0
  80. package/skills/app-factory-design-canvas/SKILL.md +96 -0
  81. package/skills/app-factory-design-canvas.catalog.json +17 -0
  82. package/skills/app-factory-design-review/SKILL.md +99 -0
  83. package/skills/app-factory-design-review.catalog.json +18 -0
  84. package/skills/app-factory-research/SKILL.md +123 -0
  85. package/skills/app-factory-research.catalog.json +17 -0
  86. package/skills/bookmark-enrichment/SKILL.md +40 -0
  87. package/skills/carousel-format/carousel-format.skill.json +18 -0
  88. package/skills/collage-broll/collage-broll.skill.json +20 -0
  89. package/skills/content-taste/content-taste.skill.json +18 -0
  90. package/skills/creative-director/creative-director.skill.json +18 -0
  91. package/skills/design-critique/SKILL.md +135 -0
  92. package/skills/design-critique.catalog.json +12 -0
  93. package/skills/designing-with-real-components/SKILL.md +140 -0
  94. package/skills/designing-with-real-components.catalog.json +12 -0
  95. package/skills/edit-loop/edit-loop.skill.json +25 -0
  96. package/skills/facecam-edit/facecam-edit.skill.json +24 -0
  97. package/skills/mapping-the-server/SKILL.md +54 -0
  98. package/skills/math-explainer-manimgx/math-explainer-manimgx.skill.json +20 -0
  99. package/skills/motion-quality-gates/motion-quality-gates.skill.json +20 -0
  100. package/skills/open-design-edit/open-design-edit.skill.json +24 -0
  101. package/skills/reading-client-progress/SKILL.md +65 -0
  102. package/skills/routing-to-channels/SKILL.md +54 -0
  103. package/skills/stellar-scf-grants-advisor/ASSOCIATE-CHEATSHEET.md +133 -0
  104. package/skills/stellar-scf-grants-advisor/ASSOCIATE-ONBOARDING-GUIDE.md +761 -0
  105. package/skills/stellar-scf-grants-advisor/CLIENT-FAQ.md +181 -0
  106. package/skills/stellar-scf-grants-advisor/PARTNER-HANDOVER.md +130 -0
  107. package/skills/stellar-scf-grants-advisor/SKILL.md +102 -0
  108. package/skills/stellar-scf-grants-advisor/examples/README.md +43 -0
  109. package/skills/stellar-scf-grants-advisor/examples/chat-summary-templates.md +158 -0
  110. package/skills/stellar-scf-grants-advisor/examples/corpus-comparable-rows.md +136 -0
  111. package/skills/stellar-scf-grants-advisor/examples/q10-team-rewrites.md +109 -0
  112. package/skills/stellar-scf-grants-advisor/examples/q2-description-rewrites.md +88 -0
  113. package/skills/stellar-scf-grants-advisor/examples/q6-integration-rewrites.md +107 -0
  114. package/skills/stellar-scf-grants-advisor/examples/tranche-structures.md +176 -0
  115. package/skills/stellar-scf-grants-advisor/reference/01-methodology.md +96 -0
  116. package/skills/stellar-scf-grants-advisor/reference/02-scoring-framework.md +199 -0
  117. package/skills/stellar-scf-grants-advisor/reference/03-rejection-patterns.md +241 -0
  118. package/skills/stellar-scf-grants-advisor/reference/04-winner-patterns.md +120 -0
  119. package/skills/stellar-scf-grants-advisor/reference/05-comeback-patterns.md +92 -0
  120. package/skills/stellar-scf-grants-advisor/reference/06-budget-benchmarks.md +125 -0
  121. package/skills/stellar-scf-grants-advisor/reference/07-integration-list.md +147 -0
  122. package/skills/stellar-scf-grants-advisor/reference/08-abstract-fields.md +258 -0
  123. package/skills/stellar-scf-grants-advisor/reference/09-build-fields.md +259 -0
  124. package/skills/stellar-scf-grants-advisor/reference/10-corpus-winners.md +135 -0
  125. package/skills/stellar-scf-grants-advisor/reference/11-corpus-rejects.md +267 -0
  126. package/skills/stellar-scf-grants-advisor/reference/12-client-communication.md +131 -0
  127. package/skills/stellar-scf-grants-advisor/reference/13-excel-output-spec.md +199 -0
  128. package/skills/stellar-scf-grants-advisor/reference/14-worked-examples.md +160 -0
  129. package/skills/stellar-scf-grants-advisor/templates/abstract-review-builder.py +253 -0
  130. package/skills/stellar-scf-grants-advisor/templates/build-review-builder.py +213 -0
  131. package/skills/video-direction/video-direction.skill.json +20 -0
  132. package/skills/video-style-vocabulary/video-style-vocabulary.skill.json +20 -0
  133. package/skills/video-toolbox/video-toolbox.skill.json +20 -0
  134. package/src/__fixtures__/lifecycle-presets.flat-before.json +205 -0
  135. package/src/agency-os.yaml +122 -0
  136. package/src/agent-os-skill-slugs.test.ts +65 -0
  137. package/src/apify-social-reader.test.ts +317 -0
  138. package/src/base.yaml +85 -39
  139. package/src/blockchain-ecosystem.yaml +1 -0
  140. package/src/brand-library.yaml +525 -14
  141. package/src/builder-dev-fold.template.test.ts +113 -0
  142. package/src/builder.yaml +779 -91
  143. package/src/business-model-catalog-description.test.ts +47 -0
  144. package/src/business-model-grp.template.test.ts +214 -0
  145. package/src/business-model.yaml +296 -49
  146. package/src/catalog-safety.test.ts +198 -0
  147. package/src/catalog.template-items.test.ts +75 -0
  148. package/src/catalog.ts +66 -2
  149. package/src/concept-guard.test.ts +28 -8
  150. package/src/concept-guard.ts +2 -2
  151. package/src/content-creation.template.test.ts +52 -0
  152. package/src/content-creation.yaml +192 -0
  153. package/src/content-os.edit-loop.template.test.ts +210 -0
  154. package/src/content-os.publish-due-posts.template.test.ts +261 -0
  155. package/src/content-os.template.test.ts +322 -0
  156. package/src/content-os.video-takes.template.test.ts +338 -0
  157. package/src/content-os.work-a-take.template.test.ts +125 -0
  158. package/src/content-os.yaml +1830 -39
  159. package/src/content-studio-retired.template.test.ts +82 -0
  160. package/src/corpus-flow-validity.test.ts +4 -5
  161. package/src/crm-absorbs-outreach.template.test.ts +117 -0
  162. package/src/crm-build-plan.template.test.ts +128 -0
  163. package/src/crm-lists.template.test.ts +96 -0
  164. package/src/crm-messages-cadence.template.test.ts +164 -0
  165. package/src/crm-one-send-door.template.test.ts +65 -0
  166. package/src/crm.yaml +1456 -181
  167. package/src/decisions-wave.template.test.ts +186 -0
  168. package/src/define.ts +130 -17
  169. package/src/design-to-implementation.template.test.ts +94 -0
  170. package/src/domain-template-type.test.ts +75 -0
  171. package/src/ecosystem.yaml +27 -66
  172. package/src/enterprise-os.yaml +10 -134
  173. package/src/facecam-edit.audio-studio.test.ts +188 -0
  174. package/src/fal-generate-image.test.ts +200 -0
  175. package/src/fal-media-lab-pod-files.test.ts +180 -0
  176. package/src/finance.yaml +254 -1
  177. package/src/foundation.yaml +78 -38
  178. package/src/frame-host-modules.d.mts +6 -0
  179. package/src/frame-host-modules.mjs +58 -0
  180. package/src/generate.mjs +9 -3
  181. package/src/github-merge.test.ts +210 -0
  182. package/src/grants.yaml +46 -17
  183. package/src/hr.yaml +39 -6
  184. package/src/index.ts +36 -1
  185. package/src/intent.test.ts +161 -0
  186. package/src/internal-runbook.yaml +19 -1
  187. package/src/jev.test.ts +356 -0
  188. package/src/legal.yaml +33 -1
  189. package/src/life-os.yaml +51 -240
  190. package/src/lifecycle-coverage.test.ts +124 -0
  191. package/src/lifecycle-declarations.test.ts +252 -0
  192. package/src/lifecycle-presets.test.ts +468 -0
  193. package/src/lifecycle-presets.ts +494 -0
  194. package/src/lifecycle-stuck.test.ts +46 -0
  195. package/src/lifecycle-waits.parity.test.ts +319 -0
  196. package/src/marketing.yaml +108 -4
  197. package/src/meetings-knowledge.yaml +18 -0
  198. package/src/networking.yaml +23 -2
  199. package/src/operations.yaml +304 -4
  200. package/src/pipeline-views.template.test.ts +88 -0
  201. package/src/playbook-goal-placeholders.test.ts +57 -0
  202. package/src/postiz-contract.test.ts +134 -0
  203. package/src/presentation-declarations.test.ts +174 -0
  204. package/src/process-contract.validate.test.ts +352 -0
  205. package/src/project-management.yaml +39 -740
  206. package/src/publish-body.d.mts +29 -0
  207. package/src/publish-body.mjs +74 -0
  208. package/src/publish-body.test.ts +74 -0
  209. package/src/publish-official-lib.test.ts +176 -0
  210. package/src/replicate-rvm.test.ts +504 -0
  211. package/src/research-base.yaml +119 -20
  212. package/src/research-decision.yaml +60 -3
  213. package/src/reserved-profile-slugs.test.ts +83 -0
  214. package/src/retired-goal-kinds.test.ts +58 -0
  215. package/src/role-reference-and-step-domain.test.ts +192 -0
  216. package/src/seed-obligation.test.ts +1 -6
  217. package/src/send-message-maps.test.ts +227 -0
  218. package/src/shared-role-ssot.test.ts +40 -2
  219. package/src/ship-a-change.template.test.ts +177 -0
  220. package/src/skills.test.ts +170 -0
  221. package/src/social.yaml +85 -27
  222. package/src/space-packages.freshness.test.ts +97 -0
  223. package/src/space-packages.generated.ts +40 -0
  224. package/src/space-packages.test.ts +125 -0
  225. package/src/space-packages.ts +73 -0
  226. package/src/start.test.ts +188 -0
  227. package/src/task-intents.test.ts +293 -0
  228. package/src/templates.ts +20851 -21496
  229. package/src/types.ts +443 -60
  230. package/src/unipile-publish-post.test.ts +162 -0
  231. package/src/validate-flow.drift.test.ts +2 -3
  232. package/src/validate-flow.ts +22 -2
  233. package/src/validate-onboarding.test.ts +59 -0
  234. package/src/validate.test.ts +71 -4
  235. package/src/validate.ts +1335 -7
  236. package/src/wire-core.ts +231 -0
  237. package/src/wire.test.ts +159 -0
  238. package/src/wire.ts +107 -0
  239. package/src/agent-fleet.yaml +0 -1645
  240. package/src/business-developer.template.test.ts +0 -351
  241. package/src/business-developer.yaml +0 -860
  242. package/src/content-studio.yaml +0 -361
  243. package/src/dev-dashboard.yaml +0 -990
  244. package/src/outreach-comms.yaml +0 -486
  245. package/src/the-arch.yaml +0 -201
@@ -27,12 +27,25 @@
27
27
  #
28
28
  # The porteur and funder ROLES it needs are declared in foundation.yaml, the
29
29
  # shared-role SSOT — see the note there.
30
+ #
31
+ # THIS IS THE CANONICAL GRP (concept consolidation W4a, 2026-09-25). The method
32
+ # ships as a TRACK TEMPLATE — "Business Model (GRP)", `scope: project`, six
33
+ # steps, each naming the DOMAIN (workspace template slug) it is worked in — and
34
+ # the nine seeded questions are the GRP method's own set, one per component of
35
+ # its three pillars: GRP = Génération · Rémunération · Partage (founder decision
36
+ # A, 2026-09-28 — NOT the later "GRP #1 … #9" wedge/ICP/positioning set). They
37
+ # are copied verbatim from the founder's live pod-level rows so an install ADOPTS
38
+ # them (seed dedupe is `${kind}:${title}` in the target workspace OR among the
39
+ # user's pod-wide rows — services/definition-seeds.ts) instead of adding a
40
+ # second set. `convention` and `projection` are pod-wide kinds, so the GRP needs
41
+ # no workspace of its own: its entities are filed to the project by the track,
42
+ # not by where the session happened to run.
30
43
 
31
44
  meta:
32
45
  slug: business-model
33
46
  domain: strategy
34
47
  name: Business Model
35
- description: Interrogate a venture as a model that rests on things — components supported by evidence, bound by real conventions, and quantified by projections whose assumptions stay visible.
48
+ description: "Business Model (GRP): a track template you run on a project. Six steps turn the model's nine component questions into evidence-backed decisions, conventions and projections."
36
49
  icon: layout-grid
37
50
  color: "#0EA5E9"
38
51
  tags: [strategy, business-model, grp, ibis, viability]
@@ -69,6 +82,11 @@ profiles:
69
82
  valueType: string
70
83
  inputType: select
71
84
  enumValues: [open, exploring, answered, abandoned]
85
+ # `wedge-stage` (the C→A wedge ladder) left the template with the
86
+ # "GRP #" set (founder decision A, 2026-09-28): it is one venture's go-to-
87
+ # market ladder, not part of the Génération / Rémunération / Partage
88
+ # method, and only "GRP #1" ever carried it. The live Foundation overlay
89
+ # is untouched — reconcile is additive.
72
90
  - slug: decision
73
91
  displayName: Decision
74
92
  icon: gavel
@@ -86,6 +104,12 @@ profiles:
86
104
  icon: scale
87
105
  color: rose
88
106
  description: A binding rule the model must satisfy and did not choose — an eligibility threshold, a professional duty, a contractual floor, a platform policy. Distinct from a decision (nobody decided it) and from a finding (it constrains rather than informs).
107
+ # Pod-wide kind (same two axes as foundation's audience/offer): a GRP step
108
+ # worked in another domain (a Finance or Research session) must still be
109
+ # able to resolve and file a convention — it belongs to the project's
110
+ # model, not to the workspace the session ran in.
111
+ scope: shared
112
+ entityScope: pod
89
113
  profileKind: kind
90
114
  properties:
91
115
  - slug: rule
@@ -102,7 +126,16 @@ profiles:
102
126
  label: Type
103
127
  valueType: string
104
128
  inputType: select
105
- enumValues: [regulatory, deontological, eligibility, contractual, platform, fiscal, other]
129
+ enumValues:
130
+ [
131
+ regulatory,
132
+ deontological,
133
+ eligibility,
134
+ contractual,
135
+ platform,
136
+ fiscal,
137
+ other,
138
+ ]
106
139
  - slug: bindingStatus
107
140
  label: Binding Status
108
141
  valueType: string
@@ -128,6 +161,10 @@ profiles:
128
161
  icon: trending-up
129
162
  color: violet
130
163
  description: A quantified scenario with its assumptions attached. The number is never the artifact — the assumptions are, because that is the only part anyone can argue with.
164
+ # Pod-wide for the same reason as `convention`: the money step runs in
165
+ # Finance, and its projections must land on the project's model.
166
+ scope: shared
167
+ entityScope: pod
131
168
  profileKind: kind
132
169
  properties:
133
170
  - slug: scenario
@@ -163,6 +200,35 @@ profiles:
163
200
  inputType: select
164
201
  enumValues: [low, medium, high]
165
202
 
203
+ # ── The GRP interrogation marker (founder decision D4: joins the template) ──
204
+ # A workspace role on `question`: marks a question as one of the nine GRP
205
+ # interrogations and carries its number, its GRP pillar and how good the
206
+ # evidence behind its answer is. Property slugs verbatim from the live
207
+ # Foundation role (snake_case as live). GRP = Génération · Rémunération ·
208
+ # Partage — the live role's "Growth Research Positioning" was an agent's
209
+ # invented expansion and is corrected here. Seeds cannot carry facets, so a
210
+ # fresh install gets the role and the nine questions; the first GRP session
211
+ # attaches it. The seeds carry their pillar in `tags` regardless.
212
+ - slug: grp-interrogation
213
+ displayName: GRP Interrogation
214
+ description: "Marks a Question as one of the nine GRP business-model interrogations (GRP = Génération · Rémunération · Partage). Carries the interrogation number (1-9), its GRP pillar (generation, remuneration or sharing), and the quality of the evidence behind the answer."
215
+ profileKind: role
216
+ applicableKinds: [question]
217
+ properties:
218
+ - slug: interrogation_number
219
+ label: Interrogation number
220
+ valueType: number
221
+ inputType: number
222
+ - slug: grp_domain
223
+ label: GRP pillar
224
+ valueType: string
225
+ inputType: text
226
+ description: "generation (Génération), remuneration (Rémunération) or sharing (Partage) — the same word the question carries in its tags."
227
+ - slug: evidence_quality
228
+ label: Evidence quality
229
+ valueType: string
230
+ inputType: text
231
+
166
232
  # Relation TYPE vocabulary. Declared here (not as bare entityLinks) because
167
233
  # these two carry description + inverse labels that the entity-link path drops.
168
234
  relationDefs:
@@ -240,7 +306,8 @@ views:
240
306
  scopeProfileSlug: projection
241
307
  description: Scenarios with their assumptions in the open, so a number can be argued with.
242
308
  config:
243
- columns: [title, scenario, horizon, revenueEstimate, costEstimate, confidence]
309
+ columns:
310
+ [title, scenario, horizon, revenueEstimate, costEstimate, confidence]
244
311
  - name: Open Interrogation
245
312
  slug: business-model-open-questions
246
313
  type: kanban
@@ -251,101 +318,281 @@ views:
251
318
  # ── Seeds: the interrogation, not fake data ────────────────────────────────
252
319
  # A strategy template that seeds example companies teaches nothing and gets
253
320
  # deleted. What is actually reusable is the QUESTION SET — the workspace should
254
- # arrive with the model's nine interrogations already open, so the first session
321
+ # arrive with the model's nine interrogations already open, so the first step
255
322
  # has somewhere to start and the kanban is not an empty box.
323
+ #
324
+ # The GRP method's nine questions, three per pillar — Génération (porteur,
325
+ # value proposition, value fabrication), Rémunération (revenue sources, volume
326
+ # and pricing, performance), Partage (stakeholders, conventions, ecosystem).
327
+ # VERBATIM from the founder's live pod-level rows (workspaceId NULL, read
328
+ # 2026-09-28): title, the question text in `properties.title`, `description`,
329
+ # `tags` and `questionStatus`. The PILLAR is the live tag `generation` /
330
+ # `remuneration` / `sharing` — that is how a step (or an agent) finds a pillar's
331
+ # questions; no new field. Only `askedAt` (2026-09-15, the day the founder asked
332
+ # them) is left out: a fixed historical date on a fresh install would be false,
333
+ # and an adopted row keeps its own anyway (adoption never rewrites properties).
334
+ # Do not paraphrase a title — the seed dedupe key is `${kind}:${title}`, so a
335
+ # reworded title seeds a SECOND set beside the live one instead of adopting it
336
+ # (asserted by business-model-grp.template.test.ts, and through the real helper
337
+ # by synap-backend compose-overlay.seeds.pglite.test.ts).
338
+ #
339
+ # Which STEP of the method each question serves is carried by the step itself:
340
+ # its `suggestedTasks` open with the exact titles of its questions (see the
341
+ # playbook below; porteur → Porteur; offer_buyer → Value proposition + Value
342
+ # fabrication; conventions_cost → Stakeholders + Conventions + Ecosystem;
343
+ # money_means → Revenue sources + Volume and pricing; refutation → Performance).
256
344
  seedEntities:
257
345
  - profileSlug: question
258
- title: Who is the porteur, and what does the model rest on them for?
346
+ title: "Porteur — what does the founder bring that cannot be hired, and what does the venture require of them personally?"
259
347
  properties:
348
+ title: "Porteur — what does the founder bring that cannot be hired, and what does the venture require of them personally?"
349
+ description: "Generation / porteur. Tests intuitu personae: credentials, licences, reputation and relationships that are attached to a named person rather than to the company. Answering this exposes load-bearing single points of failure that a capability table hides. Circular: the porteur's standing determines which stakeholders will engage, and the stakeholders engaged determine what standing the porteur must hold."
350
+ tags: [business-model, grp, generation, method-question]
260
351
  questionStatus: open
261
- content: Name the person, then name the specific competence, network, capital, or legitimacy the model cannot survive without. If the answer is generic, the model has no porteur — it has a job posting.
262
352
  - profileSlug: question
263
- title: What does the porteur's situation forbid?
353
+ title: "Value proposition — for whom is this indispensable, and what do they stop doing once they have it?"
264
354
  properties:
355
+ title: "Value proposition — for whom is this indispensable, and what do they stop doing once they have it?"
356
+ description: "Generation / value proposition. The second half is the real test: a proposition nobody stops anything for is a preference, not a need. Circular: the conventions the venture is bound by constrain what may be promised, and the promise made determines which conventions become binding."
357
+ tags: [business-model, grp, generation, method-question]
265
358
  questionStatus: open
266
- content: Runway, hours available, geography, non-compete, dependants, health. Constraints discovered in month four were knowable in week one.
267
359
  - profileSlug: question
268
- title: What is the offer, stated as the problem it ends?
360
+ title: "Value fabrication — what is the chain that actually produces the value, and which link do we own?"
269
361
  properties:
362
+ title: "Value fabrication — what is the chain that actually produces the value, and which link do we own?"
363
+ description: "Generation / fabrication de la valeur. Forces the distinction between the activity performed and the value delivered, and names the links owned by others. A venture that owns no link is a broker; a venture that owns every link is usually lying about cost."
364
+ tags: [business-model, grp, generation, method-question]
270
365
  questionStatus: open
271
- content: Not a description of what is built — a statement of the situation a buyer is in before, and after. If the offer can only be described by its features, the buyer has not been found yet.
272
366
  - profileSlug: question
273
- title: Who exactly buys it, and who merely benefits from it?
367
+ title: "Revenue sources — who pays, for which unit, and why that unit rather than another?"
274
368
  properties:
369
+ title: "Revenue sources — who pays, for which unit, and why that unit rather than another?"
370
+ description: "Remuneration / sources de revenus. The payer is frequently not the beneficiary, and the billing unit encodes a theory of value that is rarely stated. Circular: the segment chosen determines which revenue source is available, and the revenue source chosen re-selects the viable segment."
371
+ tags: [business-model, grp, remuneration, method-question]
275
372
  questionStatus: open
276
- content: Link to `audience` entities. Payer, user, and beneficiary are frequently three different parties, and a model that conflates them forecasts revenue from people who never pay.
277
373
  - profileSlug: question
278
- title: Which conventions bind this model, and which are still assumed?
374
+ title: "Volume and pricing — what volume at what price clears the cost base, and is that volume reachable in this market?"
279
375
  properties:
376
+ title: "Volume and pricing — what volume at what price clears the cost base, and is that volume reachable in this market?"
377
+ description: "Remuneration / volume et prix. Separates the arithmetic question from the market question; a model can be internally coherent and still require a volume the addressable market cannot supply."
378
+ tags: [business-model, grp, remuneration, method-question]
280
379
  questionStatus: open
281
- content: Eligibility thresholds, professional duties, platform policies, fiscal regimes. Every convention starts `assumed`; the work is reading the source text and moving it to `verified`. An eligibility collision — where the segment with the most pull sits outside the scheme that would fund it — only becomes visible once the numbers are pulled.
282
380
  - profileSlug: question
283
- title: What does one unit of delivery actually cost to produce?
381
+ title: "Performance — which number tells us the model works, and what observation would falsify it?"
284
382
  properties:
383
+ title: "Performance — which number tells us the model works, and what observation would falsify it?"
384
+ description: "Remuneration / performance. Requires a stopping rule stated before the evidence arrives, while it can still be set honestly. Circular: price assumptions drive the performance target, and observed performance revises the pricing thesis."
385
+ tags: [business-model, grp, remuneration, method-question, falsifiable]
285
386
  questionStatus: open
286
- content: Time, tooling, subcontracting, the unbilled parts. Link the answer to a `projection` so the assumptions stay attached to the number.
287
387
  - profileSlug: question
288
- title: Where does the money come from before revenue does?
388
+ title: "Stakeholders — who must say yes for this to exist, and what does each of them need in return?"
289
389
  properties:
390
+ title: "Stakeholders — who must say yes for this to exist, and what does each of them need in return?"
391
+ description: "Sharing / parties prenantes. Covers actors with veto power who are not customers: regulators, orders and professional bodies, funders, referencing schemes, platform gatekeepers. Their consent is a precondition, not a sales outcome."
392
+ tags: [business-model, grp, sharing, method-question]
290
393
  questionStatus: open
291
- content: Attach `funder` roles to the companies or schemes involved, with their eligibility conditions. Subsidy is a credential and a discount; it is rarely a pipeline.
292
394
  - profileSlug: question
293
- title: What means — people, tools, licences, premises — must exist first?
395
+ title: "Conventions — which rules bind us, who enforces them, and which are mandatory rather than advisory?"
294
396
  properties:
397
+ title: "Conventions — which rules bind us, who enforces them, and which are mandatory rather than advisory?"
398
+ description: "Sharing / conventions. Deontological codes, eligibility thresholds, neutrality requirements and conflict-of-interest rules that constrain the model from outside. The binding-versus-advisory distinction decides whether a convention is a design constraint or a preference, and enforcement determines the cost of breach."
399
+ tags: [business-model, grp, sharing, method-question, conventions]
295
400
  questionStatus: open
296
- content: The means rest on the money and the money rests on the offer. That circularity is the model, not a planning error; record it with `rests_on` and stop trying to linearise it.
297
401
  - profileSlug: question
298
- title: What observation would refute this model, and by when?
402
+ title: "Ecosystem — what does the venture give back, and what breaks if we extract without returning?"
299
403
  properties:
404
+ title: "Ecosystem — what does the venture give back, and what breaks if we extract without returning?"
405
+ description: "Sharing / partage et ecosysteme. The reciprocity test that distinguishes a durable position from extraction. Answering it usually surfaces the convention or stakeholder relationship that fails first under pressure."
406
+ tags: [business-model, grp, sharing, method-question]
300
407
  questionStatus: open
301
- content: Set the falsifiable test now, while it can still be set honestly. A model with no refuting observation is a belief with a spreadsheet attached.
302
408
 
303
- # The circularity, declared. These edges deliberately form cycles — that is the
304
- # point of `rests_on`, and the reason this pack does not use `depends_on`.
409
+ # The method's dependency order, declared: a downstream pillar RESTS ON the
410
+ # upstream one — Rémunération rests on Génération (you are paid for value you
411
+ # generate), Partage rests on Rémunération and Génération (you share what you
412
+ # capture, with those the porteur can engage). Plus exactly the three cycles the
413
+ # questions' own descriptions name ("Circular: …"): value proposition ⇄
414
+ # conventions, porteur ⇄ stakeholders, volume and pricing ⇄ performance. Cycles
415
+ # are legal for `rests_on` — that is why this pack does not use `depends_on`.
305
416
  suggestedRelations:
306
- - sourceRef: What is the offer, stated as the problem it ends?
307
- targetRef: Who exactly buys it, and who merely benefits from it?
417
+ # Génération (internal): the chain produces what the proposition promises.
418
+ - sourceRef: "Value fabrication — what is the chain that actually produces the value, and which link do we own?"
419
+ targetRef: "Value proposition — for whom is this indispensable, and what do they stop doing once they have it?"
420
+ type: rests_on
421
+ # Rémunération rests on Génération.
422
+ - sourceRef: "Revenue sources — who pays, for which unit, and why that unit rather than another?"
423
+ targetRef: "Value proposition — for whom is this indispensable, and what do they stop doing once they have it?"
424
+ type: rests_on
425
+ - sourceRef: "Volume and pricing — what volume at what price clears the cost base, and is that volume reachable in this market?"
426
+ targetRef: "Value fabrication — what is the chain that actually produces the value, and which link do we own?"
427
+ type: rests_on
428
+ - sourceRef: "Volume and pricing — what volume at what price clears the cost base, and is that volume reachable in this market?"
429
+ targetRef: "Revenue sources — who pays, for which unit, and why that unit rather than another?"
430
+ type: rests_on
431
+ - sourceRef: "Performance — which number tells us the model works, and what observation would falsify it?"
432
+ targetRef: "Volume and pricing — what volume at what price clears the cost base, and is that volume reachable in this market?"
308
433
  type: rests_on
309
- - sourceRef: What is the offer, stated as the problem it ends?
310
- targetRef: What means — people, tools, licences, premises — must exist first?
434
+ # Partage rests on Génération / Rémunération.
435
+ - sourceRef: "Stakeholders — who must say yes for this to exist, and what does each of them need in return?"
436
+ targetRef: "Porteur — what does the founder bring that cannot be hired, and what does the venture require of them personally?"
311
437
  type: rests_on
312
- - sourceRef: What means — people, tools, licences, premises — must exist first?
313
- targetRef: Where does the money come from before revenue does?
438
+ - sourceRef: "Stakeholders — who must say yes for this to exist, and what does each of them need in return?"
439
+ targetRef: "Revenue sources — who pays, for which unit, and why that unit rather than another?"
314
440
  type: rests_on
315
- - sourceRef: Where does the money come from before revenue does?
316
- targetRef: What is the offer, stated as the problem it ends?
441
+ - sourceRef: "Conventions — which rules bind us, who enforces them, and which are mandatory rather than advisory?"
442
+ targetRef: "Value proposition — for whom is this indispensable, and what do they stop doing once they have it?"
317
443
  type: rests_on
318
- - sourceRef: Where does the money come from before revenue does?
319
- targetRef: Which conventions bind this model, and which are still assumed?
444
+ - sourceRef: "Ecosystem — what does the venture give back, and what breaks if we extract without returning?"
445
+ targetRef: "Stakeholders — who must say yes for this to exist, and what does each of them need in return?"
320
446
  type: rests_on
321
- - sourceRef: Who exactly buys it, and who merely benefits from it?
322
- targetRef: Which conventions bind this model, and which are still assumed?
447
+ # The three named cycles (the back edges).
448
+ - sourceRef: "Value proposition — for whom is this indispensable, and what do they stop doing once they have it?"
449
+ targetRef: "Conventions — which rules bind us, who enforces them, and which are mandatory rather than advisory?"
323
450
  type: rests_on
324
- - sourceRef: What does one unit of delivery actually cost to produce?
325
- targetRef: What does the porteur's situation forbid?
451
+ - sourceRef: "Porteur — what does the founder bring that cannot be hired, and what does the venture require of them personally?"
452
+ targetRef: "Stakeholders — who must say yes for this to exist, and what does each of them need in return?"
326
453
  type: rests_on
327
- - sourceRef: What is the offer, stated as the problem it ends?
328
- targetRef: Who is the porteur, and what does the model rest on them for?
454
+ - sourceRef: "Volume and pricing — what volume at what price clears the cost base, and is that volume reachable in this market?"
455
+ targetRef: "Performance — which number tells us the model works, and what observation would falsify it?"
329
456
  type: rests_on
330
457
 
458
+ # ── The method: a TRACK TEMPLATE (scope project) ───────────────────────────
459
+ # The six steps of the founder's approved live method (73848ca9 on the pod),
460
+ # verbatim: goals, suggestedTasks, categories, and the open-ended `maintain`
461
+ # step. Two additions. (1) Each step's suggestedTasks OPEN with the exact titles
462
+ # of the seeded GRP questions it answers (the step → question map; a stage
463
+ # session is offered its goal + suggestedTasks, so the step names its questions
464
+ # by the same title the seed dedupe keys on). (2) `domain` per step — the workspace TEMPLATE slug the
465
+ # step is worked in (startStageSession resolves it to the project's installed
466
+ # workspace, and falls back to the project home when it is missing). ONE domain
467
+ # per step, the primary one:
468
+ # porteur → foundation the porteur role + non-goals/constraints are Foundation's.
469
+ # offer_buyer → foundation offer/audience/pain-point live there; buyer
470
+ # companies get the pod-wide `lead` role, which
471
+ # attaches from any workspace (W2b), so CRM is
472
+ # not needed to run this step.
473
+ # conventions_cost → foundation the Conventions + Projections views this pack
474
+ # installs live in Foundation; both kinds are
475
+ # pod-wide, so the unit-cost projection still
476
+ # shows in Finance.
477
+ # money_means → finance money before revenue = revenue-stream/budget/
478
+ # expense, Finance's kinds.
479
+ # refutation → research-base a falsifiable test is a hypothesis with a
480
+ # date; hypothesis/finding live in Research.
481
+ # maintain → foundation the Deprecation Check starts from a changed
482
+ # Foundation element.
483
+ # The session-scoped "Business Model Interrogation" this replaces is gone; the
484
+ # live-only copy on the founder's pod (f93b155b) is retired by a governed archive.
331
485
  playbooks:
332
- - name: Business Model Interrogation
333
- description: Walk the nine components as questions, resolve each into a decision backed by evidence, and record the conventions and projections the model rests on — including the cycles.
334
- goalTemplate: "Interrogate the business model for {venture} and record what it rests on. Steps: (1) Walk each of the nine seeded `question` entities in this workspace; where one is already answered, mark it and move on. (2) Resolve each into a `decision`, keeping the options that lost attached via `refutes` rather than deleting them. Where the evidence itself needs gathering, do that in the Research workspace and link back — do not restate sources here. (3) Every external rule discovered becomes a `convention` with its `issuer` and `sourceReference`; leave `bindingStatus` at `assumed` until the source text has actually been read, then `verified`. (4) Every number becomes a `projection` with its `assumptions` filled in — never a bare figure. (5) Wire the graph with `rests_on` — offer on audience, projection on offer, decision on convention. Do NOT try to make the graph acyclic: if the offer rests on the means and the means rest on the money and the money rests on the offer, record all three. (6) Attach `porteur` and `funder` roles to the real people and organisations instead of creating new entities for them. (7) Close by listing which conventions are still `assumed` and which projections carry `low` confidence — that list is the actual state of the model."
486
+ - name: Business Model (GRP)
487
+ description: The business-model method, run as a TRACK on a project (project-scoped). Walks the nine component questions as stages, resolves each into a decision backed by evidence, and records the conventions and projections the model rests on, including the cycles. Stages can be re-entered — the model is maintained, not finished.
488
+ goalTemplate: "Interrogate the business model of this project and record what it rests on: resolve each component question into a decision with evidence, keep conventions 'assumed' until their source is read, give every number a projection with its assumptions, and wire the graph with rests_on (cycles included)."
335
489
  icon: layout-grid
490
+ scope: project
491
+ stages:
492
+ - key: porteur
493
+ name: Porteur & constraints
494
+ category: started
495
+ domain: foundation
496
+ goal: Name who the model rests on and what their situation forbids.
497
+ suggestedTasks:
498
+ - "Porteur — what does the founder bring that cannot be hired, and what does the venture require of them personally?"
499
+ - Who is the porteur, and what does the model rest on them for?
500
+ - What does the porteur's situation forbid?
501
+ - key: offer_buyer
502
+ name: Offer & buyer
503
+ category: started
504
+ domain: foundation
505
+ goal: State the offer as the problem it ends, and separate payer, user and beneficiary.
506
+ suggestedTasks:
507
+ - "Value proposition — for whom is this indispensable, and what do they stop doing once they have it?"
508
+ - "Value fabrication — what is the chain that actually produces the value, and which link do we own?"
509
+ - What is the offer, stated as the problem it ends?
510
+ - Who exactly buys it, and who merely benefits from it?
511
+ - key: conventions_cost
512
+ name: Conventions & unit cost
513
+ category: started
514
+ domain: foundation
515
+ goal: Read the rules that bind the model and cost one unit of delivery.
516
+ suggestedTasks:
517
+ - "Stakeholders — who must say yes for this to exist, and what does each of them need in return?"
518
+ - "Conventions — which rules bind us, who enforces them, and which are mandatory rather than advisory?"
519
+ - "Ecosystem — what does the venture give back, and what breaks if we extract without returning?"
520
+ - Which conventions bind this model, and which are still assumed?
521
+ - What does one unit of delivery actually cost to produce?
522
+ - key: money_means
523
+ name: Money & means
524
+ category: started
525
+ domain: finance
526
+ goal: Find the money before revenue and the means that must exist first; record the circularity.
527
+ suggestedTasks:
528
+ - "Revenue sources — who pays, for which unit, and why that unit rather than another?"
529
+ - "Volume and pricing — what volume at what price clears the cost base, and is that volume reachable in this market?"
530
+ - Where does the money come from before revenue does?
531
+ - What means — people, tools, licences, premises — must exist first?
532
+ - key: refutation
533
+ name: Refutation test
534
+ category: started
535
+ domain: research-base
536
+ goal: Set the falsifiable observation and its date while it can still be set honestly.
537
+ suggestedTasks:
538
+ - "Performance — which number tells us the model works, and what observation would falsify it?"
539
+ - What observation would refute this model, and by when?
540
+ - List conventions still 'assumed' and projections with low confidence.
541
+ - key: maintain
542
+ name: Keep the model current
543
+ category: started
544
+ domain: foundation
545
+ indefinite: true
546
+ goal: When a foundation element changes, find what rests on it and re-check it (GRP Deprecation Check).
547
+ suggestedTasks:
548
+ - Run 'GRP Deprecation Check' when positioning, offer, value or a non-goal changes.
336
549
 
550
+ # The `maintain` step's work template (founder decision D4: joins the
551
+ # template). A SESSION template, verbatim from the live Foundation playbook.
552
+ - name: GRP Deprecation Check
553
+ description: Cross-workspace GRP deprecation check. When a Foundation element (positioning, differentiator, value, non-goal) is updated, this playbook finds linked entities in Radar, Brand, CRM, Content, Operations and creates tasks for owners. Non-Architech-specific — reusable for any venture using the GRP framework.
554
+ goalTemplate: "Check if {updated_part} deprecates linked GRP parts: detect cross-workspace dependencies, notify owners, plan updates, verify resolution"
555
+ # `{name}` is what a run substitutes; `{{name}}` never was (see
556
+ # playbook-goal-placeholders.test.ts). Declared so the run asks for it.
557
+ params:
558
+ - name: updated_part
559
+ type: text
560
+ label: Foundation element that changed
561
+ required: true
562
+ icon: refresh-cw
563
+ stages:
564
+ - key: detect_impact
565
+ name: Detect Impact
566
+ category: started
567
+ - key: notify_owners
568
+ name: Notify Owners
569
+ category: started
570
+ - key: plan_update
571
+ name: Plan Update
572
+ category: started
573
+ - key: verify
574
+ name: Verify Resolution
575
+ category: started
576
+
577
+ # Founder decision D3: no shortcut on `question` (a question is answered inside
578
+ # a step of the method, not by launching the method from it). The convention
579
+ # shortcut points at the method.
337
580
  actionPlacements:
338
- - profileSlug: question
339
- surface: entity-detail
340
- kind: playbook
341
- ref: Business Model Interrogation
342
- label: Interrogate as model component
343
581
  - profileSlug: convention
344
582
  surface: entity-detail
345
583
  kind: playbook
346
- ref: Business Model Interrogation
584
+ ref: Business Model (GRP)
347
585
  label: Re-check what rests on this
348
586
 
349
587
  integrations:
350
588
  - templateKey: research-methods
351
589
  - templateKey: exa
590
+
591
+ # ── taskIntents — WHAT THIS WORKSPACE NEEDS TO FUNCTION ───────────────────
592
+ # Closed vocabulary: `@synap-core/types/capability-intents` (pod migrations
593
+ # 0283/0284). DERIVED from the declared intents of this template's own
594
+ # `integrations` capability packs — not hand-guessed. Checked at authoring
595
+ # time by `validateTemplate` (`task-intent-unknown`) and by
596
+ # `src/task-intents.test.ts`.
597
+ taskIntents:
598
+ - search_external