@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.
Files changed (249) 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 +189 -900
  57. package/dist/index.js +24654 -21639
  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 +41 -27
  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.template.test.ts +25 -19
  139. package/src/base.yaml +95 -39
  140. package/src/blockchain-ecosystem.yaml +1 -0
  141. package/src/brand-library.yaml +525 -14
  142. package/src/builder-dev-fold.template.test.ts +113 -0
  143. package/src/builder.yaml +798 -92
  144. package/src/business-model-catalog-description.test.ts +47 -0
  145. package/src/business-model-grp.template.test.ts +214 -0
  146. package/src/business-model.yaml +598 -0
  147. package/src/catalog-safety.test.ts +198 -0
  148. package/src/catalog.template-items.test.ts +75 -0
  149. package/src/catalog.ts +85 -2
  150. package/src/civic-france.yaml +102 -0
  151. package/src/concept-guard.test.ts +28 -8
  152. package/src/concept-guard.ts +2 -2
  153. package/src/content-creation.template.test.ts +52 -0
  154. package/src/content-creation.yaml +192 -0
  155. package/src/content-os.edit-loop.template.test.ts +210 -0
  156. package/src/content-os.publish-due-posts.template.test.ts +261 -0
  157. package/src/content-os.template.test.ts +322 -0
  158. package/src/content-os.video-takes.template.test.ts +338 -0
  159. package/src/content-os.work-a-take.template.test.ts +125 -0
  160. package/src/content-os.yaml +1830 -39
  161. package/src/content-studio-retired.template.test.ts +82 -0
  162. package/src/corpus-flow-validity.test.ts +4 -5
  163. package/src/crm-absorbs-outreach.template.test.ts +117 -0
  164. package/src/crm-build-plan.template.test.ts +128 -0
  165. package/src/crm-lists.template.test.ts +96 -0
  166. package/src/crm-messages-cadence.template.test.ts +164 -0
  167. package/src/crm-one-send-door.template.test.ts +65 -0
  168. package/src/crm.yaml +1456 -181
  169. package/src/decisions-wave.template.test.ts +186 -0
  170. package/src/define.ts +130 -17
  171. package/src/design-to-implementation.template.test.ts +94 -0
  172. package/src/dist-freshness.test.ts +97 -0
  173. package/src/domain-template-type.test.ts +75 -0
  174. package/src/ecosystem.yaml +27 -66
  175. package/src/enterprise-os.yaml +10 -134
  176. package/src/facecam-edit.audio-studio.test.ts +188 -0
  177. package/src/fal-generate-image.test.ts +200 -0
  178. package/src/fal-media-lab-pod-files.test.ts +180 -0
  179. package/src/finance.yaml +254 -1
  180. package/src/foundation.yaml +130 -28
  181. package/src/frame-host-modules.d.mts +6 -0
  182. package/src/frame-host-modules.mjs +58 -0
  183. package/src/generate.mjs +9 -3
  184. package/src/github-merge.test.ts +210 -0
  185. package/src/grants.yaml +57 -17
  186. package/src/hr.yaml +39 -6
  187. package/src/index.ts +36 -1
  188. package/src/intent.test.ts +161 -0
  189. package/src/internal-runbook.yaml +19 -1
  190. package/src/jev.test.ts +356 -0
  191. package/src/legal.yaml +33 -1
  192. package/src/life-os.yaml +65 -240
  193. package/src/lifecycle-coverage.test.ts +124 -0
  194. package/src/lifecycle-declarations.test.ts +252 -0
  195. package/src/lifecycle-presets.test.ts +468 -0
  196. package/src/lifecycle-presets.ts +494 -0
  197. package/src/lifecycle-stuck.test.ts +46 -0
  198. package/src/lifecycle-waits.parity.test.ts +319 -0
  199. package/src/marketing.yaml +108 -4
  200. package/src/meetings-knowledge.yaml +18 -0
  201. package/src/networking.yaml +23 -2
  202. package/src/operations.yaml +304 -4
  203. package/src/pipeline-views.template.test.ts +88 -0
  204. package/src/playbook-goal-placeholders.test.ts +57 -0
  205. package/src/postiz-contract.test.ts +134 -0
  206. package/src/presentation-declarations.test.ts +174 -0
  207. package/src/process-contract.validate.test.ts +352 -0
  208. package/src/project-management.yaml +39 -740
  209. package/src/publish-body.d.mts +29 -0
  210. package/src/publish-body.mjs +74 -0
  211. package/src/publish-body.test.ts +74 -0
  212. package/src/publish-official-lib.test.ts +176 -0
  213. package/src/replicate-rvm.test.ts +504 -0
  214. package/src/research-base.yaml +119 -20
  215. package/src/research-decision.yaml +60 -3
  216. package/src/reserved-profile-slugs.test.ts +83 -0
  217. package/src/retired-goal-kinds.test.ts +58 -0
  218. package/src/role-reference-and-step-domain.test.ts +192 -0
  219. package/src/seed-obligation.test.ts +176 -0
  220. package/src/send-message-maps.test.ts +227 -0
  221. package/src/shared-role-ssot.test.ts +42 -1
  222. package/src/ship-a-change.template.test.ts +177 -0
  223. package/src/skills.test.ts +170 -0
  224. package/src/social.yaml +85 -27
  225. package/src/space-packages.freshness.test.ts +97 -0
  226. package/src/space-packages.generated.ts +40 -0
  227. package/src/space-packages.test.ts +125 -0
  228. package/src/space-packages.ts +73 -0
  229. package/src/start.test.ts +188 -0
  230. package/src/task-intents.test.ts +293 -0
  231. package/src/templates.ts +21639 -21522
  232. package/src/types.ts +443 -60
  233. package/src/unipile-publish-post.test.ts +162 -0
  234. package/src/validate-flow.drift.test.ts +2 -3
  235. package/src/validate-flow.ts +32 -2
  236. package/src/validate-onboarding.test.ts +59 -0
  237. package/src/validate.test.ts +156 -3
  238. package/src/validate.ts +1384 -7
  239. package/src/wire-core.ts +231 -0
  240. package/src/wire.test.ts +159 -0
  241. package/src/wire.ts +107 -0
  242. package/src/__fixtures__/report-automation-flow.json +0 -393
  243. package/src/agent-fleet.yaml +0 -1645
  244. package/src/business-developer.template.test.ts +0 -351
  245. package/src/business-developer.yaml +0 -860
  246. package/src/content-studio.yaml +0 -361
  247. package/src/dev-dashboard.yaml +0 -990
  248. package/src/outreach-comms.yaml +0 -486
  249. package/src/the-arch.yaml +0 -201
