@rubytech/create-realagent-code 0.1.254 → 0.1.256

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 (340) hide show
  1. package/dist/__tests__/plugin-install.test.js +58 -40
  2. package/dist/index.js +77 -26
  3. package/dist/lib/plugin-install.js +31 -29
  4. package/package.json +1 -1
  5. package/payload/platform/.docs/search-surface-contract.md +58 -0
  6. package/payload/platform/config/brand-registry.json +8 -0
  7. package/payload/platform/config/brand.json +2 -2
  8. package/payload/platform/lib/embed-client/dist/index.d.ts +4 -0
  9. package/payload/platform/lib/embed-client/dist/index.d.ts.map +1 -0
  10. package/payload/platform/lib/embed-client/dist/index.js +53 -0
  11. package/payload/platform/lib/embed-client/dist/index.js.map +1 -0
  12. package/payload/platform/lib/embed-client/src/index.ts +53 -0
  13. package/payload/platform/lib/embed-client/tsconfig.json +8 -0
  14. package/payload/platform/lib/graph-search/dist/index.d.ts +27 -6
  15. package/payload/platform/lib/graph-search/dist/index.d.ts.map +1 -1
  16. package/payload/platform/lib/graph-search/dist/index.js +19 -1
  17. package/payload/platform/lib/graph-search/dist/index.js.map +1 -1
  18. package/payload/platform/lib/graph-search/src/__tests__/fulltext-coverage.test.ts +12 -0
  19. package/payload/platform/lib/graph-search/src/index.ts +28 -6
  20. package/payload/platform/lib/graph-write/dist/index.d.ts +25 -0
  21. package/payload/platform/lib/graph-write/dist/index.d.ts.map +1 -1
  22. package/payload/platform/lib/graph-write/dist/index.js +80 -2
  23. package/payload/platform/lib/graph-write/dist/index.js.map +1 -1
  24. package/payload/platform/lib/graph-write/src/index.ts +98 -1
  25. package/payload/platform/neo4j/schema.cypher +126 -0
  26. package/payload/platform/package.json +2 -2
  27. package/payload/platform/plugins/.claude-plugin/marketplace.json +5 -0
  28. package/payload/platform/plugins/admin/.claude-plugin/plugin.json +1 -1
  29. package/payload/platform/plugins/admin/PLUGIN.md +3 -6
  30. package/payload/platform/plugins/admin/mcp/dist/index.js +14 -60
  31. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  32. package/payload/platform/plugins/admin/skills/insight/SKILL.md +24 -0
  33. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +84 -31
  34. package/payload/platform/plugins/docs/PLUGIN.md +1 -0
  35. package/payload/platform/plugins/docs/references/admin-ui.md +1 -1
  36. package/payload/platform/plugins/docs/references/deployment.md +18 -5
  37. package/payload/platform/plugins/docs/references/graph.md +2 -0
  38. package/payload/platform/plugins/docs/references/internals.md +12 -1
  39. package/payload/platform/plugins/docs/references/memory-guide.md +4 -0
  40. package/payload/platform/plugins/docs/references/neo4j.md +2 -2
  41. package/payload/platform/plugins/docs/references/platform.md +1 -1
  42. package/payload/platform/plugins/docs/references/plugins-guide.md +1 -1
  43. package/payload/platform/plugins/docs/references/session-retrospective.md +5 -18
  44. package/payload/platform/plugins/docs/references/slides.md +31 -0
  45. package/payload/platform/plugins/docs/references/voice-mirror-guide.md +1 -1
  46. package/payload/platform/plugins/email/PLUGIN.md +2 -2
  47. package/payload/platform/plugins/email/mcp/dist/index.js +8 -0
  48. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
  49. package/payload/platform/plugins/email/mcp/dist/lib/attachment-resolve.d.ts +19 -0
  50. package/payload/platform/plugins/email/mcp/dist/lib/attachment-resolve.d.ts.map +1 -0
  51. package/payload/platform/plugins/email/mcp/dist/lib/attachment-resolve.js +64 -0
  52. package/payload/platform/plugins/email/mcp/dist/lib/attachment-resolve.js.map +1 -0
  53. package/payload/platform/plugins/email/mcp/dist/lib/smtp.d.ts +4 -0
  54. package/payload/platform/plugins/email/mcp/dist/lib/smtp.d.ts.map +1 -1
  55. package/payload/platform/plugins/email/mcp/dist/lib/smtp.js +1 -0
  56. package/payload/platform/plugins/email/mcp/dist/lib/smtp.js.map +1 -1
  57. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.d.ts +1 -0
  58. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.d.ts.map +1 -1
  59. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.js +6 -1
  60. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.js.map +1 -1
  61. package/payload/platform/plugins/email/mcp/dist/tools/email-send.d.ts +1 -0
  62. package/payload/platform/plugins/email/mcp/dist/tools/email-send.d.ts.map +1 -1
  63. package/payload/platform/plugins/email/mcp/dist/tools/email-send.js +7 -1
  64. package/payload/platform/plugins/email/mcp/dist/tools/email-send.js.map +1 -1
  65. package/payload/platform/plugins/email/references/email-reference.md +4 -0
  66. package/payload/platform/plugins/memory/PLUGIN.md +1 -2
  67. package/payload/platform/plugins/memory/mcp/dist/index.js +6 -44
  68. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  69. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/document-sectioniser.test.d.ts +2 -0
  70. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/document-sectioniser.test.d.ts.map +1 -0
  71. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/document-sectioniser.test.js +41 -0
  72. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/document-sectioniser.test.js.map +1 -0
  73. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-embed-net.test.d.ts +2 -0
  74. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-embed-net.test.d.ts.map +1 -0
  75. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-embed-net.test.js +90 -0
  76. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-embed-net.test.js.map +1 -0
  77. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/vector-indexed-labels-drift.test.d.ts +2 -0
  78. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/vector-indexed-labels-drift.test.d.ts.map +1 -0
  79. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/vector-indexed-labels-drift.test.js +27 -0
  80. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/vector-indexed-labels-drift.test.js.map +1 -0
  81. package/payload/platform/plugins/memory/mcp/dist/lib/document-sectioniser.d.ts +10 -0
  82. package/payload/platform/plugins/memory/mcp/dist/lib/document-sectioniser.d.ts.map +1 -0
  83. package/payload/platform/plugins/memory/mcp/dist/lib/document-sectioniser.js +47 -0
  84. package/payload/platform/plugins/memory/mcp/dist/lib/document-sectioniser.js.map +1 -0
  85. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.d.ts +1 -2
  86. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.d.ts.map +1 -1
  87. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.js +5 -28
  88. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.js.map +1 -1
  89. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/build-text-representation-bound.test.d.ts +2 -0
  90. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/build-text-representation-bound.test.d.ts.map +1 -0
  91. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/build-text-representation-bound.test.js +20 -0
  92. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/build-text-representation-bound.test.js.map +1 -0
  93. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-preference-embed.test.d.ts +2 -0
  94. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-preference-embed.test.d.ts.map +1 -0
  95. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-preference-embed.test.js +67 -0
  96. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-preference-embed.test.js.map +1 -0
  97. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/embeddings-cap.test.d.ts +2 -0
  98. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/embeddings-cap.test.d.ts.map +1 -0
  99. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/embeddings-cap.test.js +34 -0
  100. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/embeddings-cap.test.js.map +1 -0
  101. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-section-writer.test.d.ts +2 -0
  102. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-section-writer.test.d.ts.map +1 -0
  103. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-section-writer.test.js +61 -0
  104. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-section-writer.test.js.map +1 -0
  105. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.js +23 -1
  106. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.js.map +1 -1
  107. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex.test.d.ts +2 -0
  108. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex.test.d.ts.map +1 -0
  109. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex.test.js +87 -0
  110. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex.test.js.map +1 -0
  111. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.js +3 -0
  112. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.js.map +1 -1
  113. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-threshold.test.d.ts +2 -0
  114. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-threshold.test.d.ts.map +1 -0
  115. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-threshold.test.js +34 -0
  116. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-threshold.test.js.map +1 -0
  117. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts.map +1 -1
  118. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js +19 -4
  119. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js.map +1 -1
  120. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts +33 -6
  121. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts.map +1 -1
  122. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js +280 -10
  123. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js.map +1 -1
  124. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.d.ts.map +1 -1
  125. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.js +76 -37
  126. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.js.map +1 -1
  127. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.d.ts.map +1 -1
  128. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js +11 -2
  129. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js.map +1 -1
  130. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.d.ts +4 -4
  131. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.js +3 -3
  132. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
  133. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +20 -2
  134. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
  135. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js +6 -3
  136. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js.map +1 -1
  137. package/payload/platform/plugins/memory/mcp/vitest.config.ts +5 -0
  138. package/payload/platform/plugins/memory/references/schema-base.md +1 -1
  139. package/payload/platform/plugins/memory/references/schema-construction.md +72 -0
  140. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics-graph-ingest.d.ts.map +1 -1
  141. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics-graph-ingest.js +15 -0
  142. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics-graph-ingest.js.map +1 -1
  143. package/payload/platform/plugins/slides/.claude-plugin/plugin.json +8 -0
  144. package/payload/platform/plugins/slides/LICENSE +21 -0
  145. package/payload/platform/plugins/slides/PLUGIN.md +18 -0
  146. package/payload/platform/plugins/slides/PROVENANCE.md +40 -0
  147. package/payload/platform/plugins/slides/commands/add-slide.md +29 -0
  148. package/payload/platform/plugins/slides/commands/slides-claus.md +39 -0
  149. package/payload/platform/plugins/slides/commands/slides-new-component.md +39 -0
  150. package/payload/platform/plugins/slides/commands/slides-outline.md +43 -0
  151. package/payload/platform/plugins/slides/commands/slides-review.md +52 -0
  152. package/payload/platform/plugins/slides/commands/slides-theme.md +64 -0
  153. package/payload/platform/plugins/slides/commands/slides.md +59 -0
  154. package/payload/platform/plugins/slides/skills/deck-system/REFERENCE.md +581 -0
  155. package/payload/platform/plugins/slides/skills/deck-system/SKILL.md +607 -0
  156. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING-board.md +426 -0
  157. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING-claus.md +185 -0
  158. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING-mbb.md +450 -0
  159. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING-product-launch.md +579 -0
  160. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING-sales.md +464 -0
  161. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING-sequoia.md +489 -0
  162. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING.md +273 -0
  163. package/payload/platform/plugins/slides/skills/deck-system/deck-craft.html +1371 -0
  164. package/payload/platform/plugins/slides/skills/deck-system/deck-solid.html +1667 -0
  165. package/payload/platform/plugins/slides/skills/deck-system/deck.html +1359 -0
  166. package/payload/platform/plugins/url-get/.claude-plugin/plugin.json +1 -1
  167. package/payload/platform/plugins/url-get/PLUGIN.md +26 -21
  168. package/payload/platform/plugins/url-get/mcp/dist/index.js +3 -3
  169. package/payload/platform/plugins/url-get/mcp/dist/index.js.map +1 -1
  170. package/payload/platform/plugins/url-get/mcp/dist/tools/url-get.d.ts +1 -2
  171. package/payload/platform/plugins/url-get/mcp/dist/tools/url-get.d.ts.map +1 -1
  172. package/payload/platform/plugins/url-get/mcp/dist/tools/url-get.js +20 -40
  173. package/payload/platform/plugins/url-get/mcp/dist/tools/url-get.js.map +1 -1
  174. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +4 -0
  175. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -1
  176. package/payload/platform/scripts/identity-forbidden-token-check.mjs +0 -1
  177. package/payload/platform/scripts/setup-account.sh +0 -15
  178. package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.d.ts +23 -0
  179. package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.d.ts.map +1 -0
  180. package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.js +29 -0
  181. package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.js.map +1 -0
  182. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
  183. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +0 -2
  184. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
  185. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +5 -0
  186. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  187. package/payload/platform/services/claude-session-manager/dist/http-server.js +32 -2
  188. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  189. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  190. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +8 -1
  191. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  192. package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.d.ts +13 -1
  193. package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.d.ts.map +1 -1
  194. package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js +26 -2
  195. package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js.map +1 -1
  196. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js +2 -2
  197. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js.map +1 -1
  198. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +12 -3
  199. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
  200. package/payload/platform/services/claude-session-manager/dist/system-prompt.js +3 -2
  201. package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
  202. package/payload/platform/templates/agents/admin/IDENTITY.md +2 -2
  203. package/payload/platform/templates/specialists/agents/database-operator.md +3 -7
  204. package/payload/platform/templates/specialists/agents/typed-edge-classifier.md +1 -1
  205. package/payload/server/{chunk-M6A6EZD4.js → chunk-76HRO7NX.js} +16 -2
  206. package/payload/server/maxy-edge.js +1 -1
  207. package/payload/server/public/assets/AdminShell-T-YknnBn.js +1 -0
  208. package/payload/server/public/assets/Checkbox-DmDxpqVv.js +1 -0
  209. package/payload/server/public/assets/admin-COUV-jgt.js +1 -0
  210. package/payload/server/public/assets/{arc-aUiRP9AS.js → arc-B2CweJq3.js} +1 -1
  211. package/payload/server/public/assets/architecture-YZFGNWBL-Dnn6Hc65.js +1 -0
  212. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-c09loTER.js → architectureDiagram-Q4EWVU46-DP2o-MFV.js} +1 -1
  213. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-Cjdeyoq1.js → blockDiagram-DXYQGD6D-DO4mcYDJ.js} +1 -1
  214. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-NY6Wlzo2.js → c4Diagram-AHTNJAMY-Sy1giHbj.js} +1 -1
  215. package/payload/server/public/assets/channel-CEpR_0rE.js +1 -0
  216. package/payload/server/public/assets/{chunk-2KRD3SAO-BK3470lx.js → chunk-2KRD3SAO-CKsCYCsN.js} +1 -1
  217. package/payload/server/public/assets/chunk-336JU56O-C0-P-aUF.js +2 -0
  218. package/payload/server/public/assets/chunk-426QAEUC-DFjEt3Zb.js +1 -0
  219. package/payload/server/public/assets/{chunk-4BX2VUAB-BOvVdJLf.js → chunk-4BX2VUAB-B8bqAmBa.js} +1 -1
  220. package/payload/server/public/assets/{chunk-4TB4RGXK-BXpto3yW.js → chunk-4TB4RGXK-D1k0VSlW.js} +1 -1
  221. package/payload/server/public/assets/{chunk-55IACEB6-BwZyF7vR.js → chunk-55IACEB6-B-p_QNqz.js} +1 -1
  222. package/payload/server/public/assets/{chunk-5FUZZQ4R-C403gCUk.js → chunk-5FUZZQ4R-D6U6tV_j.js} +1 -1
  223. package/payload/server/public/assets/{chunk-5PVQY5BW-CjVzXQEp.js → chunk-5PVQY5BW-CYK76xfs.js} +1 -1
  224. package/payload/server/public/assets/{chunk-67CJDMHE-D5bhMrtY.js → chunk-67CJDMHE-BC9js-lf.js} +1 -1
  225. package/payload/server/public/assets/{chunk-7N4EOEYR-Si7Lgrwc.js → chunk-7N4EOEYR-4j2OqKkv.js} +1 -1
  226. package/payload/server/public/assets/{chunk-AA7GKIK3-DMuHtDqO.js → chunk-AA7GKIK3-Coen-fXN.js} +1 -1
  227. package/payload/server/public/assets/{chunk-BSJP7CBP-L79XKVcb.js → chunk-BSJP7CBP-CAiOBvec.js} +1 -1
  228. package/payload/server/public/assets/{chunk-CIAEETIT-C0O7Upmg.js → chunk-CIAEETIT-AJzzpZVb.js} +1 -1
  229. package/payload/server/public/assets/{chunk-EDXVE4YY-DJcJAsAg.js → chunk-EDXVE4YY-BL4BKozX.js} +1 -1
  230. package/payload/server/public/assets/{chunk-ENJZ2VHE-CFDNvYu1.js → chunk-ENJZ2VHE-mhAFG8UD.js} +1 -1
  231. package/payload/server/public/assets/{chunk-FMBD7UC4-C_E43NFJ.js → chunk-FMBD7UC4-H231gZA_.js} +1 -1
  232. package/payload/server/public/assets/{chunk-FOC6F5B3-D9lWWHAu.js → chunk-FOC6F5B3-Cl3ZZjYG.js} +1 -1
  233. package/payload/server/public/assets/{chunk-ICPOFSXX-ecLOxGhL.js → chunk-ICPOFSXX-DOEzvzJa.js} +2 -2
  234. package/payload/server/public/assets/{chunk-K5T4RW27-DuhsNH4c.js → chunk-K5T4RW27-C_ipbUDD.js} +1 -1
  235. package/payload/server/public/assets/{chunk-KGLVRYIC-B4-A1Abi.js → chunk-KGLVRYIC-CTsDNSCU.js} +1 -1
  236. package/payload/server/public/assets/{chunk-LIHQZDEY-BxqgHRgT.js → chunk-LIHQZDEY-DvSXhkGf.js} +1 -1
  237. package/payload/server/public/assets/{chunk-ORNJ4GCN-DEYQ5WaJ.js → chunk-ORNJ4GCN-p574NOI7.js} +1 -1
  238. package/payload/server/public/assets/{chunk-OYMX7WX6-B7MW66KB.js → chunk-OYMX7WX6-BlEgFM6U.js} +1 -1
  239. package/payload/server/public/assets/chunk-QZHKN3VN-DpF06ZZQ.js +1 -0
  240. package/payload/server/public/assets/{chunk-U2HBQHQK-BMawmsyk.js → chunk-U2HBQHQK-B2bDK0jv.js} +1 -1
  241. package/payload/server/public/assets/{chunk-X2U36JSP-CT6g7pno.js → chunk-X2U36JSP-D69BxKFw.js} +1 -1
  242. package/payload/server/public/assets/{chunk-XPW4576I-CBfZXZDB.js → chunk-XPW4576I-Dm-PcyUi.js} +1 -1
  243. package/payload/server/public/assets/{chunk-YZCP3GAM-xeAluiAH.js → chunk-YZCP3GAM-Be8RnXgx.js} +1 -1
  244. package/payload/server/public/assets/{chunk-ZZ45TVLE-BRN9qUC5.js → chunk-ZZ45TVLE-Ck8PCTa4.js} +1 -1
  245. package/payload/server/public/assets/classDiagram-6PBFFD2Q-CYbXvKLI.js +1 -0
  246. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DEyHzRhq.js +1 -0
  247. package/payload/server/public/assets/clone-y8gexbBy.js +1 -0
  248. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-Br2gjtEO.js → cose-bilkent-S5V4N54A-CmkW2Eaj.js} +1 -1
  249. package/payload/server/public/assets/{dagre-DTjePoco.js → dagre-Dqp-ns8F.js} +1 -1
  250. package/payload/server/public/assets/{dagre-KV5264BT-DHBkRke4.js → dagre-KV5264BT-ZgWWXPLc.js} +1 -1
  251. package/payload/server/public/assets/data-gy6QH9c1.js +1 -0
  252. package/payload/server/public/assets/{diagram-5BDNPKRD-BIq1-idL.js → diagram-5BDNPKRD-CTX5-ScM.js} +1 -1
  253. package/payload/server/public/assets/{diagram-G4DWMVQ6-BsIUDzV6.js → diagram-G4DWMVQ6-BovIsO6H.js} +1 -1
  254. package/payload/server/public/assets/{diagram-MMDJMWI5-CgHSri2i.js → diagram-MMDJMWI5-DcETsQy-.js} +1 -1
  255. package/payload/server/public/assets/{diagram-TYMM5635-Ce2Wh9ZX.js → diagram-TYMM5635-yyq6peoZ.js} +1 -1
  256. package/payload/server/public/assets/{erDiagram-SMLLAGMA-BU0Kh6OQ.js → erDiagram-SMLLAGMA-CiNToftB.js} +1 -1
  257. package/payload/server/public/assets/{flatten-Bo6YRmWl.js → flatten-BtFI066E.js} +1 -1
  258. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-B0N06MF7.js → flowDiagram-DWJPFMVM-Xnl3SpIM.js} +1 -1
  259. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-BVbx4ARZ.js → ganttDiagram-T4ZO3ILL-C1iyWe0f.js} +1 -1
  260. package/payload/server/public/assets/gitGraph-7Q5UKJZL-CNs-LD5i.js +1 -0
  261. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-C-xRJ94t.js → gitGraphDiagram-UUTBAWPF-D97pbMQb.js} +1 -1
  262. package/payload/server/public/assets/graph-labels-cZu4pK16.js +1 -0
  263. package/payload/server/public/assets/{graph-g48ZcA5M.js → graph-qz5tFKqU.js} +3 -3
  264. package/payload/server/public/assets/{graphlib-YmNcoMjY.js → graphlib-Lq8ijgON.js} +1 -1
  265. package/payload/server/public/assets/info-OMHHGYJF-DsTNigSS.js +1 -0
  266. package/payload/server/public/assets/infoDiagram-42DDH7IO-C_OarRTA.js +2 -0
  267. package/payload/server/public/assets/{isEmpty-D6Kr-M1M.js → isEmpty-D6QovjYR.js} +1 -1
  268. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-DTrq54yC.js → ishikawaDiagram-UXIWVN3A-B8XBdjJn.js} +1 -1
  269. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-OZZZMrFX.js → journeyDiagram-VCZTEJTY-CZYbiOaQ.js} +1 -1
  270. package/payload/server/public/assets/{kanban-definition-6JOO6SKY--w-IP9pN.js → kanban-definition-6JOO6SKY-B1PybFoh.js} +1 -1
  271. package/payload/server/public/assets/{line-Ckeulv5T.js → line-D-tw3hHp.js} +1 -1
  272. package/payload/server/public/assets/{linear-DOh_6k2k.js → linear-BHhXD3cd.js} +1 -1
  273. package/payload/server/public/assets/{mermaid-parser.core-CVRAxYRD.js → mermaid-parser.core-C9RAnysF.js} +2 -2
  274. package/payload/server/public/assets/{mermaid.core-B-mE18I1.js → mermaid.core-B532LT1r.js} +3 -3
  275. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-Bm8mDicL.js → mindmap-definition-QFDTVHPH-DGlgeeTV.js} +1 -1
  276. package/payload/server/public/assets/{ordinal-BDi6f4xk.js → ordinal-Bl-aM5b9.js} +1 -1
  277. package/payload/server/public/assets/packet-4T2RLAQJ-DGES22b-.js +1 -0
  278. package/payload/server/public/assets/pie-ZZUOXDRM-ChKeDbzt.js +1 -0
  279. package/payload/server/public/assets/{pieDiagram-DEJITSTG-BCmRLgGO.js → pieDiagram-DEJITSTG-DV9FIWko.js} +1 -1
  280. package/payload/server/public/assets/{public-DknO-g9S.js → public-Bu2_Xi0a.js} +5 -5
  281. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-CniTIUTm.js → quadrantDiagram-34T5L4WZ-Betwya4l.js} +1 -1
  282. package/payload/server/public/assets/radar-PYXPWWZC-FGG5Fs7N.js +1 -0
  283. package/payload/server/public/assets/{reduce-CGi9ik8i.js → reduce-BD4xUd2c.js} +1 -1
  284. package/payload/server/public/assets/{requirementDiagram-MS252O5E-CoxBSj9M.js → requirementDiagram-MS252O5E-Cq3vODdg.js} +1 -1
  285. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-BjS-4jzq.js → sankeyDiagram-XADWPNL6-x8krXWcS.js} +1 -1
  286. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-B9jVOnPR.js → sequenceDiagram-FGHM5R23-i-_uH-Yl.js} +1 -1
  287. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-BvOQPzP8.js → stateDiagram-FHFEXIEX-il4KqSgI.js} +1 -1
  288. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-B6zNJ6Tv.js +1 -0
  289. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-CdfgWLo1.js → timeline-definition-GMOUNBTQ-DATdZkA5.js} +1 -1
  290. package/payload/server/public/assets/treeView-SZITEDCU-VAQQdbtf.js +1 -0
  291. package/payload/server/public/assets/treemap-W4RFUUIX-DKchO3zI.js +1 -0
  292. package/payload/server/public/assets/useSelectionMode-A5KItZ2T.js +13 -0
  293. package/payload/server/public/assets/{brand-D0gNihp7.css → useSelectionMode-C-Ojh7W9.css} +1 -1
  294. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-JCgpIbj-.js → vennDiagram-DHZGUBPP-BJh9tJTt.js} +1 -1
  295. package/payload/server/public/assets/wardley-RL74JXVD-CBGtx0bS.js +1 -0
  296. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-Dei3VqHo.js → wardleyDiagram-NUSXRM2D-EMN1Hdfg.js} +1 -1
  297. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-DUtIyoIb.js → xychartDiagram-5P7HB3ND-DbUWXa7T.js} +1 -1
  298. package/payload/server/public/data.html +5 -5
  299. package/payload/server/public/graph.html +6 -6
  300. package/payload/server/public/index.html +5 -6
  301. package/payload/server/public/public.html +4 -5
  302. package/payload/server/server.js +525 -39
  303. package/payload/platform/plugins/admin/hooks/__tests__/session-end-retrospective.test.sh +0 -396
  304. package/payload/platform/plugins/admin/hooks/lib/admin-graph-pass-common.sh +0 -239
  305. package/payload/platform/plugins/admin/hooks/session-end-retrospective.sh +0 -214
  306. package/payload/server/public/assets/AdminShell-892Jy_rs.js +0 -1
  307. package/payload/server/public/assets/Checkbox-Bc2QzX9b.js +0 -1
  308. package/payload/server/public/assets/admin-D3K13ndi.js +0 -1
  309. package/payload/server/public/assets/architecture-YZFGNWBL--v-pJPNp.js +0 -1
  310. package/payload/server/public/assets/brand-CcN3dELF.js +0 -9
  311. package/payload/server/public/assets/channel-B1IT7to2.js +0 -1
  312. package/payload/server/public/assets/chunk-336JU56O-CdKRCIeE.js +0 -2
  313. package/payload/server/public/assets/chunk-426QAEUC-BybuQ3Ve.js +0 -1
  314. package/payload/server/public/assets/chunk-QZHKN3VN-Bd-GrQM6.js +0 -1
  315. package/payload/server/public/assets/classDiagram-6PBFFD2Q-rjCize6i.js +0 -1
  316. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BORWOUt0.js +0 -1
  317. package/payload/server/public/assets/clone-Csqv5U6T.js +0 -1
  318. package/payload/server/public/assets/data-Br-pdljK.js +0 -1
  319. package/payload/server/public/assets/gitGraph-7Q5UKJZL-CI0s_tqn.js +0 -1
  320. package/payload/server/public/assets/graph-labels-BYH-IPCb.js +0 -1
  321. package/payload/server/public/assets/info-OMHHGYJF-g3gYW7Qm.js +0 -1
  322. package/payload/server/public/assets/infoDiagram-42DDH7IO-Di6oPQ_-.js +0 -2
  323. package/payload/server/public/assets/packet-4T2RLAQJ-CT0TB9HI.js +0 -1
  324. package/payload/server/public/assets/pie-ZZUOXDRM-CXLe7TFF.js +0 -1
  325. package/payload/server/public/assets/radar-PYXPWWZC-DnPLBl-D.js +0 -1
  326. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-v4ND10uR.js +0 -1
  327. package/payload/server/public/assets/treeView-SZITEDCU-C3cb7Xwe.js +0 -1
  328. package/payload/server/public/assets/treemap-W4RFUUIX-Dc7G3Bgm.js +0 -1
  329. package/payload/server/public/assets/useSelectionMode-DwsyptOw.js +0 -5
  330. package/payload/server/public/assets/wardley-RL74JXVD-DtgibWAt.js +0 -1
  331. /package/payload/server/public/assets/{_baseFor-Cam2PbSt.js → _baseFor-Cs8Y-rGh.js} +0 -0
  332. /package/payload/server/public/assets/{array-DYRGGQae.js → array-iHZP4KWJ.js} +0 -0
  333. /package/payload/server/public/assets/{cytoscape.esm-nWsJMTNI.js → cytoscape.esm-BR2GOQ8_.js} +0 -0
  334. /package/payload/server/public/assets/{defaultLocale-Du1XY3Dp.js → defaultLocale-B9aLeOTg.js} +0 -0
  335. /package/payload/server/public/assets/{dist-BzAsli7o.js → dist-DB-VPj_8.js} +0 -0
  336. /package/payload/server/public/assets/{init-B5BXBRcm.js → init-BNFRgqHM.js} +0 -0
  337. /package/payload/server/public/assets/{katex-HOUACuRw.js → katex-B-EfS3nw.js} +0 -0
  338. /package/payload/server/public/assets/{path-CNO468J-.js → path-DmWWdwp7.js} +0 -0
  339. /package/payload/server/public/assets/{rough.esm-DRO6hWPh.js → rough.esm-Ci7Kjt46.js} +0 -0
  340. /package/payload/server/public/assets/{src-CWiyyVfn.js → src-C1jfwBq0.js} +0 -0
