@rubytech/create-realagent 1.0.698 → 1.0.701

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 (160) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/neo4j/schema.cypher +33 -4
  3. package/payload/platform/plugins/docs/references/deployment.md +1 -0
  4. package/payload/platform/plugins/docs/references/graph.md +16 -0
  5. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.js +66 -29
  6. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.js.map +1 -1
  7. package/payload/platform/plugins/tasks/mcp/dist/index.js +7 -2
  8. package/payload/platform/plugins/tasks/mcp/dist/index.js.map +1 -1
  9. package/payload/platform/plugins/tasks/mcp/dist/tools/project-create.d.ts +2 -0
  10. package/payload/platform/plugins/tasks/mcp/dist/tools/project-create.d.ts.map +1 -1
  11. package/payload/platform/plugins/tasks/mcp/dist/tools/project-create.js +71 -15
  12. package/payload/platform/plugins/tasks/mcp/dist/tools/project-create.js.map +1 -1
  13. package/payload/platform/plugins/waitlist/mcp/dist/index.js +7 -1
  14. package/payload/platform/plugins/waitlist/mcp/dist/index.js.map +1 -1
  15. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts +2 -0
  16. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts.map +1 -1
  17. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js +30 -6
  18. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js.map +1 -1
  19. package/payload/platform/plugins/workflows/mcp/dist/index.js +8 -1
  20. package/payload/platform/plugins/workflows/mcp/dist/index.js.map +1 -1
  21. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.d.ts +4 -0
  22. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.d.ts.map +1 -1
  23. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.js +27 -3
  24. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.js.map +1 -1
  25. package/payload/platform/templates/specialists/agents/personal-assistant.md +4 -0
  26. package/payload/platform/templates/specialists/agents/project-manager.md +6 -0
  27. package/payload/platform/templates/specialists/agents/research-assistant.md +1 -1
  28. package/payload/server/chunk-32ZHQJNX.js +11395 -0
  29. package/payload/server/chunk-U3W5YIXU.js +11450 -0
  30. package/payload/server/maxy-edge.js +1 -1
  31. package/payload/server/public/assets/Checkbox-C24zNZ3g.js +1 -0
  32. package/payload/server/public/assets/{admin-CjRb2gH7.js → admin-nKiYLo-a.js} +8 -8
  33. package/payload/server/public/assets/{arc-BMhgytDB.js → arc-CRqJUbyK.js} +1 -1
  34. package/payload/server/public/assets/architecture-YZFGNWBL-CXIHKKCa.js +1 -0
  35. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-BePoi8XC.js → architectureDiagram-Q4EWVU46-DtICG195.js} +1 -1
  36. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-BkiwLTtq.js → blockDiagram-DXYQGD6D-nw1V7I38.js} +1 -1
  37. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-bpjPj2Ln.js → c4Diagram-AHTNJAMY-C1eEC43O.js} +1 -1
  38. package/payload/server/public/assets/channel-CA7njeKl.js +1 -0
  39. package/payload/server/public/assets/{chunk-2KRD3SAO-ZcHg_orY.js → chunk-2KRD3SAO-Bybqj-wj.js} +1 -1
  40. package/payload/server/public/assets/{chunk-336JU56O-BpATJiGl.js → chunk-336JU56O-Dszn2qEY.js} +2 -2
  41. package/payload/server/public/assets/chunk-426QAEUC-tWQOa3-I.js +1 -0
  42. package/payload/server/public/assets/{chunk-4BX2VUAB-zJekz2NU.js → chunk-4BX2VUAB-DrKtrnWH.js} +1 -1
  43. package/payload/server/public/assets/{chunk-4TB4RGXK-CLXL19Wd.js → chunk-4TB4RGXK-CBFzVYqS.js} +1 -1
  44. package/payload/server/public/assets/{chunk-55IACEB6-CzqB8aoU.js → chunk-55IACEB6-BNsOFSNf.js} +1 -1
  45. package/payload/server/public/assets/{chunk-5FUZZQ4R-BoTfWHuW.js → chunk-5FUZZQ4R-CXZykYh_.js} +1 -1
  46. package/payload/server/public/assets/{chunk-5PVQY5BW-RhIfPCRB.js → chunk-5PVQY5BW-CLNppenz.js} +1 -1
  47. package/payload/server/public/assets/{chunk-67CJDMHE-mM1sFmlz.js → chunk-67CJDMHE-DFyE0-n0.js} +1 -1
  48. package/payload/server/public/assets/{chunk-7N4EOEYR-GUck0jv1.js → chunk-7N4EOEYR-BIKZD1_4.js} +1 -1
  49. package/payload/server/public/assets/{chunk-AA7GKIK3-BYhfUc1V.js → chunk-AA7GKIK3-D4_g24le.js} +1 -1
  50. package/payload/server/public/assets/{chunk-BSJP7CBP-CTsYuARh.js → chunk-BSJP7CBP-Cd9H-V61.js} +1 -1
  51. package/payload/server/public/assets/{chunk-CIAEETIT-CGsGmUze.js → chunk-CIAEETIT-CAU9PIQi.js} +1 -1
  52. package/payload/server/public/assets/{chunk-EDXVE4YY-utELKGQK.js → chunk-EDXVE4YY-CR1JfOwe.js} +1 -1
  53. package/payload/server/public/assets/{chunk-ENJZ2VHE-CNHjq5xK.js → chunk-ENJZ2VHE-CuXW3Isg.js} +1 -1
  54. package/payload/server/public/assets/{chunk-FMBD7UC4-DaRrfk3s.js → chunk-FMBD7UC4-BwGAtkIr.js} +1 -1
  55. package/payload/server/public/assets/{chunk-FOC6F5B3-BaeLcJVt.js → chunk-FOC6F5B3-Cn0552qP.js} +1 -1
  56. package/payload/server/public/assets/{chunk-ICPOFSXX-Di63NBur.js → chunk-ICPOFSXX-DEZT2XyQ.js} +2 -2
  57. package/payload/server/public/assets/{chunk-K5T4RW27-CTTOezMH.js → chunk-K5T4RW27-KwBFTzJ9.js} +1 -1
  58. package/payload/server/public/assets/{chunk-KGLVRYIC-DCkohKP2.js → chunk-KGLVRYIC-1-3y582Z.js} +1 -1
  59. package/payload/server/public/assets/{chunk-LIHQZDEY-osQO30uB.js → chunk-LIHQZDEY-DXIBsDHL.js} +1 -1
  60. package/payload/server/public/assets/{chunk-ORNJ4GCN-DoLajOOe.js → chunk-ORNJ4GCN-CRbOike7.js} +1 -1
  61. package/payload/server/public/assets/{chunk-OYMX7WX6-BSPzqyxs.js → chunk-OYMX7WX6-CVT9itnY.js} +1 -1
  62. package/payload/server/public/assets/chunk-QZHKN3VN-BwkFBCAY.js +1 -0
  63. package/payload/server/public/assets/{chunk-U2HBQHQK-BZnA7c4T.js → chunk-U2HBQHQK-BLgNHWFf.js} +1 -1
  64. package/payload/server/public/assets/{chunk-X2U36JSP-DpQ2OA_c.js → chunk-X2U36JSP-DHYLiYqc.js} +1 -1
  65. package/payload/server/public/assets/{chunk-XPW4576I-BccP1mlQ.js → chunk-XPW4576I-DBdiQ3Zy.js} +1 -1
  66. package/payload/server/public/assets/{chunk-YZCP3GAM-BAkNXu0G.js → chunk-YZCP3GAM-DXaosB5Z.js} +1 -1
  67. package/payload/server/public/assets/{chunk-ZZ45TVLE-DBSm41oP.js → chunk-ZZ45TVLE-B5dCmOpH.js} +1 -1
  68. package/payload/server/public/assets/classDiagram-6PBFFD2Q-CUZ9BU_6.js +1 -0
  69. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BGYsCDux.js +1 -0
  70. package/payload/server/public/assets/clone-BjouONkW.js +1 -0
  71. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-Boeb8aWs.js → cose-bilkent-S5V4N54A-DaHtPQvk.js} +1 -1
  72. package/payload/server/public/assets/{dagre-KV5264BT-BkvWofSp.js → dagre-KV5264BT-CAL9V_HR.js} +1 -1
  73. package/payload/server/public/assets/{dagre-nvPNAunb.js → dagre-N8C5Xujx.js} +1 -1
  74. package/payload/server/public/assets/{data-sqtkLfgS.js → data-lJ2vb2jV.js} +1 -1
  75. package/payload/server/public/assets/{diagram-5BDNPKRD-CMEgyt4E.js → diagram-5BDNPKRD-pzBSPqlM.js} +1 -1
  76. package/payload/server/public/assets/{diagram-G4DWMVQ6-ChorrAF0.js → diagram-G4DWMVQ6-DStdLqos.js} +1 -1
  77. package/payload/server/public/assets/{diagram-MMDJMWI5-D_iD27po.js → diagram-MMDJMWI5-D-SfeX-6.js} +1 -1
  78. package/payload/server/public/assets/{diagram-TYMM5635-8qXI1ioG.js → diagram-TYMM5635-Cdr1DQ84.js} +1 -1
  79. package/payload/server/public/assets/{erDiagram-SMLLAGMA-BFjtKDSB.js → erDiagram-SMLLAGMA-CIg1dDZT.js} +1 -1
  80. package/payload/server/public/assets/{file-Dsaxvh3t.js → file-16btGXA4.js} +1 -1
  81. package/payload/server/public/assets/{flatten-ya0TqRLc.js → flatten-CpKIi5d2.js} +1 -1
  82. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-Bpd7IL9l.js → flowDiagram-DWJPFMVM-CJtU1T6d.js} +1 -1
  83. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-CwOozU85.js → ganttDiagram-T4ZO3ILL-R4fuRAT1.js} +1 -1
  84. package/payload/server/public/assets/gitGraph-7Q5UKJZL-tvzbaNdg.js +1 -0
  85. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-CcPILiC9.js → gitGraphDiagram-UUTBAWPF-sifugSGn.js} +1 -1
  86. package/payload/server/public/assets/graph-gsP1la3h.js +50 -0
  87. package/payload/server/public/assets/{graphlib-B_mcXEVr.js → graphlib-DrlxPM8j.js} +1 -1
  88. package/payload/server/public/assets/{house-Bse5AWrO.js → house-DJ35FtjK.js} +1 -1
  89. package/payload/server/public/assets/info-OMHHGYJF-ByeBaFw5.js +1 -0
  90. package/payload/server/public/assets/infoDiagram-42DDH7IO-CjgCxerY.js +2 -0
  91. package/payload/server/public/assets/{isEmpty-h-wRi_o9.js → isEmpty-C3Vxk1It.js} +1 -1
  92. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-DOP9-Q8H.js → ishikawaDiagram-UXIWVN3A-CYUJOA2c.js} +1 -1
  93. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-DGATg0WC.js → journeyDiagram-VCZTEJTY-UltrLajs.js} +1 -1
  94. package/payload/server/public/assets/{jsx-runtime-DDu3Iu4h.css → jsx-runtime-n7GjUxnC.css} +1 -1
  95. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-C5PigmKg.js → kanban-definition-6JOO6SKY-BBaThtP3.js} +1 -1
  96. package/payload/server/public/assets/{line-DlKKhwkO.js → line-BhOwLD_o.js} +1 -1
  97. package/payload/server/public/assets/{linear-DD4JiB1l.js → linear-D76hoLvZ.js} +1 -1
  98. package/payload/server/public/assets/{mermaid-parser.core-C8xGCa9p.js → mermaid-parser.core-D8n5xV7A.js} +2 -2
  99. package/payload/server/public/assets/{mermaid.core-CCUSwZB_.js → mermaid.core-C3TZA9fX.js} +3 -3
  100. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-75k-IVhC.js → mindmap-definition-QFDTVHPH-Bv1kghvk.js} +1 -1
  101. package/payload/server/public/assets/{ordinal-Dwxksj1B.js → ordinal-BLrOss5K.js} +1 -1
  102. package/payload/server/public/assets/packet-4T2RLAQJ-Csybj5RO.js +1 -0
  103. package/payload/server/public/assets/pie-ZZUOXDRM-Iw1du1Bn.js +1 -0
  104. package/payload/server/public/assets/{pieDiagram-DEJITSTG-DN5RsDwZ.js → pieDiagram-DEJITSTG-BSYldcKa.js} +1 -1
  105. package/payload/server/public/assets/public-D8whQhxR.js +5 -0
  106. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-Sd9x6pNe.js → quadrantDiagram-34T5L4WZ-lCDshgz1.js} +1 -1
  107. package/payload/server/public/assets/radar-PYXPWWZC-rEet4TBV.js +1 -0
  108. package/payload/server/public/assets/{reduce-BUuWaDl2.js → reduce-C5tBOlxC.js} +1 -1
  109. package/payload/server/public/assets/{requirementDiagram-MS252O5E-BDgifYzj.js → requirementDiagram-MS252O5E-C7j42RrO.js} +1 -1
  110. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-BX9VULNJ.js → sankeyDiagram-XADWPNL6-plPbHhuF.js} +1 -1
  111. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-z3vMxhgE.js → sequenceDiagram-FGHM5R23-D3Y8MXiX.js} +1 -1
  112. package/payload/server/public/assets/{share-2-nB3FxYbd.js → share-2-C-ICFdTB.js} +1 -1
  113. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-DlP0hBxF.js → stateDiagram-FHFEXIEX-D4BdhMPy.js} +1 -1
  114. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DhKxVkX3.js +1 -0
  115. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-DwQbhKCo.js → timeline-definition-GMOUNBTQ-Lh9jrYCl.js} +1 -1
  116. package/payload/server/public/assets/treeView-SZITEDCU-PaLYyjtc.js +1 -0
  117. package/payload/server/public/assets/treemap-W4RFUUIX-CEhGYFbO.js +1 -0
  118. package/payload/server/public/assets/{useVoiceRecorder-D2OAQlJy.js → useVoiceRecorder-xTGR1bpD.js} +8 -8
  119. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-WTqmZWWa.js → vennDiagram-DHZGUBPP-Cx0v19iv.js} +1 -1
  120. package/payload/server/public/assets/wardley-RL74JXVD-xtJ4_o4d.js +1 -0
  121. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-BUY50x5T.js → wardleyDiagram-NUSXRM2D-BYewCTre.js} +1 -1
  122. package/payload/server/public/assets/{x-g2pNE8fh.js → x-BrDQr7Iy.js} +1 -1
  123. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-Btdq-fDj.js → xychartDiagram-5P7HB3ND-CkfIdbJu.js} +1 -1
  124. package/payload/server/public/data.html +6 -6
  125. package/payload/server/public/graph.html +7 -6
  126. package/payload/server/public/index.html +9 -8
  127. package/payload/server/public/public.html +6 -5
  128. package/payload/server/server.js +38 -14
  129. package/payload/platform/neo4j/migrations/002-linkedin-types.cypher +0 -103
  130. package/payload/server/public/assets/architecture-YZFGNWBL-S9-oeq_x.js +0 -1
  131. package/payload/server/public/assets/channel-D3U0_a1j.js +0 -1
  132. package/payload/server/public/assets/chunk-426QAEUC-Wz6Bpsil.js +0 -1
  133. package/payload/server/public/assets/chunk-QZHKN3VN-BAQp1OEl.js +0 -1
  134. package/payload/server/public/assets/classDiagram-6PBFFD2Q-6EGGLDD_.js +0 -1
  135. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DfAV4tgE.js +0 -1
  136. package/payload/server/public/assets/clone-BoV8noAi.js +0 -1
  137. package/payload/server/public/assets/gitGraph-7Q5UKJZL-BOC4CldZ.js +0 -1
  138. package/payload/server/public/assets/graph-ih5hzKOO.js +0 -50
  139. package/payload/server/public/assets/info-OMHHGYJF-BSCPTUIx.js +0 -1
  140. package/payload/server/public/assets/infoDiagram-42DDH7IO-T2sn--WJ.js +0 -2
  141. package/payload/server/public/assets/packet-4T2RLAQJ-pBa_ZhNI.js +0 -1
  142. package/payload/server/public/assets/pie-ZZUOXDRM-BzYOyiMb.js +0 -1
  143. package/payload/server/public/assets/public-Btb8pJWN.js +0 -5
  144. package/payload/server/public/assets/radar-PYXPWWZC-CTVOaAq6.js +0 -1
  145. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DSddQStC.js +0 -1
  146. package/payload/server/public/assets/treeView-SZITEDCU-OTnF4Qzw.js +0 -1
  147. package/payload/server/public/assets/treemap-W4RFUUIX-DlIRmHFb.js +0 -1
  148. package/payload/server/public/assets/wardley-RL74JXVD-DwMXAC4U.js +0 -1
  149. /package/payload/server/public/assets/{_baseFor-Dn4GSmI6.js → _baseFor-WfS9pKAn.js} +0 -0
  150. /package/payload/server/public/assets/{array-DJN9YAVf.js → array-HeX70jSN.js} +0 -0
  151. /package/payload/server/public/assets/{cytoscape.esm-BcJTl1re.js → cytoscape.esm-CDZo0kst.js} +0 -0
  152. /package/payload/server/public/assets/{defaultLocale-B4F_XsBB.js → defaultLocale-GJwWH1Jr.js} +0 -0
  153. /package/payload/server/public/assets/{dist-CrzV1W3-.js → dist-BKbAaes5.js} +0 -0
  154. /package/payload/server/public/assets/{init-DX0Y1qU4.js → init-BPLPMQ3Y.js} +0 -0
  155. /package/payload/server/public/assets/{jsx-runtime-rRO5uNvZ.js → jsx-runtime-CHagz7cd.js} +0 -0
  156. /package/payload/server/public/assets/{katex-CjHJ1D7d.js → katex-CKZ-HWMQ.js} +0 -0
  157. /package/payload/server/public/assets/{path-7vUsG-o2.js → path-YdFzr2W6.js} +0 -0
  158. /package/payload/server/public/assets/{preload-helper-qlgyTAkD.js → preload-helper-BEFjQwLd.js} +0 -0
  159. /package/payload/server/public/assets/{rough.esm-NLRoWnq-.js → rough.esm-HAx67Hnb.js} +0 -0
  160. /package/payload/server/public/assets/{src-Bo15iQ7w.js → src-BvrHnOMG.js} +0 -0