@@ -0,0 +1,27 @@
1
+ {
2
+ "_meta": {
3
+ "slug": "habit-profile",
4
+ "icon": "repeat",
5
+ "color": "#10B981",
6
+ "tags": ["habit", "tracking", "wellness"],
7
+ "requiredTier": null,
8
+ "isPublic": true
9
+ },
10
+ "profiles": [
11
+ {
12
+ "slug": "habit",
13
+ "displayName": "Habit",
14
+ "icon": "repeat",
15
+ "color": "#10B981",
16
+ "description": "Habit tracker with frequency and streaks",
17
+ "scope": "workspace",
18
+ "properties": [
19
+ { "slug": "name", "valueType": "string", "required": true, "label": "Habit Name" },
20
+ { "slug": "frequency", "valueType": "string", "label": "Frequency", "inputType": "select", "enumValues": ["daily", "weekly", "monthly"] },
21
+ { "slug": "streak", "valueType": "number", "label": "Current Streak", "constraints": { "min": 0 } },
22
+ { "slug": "category", "valueType": "string", "label": "Category" },
23
+ { "slug": "notes", "valueType": "string", "label": "Notes", "inputType": "textarea" }
24
+ ]
25
+ }
26
+ ]
27
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "_meta": {
3
+ "slug": "hr-pack",
4
+ "icon": "users",
5
+ "color": "#F59E0B",
6
+ "tags": ["hr", "team", "employees", "departments"],
7
+ "requiredTier": null,
8
+ "isPublic": true
9
+ },
10
+ "profiles": [
11
+ {
12
+ "slug": "team-member",
13
+ "displayName": "Team Member",
14
+ "icon": "user",
15
+ "color": "#F59E0B",
16
+ "description": "Team members and employees",
17
+ "scope": "workspace",
18
+ "parentProfileSlug": "person",
19
+ "properties": [
20
+ { "slug": "role", "valueType": "string", "required": true, "label": "Role / Title" },
21
+ { "slug": "department", "valueType": "string", "label": "Department" },
22
+ { "slug": "start-date", "valueType": "date", "label": "Start Date" },
23
+ { "slug": "location", "valueType": "string", "label": "Location" },
24
+ { "slug": "skills", "valueType": "array", "label": "Skills" },
25
+ { "slug": "status", "valueType": "string", "label": "Status", "inputType": "select", "enumValues": ["active", "on-leave", "offboarded"] }
26
+ ]
27
+ },
28
+ {
29
+ "slug": "department",
30
+ "displayName": "Department",
31
+ "icon": "building-2",
32
+ "color": "#6366F1",
33
+ "description": "Organizational departments and teams",
34
+ "scope": "workspace",
35
+ "properties": [
36
+ { "slug": "head", "valueType": "string", "label": "Department Head" },
37
+ { "slug": "headcount", "valueType": "number", "label": "Headcount", "constraints": { "min": 0 } },
38
+ { "slug": "budget", "valueType": "number", "label": "Annual Budget", "constraints": { "min": 0 } },
39
+ { "slug": "description", "valueType": "string", "label": "Description", "inputType": "textarea" }
40
+ ]
41
+ }
42
+ ],
43
+ "views": [
44
+ {
45
+ "name": "Team",
46
+ "type": "table",
47
+ "scopeProfileSlug": "team-member",
48
+ "config": {}
49
+ }
50
+ ],
51
+ "entityLinks": [
52
+ { "sourceProfileSlug": "team-member", "targetProfileSlug": "department", "type": "belongs_to", "label": "In department" }
53
+ ]
54
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "_meta": {
3
+ "slug": "invoice-profile",
4
+ "icon": "receipt",
5
+ "color": "#10B981",
6
+ "tags": ["invoice", "billing", "finance"],
7
+ "requiredTier": null,
8
+ "isPublic": true
9
+ },
10
+ "profiles": [
11
+ {
12
+ "slug": "invoice",
13
+ "displayName": "Invoice",
14
+ "icon": "receipt",
15
+ "color": "#10B981",
16
+ "description": "Invoice with line items and payment tracking",
17
+ "scope": "workspace",
18
+ "properties": [
19
+ { "slug": "invoice-number", "valueType": "string", "required": true, "label": "Invoice Number" },
20
+ { "slug": "amount", "valueType": "number", "required": true, "label": "Amount", "constraints": { "min": 0 } },
21
+ { "slug": "currency", "valueType": "string", "label": "Currency", "placeholder": "USD" },
22
+ { "slug": "status", "valueType": "string", "label": "Status", "inputType": "select", "enumValues": ["draft", "sent", "paid", "overdue", "cancelled"] },
23
+ { "slug": "due-date", "valueType": "date", "label": "Due Date" },
24
+ { "slug": "issued-date", "valueType": "date", "label": "Issued Date" }
25
+ ]
26
+ }
27
+ ]
28
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "_meta": {
3
+ "slug": "knowledge-base-pack",
4
+ "icon": "book-open",
5
+ "color": "#06B6D4",
6
+ "tags": ["knowledge", "articles", "documentation", "resources"],
7
+ "requiredTier": null,
8
+ "isPublic": true
9
+ },
10
+ "profiles": [
11
+ {
12
+ "slug": "article",
13
+ "displayName": "Article",
14
+ "icon": "newspaper",
15
+ "color": "#8B5CF6",
16
+ "description": "Knowledge base articles and documentation",
17
+ "scope": "workspace",
18
+ "parentProfileSlug": "bookmark",
19
+ "properties": [
20
+ { "slug": "author", "valueType": "string", "label": "Author" },
21
+ { "slug": "published-at", "valueType": "date", "label": "Published" },
22
+ { "slug": "category", "valueType": "string", "label": "Category" },
23
+ { "slug": "tags", "valueType": "array", "label": "Tags" },
24
+ { "slug": "read-time", "valueType": "number", "label": "Read Time (min)", "constraints": { "min": 0 } }
25
+ ]
26
+ },
27
+ {
28
+ "slug": "resource",
29
+ "displayName": "Resource",
30
+ "icon": "link",
31
+ "color": "#10B981",
32
+ "description": "External links, tools, and references",
33
+ "scope": "workspace",
34
+ "properties": [
35
+ { "slug": "url", "valueType": "string", "required": true, "label": "URL", "inputType": "url" },
36
+ { "slug": "category", "valueType": "string", "label": "Category" },
37
+ { "slug": "rating", "valueType": "number", "label": "Rating", "constraints": { "min": 0, "max": 5 } },
38
+ { "slug": "notes", "valueType": "string", "label": "Notes", "inputType": "textarea" }
39
+ ]
40
+ }
41
+ ],
42
+ "views": [
43
+ {
44
+ "name": "Articles",
45
+ "type": "grid",
46
+ "scopeProfileSlug": "article",
47
+ "config": {}
48
+ },
49
+ {
50
+ "name": "Resources",
51
+ "type": "list",
52
+ "scopeProfileSlug": "resource",
53
+ "config": {}
54
+ }
55
+ ]
56
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "_meta": {
3
+ "slug": "meeting-profile",
4
+ "icon": "video",
5
+ "color": "#8B5CF6",
6
+ "tags": ["meeting", "calendar", "scheduling"],
7
+ "requiredTier": null,
8
+ "isPublic": true
9
+ },
10
+ "profiles": [
11
+ {
12
+ "slug": "meeting",
13
+ "displayName": "Meeting",
14
+ "icon": "video",
15
+ "color": "#8B5CF6",
16
+ "description": "Meeting with attendees, agenda, and notes",
17
+ "scope": "workspace",
18
+ "properties": [
19
+ { "slug": "title", "valueType": "string", "required": true, "label": "Title" },
20
+ { "slug": "start-date", "valueType": "date", "required": true, "label": "Start Time" },
21
+ { "slug": "end-date", "valueType": "date", "label": "End Time" },
22
+ { "slug": "location", "valueType": "string", "label": "Location / Link" },
23
+ { "slug": "attendees", "valueType": "array", "label": "Attendees" },
24
+ { "slug": "agenda", "valueType": "string", "label": "Agenda", "inputType": "textarea" },
25
+ { "slug": "notes", "valueType": "string", "label": "Meeting Notes", "inputType": "textarea" }
26
+ ]
27
+ }
28
+ ]
29
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "_meta": {
3
+ "slug": "product-profile",
4
+ "icon": "package",
5
+ "color": "#6366F1",
6
+ "tags": ["product", "inventory", "ecommerce"],
7
+ "requiredTier": null,
8
+ "isPublic": true
9
+ },
10
+ "profiles": [
11
+ {
12
+ "slug": "product",
13
+ "displayName": "Product",
14
+ "icon": "package",
15
+ "color": "#6366F1",
16
+ "description": "Product with pricing, SKU, and inventory",
17
+ "scope": "workspace",
18
+ "properties": [
19
+ { "slug": "name", "valueType": "string", "required": true, "label": "Product Name" },
20
+ { "slug": "sku", "valueType": "string", "label": "SKU" },
21
+ { "slug": "price", "valueType": "number", "label": "Price", "constraints": { "min": 0 } },
22
+ { "slug": "currency", "valueType": "string", "label": "Currency", "placeholder": "USD" },
23
+ { "slug": "category", "valueType": "string", "label": "Category" },
24
+ { "slug": "status", "valueType": "string", "label": "Status", "inputType": "select", "enumValues": ["draft", "active", "discontinued"] },
25
+ { "slug": "description", "valueType": "string", "label": "Description", "inputType": "textarea" },
26
+ { "slug": "image", "valueType": "string", "label": "Image URL" }
27
+ ]
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "_meta": {
3
+ "slug": "project-management-pack",
4
+ "icon": "kanban-square",
5
+ "color": "#8B5CF6",
6
+ "tags": ["projects", "tasks", "milestones", "team"],
7
+ "requiredTier": null,
8
+ "isPublic": true
9
+ },
10
+ "profiles": [
11
+ {
12
+ "slug": "task",
13
+ "displayName": "Task",
14
+ "icon": "check-square",
15
+ "color": "#3B82F6",
16
+ "description": "Work items and action items",
17
+ "scope": "workspace",
18
+ "properties": [
19
+ { "slug": "status", "valueType": "string", "required": true, "label": "Status", "inputType": "select", "enumValues": ["todo", "in-progress", "review", "done", "cancelled"] },
20
+ { "slug": "priority", "valueType": "string", "label": "Priority", "inputType": "select", "enumValues": ["low", "medium", "high", "urgent"] },
21
+ { "slug": "due-date", "valueType": "date", "label": "Due Date" },
22
+ { "slug": "assignee", "valueType": "string", "label": "Assignee" },
23
+ { "slug": "estimate", "valueType": "number", "label": "Estimate (hours)", "constraints": { "min": 0 } },
24
+ { "slug": "tags", "valueType": "array", "label": "Labels" }
25
+ ]
26
+ },
27
+ {
28
+ "slug": "milestone",
29
+ "displayName": "Milestone",
30
+ "icon": "flag",
31
+ "color": "#F59E0B",
32
+ "description": "Key deliverables and checkpoints",
33
+ "scope": "workspace",
34
+ "properties": [
35
+ { "slug": "due-date", "valueType": "date", "required": true, "label": "Target Date" },
36
+ { "slug": "status", "valueType": "string", "label": "Status", "inputType": "select", "enumValues": ["upcoming", "in-progress", "completed", "missed"] },
37
+ { "slug": "description", "valueType": "string", "label": "Description", "inputType": "textarea" }
38
+ ]
39
+ }
40
+ ],
41
+ "views": [
42
+ {
43
+ "name": "Task Board",
44
+ "type": "kanban",
45
+ "scopeProfileSlug": "task",
46
+ "config": { "groupByField": "status" }
47
+ }
48
+ ]
49
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "_meta": {
3
+ "slug": "recipe-profile",
4
+ "icon": "chef-hat",
5
+ "color": "#F59E0B",
6
+ "tags": ["recipe", "cooking", "food"],
7
+ "requiredTier": null,
8
+ "isPublic": true
9
+ },
10
+ "profiles": [
11
+ {
12
+ "slug": "recipe",
13
+ "displayName": "Recipe",
14
+ "icon": "chef-hat",
15
+ "color": "#F59E0B",
16
+ "description": "Recipe with ingredients, steps, and nutrition",
17
+ "scope": "workspace",
18
+ "properties": [
19
+ { "slug": "title", "valueType": "string", "required": true, "label": "Recipe Name" },
20
+ { "slug": "cuisine", "valueType": "string", "label": "Cuisine" },
21
+ { "slug": "prep-time", "valueType": "number", "label": "Prep Time (min)", "constraints": { "min": 0 } },
22
+ { "slug": "cook-time", "valueType": "number", "label": "Cook Time (min)", "constraints": { "min": 0 } },
23
+ { "slug": "servings", "valueType": "number", "label": "Servings", "constraints": { "min": 1 } },
24
+ { "slug": "ingredients", "valueType": "array", "label": "Ingredients" },
25
+ { "slug": "tags", "valueType": "array", "label": "Tags" }
26
+ ]
27
+ }
28
+ ]
29
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "_meta": {
3
+ "slug": "task-views-pack",
4
+ "displayName": "Task Views",
5
+ "icon": "layout-grid",
6
+ "color": "#3B82F6",
7
+ "tags": ["tasks", "kanban", "views", "productivity"],
8
+ "requiredTier": null,
9
+ "isPublic": true
10
+ },
11
+ "description": "Four ready-made task views: a Kanban board by status, a priority matrix, a due-date calendar and a table of all tasks.",
12
+ "profiles": [],
13
+ "views": [
14
+ {
15
+ "name": "Task Board",
16
+ "type": "kanban",
17
+ "scopeProfileSlug": "task",
18
+ "config": { "groupByField": "status" }
19
+ },
20
+ {
21
+ "name": "Priority Matrix",
22
+ "type": "matrix",
23
+ "scopeProfileSlug": "task",
24
+ "config": { "xField": "priority", "yField": "status" }
25
+ },
26
+ {
27
+ "name": "Task Calendar",
28
+ "type": "calendar",
29
+ "scopeProfileSlug": "task",
30
+ "config": { "dateField": "dueDate" }
31
+ },
32
+ {
33
+ "name": "All Tasks",
34
+ "type": "table",
35
+ "scopeProfileSlug": "task",
36
+ "config": {}
37
+ }
38
+ ]
39
+ }
package/retired.yaml ADDED
@@ -0,0 +1,136 @@
1
+ # Retired templates: the tombstone registry (schema: schema/retired.ts).
2
+ #
3
+ # A template that leaves the catalog stays KNOWN here. `synap catalog publish`
4
+ # sends each entry to the control plane (POST /api/packages/retire) after the
5
+ # live publishes, so a pod can tell "retired, replaced by X" from "never heard
6
+ # of it" and offer the person a safe move to X. Removing an entry does NOT
7
+ # un-retire the row on the CP.
8
+ #
9
+ # slug the retired slug
10
+ # kind workspace (default) · capability · skill · pack · automation
11
+ # replacedBy a LIVE catalog slug of the same kind, or absent when nothing replaces it
12
+ # reason one plain sentence a person reads
13
+ # since the date it left the catalog (YYYY-MM-DD)
14
+ #
15
+ # Validation (`synap catalog validate`): replacedBy is live and not retired; no
16
+ # slug is both live and retired in the same category; reasons are not empty.
17
+ # The evidence behind each entry is in pod file 00c1b2fe-ef98-41fa-86cf-801dfab12cd1 ("Template lifecycle: decisions wave + lane catalog").
18
+
19
+ apiVersion: synap/v1
20
+ retired:
21
+ # c64ec2fe: "ecosystem (absorbs radar+content-os per ratified merge)". Every
22
+ # radar kind (competitor, market-segment, trend, inspiration) is declared by ecosystem.
23
+ - slug: radar
24
+ kind: workspace
25
+ replacedBy: ecosystem
26
+ reason: Radar was merged into Ecosystem, which tracks competitors, market segments, trends and inspiration in one place.
27
+ since: "2026-07-16"
28
+
29
+ # 2026-07-22 (b12efb1b). Second Brain (life-os) declares every kind Personal
30
+ # held (note, bookmark, article; projects are the pod's own).
31
+ - slug: personal
32
+ kind: workspace
33
+ replacedBy: life-os
34
+ reason: Personal was replaced by Second Brain, which keeps your notes, bookmarks and articles together.
35
+ since: "2026-07-22"
36
+
37
+ # R7 2026-09-27 (src/builder-dev-fold.template.test.ts): the four views worth
38
+ # keeping were rebuilt over Builder's own kinds (slug builder-workspace, shown as "Dev"). credential, vendor, repository,
39
+ # service and environment were NOT ported.
40
+ - slug: dev-dashboard
41
+ kind: workspace
42
+ replacedBy: builder-workspace
43
+ reason: Dev Dashboard was folded into the Dev space, where its service health, deploy and cost views now live.
44
+ since: "2026-09-27"
45
+
46
+ # R7 2026-09-27: retired as a template, its `agent` kind deliberately not
47
+ # ported anywhere. Not a system space (only pod-admin carries a system_slug).
48
+ - slug: agent-fleet
49
+ kind: workspace
50
+ reason: Agent Fleet is no longer offered; your agents belong to the pod itself, not to a space.
51
+ since: "2026-09-27"
52
+
53
+ # eaf49166: it declared no profiles, only tools, skills and vault. It lives on
54
+ # as the capability `posthog-analytics` (capabilities/), a different category.
55
+ - slug: posthog-analytics
56
+ kind: workspace
57
+ reason: PostHog Analytics is now a capability you connect, not a space.
58
+ since: "2026-10-06"
59
+
60
+ # relay-app's private template (relay-app/src/lib/workspace-templates/relay.ts).
61
+ # Never in the catalog, but pods hold it. person and company move to CRM;
62
+ # event and task are pod-wide; campaign and contact have no home in CRM.
63
+ - slug: relay
64
+ kind: workspace
65
+ replacedBy: crm
66
+ reason: Relay was replaced by CRM, which keeps the people and companies you track.
67
+ since: "2026-10-11"
68
+
69
+ # relay-app's private template (relay-app/src/lib/workspace-templates/pkm.ts).
70
+ # life-os.yaml says it was consolidated from the CP pkm-template; it declares
71
+ # note, bookmark and highlight.
72
+ - slug: pkm
73
+ kind: workspace
74
+ replacedBy: life-os
75
+ reason: Knowledge was replaced by Second Brain, which keeps your notes, bookmarks and highlights.
76
+ since: "2026-10-11"
77
+
78
+ # Founder decision 2026-10-12 (pod file 00c1b2fe-ef98-41fa-86cf-801dfab12cd1, decisions wave item 1).
79
+ # Its lead/client fields, the campaign kind and "Qualify a lead" folded into
80
+ # crm.yaml; "Advance a commercial proposal" was dropped for CRM's "Win a
81
+ # deal"; the Synap-fee + commission model moved to the private arch-sales.yaml,
82
+ # itself retired the same day (below).
83
+ - slug: business-developer
84
+ kind: workspace
85
+ replacedBy: crm
86
+ reason: Business Developer was folded into CRM, which now qualifies your leads and runs your campaigns.
87
+ since: "2026-10-12"
88
+
89
+ # Founder decision 2026-10-12: The Arch (project + pod) is no longer in use.
90
+ # Both were private. Their sources are kept, never loaded, in retired-sources/.
91
+ # Existing pods keep their spaces and data; nothing offers them again.
92
+ - slug: arch-sales
93
+ kind: workspace
94
+ reason: Arch Sales was The Arch's own business-developer commission model, and that project is no longer in use.
95
+ since: "2026-10-12"
96
+
97
+ - slug: the-arch
98
+ kind: workspace
99
+ reason: The Arch was a private suite for a project that is no longer in use.
100
+ since: "2026-10-12"
101
+
102
+ # 2026-10-15, "Any link → data": every pod reads a
103
+ # public link itself (the builtin web read verb in Synap Core), so this pack
104
+ # and its capture_public_url twin are no longer offered. Nothing replaces it:
105
+ # nothing needs installing.
106
+ - slug: web.read
107
+ kind: capability
108
+ reason: Reading a public link is built into every pod.
109
+ since: "2026-10-15"
110
+
111
+ # Founder decision 2026-10-23: one space per domain. For a founder-led company
112
+ # outreach is part of the commercial job, so the CRM absorbs it: the
113
+ # `outreach-touch` kind (same slug and lifecycle keys), `sent_to` / `part_of`,
114
+ # the two views, "Personalized Outreach" and the LinkedIn ingest live in
115
+ # crm.yaml. `outreach-campaign` folded into CRM's `campaign` (campaign-type
116
+ # outreach); "Send an outreach message" became "Read the reply to an outreach
117
+ # message" (the agent drafts, a person sends). No pod had it installed.
118
+ - slug: outreach-comms
119
+ kind: workspace
120
+ replacedBy: crm
121
+ reason: Outreach & Comms was folded into CRM, which now keeps your outreach campaigns and the messages drafted for you to send.
122
+ since: "2026-10-23"
123
+
124
+ # Static edit loop W5 (build plan ab3e0a5a §4, founder D0-D1, 2 Nov 2026).
125
+ # Superseded since 2026-10-06: Content OS re-declared its three video kinds
126
+ # (content-composition, content-asset, render-job) verbatim, their views and
127
+ # pipeline links; brand-library folded its production-recipe into
128
+ # brand-template. The edit loop (edit-loop skill, video-toolbox routing)
129
+ # replaced its render pipeline. The founder's pod holds no Content Studio
130
+ # space (2026-11-03); a pod that does keeps it as it is (the resolver
131
+ # refuses a new install and leaves an installed space alone).
132
+ - slug: content-studio
133
+ kind: workspace
134
+ replacedBy: content-os
135
+ reason: Content Studio was folded into Content OS, which now keeps your videos, carousels and other visual posts with the rest of your content.
136
+ since: "2026-11-03"
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: app-factory-build-slice
3
+ description: Build one slice of a new app from its approved design boards — scope by board files, data read server-side only through the person's sign-in, governed writes, the Website Factory gates, an independent re-run of every gate by the orchestrator, and a stop for the person's first look after slice 1. Use in the Build stage of "Build an app (App Factory)", or when handing an approved design to a coding agent.
4
+ metadata:
5
+ synap_native: true
6
+ auto_load: false
7
+ ---
8
+
9
+ # App Factory: build a slice
10
+
11
+ A slice is a set of approved boards built pixel for pixel, gate-green, in a pull request. It never starts before the
12
+ person approved the design, and never starts while a gap it depends on is open without a labelled bridge. Content
13
+ Studio's slice S1 (Home + idea bank, read-only, real data) is the reference.
14
+
15
+ ## 1. Write the slice brief (in the app repo, e.g. `BUILD-S1.md`)
16
+
17
+ The builder reads it fully, then `AGENTS.md`, `.claude/skills/build-site/SKILL.md`, the plan document (sections it
18
+ names) and the boards. The brief says:
19
+
20
+ - **Scope, by boards.** Each route with the board files it must match (desktop 1280, phone 390, every state board).
21
+ Shell items outside the slice link to ONE "coming next" page drawn with the kit's `StatePanel`, never a dead link.
22
+ - **Rules computed on the server**, written once (e.g. Home's one line: open interview with unanswered questions →
23
+ owed asks → pending proposals → the most overdue item). The counts that must agree across pages come from one
24
+ function.
25
+ - **Not in this slice**, explicitly (writes, sign-in, the pages of later slices).
26
+ - **Data.** The read set per page (route, `workspaceId` always passed, what it returns), the request budget per page
27
+ against the key's rate limit, cache per request only (no shared cache across people). A failed read renders the
28
+ error state with retry, never an empty list.
29
+ - **Sign-in, never a key.** The app is a pod-app site (`create-site --path pod-app`): the person signs in to their pod
30
+ and the server reads through `@synap-core/sdk/connect` (`createPodAppAuth`); follow the kit's AGENTS.md. Never an app
31
+ key; the session secret stays server-only, never in client code, never `NEXT_PUBLIC_*`, never logged or committed.
32
+ Not connected → the kit's "not connected" state. What a pod app can see and do (spaces, roles, pod-wide records,
33
+ writes): `node_modules/@synap-core/sdk/AGENTS.md`, section "What a pod app can see and do". It wins over anything
34
+ here. If something the app needs is not supported yet, that is a recorded gap with an owner — never edit
35
+ `synap-check.mjs` to pass.
36
+ - **Writes are governed.** A write from a pod app is a proposal in a granted space (`proposed` is success: link the
37
+ review, label it in the UI "Proposed · in your pod", never retry it); a person connection applies directly.
38
+ - **Look.** `design-kit/tokens.css` decisions copied into `app/brand.css` (shadcn token names), fonts self-hosted
39
+ (`next/font/local` or `@fontsource*`, never Google at build time), sizes = shadcn base-nova plus only the sizes the
40
+ design decisions added (as cva variants). Private app: `app/robots.ts` disallows all, pages carry `noindex`, and any
41
+ cookie (e.g. the sidebar's `sidebar_state`) is named on the privacy page.
42
+
43
+ ## 2. Gates (the builder runs them, quotes them, fixes until green)
44
+
45
+ - `pnpm verify` green (typecheck, lint, arc / extensions / synap / registry checks, build, smoke).
46
+ - `pnpm shots` and READ the PNGs and `.shots/REPORT.md` at 375 / 768 / 1280 (and dark, if designed): zero serious or
47
+ critical axe issues; compare each page with its board and list every remaining difference.
48
+ - Credential grep: the key's variable name appears only in server files
49
+ (`grep -rn "<KEY_VAR>" app components lib`).
50
+ - Mutation grep (read-only slices): no write call anywhere
51
+ (`grep -rnE 'method: ?"(POST|PATCH|PUT|DELETE)"|\.create\(|\.update\(|\.transition\(' app components lib` is empty).
52
+ - Small commits on a branch `s<N>-<slug>`, pushed, a pull request to main. Never push to main, never deploy
53
+ production; a preview deploy only when `VERCEL_TOKEN` is set (if not, say so and skip).
54
+
55
+ ## 3. Independent verification (the orchestrator, not the builder)
56
+
57
+ Never accept "done" from the builder's report. On the devbox (heavy gates never on the Mac; take the gate lock):
58
+ check out the PR head, run `pnpm verify` and the two greps yourself, read the screenshots, and quote the outputs.
59
+ Look for green-by-accident: a verify that passed only through a temporary proxy or a cached font, a flag that does not
60
+ exist or is not the pod-app path (`create-site --path pod-app`), ids in the brief that drifted from the pod. Record each trap you find as a lesson.
61
+
62
+ ## 4. Report and stop
63
+
64
+ Post in the slice's session room: what was built (routes, boards matched), the quoted gates, screenshot findings by
65
+ severity (VERIFIED), what only the person can judge (NEEDS-DOGFOOD), and the gaps still open with owners. After
66
+ **slice 1, STOP**: the person's first look on the preview (or the screenshots) decides the next slice. Later slices
67
+ continue in order unless the person stops them; each ends with the same report.
68
+
69
+ Done when: the PR is open, every gate is quoted by the orchestrator's own run, the differences from the boards are
70
+ listed, and (after slice 1) the person has been asked for their first look.
@@ -0,0 +1,17 @@
1
+ {
2
+ "apiVersion": "synap/v1",
3
+ "kind": "skill",
4
+ "meta": {
5
+ "slug": "app-factory-build-slice",
6
+ "name": "App Factory: build a slice",
7
+ "description": "Build one slice of an app from its approved boards: server-side reads through the person's sign-in, governed writes, the Website Factory gates, an independent re-run of every gate, and a stop for the person's first look after slice 1.",
8
+ "tags": [
9
+ "skill",
10
+ "app-factory",
11
+ "build",
12
+ "builder"
13
+ ],
14
+ "isPublic": true
15
+ },
16
+ "dependencies": []
17
+ }