@@ -0,0 +1,426 @@
1
+ # Storytelling: Board Presentations
2
+
3
+ How to build a board deck that earns its time slot.
4
+
5
+ Board decks are decision-support tools. The audience is time-poor, context-rich, and looking for signal. Every slide must justify its existence. Lead with what matters from the first slide. If a slide doesn't change a decision or surface a risk, delete it.
6
+
7
+ ---
8
+
9
+ ## The seven-beat structure
10
+
11
+ ```
12
+ Start ─────────────────────────────────────────────── End
13
+ │ Exec summary │ KPIs │ Progress │ Initiatives │ Risks │ Decisions │ Appendix │
14
+ ```
15
+
16
+ Seven beats. The proportions flex to your context, but the sequence is fixed. Board members will scan for the first two beats immediately. Make them standalone.
17
+
18
+ | Beat | ~Share | Purpose |
19
+ |------|--------|---------|
20
+ | Executive summary | 10% | The whole deck on one slide |
21
+ | KPIs / scorecard | 15% | The numbers that matter |
22
+ | Progress vs plan | 20% | Accountability |
23
+ | Key initiatives | 20% | What you're betting on |
24
+ | Risks & blockers | 15% | What could go wrong |
25
+ | Decisions needed | 10% | Specific asks |
26
+ | Appendix | 10% | Available if needed |
27
+
28
+ ---
29
+
30
+ ### 1. Executive summary: *the whole deck on one slide*
31
+
32
+ **Purpose:** If a board member reads nothing else, this slide should be enough. Status. Key metrics. Decisions needed. Done.
33
+
34
+ **What belongs:**
35
+ - One-sentence company status (on track / off track / pivoting)
36
+ - Three to five headline metrics with direction arrows
37
+ - Two to three decisions you need from this meeting
38
+ - One sentence on the biggest risk
39
+
40
+ **What doesn't belong:**
41
+ - Narrative. Context. Explanations. History. Anything that requires a second read.
42
+
43
+ **Example headlines:**
44
+
45
+ > **Q3 on track.** <span class="dim">Two decisions needed.</span>
46
+ > **Revenue ahead of plan.** <span class="dim">Hiring behind.</span>
47
+ > **Off track on retention.** <span class="dim">Mitigation underway.</span>
48
+
49
+ **Best components:** Stat grid for the metrics. A single dark callout line for the biggest risk. Eyebrow + headline + subtitle for the framing.
50
+
51
+ **Common mistakes:**
52
+ - Making it two slides. It's one. Compress harder.
53
+ - Including anything that requires explanation. If it needs a footnote, it belongs in a later beat.
54
+ - Being vague. "Things are going well" is a label. "Revenue +18% vs plan, burn on target, need approval for Series B timeline" is a summary.
55
+
56
+ ---
57
+
58
+ ### 2. KPIs / scorecard: *the numbers*
59
+
60
+ **Purpose:** The quantitative health check. Revenue, growth, retention, burn, runway. Every metric compared to plan and prior period.
61
+
62
+ **What belongs:**
63
+ - Five to eight KPIs that the board agreed to track
64
+ - Actuals vs plan vs prior period
65
+ - RAG status (green/yellow/red) per metric
66
+ - Trend direction (up/down/flat)
67
+
68
+ **What doesn't belong:**
69
+ - Vanity metrics. Anything the board didn't ask for. Metrics without a comparison point.
70
+
71
+ **Example headlines:**
72
+
73
+ > **Scorecard.** <span class="dim">Q3 vs plan.</span>
74
+ > **Five green. Two yellow.** <span class="dim">No red.</span>
75
+ > **Revenue on plan.** <span class="dim">Net retention slipping.</span>
76
+
77
+ **Best components:** Stat grid (the primary tool here). Use the big number style for the headline metric, then a row of supporting stats beneath. Feature card row works well for initiative dashboards where each metric connects to a specific workstream. Capability list works for a more detailed metric-by-metric breakdown with RAG indicators.
78
+
79
+ **Common mistakes:**
80
+ - Too many metrics. If you have fifteen KPIs, you have zero. Pick five to eight.
81
+ - No comparison. A number without context is decoration. Always show vs plan and vs prior.
82
+ - Hiding the bad ones in the middle. Lead with the worst metric. Board members notice what you bury.
83
+
84
+ ---
85
+
86
+ ### 3. Progress vs plan: *accountability*
87
+
88
+ **Purpose:** What you committed to last quarter. What actually happened. Honest accounting. This is where trust is built or eroded.
89
+
90
+ **What belongs:**
91
+ - The commitments from the previous meeting
92
+ - Status on each: done, partially done, not done, deprioritized
93
+ - One sentence per item explaining the gap (if any)
94
+ - What you learned from the misses
95
+
96
+ **What doesn't belong:**
97
+ - Excuses. Long explanations. Reframing misses as wins. Anything that feels like spin.
98
+
99
+ **Example headlines:**
100
+
101
+ > **Q2 commitments.** <span class="dim">Three of five delivered.</span>
102
+ > **Plan vs actual.** <span class="dim">Honest accounting.</span>
103
+ > **Two misses.** <span class="dim">Both understood.</span>
104
+
105
+ **Best components:** Two-column (plan vs actual) is the natural format here. Left column = what you said you'd do. Right column = what happened. Timeline shows the sequence of milestones with actual vs planned dates. Update row lets you stack multiple commitment status lines. Step stack visualizes progress through phases. Capability list also works, with the question column as the commitment and the answer column as the result plus one-line explanation.
106
+
107
+ **Common mistakes:**
108
+ - Redefining success after the fact. If you said "ship v2" and shipped v1.5, say that.
109
+ - Skipping this section entirely. Some teams just show a forward-looking plan. Boards notice.
110
+ - Burying the misses in body copy. Lead with what didn't work.
111
+
112
+ ---
113
+
114
+ ### 4. Key initiatives: *what you're betting on*
115
+
116
+ **Purpose:** Three to five things that matter most right now. Each gets one slide: what it is, where it stands, what's next.
117
+
118
+ **What belongs:**
119
+ - Initiative name and one-sentence description
120
+ - Current status (on track / at risk / blocked)
121
+ - Key milestone achieved since last meeting
122
+ - Next milestone and expected date
123
+ - One risk or dependency per initiative
124
+
125
+ **What doesn't belong:**
126
+ - More than five initiatives. Focus demands constraint. Feature lists. Tactical details.
127
+
128
+ **Example headlines:**
129
+
130
+ > **Enterprise launch.** <span class="dim">On track for Q4.</span>
131
+ > **Platform migration.** <span class="dim">60% complete. At risk.</span>
132
+ > **New pricing model.** <span class="dim">Testing with 12 accounts.</span>
133
+
134
+ **Best components:** Eyebrow (initiative name) + headline (status) + subtitle (what's next). One slide per initiative. Product slide showcases a specific initiative with visual context. Collage slide works when an initiative spans multiple workstreams worth showing together. Dot flow works if you want to show a timeline of milestones. Dark callout for an at-risk initiative that needs board attention.
135
+
136
+ **Common mistakes:**
137
+ - Too many initiatives. Three to five. Strict limit.
138
+ - No status indicator. Every initiative needs a clear on track / at risk / blocked signal.
139
+ - Missing the "what's next." Boards want to know what happens between now and the next meeting.
140
+
141
+ ---
142
+
143
+ ### 5. Risks & blockers: *what could go wrong*
144
+
145
+ **Purpose:** What's already going wrong. What could go wrong. What you're doing about it. This is where you earn trust by surfacing problems before they become crises.
146
+
147
+ **What belongs:**
148
+ - The biggest risk, given prominence
149
+ - Two to four additional risks or blockers
150
+ - For each: likelihood, impact, mitigation
151
+ - Anything you need the board's help with
152
+
153
+ **What doesn't belong:**
154
+ - Theoretical risks that are unlikely and low-impact. Risks you've already fully mitigated. Risks listed to show you're thorough but that don't need board attention.
155
+
156
+ **Example headlines:**
157
+
158
+ > **Biggest risk.** <span class="dim">Key hire hasn't closed.</span>
159
+ > **Three blockers.** <span class="dim">One needs board action.</span>
160
+ > **Churn risk is real.** <span class="dim">Mitigation plan in appendix.</span>
161
+
162
+ **Best components:** Dark callout for the single biggest risk, giving it the visual weight it deserves. JEDUF shows the risk spectrum from acceptable to critical, helping the board calibrate severity. Capability list for the remaining risks (left column = risk, right column = mitigation + status). Two-column works for a likelihood/impact matrix approach.
163
+
164
+ **Common mistakes:**
165
+ - Hiding bad news in the appendix. If it's a real risk, it belongs here.
166
+ - Listing risks without mitigations. A risk without a plan is just anxiety.
167
+ - Being falsely optimistic. Boards prefer "this is a real problem and here's what we're doing" over vague reassurance followed by a surprise next quarter.
168
+
169
+ ---
170
+
171
+ ### 6. Decisions needed: *specific asks*
172
+
173
+ **Purpose:** The reason this meeting exists. What you need the board to approve, discuss, or decide. Specific. Actionable. Concrete.
174
+
175
+ **What belongs:**
176
+ - Two to four specific decisions
177
+ - For each: the recommendation, the alternatives considered, the tradeoff
178
+ - What happens if no decision is made (the default path)
179
+ - Any pre-reads or context needed (link to appendix)
180
+
181
+ **What doesn't belong:**
182
+ - FYIs disguised as decisions. Updates that require no action. Decisions you've already made.
183
+
184
+ **Example headlines:**
185
+
186
+ > **Two decisions needed.** <span class="dim">Both time-sensitive.</span>
187
+ > **Approve Series B timeline.** <span class="dim">Recommendation: Q1.</span>
188
+ > **Choose pricing strategy.** <span class="dim">Option A vs Option B.</span>
189
+
190
+ **Best components:** Two-column for Option A vs Option B comparisons. Quote pair presents both sides of a decision with equal weight, letting the board see the tradeoff clearly. Eyebrow ("Decision 1 of 2") + headline (the ask) + subtitle (your recommendation). Capability list if you have multiple decisions to lay out in sequence.
191
+
192
+ **Common mistakes:**
193
+ - No clear recommendation. Present your recommendation with reasons, alongside the alternatives.
194
+ - Being vague. "Approve $2M additional spend on hiring" is a clear decision. "Discuss strategy" leaves the ask undefined.
195
+ - Too many decisions. Boards can handle two to four per meeting. More than that and nothing gets proper attention.
196
+
197
+ ---
198
+
199
+ ### 7. Appendix: *available if needed*
200
+
201
+ **Purpose:** Detailed data, methodology, deep dives, supporting analysis. Available on request when a board member asks "tell me more about X."
202
+
203
+ **What belongs:**
204
+ - Detailed financial models
205
+ - Customer-level data
206
+ - Technical architecture details
207
+ - Full competitive analysis
208
+ - Methodology behind key metrics
209
+ - Anything referenced with "details in appendix" earlier
210
+
211
+ **What doesn't belong:**
212
+ - Anything that changes a decision. If it matters, it belongs in the main deck.
213
+
214
+ **Example headlines:**
215
+
216
+ > **Appendix.** <span class="dim">Supporting detail.</span>
217
+ > **Financial model.** <span class="dim">Full assumptions.</span>
218
+ > **Churn analysis.** <span class="dim">Cohort-level detail.</span>
219
+
220
+ **Best components:** Stat grid for data tables. Code slide for technical architecture or implementation details. Stack grid for multi-dimensional data where you need to show several items at once. Capability list for detailed breakdowns. Two-column for methodology explanations. Keep the same visual system. The appendix should feel like part of the main deck.
221
+
222
+ **Common mistakes:**
223
+ - Using the appendix to hide bad news. If something is important enough to influence a decision, it goes in the main deck.
224
+ - No clear navigation. Number your appendix slides (A1, A2, A3) and reference them from the main deck.
225
+ - Making the appendix longer than the main deck. If your appendix is 30 slides and your deck is 12, you're probably presenting the wrong things.
226
+
227
+ ---
228
+
229
+ ## The "so what" test
230
+
231
+ Every slide should answer: "So what does this mean?"
232
+
233
+ Revenue is up 18%. **So what?** It means you're ahead of plan and can invest more aggressively in hiring.
234
+
235
+ Churn increased 2 points. **So what?** It means your onboarding changes aren't working and you need to revisit the approach.
236
+
237
+ You shipped the new pricing page. **So what?** It means you're ready to test enterprise pricing next quarter.
238
+
239
+ If a slide presents a fact without a "so what," add the implication. If there is no implication, delete the slide.
240
+
241
+ The headline is where the "so what" lives. Lead with the implication: **Revenue ahead of plan.** <span class="dim">Investing the surplus in engineering.</span>
242
+
243
+ ---
244
+
245
+ ## RAG status
246
+
247
+ Red/Amber/Green indicators are useful shorthand. They become useless when:
248
+
249
+ - Everything is green (you're not being honest)
250
+ - Everything is amber (you're hedging)
251
+ - The colors have no definition (what does "amber" mean for this metric?)
252
+
253
+ **Rules for RAG:**
254
+ - Define thresholds upfront. Green = within 5% of plan. Amber = 5–15% off. Red = more than 15% off or qualitative blocker.
255
+ - Red is a signal. Use it willingly.
256
+ - Five to eight metrics with RAG status work best. Fifteen dilutes the system.
257
+ - If a metric has been amber for three consecutive meetings, it's red. Persistent amber is a failure to escalate.
258
+
259
+ Use RAG in the Stat grid component. The big number in the metric's color (or a colored dot/indicator beside it). Keep colors subtle. They should recede into the background as quiet indicators.
260
+
261
+ ---
262
+
263
+ ## Adapting for board type
264
+
265
+ ### Investor board
266
+
267
+ They care about: returns, growth, market position, capital efficiency, exit path.
268
+
269
+ - Emphasize KPIs and financial performance
270
+ - Compare to market benchmarks and comparable companies
271
+ - Frame decisions in terms of shareholder value
272
+ - Include runway and fundraising timeline
273
+
274
+ ### Advisory board
275
+
276
+ They care about: helping you succeed, understanding your challenges, offering connections and expertise.
277
+
278
+ - Emphasize risks and blockers (this is where they add value)
279
+ - Ask specific questions ("do you know a VP Sales with enterprise experience?")
280
+ - Less financial detail, more strategic context
281
+ - Be more candid about uncertainty
282
+
283
+ ### Internal leadership / exec team
284
+
285
+ They care about: operational detail, cross-functional dependencies, team health, execution speed.
286
+
287
+ - More granular on progress vs plan
288
+ - Include team-level metrics (hiring, velocity, satisfaction)
289
+ - Decisions can be more tactical
290
+ - Skip the financial overview if it's shared separately
291
+
292
+ ---
293
+
294
+ ## Adapting for stage
295
+
296
+ ### Early-stage (pre-Series B)
297
+
298
+ - Fewer KPIs (you might only have three that matter)
299
+ - Progress vs plan is about product milestones and qualitative learning
300
+ - Risks are existential (product-market fit, runway, key person)
301
+ - Decisions are about direction and big bets
302
+ - Appendix is lighter. You have limited historical data at this stage.
303
+
304
+ ### Growth stage (Series B–D)
305
+
306
+ - Full KPI scorecard with financial and operational metrics
307
+ - Progress vs plan is quantitative. You committed to numbers.
308
+ - Risks shift to execution and market (competition, hiring, retention)
309
+ - Decisions are about resource allocation and strategic bets
310
+ - Appendix includes detailed cohort analysis, financial models
311
+
312
+ ### Public company / late stage
313
+
314
+ - Highly structured with regulatory awareness
315
+ - KPIs aligned to what you report externally
316
+ - Progress vs plan is strict. You guided the street.
317
+ - Risks include compliance, reputation, market perception
318
+ - Decisions require clear governance and documentation
319
+ - Appendix is comprehensive and auditable
320
+
321
+ ---
322
+
323
+ ## Adapting for frequency
324
+
325
+ ### Monthly
326
+
327
+ - Lighter deck (8–12 slides)
328
+ - Focus on KPIs and any urgent decisions
329
+ - Progress vs plan is more tactical (this month vs last month)
330
+ - Skip the full initiative review. Highlight changes only.
331
+ - Appendix is minimal
332
+
333
+ ### Quarterly
334
+
335
+ - Full seven-beat structure (15–20 slides)
336
+ - This is the canonical board deck format
337
+ - All sections get full treatment
338
+ - Appendix supports deep dives during the meeting
339
+
340
+ ### Annual
341
+
342
+ - Strategy-heavy (20–30 slides)
343
+ - Add: full-year retrospective, next-year plan, long-term vision
344
+ - KPIs include annual trends and multi-year trajectory
345
+ - Initiatives section becomes a strategic roadmap
346
+ - Decisions include budget, team plan, major bets for the year
347
+
348
+ ---
349
+
350
+ ## Appendix strategy
351
+
352
+ Your appendix is your credibility insurance. Build it right:
353
+
354
+ **What to include:**
355
+ - One detailed slide for every claim in the main deck that a board member might challenge
356
+ - Financial model with assumptions visible
357
+ - Customer data that supports your narrative
358
+ - Competitive landscape detail
359
+ - Methodology for any non-obvious metric
360
+
361
+ **How to reference it:**
362
+ - In the main deck, add small references: "Detail in A3" or "See appendix for methodology"
363
+ - Number appendix slides clearly (A1, A2, A3...)
364
+ - Group by topic, matching the order of the main deck
365
+
366
+ **When to pull it up:**
367
+ - When asked. Only then.
368
+ - If a discussion is going in circles, offer "I have the detail in the appendix. Want me to pull it up?"
369
+ - If you anticipate a specific challenge, know the appendix slide number before the meeting starts
370
+
371
+ ---
372
+
373
+ ## Common mistakes
374
+
375
+ ### 1. Too much detail
376
+ A board deck is a decision tool. If your deck has 40 slides, you're presenting a document. Cut to 15–20. Move the rest to appendix.
377
+
378
+ ### 2. No decisions asked
379
+ Meetings exist for decisions. Send updates by email. Always bring at least one specific ask.
380
+
381
+ ### 3. Hiding bad news in the appendix
382
+ Board members notice. If something is going wrong, surface it in the main deck with your mitigation plan. Being the one to raise it is a strength. Being caught hiding it is fatal.
383
+
384
+ ### 4. Too many slides
385
+ A 45-minute board meeting with 30 content slides means 90 seconds per slide. That leaves no room for discussion. Aim for 12–20 slides in the main deck. Spend the time on discussion.
386
+
387
+ ### 5. Using the deck as a report
388
+ A board deck is selective. Surface what matters for decisions. Different job. Different output.
389
+
390
+ ### 6. No "so what" in the headlines
391
+ "Revenue: $4.2M" tells the board nothing. "Revenue 18% ahead of plan" tells them something. "Revenue ahead, accelerating hiring" tells them what it means. Always land the implication.
392
+
393
+ ### 7. Burying the lead
394
+ Put the conclusion first. Board members will scan ahead. Lead with findings, then provide supporting evidence. Inverted pyramid structure.
395
+
396
+ ### 8. Being falsely optimistic
397
+ Boards have seen hundreds of decks. They can smell spin. "This is hard and here's our plan" earns trust. Candor compounds.
398
+
399
+ ---
400
+
401
+ ## The headline pattern for board decks
402
+
403
+ Same bold-then-dim system. Board headlines follow their own rhythm:
404
+
405
+ **Narrative deck headlines** tell a story:
406
+ > **The old playbook** <span class="dim">stopped working.</span>
407
+
408
+ **Board deck headlines** state a fact and its implication:
409
+ > **Revenue ahead of plan.** <span class="dim">Accelerating hiring.</span>
410
+ > **Retention slipping.** <span class="dim">Root cause identified.</span>
411
+ > **Three of five delivered.** <span class="dim">Two pushed to Q4.</span>
412
+ > **Approve budget increase.** <span class="dim">$500K for platform team.</span>
413
+
414
+ The bold part is the signal. The dim part is the "so what" or the action. Together they form a complete thought that works even without the slide body.
415
+
416
+ ---
417
+
418
+ ## One more thing
419
+
420
+ Board meetings are conversations with a visual aid.
421
+
422
+ Your deck exists to make the conversation more efficient. It gets everyone to the same starting point faster, so the discussion can happen at a higher level.
423
+
424
+ If you're spending more than 15 minutes presenting and less than 30 minutes discussing, your deck is talking when it should be supporting.
425
+
426
+ Build a deck that makes the discussion better.
@@ -0,0 +1,185 @@
1
+ # Storytelling: Claus Mode
2
+
3
+ Claus Mode is your personal hype man channeled into a slide deck. It takes whatever you are presenting and turns the confidence up to 11. You are not explaining your company. You are announcing its dominance.
4
+
5
+ Every slide is one massive headline. No subtitles. No body text. No nuance. Pure energy. The deck moves fast. The audience reads one line and you advance. Hits in under 2 seconds or you lost the room.
6
+
7
+ ---
8
+
9
+ ## The rules
10
+
11
+ 1. **Max 4 words.** If you can say it in 2, use 2.
12
+ 2. **All caps.** Always. No exceptions.
13
+ 3. **Every headline must draw from the approved vocabulary.** Use buzzwords, namedrops, metaphors, or physics terms. Never write a headline that could appear in a normal presentation. Approved buzzwords: DISRUPT, SCALE, LEVERAGE, SYNERGY, PARADIGM, MOONSHOT, 10X, EXPONENTIAL, GAME-CHANGER, NORTH STAR, MOVE THE NEEDLE, UNLOCK, SUPERCHARGE, TURBOCHARGE, DOMINATE, CRUSH IT, NEXT-LEVEL, WORLD-CLASS, BEST-IN-CLASS, MISSION-CRITICAL, TRANSFORMATIVE, REVOLUTIONARY, GROUNDBREAKING, BLEEDING-EDGE, HYPER-GROWTH, FLYWHEEL, DEEP DIVE, DOUBLE DOWN, LEAN IN, MULTI-AWARD WINNING, EXTRAORDINARY MINDS, INTERDISCIPLINARY, FORWARD-THINKING, AI-DRIVEN, DATA-DRIVEN, FIELD OF PLAY. Also valid: any namedrop (STANFORD, FEYNMAN, McKINSEY), any sports/games term (MIDFIELD, ALL IN, OPENING), any physics term (MOMENTUM, FRICTION, ESCAPE VELOCITY, ENTROPY).
14
+ 4. **No dim spans.** Full intensity on every word.
15
+ 5. **No punctuation** except question marks on the final slide.
16
+ 6. **No explanation.** If a headline needs context, rewrite it until it stands alone.
17
+ 7. **Minimum 15 slides.** More is more.
18
+
19
+ ---
20
+
21
+ ## Before you start
22
+
23
+ If the user gave a vague topic, ask a few quick questions to fuel the hype:
24
+ - What is the company/product/idea?
25
+ - What is the one thing the audience should remember?
26
+ - Any wins, numbers, or flex points to include?
27
+
28
+ Keep it to one round. Do not over-interview. If they already gave enough context, skip and generate.
29
+
30
+ ---
31
+
32
+ ## The structure
33
+
34
+ There is no structure. There is only impact.
35
+
36
+ | Slide | Purpose | Example |
37
+ |-------|---------|---------|
38
+ | 1 | Identity | WE ARE [COMPANY] |
39
+ | 2-3 | Problem | THE MARKET IS BROKEN |
40
+ | 4-6 | Vision | 10X EVERYTHING |
41
+ | 7-10 | Proof points | HYPER-GROWTH UNLOCKED |
42
+ | 11-13 | Ambition | DOMINATE THE CATEGORY |
43
+ | 14 | Call to action | LEAN IN NOW |
44
+ | 15 | Close | QUESTIONS |
45
+
46
+ ---
47
+
48
+ ## Tone
49
+
50
+ You are the user's hype man. Take their topic, their company, their idea and gas it up to maximum. Every headline should make them feel like they are already winning. The deck does not inform. It declares victory.
51
+
52
+ High tempo. High conviction. Every slide lands like a keynote closer. The energy never dips. No irony. Full commitment. Move fast. Faster.
53
+
54
+ The Claus persona believes the company was born in sports and applies that intensity to business. The smallest edge makes the biggest difference. Extraordinary minds. Collective intelligence. Use these phrases in headlines, not as background flavor.
55
+
56
+ ---
57
+
58
+ ## Metaphor sources
59
+
60
+ Claus draws from three wells:
61
+
62
+ 1. **Sports and games.** Soccer, poker, backgammon. "CONTROL THE MIDFIELD", "GO ALL IN", "OWN THE OPENING". Competition is the default lens.
63
+ 2. **First principles.** Strip everything back to fundamentals. "REDUCE TO FIRST PRINCIPLES", "START FROM ZERO". If you can not explain it from the ground up, you do not understand it.
64
+ 3. **Physics.** Entropy, momentum, escape velocity, gravity, friction, inertia. Used confidently. "ESCAPE VELOCITY REACHED", "ZERO FRICTION", "MOMENTUM IS EVERYTHING".
65
+
66
+ Mix these freely. A single deck might go from a poker metaphor to Newton's first law to a soccer analogy. The range signals depth.
67
+
68
+ ---
69
+
70
+ ## Namedrops
71
+
72
+ Claus namedrops to signal credibility. Sprinkle these throughout:
73
+
74
+ **Physicists and thinkers.** Quote or reference Niels Bohr, Richard Feynman, Einstein, Heisenberg, Schrödinger, Hawking. Use their words loosely. Compress real quotes into 4-word Claus headlines. Capture the essence.
75
+
76
+ Quote bank to draw from and compress:
77
+ - Niels Bohr: "Every great and deep difficulty bears in itself its own solution"
78
+ - Niels Bohr: "Prediction is very difficult, especially about the future"
79
+ - Niels Bohr: "The opposite of a correct statement is a false statement. The opposite of a profound truth may well be another profound truth"
80
+ - Feynman: "Nobody understands quantum mechanics"
81
+ - Feynman: "What I cannot create, I do not understand"
82
+ - Einstein: "Imagination is more important than knowledge"
83
+ - Einstein: "Everything should be made as simple as possible, but not simpler"
84
+ - Heisenberg: "What we observe is not nature itself, but nature exposed to our method of questioning"
85
+ - Hawking: "Intelligence is the ability to adapt to change"
86
+
87
+ Compressed as Claus headlines:
88
+ - DIFFICULTY CONTAINS THE SOLUTION
89
+ - PREDICTION IS IMPOSSIBLE
90
+ - CREATE OR MISUNDERSTAND
91
+ - IMAGINATION BEATS KNOWLEDGE
92
+ - SIMPLIFY THEN SIMPLIFY
93
+ - ADAPT OR DISAPPEAR
94
+ - BOHR WAS RIGHT
95
+
96
+ **Elite institutions.** HARVARD, STANFORD, CALTECH, MIT, OXFORD, IMPERIAL, COLUMBIA, YALE, DTU, CERN. Drop them casually. "STANFORD VALIDATED THIS", "MIT AGREES", "DERIVED FROM CERN". No context needed. The name does the work.
97
+
98
+ **Prestige companies.** McKINSEY, BCG, BAIN, MICROSOFT, AMAZON, NVIDIA. Reference them as if the audience should be impressed. "McKINSEY APPROVES", "AMAZON SCALE THINKING".
99
+
100
+ **Disciplines as flex.** List fields to signal depth: physics, engineering, mathematics, operations research, computer science, economics, design. The more you list, the smarter it sounds. "INTERDISCIPLINARY EXCELLENCE", "WORLD-CLASS EXPERTISE".
101
+
102
+ **Frameworks.** Second law of thermodynamics, game theory, Nash equilibrium, Pareto efficiency, Bayesian inference. State them with authority. "NASH EQUILIBRIUM REACHED", "PARETO OPTIMAL".
103
+
104
+ ---
105
+
106
+ ## Slide construction
107
+
108
+ Every slide uses the dark quote slide component.
109
+
110
+ ```html
111
+ <section class="slide dark quote-slide">
112
+ <div class="slide-inner">
113
+ <h1>DISRUPT EVERYTHING</h1>
114
+ </div>
115
+ </section>
116
+ ```
117
+
118
+ Alternate with light quote slides for rhythm:
119
+
120
+ ```html
121
+ <section class="slide quote-slide">
122
+ <div class="slide-inner">
123
+ <h1>SCALE OR DIE</h1>
124
+ </div>
125
+ </section>
126
+ ```
127
+
128
+ ---
129
+
130
+ ## Example headlines
131
+
132
+ - DISRUPT EVERYTHING
133
+ - 10X OR GO HOME
134
+ - WE STOPPED PLANNING
135
+ - SPEED IS STRATEGY
136
+ - THE MOAT IS MOMENTUM
137
+ - TALENT WANTS CHAOS
138
+ - BUILD SHIP REPEAT
139
+ - MOONSHOT ACTIVATED
140
+ - THIS IS INEVITABLE
141
+ - LEAN IN NOW
142
+ - CRUSH THE CATEGORY
143
+ - HYPER-GROWTH UNLOCKED
144
+ - PARADIGM DEMOLISHED
145
+ - NEXT-LEVEL UNLOCKED
146
+ - CONTROL THE MIDFIELD
147
+ - GO ALL IN
148
+ - ZERO FRICTION
149
+ - ESCAPE VELOCITY REACHED
150
+ - FIRST PRINCIPLES ONLY
151
+ - MOMENTUM IS EVERYTHING
152
+ - OWN THE OPENING
153
+ - BOHR SAID PREDICT NOTHING
154
+ - STANFORD VALIDATED THIS
155
+ - NASH EQUILIBRIUM REACHED
156
+ - FEYNMAN KNEW SIMPLIFY
157
+ - DERIVED FROM CALTECH
158
+ - EXTRAORDINARY MINDS ONLY
159
+ - BORN IN SPORTS
160
+ - COLLECTIVE INTELLIGENCE UNLEASHED
161
+ - McKINSEY CALLED US
162
+ - SMALLEST EDGE WINS
163
+ - ANTICIPATE THE NEXT
164
+ - GO
165
+
166
+ ---
167
+
168
+ ## What NOT to do
169
+
170
+ - Do not add subtitles or body text. Ever.
171
+ - Do not use stat grids, timelines, feature cards, or any complex component.
172
+ - Do not explain anything.
173
+ - Do not use more than 4 words per slide.
174
+ - Do not be modest. Confidence at 11.
175
+ - Do not use dim spans. Every word at full intensity.
176
+
177
+ ---
178
+
179
+ ## Component usage
180
+
181
+ Use ONLY these components:
182
+ - **Quote slide** (dark and light variants): the only component
183
+ - **Cover slide**: opening slide only, still just a headline
184
+
185
+ Do not use two-column, capability lists, stat grids, timelines, product slides, or any layout component. This format is pure text energy.