@@ -55,6 +55,8 @@ Manages events, appointments, and recurring triggers in the graph.
55
55
 
56
56
  **Relationships:** Link events to graph entities: `ABOUT` (what it concerns), `SCHEDULED_FOR` (who it's for), `PART_OF` (which conversation created it).
57
57
 
58
+ **Write doctrine (graph-scope):** `schedule-event` requires at least one relationship at creation — the current admin session's Conversation satisfies this automatically. Pass target elementIds resolved via `memory-search`; the MCP schema rejects zero-edge calls before the transaction opens.
59
+
58
60
  **ICS files:** `schedule-export-ics` produces `.ics` files for Apple Calendar, Google Calendar, Outlook. Deliver via `file-attach` + `render-component file-attachment`. `schedule-import-ics` parses uploaded `.ics` files — present extracted events for confirmation before creating.
59
61
 
60
62
  ## Cloudflare Tunnel
@@ -148,6 +150,8 @@ Manages customer contact records and group conversations in the knowledge graph.
148
150
 
149
151
  **Creating contacts:** `contact-create` creates a Person node. Before creating, use `memory-search` to check for existing Person nodes with matching name, email, or phone — avoid duplicates. Contacts are linked to other entities via relationships (tasks via `RAISED_BY`/`AFFECTS`, events via `SCHEDULED_FOR`).
150
152
 
153
+ **Write doctrine (graph-scope):** `contact-create` requires at least one relationship at creation — the current admin session's Conversation satisfies this, or pass a `group` elementId to link the Person to. A contact with no context is noise — the MCP schema rejects zero-edge calls before the transaction opens.
154
+
151
155
  **Lookup and listing:** `contact-lookup` finds a specific contact by name, email, or phone. `contact-list` returns contacts with optional filtering by group.
152
156
 
153
157
  **Updating:** `contact-update` modifies contact properties. Fields not provided are left unchanged.
@@ -41,6 +41,8 @@ Tasks live in the graph as Task nodes. Create a task when work is identified —
41
41
 
42
42
  **Creating:** Link to entities via `AFFECTS` relationships, to the requestor via `RAISED_BY`, to prerequisites via `BLOCKS` (source blocks target — target cannot start until source completes). Use `memory-search` to find existing entities before creating relationships — do not create duplicate references.
43
43
 
44
+ **Write doctrine (graph-scope):** `task-create` requires at least one adjacency at creation — the current admin session's Conversation (automatic when called inside a session), a `raisedBy` Person elementId, or at least one `affects` entity elementId. The MCP schema rejects zero-edge calls before the transaction opens; a Task with no context is noise, not knowledge. Resolve the target via `memory-search` first so you pass a real elementId, not a fabricated id.
45
+
44
46
  **Dependencies:** `BLOCKS` = sequential dependency. `AFFECTS` = conflict detection — two active tasks both affecting the same entity signals a conflict to surface.
45
47
 
46
48
  **Before starting:** Call `task-ready` to check if a task's prerequisites are met and no `AFFECTS` conflicts exist.
@@ -59,6 +61,8 @@ Structured execution for multi-step work with dependencies and deliverables.
59
61
 
60
62
  **Creating:** Use `project-create` for atomic creation — parent node, child work items, dependencies, and relationships in a single transaction. Choose a tier: quick (straightforward, few steps), standard (moderate complexity, multiple phases), full (significant scope, many dependencies). Max 50 work items per project.
61
63
 
64
+ **Write doctrine (graph-scope):** `project-create` requires at least one adjacency — pass `workItems` (≥1), a `raisedBy` Person elementId, or at least one `affects` entity elementId, or invoke inside an admin session with an existing Conversation. A Project with no children, no requestor, and no affected entity is noise — the tool rejects zero-edge calls before the transaction opens.
65
+
62
66
  **Health signals:** `project-list` returns health data per project:
63
67
 
64
68
  | Signal | Meaning |
@@ -82,6 +86,8 @@ Workflows are persistent, named compositions of executable steps — tool calls
82
86
 
83
87
  **Creating:** `workflow-create` with a name, description, and steps array. Confirm name and steps with the user before committing. `workflow-validate` checks whether all referenced tools and plugins are available — a workflow with unmet dependencies cannot be activated.
84
88
 
89
+ **Write doctrine (graph-scope):** `workflow-create` must be invoked inside an admin session — the Workflow is linked `PART_OF` the session's Conversation at creation. Calling from outside a session throws a doctrine-violation.
90
+
85
91
  **Step types:** Tool steps (`type: "tool"`) call MCP tools directly via `plugin` + `tool` + `params`. LLM steps (`type: "llm"`) run Claude reasoning with optional agentic MCP access. Steps receive data from prior steps via `{{outputKey.field}}` template bindings.
86
92
 
87
93
  **Status:** `active` (validated, ready to execute), `draft` (missing capabilities), `paused` (manually deactivated).
@@ -60,7 +60,7 @@ Some tools in your list come from optional plugins that may not be enabled. When
60
60
 
61
61
  When the brief involves reorganising, connecting, or maintaining stored knowledge rather than researching new information:
62
62
  - Use `memory-search` to find relevant nodes. Use `expandHops: 0` for listing and inventory queries (compact output). Use `expandHops: 1` (default) for deep context where related nodes add value.
63
- - Use `memory-write` to create or update nodes with accurate properties
63
+ - Use `memory-write` to create or update nodes with accurate properties. **Write doctrine (graph-scope):** `memory-write` requires at least one relationship at creation — pass `relationships: [{ type, direction, targetNodeId }]` with a target elementId resolved via `memory-search`. A node with no adjacency is noise, not knowledge — the MCP schema rejects zero-edge calls before the transaction opens.
64
64
  - Use `memory-rank` to evaluate and prioritise entities against criteria — it retrieves candidates via hybrid vector+BM25 search, then ranks them with Haiku-reasoned ordering per item. Ranking is ephemeral and contextual — nothing written to the graph.
65
65
  - Use `memory-reindex` to rebuild embeddings after bulk updates
66
66
  - Return structured results describing what was changed, not prose summaries