@synap-core/workspace-templates 0.11.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.
- package/README.md +483 -0
- package/automations/bookmark-enrichment.automation.json +321 -0
- package/automations/github-pr-events.automation.json +505 -0
- package/automations/mail-feed.automation.json +86 -0
- package/automations/ship-a-change-checks-green.automation.json +106 -0
- package/automations/ship-a-change-checks-red.automation.json +106 -0
- package/automations/ship-a-change-deployed.automation.json +56 -0
- package/automations/ship-a-change-pr-merged.automation.json +110 -0
- package/automations/ship-a-change-pr-opened.automation.json +104 -0
- package/automations/url-bookmark-capture.automation.json +132 -0
- package/capabilities/agency-skills.capability.json +157 -0
- package/capabilities/apify.capability.json +265 -0
- package/capabilities/apollo.capability.json +120 -0
- package/capabilities/arch-backend.capability.json +97 -0
- package/capabilities/arch-client-intelligence.capability.json +401 -0
- package/capabilities/backblaze-b2.capability.json +205 -0
- package/capabilities/cal-com.capability.json +266 -0
- package/capabilities/canva.capability.json +274 -0
- package/capabilities/claude-code-routines.capability.json +172 -0
- package/capabilities/claude-managed-agents.capability.json +215 -0
- package/capabilities/client-comms-report.capability.json +246 -0
- package/capabilities/content-idea-to-production.capability.json +29 -0
- package/capabilities/datagouv.capability.json +315 -0
- package/capabilities/discord-bot.capability.json +157 -0
- package/capabilities/dropbox.capability.json +281 -0
- package/capabilities/exa.capability.json +109 -0
- package/capabilities/fal-ai.capability.json +83 -0
- package/capabilities/fal-media-lab.capability.json +158 -0
- package/capabilities/fireflies.capability.json +191 -0
- package/capabilities/freellmapi.capability.json +114 -0
- package/capabilities/generic-apikey.capability.json +92 -0
- package/capabilities/github-merge.capability.json +99 -0
- package/capabilities/github-read.capability.json +325 -0
- package/capabilities/governance-tighten-recommender.capability.json +81 -0
- package/capabilities/jev.capability.json +226 -0
- package/capabilities/lead-conversion-enrollment.capability.json +246 -0
- package/capabilities/mail-feed.capability.json +277 -0
- package/capabilities/mailgun.capability.json +52 -0
- package/capabilities/nango-google.capability.json +639 -0
- package/capabilities/notion.capability.json +417 -0
- package/capabilities/omniroute.capability.json +137 -0
- package/capabilities/posthog-analytics.capability.json +258 -0
- package/capabilities/postiz.capability.json +467 -0
- package/capabilities/proactive-digest.capability.json +190 -0
- package/capabilities/proton.capability.json +288 -0
- package/capabilities/replicate-rvm.capability.json +97 -0
- package/capabilities/research-methods.capability.json +57 -0
- package/capabilities/shopify.capability.json +395 -0
- package/capabilities/slack.capability.json +369 -0
- package/capabilities/stripe.capability.json +420 -0
- package/capabilities/telegram-bridge.capability.json +56 -0
- package/capabilities/treg.capability.json +102 -0
- package/capabilities/unipile-linkedin.capability.json +471 -0
- package/capabilities/vercel.capability.json +424 -0
- package/dist/define-CPS0n8BV.d.ts +1331 -0
- package/dist/index.d.ts +189 -900
- package/dist/index.js +24654 -21639
- package/dist/index.js.map +1 -1
- package/dist/wire.d.ts +222 -0
- package/dist/wire.js +77 -0
- package/dist/wire.js.map +1 -0
- package/package.json +41 -27
- package/packs/bookmark-views-pack.json +33 -0
- package/packs/crm-pack.json +76 -0
- package/packs/customer-profile.json +28 -0
- package/packs/deep-research.playbook.json +30 -0
- package/packs/event-views-pack.json +33 -0
- package/packs/habit-profile.json +27 -0
- package/packs/hr-pack.json +54 -0
- package/packs/invoice-profile.json +28 -0
- package/packs/knowledge-base-pack.json +56 -0
- package/packs/meeting-profile.json +29 -0
- package/packs/product-profile.json +30 -0
- package/packs/project-management-pack.json +49 -0
- package/packs/recipe-profile.json +29 -0
- package/packs/task-views-pack.json +39 -0
- package/retired.yaml +136 -0
- package/skills/app-factory-build-slice/SKILL.md +70 -0
- package/skills/app-factory-build-slice.catalog.json +17 -0
- package/skills/app-factory-design-canvas/SKILL.md +96 -0
- package/skills/app-factory-design-canvas.catalog.json +17 -0
- package/skills/app-factory-design-review/SKILL.md +99 -0
- package/skills/app-factory-design-review.catalog.json +18 -0
- package/skills/app-factory-research/SKILL.md +123 -0
- package/skills/app-factory-research.catalog.json +17 -0
- package/skills/bookmark-enrichment/SKILL.md +40 -0
- package/skills/carousel-format/carousel-format.skill.json +18 -0
- package/skills/collage-broll/collage-broll.skill.json +20 -0
- package/skills/content-taste/content-taste.skill.json +18 -0
- package/skills/creative-director/creative-director.skill.json +18 -0
- package/skills/design-critique/SKILL.md +135 -0
- package/skills/design-critique.catalog.json +12 -0
- package/skills/designing-with-real-components/SKILL.md +140 -0
- package/skills/designing-with-real-components.catalog.json +12 -0
- package/skills/edit-loop/edit-loop.skill.json +25 -0
- package/skills/facecam-edit/facecam-edit.skill.json +24 -0
- package/skills/mapping-the-server/SKILL.md +54 -0
- package/skills/math-explainer-manimgx/math-explainer-manimgx.skill.json +20 -0
- package/skills/motion-quality-gates/motion-quality-gates.skill.json +20 -0
- package/skills/open-design-edit/open-design-edit.skill.json +24 -0
- package/skills/reading-client-progress/SKILL.md +65 -0
- package/skills/routing-to-channels/SKILL.md +54 -0
- package/skills/stellar-scf-grants-advisor/ASSOCIATE-CHEATSHEET.md +133 -0
- package/skills/stellar-scf-grants-advisor/ASSOCIATE-ONBOARDING-GUIDE.md +761 -0
- package/skills/stellar-scf-grants-advisor/CLIENT-FAQ.md +181 -0
- package/skills/stellar-scf-grants-advisor/PARTNER-HANDOVER.md +130 -0
- package/skills/stellar-scf-grants-advisor/SKILL.md +102 -0
- package/skills/stellar-scf-grants-advisor/examples/README.md +43 -0
- package/skills/stellar-scf-grants-advisor/examples/chat-summary-templates.md +158 -0
- package/skills/stellar-scf-grants-advisor/examples/corpus-comparable-rows.md +136 -0
- package/skills/stellar-scf-grants-advisor/examples/q10-team-rewrites.md +109 -0
- package/skills/stellar-scf-grants-advisor/examples/q2-description-rewrites.md +88 -0
- package/skills/stellar-scf-grants-advisor/examples/q6-integration-rewrites.md +107 -0
- package/skills/stellar-scf-grants-advisor/examples/tranche-structures.md +176 -0
- package/skills/stellar-scf-grants-advisor/reference/01-methodology.md +96 -0
- package/skills/stellar-scf-grants-advisor/reference/02-scoring-framework.md +199 -0
- package/skills/stellar-scf-grants-advisor/reference/03-rejection-patterns.md +241 -0
- package/skills/stellar-scf-grants-advisor/reference/04-winner-patterns.md +120 -0
- package/skills/stellar-scf-grants-advisor/reference/05-comeback-patterns.md +92 -0
- package/skills/stellar-scf-grants-advisor/reference/06-budget-benchmarks.md +125 -0
- package/skills/stellar-scf-grants-advisor/reference/07-integration-list.md +147 -0
- package/skills/stellar-scf-grants-advisor/reference/08-abstract-fields.md +258 -0
- package/skills/stellar-scf-grants-advisor/reference/09-build-fields.md +259 -0
- package/skills/stellar-scf-grants-advisor/reference/10-corpus-winners.md +135 -0
- package/skills/stellar-scf-grants-advisor/reference/11-corpus-rejects.md +267 -0
- package/skills/stellar-scf-grants-advisor/reference/12-client-communication.md +131 -0
- package/skills/stellar-scf-grants-advisor/reference/13-excel-output-spec.md +199 -0
- package/skills/stellar-scf-grants-advisor/reference/14-worked-examples.md +160 -0
- package/skills/stellar-scf-grants-advisor/templates/abstract-review-builder.py +253 -0
- package/skills/stellar-scf-grants-advisor/templates/build-review-builder.py +213 -0
- package/skills/video-direction/video-direction.skill.json +20 -0
- package/skills/video-style-vocabulary/video-style-vocabulary.skill.json +20 -0
- package/skills/video-toolbox/video-toolbox.skill.json +20 -0
- package/src/__fixtures__/lifecycle-presets.flat-before.json +205 -0
- package/src/agency-os.yaml +122 -0
- package/src/agent-os-skill-slugs.test.ts +65 -0
- package/src/apify-social-reader.test.ts +317 -0
- package/src/base.template.test.ts +25 -19
- package/src/base.yaml +95 -39
- package/src/blockchain-ecosystem.yaml +1 -0
- package/src/brand-library.yaml +525 -14
- package/src/builder-dev-fold.template.test.ts +113 -0
- package/src/builder.yaml +798 -92
- package/src/business-model-catalog-description.test.ts +47 -0
- package/src/business-model-grp.template.test.ts +214 -0
- package/src/business-model.yaml +598 -0
- package/src/catalog-safety.test.ts +198 -0
- package/src/catalog.template-items.test.ts +75 -0
- package/src/catalog.ts +85 -2
- package/src/civic-france.yaml +102 -0
- package/src/concept-guard.test.ts +28 -8
- package/src/concept-guard.ts +2 -2
- package/src/content-creation.template.test.ts +52 -0
- package/src/content-creation.yaml +192 -0
- package/src/content-os.edit-loop.template.test.ts +210 -0
- package/src/content-os.publish-due-posts.template.test.ts +261 -0
- package/src/content-os.template.test.ts +322 -0
- package/src/content-os.video-takes.template.test.ts +338 -0
- package/src/content-os.work-a-take.template.test.ts +125 -0
- package/src/content-os.yaml +1830 -39
- package/src/content-studio-retired.template.test.ts +82 -0
- package/src/corpus-flow-validity.test.ts +4 -5
- package/src/crm-absorbs-outreach.template.test.ts +117 -0
- package/src/crm-build-plan.template.test.ts +128 -0
- package/src/crm-lists.template.test.ts +96 -0
- package/src/crm-messages-cadence.template.test.ts +164 -0
- package/src/crm-one-send-door.template.test.ts +65 -0
- package/src/crm.yaml +1456 -181
- package/src/decisions-wave.template.test.ts +186 -0
- package/src/define.ts +130 -17
- package/src/design-to-implementation.template.test.ts +94 -0
- package/src/dist-freshness.test.ts +97 -0
- package/src/domain-template-type.test.ts +75 -0
- package/src/ecosystem.yaml +27 -66
- package/src/enterprise-os.yaml +10 -134
- package/src/facecam-edit.audio-studio.test.ts +188 -0
- package/src/fal-generate-image.test.ts +200 -0
- package/src/fal-media-lab-pod-files.test.ts +180 -0
- package/src/finance.yaml +254 -1
- package/src/foundation.yaml +130 -28
- package/src/frame-host-modules.d.mts +6 -0
- package/src/frame-host-modules.mjs +58 -0
- package/src/generate.mjs +9 -3
- package/src/github-merge.test.ts +210 -0
- package/src/grants.yaml +57 -17
- package/src/hr.yaml +39 -6
- package/src/index.ts +36 -1
- package/src/intent.test.ts +161 -0
- package/src/internal-runbook.yaml +19 -1
- package/src/jev.test.ts +356 -0
- package/src/legal.yaml +33 -1
- package/src/life-os.yaml +65 -240
- package/src/lifecycle-coverage.test.ts +124 -0
- package/src/lifecycle-declarations.test.ts +252 -0
- package/src/lifecycle-presets.test.ts +468 -0
- package/src/lifecycle-presets.ts +494 -0
- package/src/lifecycle-stuck.test.ts +46 -0
- package/src/lifecycle-waits.parity.test.ts +319 -0
- package/src/marketing.yaml +108 -4
- package/src/meetings-knowledge.yaml +18 -0
- package/src/networking.yaml +23 -2
- package/src/operations.yaml +304 -4
- package/src/pipeline-views.template.test.ts +88 -0
- package/src/playbook-goal-placeholders.test.ts +57 -0
- package/src/postiz-contract.test.ts +134 -0
- package/src/presentation-declarations.test.ts +174 -0
- package/src/process-contract.validate.test.ts +352 -0
- package/src/project-management.yaml +39 -740
- package/src/publish-body.d.mts +29 -0
- package/src/publish-body.mjs +74 -0
- package/src/publish-body.test.ts +74 -0
- package/src/publish-official-lib.test.ts +176 -0
- package/src/replicate-rvm.test.ts +504 -0
- package/src/research-base.yaml +119 -20
- package/src/research-decision.yaml +60 -3
- package/src/reserved-profile-slugs.test.ts +83 -0
- package/src/retired-goal-kinds.test.ts +58 -0
- package/src/role-reference-and-step-domain.test.ts +192 -0
- package/src/seed-obligation.test.ts +176 -0
- package/src/send-message-maps.test.ts +227 -0
- package/src/shared-role-ssot.test.ts +42 -1
- package/src/ship-a-change.template.test.ts +177 -0
- package/src/skills.test.ts +170 -0
- package/src/social.yaml +85 -27
- package/src/space-packages.freshness.test.ts +97 -0
- package/src/space-packages.generated.ts +40 -0
- package/src/space-packages.test.ts +125 -0
- package/src/space-packages.ts +73 -0
- package/src/start.test.ts +188 -0
- package/src/task-intents.test.ts +293 -0
- package/src/templates.ts +21639 -21522
- package/src/types.ts +443 -60
- package/src/unipile-publish-post.test.ts +162 -0
- package/src/validate-flow.drift.test.ts +2 -3
- package/src/validate-flow.ts +32 -2
- package/src/validate-onboarding.test.ts +59 -0
- package/src/validate.test.ts +156 -3
- package/src/validate.ts +1384 -7
- package/src/wire-core.ts +231 -0
- package/src/wire.test.ts +159 -0
- package/src/wire.ts +107 -0
- package/src/__fixtures__/report-automation-flow.json +0 -393
- package/src/agent-fleet.yaml +0 -1645
- package/src/business-developer.template.test.ts +0 -351
- package/src/business-developer.yaml +0 -860
- package/src/content-studio.yaml +0 -361
- package/src/dev-dashboard.yaml +0 -990
- package/src/outreach-comms.yaml +0 -486
- package/src/the-arch.yaml +0 -201
|
@@ -0,0 +1,598 @@
|
|
|
1
|
+
# Business Model workspace template
|
|
2
|
+
#
|
|
3
|
+
# WHY THIS TEMPLATE EXISTS (read before adding another strategy pack):
|
|
4
|
+
# The nine-component business-model interrogation (porteur, offer, market,
|
|
5
|
+
# money, means, and the conventions binding them) maps almost entirely onto
|
|
6
|
+
# vocabulary that ALREADY EXISTS in this corpus — `mission`/`vision`/`value`
|
|
7
|
+
# (foundation), `audience`/`pain-point`/`positioning`/`offer` (foundation,
|
|
8
|
+
# shared + pod-scoped), `client`/`partner`/`lead` (foundation shared roles),
|
|
9
|
+
# and the whole IBIS apparatus of `question`/`hypothesis`/`decision`/`source`
|
|
10
|
+
# (research-base + research-decision). Minting a parallel `business-model-*`
|
|
11
|
+
# vocabulary would have been a vocabulary fork — the exact failure
|
|
12
|
+
# `concept-guard.ts` was written to catch.
|
|
13
|
+
#
|
|
14
|
+
# So this pack adds only what is genuinely MISSING, which is three things:
|
|
15
|
+
# 1. `convention` — the binding external rule the model rests on (an
|
|
16
|
+
# eligibility threshold, a deontological duty, a contractual floor). Not
|
|
17
|
+
# a decision (nobody chose it) and not a finding (it is not evidence, it
|
|
18
|
+
# is a constraint). Nothing in the corpus expressed this.
|
|
19
|
+
# 2. `projection` — a quantified scenario with its assumptions attached, so
|
|
20
|
+
# a number can be challenged by challenging what it assumed.
|
|
21
|
+
# 3. `rests_on` / `refutes` — the two edges that make a business model a
|
|
22
|
+
# GRAPH instead of a document. `rests_on` is deliberately NOT `depends_on`
|
|
23
|
+
# or `blocks`: those are acyclic scheduling edges, and a business model is
|
|
24
|
+
# legitimately circular (the offer rests on the means, the means rest on
|
|
25
|
+
# the money, the money rests on the offer). `rests_on` carries support and
|
|
26
|
+
# staleness, not sequencing, so a cycle is information rather than a bug.
|
|
27
|
+
#
|
|
28
|
+
# The porteur and funder ROLES it needs are declared in foundation.yaml, the
|
|
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.
|
|
43
|
+
|
|
44
|
+
meta:
|
|
45
|
+
slug: business-model
|
|
46
|
+
domain: strategy
|
|
47
|
+
name: Business Model
|
|
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."
|
|
49
|
+
icon: layout-grid
|
|
50
|
+
color: "#0EA5E9"
|
|
51
|
+
tags: [strategy, business-model, grp, ibis, viability]
|
|
52
|
+
isPublic: true
|
|
53
|
+
|
|
54
|
+
workspace:
|
|
55
|
+
name: Foundation
|
|
56
|
+
description: Adds business-model interrogation to the strategic substrate — what the model rests on, which conventions bind it, and which numbers assume what.
|
|
57
|
+
subtype: foundation
|
|
58
|
+
|
|
59
|
+
# ONE compose base only — `validate.ts` requires every compose dependency to
|
|
60
|
+
# equal `workspace.subtype`, which is correct: an overlay is layered into one
|
|
61
|
+
# workspace, and a thing cannot be layered into two. The business model belongs
|
|
62
|
+
# in Foundation, because its components ARE the strategic DNA. The evidence
|
|
63
|
+
# apparatus it borrows (hypothesis, source, finding) lives in the Research
|
|
64
|
+
# workspace and is reached by RELATION, not by merging two lenses into one.
|
|
65
|
+
dependencies:
|
|
66
|
+
- slug: foundation
|
|
67
|
+
relation: compose
|
|
68
|
+
reason: The model's components ARE the foundation vocabulary — mission, audience, pain-point, positioning, offer, and the client/partner/porteur/funder roles. This pack interrogates them; it does not restate them.
|
|
69
|
+
|
|
70
|
+
profiles:
|
|
71
|
+
# ── Re-declared from dependencies, verbatim-compatible ─────────────────────
|
|
72
|
+
# Re-declaring a composed profile is how a pack states what it operates on;
|
|
73
|
+
# the apply layer resolves shared slugs to the ONE pod-wide row. Shapes here
|
|
74
|
+
# are strict subsets of the owner's shape, so no overlay conflict arises.
|
|
75
|
+
- slug: question
|
|
76
|
+
displayName: Question
|
|
77
|
+
icon: help-circle
|
|
78
|
+
profileKind: kind
|
|
79
|
+
properties:
|
|
80
|
+
- slug: questionStatus
|
|
81
|
+
label: Status
|
|
82
|
+
valueType: string
|
|
83
|
+
inputType: select
|
|
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.
|
|
90
|
+
- slug: decision
|
|
91
|
+
displayName: Decision
|
|
92
|
+
icon: gavel
|
|
93
|
+
profileKind: kind
|
|
94
|
+
properties:
|
|
95
|
+
- slug: decisionStatus
|
|
96
|
+
label: Status
|
|
97
|
+
valueType: string
|
|
98
|
+
inputType: select
|
|
99
|
+
enumValues: [proposed, accepted, superseded, rejected]
|
|
100
|
+
|
|
101
|
+
# ── What this pack actually adds ───────────────────────────────────────────
|
|
102
|
+
- slug: convention
|
|
103
|
+
displayName: Convention
|
|
104
|
+
icon: scale
|
|
105
|
+
color: rose
|
|
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
|
|
113
|
+
profileKind: kind
|
|
114
|
+
properties:
|
|
115
|
+
- slug: rule
|
|
116
|
+
label: The Rule
|
|
117
|
+
valueType: string
|
|
118
|
+
inputType: textarea
|
|
119
|
+
description: State the constraint in the terms the issuer uses, not in a paraphrase. Paraphrase is where eligibility collisions hide.
|
|
120
|
+
- slug: issuer
|
|
121
|
+
label: Issued By
|
|
122
|
+
valueType: string
|
|
123
|
+
inputType: text
|
|
124
|
+
description: Who imposes it — a regulator, a funder, an ordre professionnel, a platform, a counterparty.
|
|
125
|
+
- slug: conventionType
|
|
126
|
+
label: Type
|
|
127
|
+
valueType: string
|
|
128
|
+
inputType: select
|
|
129
|
+
enumValues:
|
|
130
|
+
[
|
|
131
|
+
regulatory,
|
|
132
|
+
deontological,
|
|
133
|
+
eligibility,
|
|
134
|
+
contractual,
|
|
135
|
+
platform,
|
|
136
|
+
fiscal,
|
|
137
|
+
other,
|
|
138
|
+
]
|
|
139
|
+
- slug: bindingStatus
|
|
140
|
+
label: Binding Status
|
|
141
|
+
valueType: string
|
|
142
|
+
inputType: select
|
|
143
|
+
enumValues: [verified, assumed, contested, expired]
|
|
144
|
+
description: "`assumed` is the dangerous default — it means nobody has read the source text yet."
|
|
145
|
+
- slug: sourceReference
|
|
146
|
+
label: Source Reference
|
|
147
|
+
valueType: string
|
|
148
|
+
inputType: text
|
|
149
|
+
description: The cahier des charges, article, or guide this comes from. A convention with no reference is an assumption wearing a rule's clothes.
|
|
150
|
+
- slug: expiresAt
|
|
151
|
+
label: Expires / Review By
|
|
152
|
+
valueType: date
|
|
153
|
+
inputType: date
|
|
154
|
+
- slug: consequenceIfBreached
|
|
155
|
+
label: Consequence If Breached
|
|
156
|
+
valueType: string
|
|
157
|
+
inputType: textarea
|
|
158
|
+
|
|
159
|
+
- slug: projection
|
|
160
|
+
displayName: Projection
|
|
161
|
+
icon: trending-up
|
|
162
|
+
color: violet
|
|
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
|
|
168
|
+
profileKind: kind
|
|
169
|
+
properties:
|
|
170
|
+
- slug: scenario
|
|
171
|
+
label: Scenario
|
|
172
|
+
valueType: string
|
|
173
|
+
inputType: select
|
|
174
|
+
enumValues: [pessimistic, base, optimistic]
|
|
175
|
+
- slug: horizon
|
|
176
|
+
label: Horizon
|
|
177
|
+
valueType: string
|
|
178
|
+
inputType: select
|
|
179
|
+
enumValues: [month, quarter, year, three-year]
|
|
180
|
+
- slug: assumptions
|
|
181
|
+
label: Assumptions
|
|
182
|
+
valueType: string
|
|
183
|
+
inputType: textarea
|
|
184
|
+
description: Every input this number needs to be true. When one changes, whatever rests on this projection goes stale.
|
|
185
|
+
- slug: revenueEstimate
|
|
186
|
+
label: Revenue Estimate
|
|
187
|
+
valueType: number
|
|
188
|
+
inputType: number
|
|
189
|
+
- slug: costEstimate
|
|
190
|
+
label: Cost Estimate
|
|
191
|
+
valueType: number
|
|
192
|
+
inputType: number
|
|
193
|
+
- slug: breakEvenUnits
|
|
194
|
+
label: Break-Even Units
|
|
195
|
+
valueType: number
|
|
196
|
+
inputType: number
|
|
197
|
+
- slug: confidence
|
|
198
|
+
label: Confidence
|
|
199
|
+
valueType: string
|
|
200
|
+
inputType: select
|
|
201
|
+
enumValues: [low, medium, high]
|
|
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
|
+
|
|
232
|
+
# Relation TYPE vocabulary. Declared here (not as bare entityLinks) because
|
|
233
|
+
# these two carry description + inverse labels that the entity-link path drops.
|
|
234
|
+
relationDefs:
|
|
235
|
+
- slug: rests_on
|
|
236
|
+
displayName: Rests On
|
|
237
|
+
description: "The source depends on the target for its validity — not for its scheduling. Cycles are LEGAL and meaningful here: a business model is mutually supporting by nature, and forcing it into an acyclic dependency graph destroys the information. When the target changes, everything resting on it is stale until re-checked."
|
|
238
|
+
isDirectional: true
|
|
239
|
+
uiHints:
|
|
240
|
+
category: reference
|
|
241
|
+
inverseLabel: Supports
|
|
242
|
+
- slug: refutes
|
|
243
|
+
displayName: Refutes
|
|
244
|
+
description: The source is evidence that the target is false. Kept as a first-class edge so a refuted component stays in the graph with its refutation attached, instead of being quietly deleted — the reason a road was not taken is worth more than the road.
|
|
245
|
+
isDirectional: true
|
|
246
|
+
uiHints:
|
|
247
|
+
category: reference
|
|
248
|
+
inverseLabel: Refuted By
|
|
249
|
+
|
|
250
|
+
entityLinks:
|
|
251
|
+
- sourceProfileSlug: offer
|
|
252
|
+
targetProfileSlug: convention
|
|
253
|
+
type: rests_on
|
|
254
|
+
label: Rests on
|
|
255
|
+
- sourceProfileSlug: offer
|
|
256
|
+
targetProfileSlug: audience
|
|
257
|
+
type: rests_on
|
|
258
|
+
label: Rests on
|
|
259
|
+
- sourceProfileSlug: projection
|
|
260
|
+
targetProfileSlug: offer
|
|
261
|
+
type: rests_on
|
|
262
|
+
label: Rests on
|
|
263
|
+
- sourceProfileSlug: decision
|
|
264
|
+
targetProfileSlug: convention
|
|
265
|
+
type: rests_on
|
|
266
|
+
label: Rests on
|
|
267
|
+
- sourceProfileSlug: decision
|
|
268
|
+
targetProfileSlug: projection
|
|
269
|
+
type: rests_on
|
|
270
|
+
label: Rests on
|
|
271
|
+
- sourceProfileSlug: convention
|
|
272
|
+
targetProfileSlug: offer
|
|
273
|
+
type: refutes
|
|
274
|
+
label: Refutes
|
|
275
|
+
- sourceProfileSlug: convention
|
|
276
|
+
targetProfileSlug: audience
|
|
277
|
+
type: refutes
|
|
278
|
+
label: Refutes
|
|
279
|
+
- sourceProfileSlug: convention
|
|
280
|
+
targetProfileSlug: question
|
|
281
|
+
type: rests_on
|
|
282
|
+
label: Rests on
|
|
283
|
+
|
|
284
|
+
views:
|
|
285
|
+
- name: Conventions
|
|
286
|
+
slug: business-model-conventions
|
|
287
|
+
type: table
|
|
288
|
+
scopeProfileSlug: convention
|
|
289
|
+
description: Every rule the model must satisfy, who imposes it, and whether anyone has actually verified it.
|
|
290
|
+
defaultView: true
|
|
291
|
+
config:
|
|
292
|
+
columns: [title, conventionType, issuer, bindingStatus, expiresAt]
|
|
293
|
+
- name: Unverified Conventions
|
|
294
|
+
slug: business-model-assumed-conventions
|
|
295
|
+
type: list
|
|
296
|
+
scopeProfileSlug: convention
|
|
297
|
+
description: Conventions still marked assumed or contested — the model rests on these and nobody has read the source text.
|
|
298
|
+
config:
|
|
299
|
+
filters:
|
|
300
|
+
- field: bindingStatus
|
|
301
|
+
operator: in
|
|
302
|
+
value: [assumed, contested]
|
|
303
|
+
- name: Projections
|
|
304
|
+
slug: business-model-projections
|
|
305
|
+
type: table
|
|
306
|
+
scopeProfileSlug: projection
|
|
307
|
+
description: Scenarios with their assumptions in the open, so a number can be argued with.
|
|
308
|
+
config:
|
|
309
|
+
columns:
|
|
310
|
+
[title, scenario, horizon, revenueEstimate, costEstimate, confidence]
|
|
311
|
+
- name: Open Interrogation
|
|
312
|
+
slug: business-model-open-questions
|
|
313
|
+
type: kanban
|
|
314
|
+
scopeProfileSlug: question
|
|
315
|
+
groupBy: questionStatus
|
|
316
|
+
description: The nine component questions and everything they spawned, by status.
|
|
317
|
+
|
|
318
|
+
# ── Seeds: the interrogation, not fake data ────────────────────────────────
|
|
319
|
+
# A strategy template that seeds example companies teaches nothing and gets
|
|
320
|
+
# deleted. What is actually reusable is the QUESTION SET — the workspace should
|
|
321
|
+
# arrive with the model's nine interrogations already open, so the first step
|
|
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).
|
|
344
|
+
seedEntities:
|
|
345
|
+
- profileSlug: question
|
|
346
|
+
title: "Porteur — what does the founder bring that cannot be hired, and what does the venture require of them personally?"
|
|
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]
|
|
351
|
+
questionStatus: open
|
|
352
|
+
- profileSlug: question
|
|
353
|
+
title: "Value proposition — for whom is this indispensable, and what do they stop doing once they have it?"
|
|
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]
|
|
358
|
+
questionStatus: open
|
|
359
|
+
- profileSlug: question
|
|
360
|
+
title: "Value fabrication — what is the chain that actually produces the value, and which link do we own?"
|
|
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]
|
|
365
|
+
questionStatus: open
|
|
366
|
+
- profileSlug: question
|
|
367
|
+
title: "Revenue sources — who pays, for which unit, and why that unit rather than another?"
|
|
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]
|
|
372
|
+
questionStatus: open
|
|
373
|
+
- profileSlug: question
|
|
374
|
+
title: "Volume and pricing — what volume at what price clears the cost base, and is that volume reachable in this market?"
|
|
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]
|
|
379
|
+
questionStatus: open
|
|
380
|
+
- profileSlug: question
|
|
381
|
+
title: "Performance — which number tells us the model works, and what observation would falsify it?"
|
|
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]
|
|
386
|
+
questionStatus: open
|
|
387
|
+
- profileSlug: question
|
|
388
|
+
title: "Stakeholders — who must say yes for this to exist, and what does each of them need in return?"
|
|
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]
|
|
393
|
+
questionStatus: open
|
|
394
|
+
- profileSlug: question
|
|
395
|
+
title: "Conventions — which rules bind us, who enforces them, and which are mandatory rather than advisory?"
|
|
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]
|
|
400
|
+
questionStatus: open
|
|
401
|
+
- profileSlug: question
|
|
402
|
+
title: "Ecosystem — what does the venture give back, and what breaks if we extract without returning?"
|
|
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]
|
|
407
|
+
questionStatus: open
|
|
408
|
+
|
|
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`.
|
|
416
|
+
suggestedRelations:
|
|
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?"
|
|
433
|
+
type: rests_on
|
|
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?"
|
|
437
|
+
type: rests_on
|
|
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?"
|
|
440
|
+
type: rests_on
|
|
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?"
|
|
443
|
+
type: rests_on
|
|
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?"
|
|
446
|
+
type: rests_on
|
|
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?"
|
|
450
|
+
type: rests_on
|
|
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?"
|
|
453
|
+
type: rests_on
|
|
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?"
|
|
456
|
+
type: rests_on
|
|
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.
|
|
485
|
+
playbooks:
|
|
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)."
|
|
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.
|
|
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.
|
|
580
|
+
actionPlacements:
|
|
581
|
+
- profileSlug: convention
|
|
582
|
+
surface: entity-detail
|
|
583
|
+
kind: playbook
|
|
584
|
+
ref: Business Model (GRP)
|
|
585
|
+
label: Re-check what rests on this
|
|
586
|
+
|
|
587
|
+
integrations:
|
|
588
|
+
- templateKey: research-methods
|
|
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
|