@a-company/paradigm 5.38.0 → 6.0.2

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 (328) hide show
  1. package/dist/{accept-orchestration-OATWIRHP.js → accept-orchestration-QQISPINV.js} +1 -1
  2. package/dist/add-UOR4INIV.js +8 -0
  3. package/dist/{agent-loader-RIVI6QPP.js → agent-loader-2WJHD46U.js} +1 -1
  4. package/dist/{agent-loader-RJRVO5GQ.js → agent-loader-YKS2PQWO.js} +1 -1
  5. package/dist/{ambient-76YMUA5Q.js → ambient-BE3SQXNN.js} +1 -1
  6. package/dist/{ambient-WTLYUAQM.js → ambient-NVKQCW2A.js} +12 -12
  7. package/dist/{assess-UFPYEJKP.js → assess-63WXHWJV.js} +1 -1
  8. package/dist/{calibration-OLJYB5HN.js → calibration-BDHGYJOK.js} +1 -1
  9. package/dist/{chunk-5QOCKWK5.js → chunk-4PSD5R7N.js} +2 -2
  10. package/dist/{chunk-HOBHJPTL.js → chunk-6SKSV5B2.js} +1 -1
  11. package/dist/{chunk-4L7665QV.js → chunk-FEYOQMZ5.js} +1 -1
  12. package/dist/{chunk-NEJ4ZLCY.js → chunk-GAFKOFAV.js} +1 -1
  13. package/dist/chunk-GRZQIKST.js +2 -0
  14. package/dist/{chunk-RLCH7DXQ.js → chunk-K7X3Z3GL.js} +1 -1
  15. package/dist/{chunk-4VKSEOXZ.js → chunk-LPBCQM5Y.js} +3 -3
  16. package/dist/{chunk-74SGKSRQ.js → chunk-M2HKWR25.js} +1 -1
  17. package/dist/{chunk-BOYQAMGC.js → chunk-M3PPXJU4.js} +1 -1
  18. package/dist/chunk-PHEX6LU4.js +111 -0
  19. package/dist/chunk-Q527BPUF.js +2 -0
  20. package/dist/chunk-R5ECMBIV.js +11 -0
  21. package/dist/{chunk-X3U3IGYT.js → chunk-TBWWFRL5.js} +1 -1
  22. package/dist/{chunk-MQIG6SMF.js → chunk-TNVWGPCE.js} +1 -1
  23. package/dist/chunk-TZDYIPVU.js +521 -0
  24. package/dist/{chunk-3XGNXXCT.js → chunk-UZ5H7K6Q.js} +1 -1
  25. package/dist/chunk-VIG5LSGZ.js +2 -0
  26. package/dist/chunk-VNIX5KBT.js +3 -0
  27. package/dist/{chunk-AGFPVSX5.js → chunk-VXIIVMTM.js} +1 -1
  28. package/dist/{chunk-ORDKEGII.js → chunk-WESTEMIM.js} +1 -1
  29. package/dist/{chunk-DOCDDDTD.js → chunk-YNDPSWOE.js} +5 -5
  30. package/dist/chunk-Z5QW6USC.js +2 -0
  31. package/dist/{compliance-D7GD6ZYC.js → compliance-BNFWQPKM.js} +1 -1
  32. package/dist/config-schema-FLHRVZMI.js +2 -0
  33. package/dist/{context-audit-XRPT3OU2.js → context-audit-JVCA6GSV.js} +1 -1
  34. package/dist/{cursorrules-U5O4G5T4.js → cursorrules-ZXPXPZ3P.js} +1 -1
  35. package/dist/decision-loader-HELL2AMX.js +2 -0
  36. package/dist/{delete-P5VULXR4.js → delete-2C6ALLYY.js} +1 -1
  37. package/dist/{diff-YGHBIJY5.js → diff-MF55KQZH.js} +1 -1
  38. package/dist/{dist-KGRCLBJP-2QAPFYNF.js → dist-GQ42YS5N-4HIJZVBB.js} +10 -10
  39. package/dist/{docs-USDAF26F.js → docs-O37YLLRN.js} +1 -1
  40. package/dist/doctor-IG5XM4C4.js +2 -0
  41. package/dist/{edit-GUU3HBVW.js → edit-P3MDAZLU.js} +1 -1
  42. package/dist/{flow-FVZR3YJ4.js → flow-BGXOVE2V.js} +1 -1
  43. package/dist/index.js +6 -6
  44. package/dist/init-M44SO65G.js +2 -0
  45. package/dist/{init-XYB62Q3X.js → init-V4KSEKPK.js} +1 -1
  46. package/dist/{list-YKIQNKGB.js → list-2XIWUEMA.js} +1 -1
  47. package/dist/list-CFHINXIS.js +12 -0
  48. package/dist/lore-loader-D2ISOASW.js +2 -0
  49. package/dist/lore-loader-PXFKMKAN.js +2 -0
  50. package/dist/mcp.js +4 -4
  51. package/dist/metrics-UESGUHTA.js +2 -0
  52. package/dist/migrate-assessments-YSITX7KM.js +4 -0
  53. package/dist/migrate-decisions-NPLQOEEH.js +6 -0
  54. package/dist/migrate-plsat-EM2ACIQ3.js +6 -0
  55. package/dist/{nomination-engine-EALA5MGI.js → nomination-engine-QPZJH6XO.js} +1 -1
  56. package/dist/{notebook-loader-PXNRBBXD.js → notebook-loader-3J2OFMS3.js} +1 -1
  57. package/dist/{orchestrate-M5PBZBJQ.js → orchestrate-RID7HHHH.js} +1 -1
  58. package/dist/{platform-server-DNAMH4YI.js → platform-server-UD45NTGV.js} +1 -1
  59. package/dist/{portal-check-ZMLVBIGW.js → portal-check-DV2VSJ5E.js} +1 -1
  60. package/dist/portal-compliance-JONQ4SOP.js +2 -0
  61. package/dist/{probe-3FTG6LYO.js → probe-5HAXULAD.js} +1 -1
  62. package/dist/{providers-AWA7WLLM.js → providers-4PXMWA7V.js} +1 -1
  63. package/dist/quiz-WYIZJG5K.js +10 -0
  64. package/dist/{record-YXPB34MY.js → record-N3VNYYKJ.js} +1 -1
  65. package/dist/reindex-FWPD2VGM.js +2 -0
  66. package/dist/{retag-N5XF3KXP.js → retag-72R2OSZV.js} +1 -1
  67. package/dist/{review-77QI6VOC.js → review-2INNWLTW.js} +1 -1
  68. package/dist/{sentinel-HYAZ3CO5.js → sentinel-EFPEX246.js} +1 -1
  69. package/dist/{sentinel-bridge-VR357PKL.js → sentinel-bridge-UR2MKARY.js} +1 -1
  70. package/dist/{serve-U47GULB6.js → serve-MO35XIZE.js} +1 -1
  71. package/dist/serve-OQYUO7CR.js +12 -0
  72. package/dist/{server-4YNUIK4W.js → server-4D77LCST.js} +1 -1
  73. package/dist/server-FGUL2FWQ.js +7 -0
  74. package/dist/session-tracker-KGORN6B5.js +2 -0
  75. package/dist/{session-work-log-PAKXOFGL.js → session-work-log-4IEVE4KK.js} +1 -1
  76. package/dist/{session-work-log-ZP45TREI.js → session-work-log-EE4UIZ33.js} +1 -1
  77. package/dist/{setup-FEWSYS3Y.js → setup-ZSEC72BS.js} +1 -1
  78. package/dist/{shift-PC6C7NUX.js → shift-TVNY2CQF.js} +6 -6
  79. package/dist/{show-PJ5LFLIL.js → show-JH7LJ5MT.js} +1 -1
  80. package/dist/show-WVHAL4VU.js +7 -0
  81. package/dist/{spawn-M5BAV252.js → spawn-UH5RENSE.js} +1 -1
  82. package/dist/status-S7Z5FVIE.js +6 -0
  83. package/dist/{summary-PYTEIJ4U.js → summary-WLI3NF4G.js} +2 -2
  84. package/dist/{sweep-HU74OPVW.js → sweep-7TZFN5NS.js} +1 -1
  85. package/dist/sync-55U6QPIA.js +2 -0
  86. package/dist/{sync-llms-7CAI74QL.js → sync-llms-GF7DDQDI.js} +1 -1
  87. package/dist/{team-PDK64JXI.js → team-MGT66HZQ.js} +1 -1
  88. package/dist/{timeline-K3ZFKJ3R.js → timeline-RK7O2SCM.js} +1 -1
  89. package/dist/tools-QJHAVYI6.js +2 -0
  90. package/dist/university-content/notes/N-para-001-build-something.md +126 -0
  91. package/dist/university-content/notes/N-para-001-meet-the-team.md +85 -0
  92. package/dist/university-content/notes/N-para-001-shift-setup.md +74 -0
  93. package/dist/university-content/notes/N-para-101-component-types.md +99 -0
  94. package/dist/university-content/notes/N-para-101-first-steps.md +134 -0
  95. package/dist/university-content/notes/N-para-101-five-symbols.md +128 -0
  96. package/dist/university-content/notes/N-para-101-paradigm-logger.md +89 -0
  97. package/dist/university-content/notes/N-para-101-portal-yaml.md +112 -0
  98. package/dist/university-content/notes/N-para-101-project-structure.md +143 -0
  99. package/dist/university-content/notes/N-para-101-purpose-files.md +121 -0
  100. package/dist/university-content/notes/N-para-101-tags-and-classification.md +93 -0
  101. package/dist/university-content/notes/N-para-101-welcome.md +51 -0
  102. package/dist/university-content/notes/N-para-201-architecture-review.md +175 -0
  103. package/dist/university-content/notes/N-para-201-aspect-graph.md +79 -0
  104. package/dist/university-content/notes/N-para-201-aspects-and-anchors.md +112 -0
  105. package/dist/university-content/notes/N-para-201-component-patterns.md +138 -0
  106. package/dist/university-content/notes/N-para-201-cross-cutting-concerns.md +145 -0
  107. package/dist/university-content/notes/N-para-201-disciplines.md +187 -0
  108. package/dist/university-content/notes/N-para-201-flows-deep-dive.md +119 -0
  109. package/dist/university-content/notes/N-para-201-gates-deep-dive.md +165 -0
  110. package/dist/university-content/notes/N-para-201-portal-protocol.md +133 -0
  111. package/dist/university-content/notes/N-para-201-signal-patterns.md +159 -0
  112. package/dist/university-content/notes/N-para-201-symbol-naming.md +149 -0
  113. package/dist/university-content/notes/N-para-301-context-management.md +53 -0
  114. package/dist/university-content/notes/N-para-301-decisions.md +99 -0
  115. package/dist/university-content/notes/N-para-301-doctor-and-validation.md +70 -0
  116. package/dist/university-content/notes/N-para-301-enforcement-levels.md +102 -0
  117. package/dist/university-content/notes/N-para-301-fragility-tracking.md +50 -0
  118. package/dist/university-content/notes/N-para-301-history-system.md +42 -0
  119. package/dist/university-content/notes/N-para-301-navigation-system.md +55 -0
  120. package/dist/university-content/notes/N-para-301-operations-review.md +55 -0
  121. package/dist/university-content/notes/N-para-301-paradigm-shift.md +93 -0
  122. package/dist/university-content/notes/N-para-301-protocols.md +113 -0
  123. package/dist/university-content/notes/N-para-301-ripple-analysis.md +53 -0
  124. package/dist/university-content/notes/N-para-301-sentinel-observability.md +87 -0
  125. package/dist/university-content/notes/N-para-301-sync-and-maintenance.md +57 -0
  126. package/dist/university-content/notes/N-para-301-wisdom-system.md +89 -0
  127. package/dist/university-content/notes/N-para-401-agent-identity.md +99 -0
  128. package/dist/university-content/notes/N-para-401-agent-interop.md +87 -0
  129. package/dist/university-content/notes/N-para-401-agent-roles.md +107 -0
  130. package/dist/university-content/notes/N-para-401-commit-conventions.md +82 -0
  131. package/dist/university-content/notes/N-para-401-mastery-review.md +71 -0
  132. package/dist/university-content/notes/N-para-401-mcp-tools-overview.md +102 -0
  133. package/dist/university-content/notes/N-para-401-multi-agent-coordination.md +80 -0
  134. package/dist/university-content/notes/N-para-401-notebooks-permissions.md +66 -0
  135. package/dist/university-content/notes/N-para-401-orchestration-workflow.md +101 -0
  136. package/dist/university-content/notes/N-para-401-pm-governance.md +71 -0
  137. package/dist/university-content/notes/N-para-401-provider-cascade.md +75 -0
  138. package/dist/university-content/notes/N-para-401-quick-check.md +95 -0
  139. package/dist/university-content/notes/N-para-501-advanced-workflows.md +122 -0
  140. package/dist/university-content/notes/N-para-501-aspect-graph-advanced.md +195 -0
  141. package/dist/university-content/notes/N-para-501-aspect-graph-internals.md +97 -0
  142. package/dist/university-content/notes/N-para-501-assessment-loops.md +116 -0
  143. package/dist/university-content/notes/N-para-501-conductor-workspace.md +77 -0
  144. package/dist/university-content/notes/N-para-501-habits-practice.md +164 -0
  145. package/dist/university-content/notes/N-para-501-hook-enforcement.md +100 -0
  146. package/dist/university-content/notes/N-para-501-lore-system.md +155 -0
  147. package/dist/university-content/notes/N-para-501-platform-agent-ui.md +108 -0
  148. package/dist/university-content/notes/N-para-501-review-compliance.md +72 -0
  149. package/dist/university-content/notes/N-para-501-sentinel-deep-dive.md +173 -0
  150. package/dist/university-content/notes/N-para-501-session-intelligence.md +104 -0
  151. package/dist/university-content/notes/N-para-501-symphony-a-mail.md +120 -0
  152. package/dist/university-content/notes/N-para-501-symphony-networking.md +119 -0
  153. package/dist/university-content/notes/N-para-501-task-management.md +100 -0
  154. package/dist/university-content/notes/N-para-601-agent-renaissance.md +121 -0
  155. package/dist/university-content/notes/N-para-601-attention-scoring.md +129 -0
  156. package/dist/university-content/notes/N-para-601-context-composition.md +146 -0
  157. package/dist/university-content/notes/N-para-601-data-sovereignty.md +140 -0
  158. package/dist/university-content/notes/N-para-601-event-stream.md +126 -0
  159. package/dist/university-content/notes/N-para-601-knowledge-streams.md +144 -0
  160. package/dist/university-content/notes/N-para-601-learning-loop.md +68 -0
  161. package/dist/university-content/notes/N-para-601-maestro-team-collab.md +136 -0
  162. package/dist/university-content/notes/N-para-601-nominations-debates.md +115 -0
  163. package/dist/university-content/notes/N-para-701-agent-notebooks.md +131 -0
  164. package/dist/university-content/notes/N-para-701-agent-pods-nevrland.md +182 -0
  165. package/dist/university-content/notes/N-para-701-agent-profiles.md +197 -0
  166. package/dist/university-content/notes/N-para-701-agent-roster.md +82 -0
  167. package/dist/university-content/notes/N-para-701-agent-state.md +180 -0
  168. package/dist/university-content/notes/N-para-701-learning-feedback-loop.md +188 -0
  169. package/dist/university-content/notes/N-para-701-model-tier-resolution.md +204 -0
  170. package/dist/university-content/notes/N-para-701-orchestration-enforcement.md +169 -0
  171. package/dist/university-content/notes/N-para-701-per-project-rosters.md +198 -0
  172. package/dist/university-content/notes/N-para-701-symphony-visibility.md +142 -0
  173. package/dist/university-content/paths/LP-para-001.yaml +29 -0
  174. package/dist/university-content/paths/LP-para-101.yaml +59 -0
  175. package/dist/university-content/paths/LP-para-201.yaml +69 -0
  176. package/dist/university-content/paths/LP-para-301.yaml +84 -0
  177. package/dist/university-content/paths/LP-para-401.yaml +74 -0
  178. package/dist/university-content/paths/LP-para-501.yaml +89 -0
  179. package/dist/university-content/paths/LP-para-601.yaml +59 -0
  180. package/dist/university-content/paths/LP-para-701.yaml +64 -0
  181. package/dist/university-content/quizzes/Q-para-001-build-something.yaml +46 -0
  182. package/dist/university-content/quizzes/Q-para-001-meet-the-team.yaml +46 -0
  183. package/dist/university-content/quizzes/Q-para-001-shift-setup.yaml +46 -0
  184. package/dist/university-content/quizzes/Q-para-101-component-types.yaml +46 -0
  185. package/dist/university-content/quizzes/Q-para-101-first-steps.yaml +56 -0
  186. package/dist/university-content/quizzes/Q-para-101-five-symbols.yaml +66 -0
  187. package/dist/university-content/quizzes/Q-para-101-paradigm-logger.yaml +56 -0
  188. package/dist/university-content/quizzes/Q-para-101-portal-yaml.yaml +56 -0
  189. package/dist/university-content/quizzes/Q-para-101-project-structure.yaml +66 -0
  190. package/dist/university-content/quizzes/Q-para-101-purpose-files.yaml +56 -0
  191. package/dist/university-content/quizzes/Q-para-101-tags-and-classification.yaml +56 -0
  192. package/dist/university-content/quizzes/Q-para-101-welcome.yaml +56 -0
  193. package/dist/university-content/quizzes/Q-para-201-architecture-review.yaml +66 -0
  194. package/dist/university-content/quizzes/Q-para-201-aspect-graph.yaml +46 -0
  195. package/dist/university-content/quizzes/Q-para-201-aspects-and-anchors.yaml +56 -0
  196. package/dist/university-content/quizzes/Q-para-201-component-patterns.yaml +56 -0
  197. package/dist/university-content/quizzes/Q-para-201-cross-cutting-concerns.yaml +56 -0
  198. package/dist/university-content/quizzes/Q-para-201-disciplines.yaml +66 -0
  199. package/dist/university-content/quizzes/Q-para-201-flows-deep-dive.yaml +66 -0
  200. package/dist/university-content/quizzes/Q-para-201-gates-deep-dive.yaml +66 -0
  201. package/dist/university-content/quizzes/Q-para-201-portal-protocol.yaml +56 -0
  202. package/dist/university-content/quizzes/Q-para-201-signal-patterns.yaml +56 -0
  203. package/dist/university-content/quizzes/Q-para-201-symbol-naming.yaml +66 -0
  204. package/dist/university-content/quizzes/Q-para-301-context-management.yaml +56 -0
  205. package/dist/university-content/quizzes/Q-para-301-decisions.yaml +76 -0
  206. package/dist/university-content/quizzes/Q-para-301-doctor-and-validation.yaml +66 -0
  207. package/dist/university-content/quizzes/Q-para-301-enforcement-levels.yaml +46 -0
  208. package/dist/university-content/quizzes/Q-para-301-fragility-tracking.yaml +46 -0
  209. package/dist/university-content/quizzes/Q-para-301-history-system.yaml +56 -0
  210. package/dist/university-content/quizzes/Q-para-301-navigation-system.yaml +56 -0
  211. package/dist/university-content/quizzes/Q-para-301-operations-review.yaml +66 -0
  212. package/dist/university-content/quizzes/Q-para-301-paradigm-shift.yaml +46 -0
  213. package/dist/university-content/quizzes/Q-para-301-protocols.yaml +56 -0
  214. package/dist/university-content/quizzes/Q-para-301-ripple-analysis.yaml +56 -0
  215. package/dist/university-content/quizzes/Q-para-301-sentinel-observability.yaml +46 -0
  216. package/dist/university-content/quizzes/Q-para-301-sync-and-maintenance.yaml +46 -0
  217. package/dist/university-content/quizzes/Q-para-301-wisdom-system.yaml +56 -0
  218. package/dist/university-content/quizzes/Q-para-401-agent-identity.yaml +66 -0
  219. package/dist/university-content/quizzes/Q-para-401-agent-interop.yaml +46 -0
  220. package/dist/university-content/quizzes/Q-para-401-agent-roles.yaml +56 -0
  221. package/dist/university-content/quizzes/Q-para-401-commit-conventions.yaml +56 -0
  222. package/dist/university-content/quizzes/Q-para-401-mastery-review.yaml +66 -0
  223. package/dist/university-content/quizzes/Q-para-401-mcp-tools-overview.yaml +66 -0
  224. package/dist/university-content/quizzes/Q-para-401-multi-agent-coordination.yaml +76 -0
  225. package/dist/university-content/quizzes/Q-para-401-notebooks-permissions.yaml +61 -0
  226. package/dist/university-content/quizzes/Q-para-401-orchestration-workflow.yaml +66 -0
  227. package/dist/university-content/quizzes/Q-para-401-pm-governance.yaml +66 -0
  228. package/dist/university-content/quizzes/Q-para-401-provider-cascade.yaml +56 -0
  229. package/dist/university-content/quizzes/Q-para-401-quick-check.yaml +46 -0
  230. package/dist/university-content/quizzes/Q-para-501-advanced-workflows.yaml +66 -0
  231. package/dist/university-content/quizzes/Q-para-501-aspect-graph-advanced.yaml +66 -0
  232. package/dist/university-content/quizzes/Q-para-501-aspect-graph-internals.yaml +66 -0
  233. package/dist/university-content/quizzes/Q-para-501-assessment-loops.yaml +46 -0
  234. package/dist/university-content/quizzes/Q-para-501-conductor-workspace.yaml +46 -0
  235. package/dist/university-content/quizzes/Q-para-501-habits-practice.yaml +56 -0
  236. package/dist/university-content/quizzes/Q-para-501-hook-enforcement.yaml +66 -0
  237. package/dist/university-content/quizzes/Q-para-501-lore-system.yaml +66 -0
  238. package/dist/university-content/quizzes/Q-para-501-platform-agent-ui.yaml +66 -0
  239. package/dist/university-content/quizzes/Q-para-501-review-compliance.yaml +61 -0
  240. package/dist/university-content/quizzes/Q-para-501-sentinel-deep-dive.yaml +86 -0
  241. package/dist/university-content/quizzes/Q-para-501-session-intelligence.yaml +66 -0
  242. package/dist/university-content/quizzes/Q-para-501-symphony-a-mail.yaml +66 -0
  243. package/dist/university-content/quizzes/Q-para-501-symphony-networking.yaml +66 -0
  244. package/dist/university-content/quizzes/Q-para-501-task-management.yaml +46 -0
  245. package/dist/university-content/quizzes/Q-para-601-agent-renaissance.yaml +66 -0
  246. package/dist/university-content/quizzes/Q-para-601-attention-scoring.yaml +56 -0
  247. package/dist/university-content/quizzes/Q-para-601-context-composition.yaml +66 -0
  248. package/dist/university-content/quizzes/Q-para-601-data-sovereignty.yaml +56 -0
  249. package/dist/university-content/quizzes/Q-para-601-event-stream.yaml +66 -0
  250. package/dist/university-content/quizzes/Q-para-601-knowledge-streams.yaml +66 -0
  251. package/dist/university-content/quizzes/Q-para-601-learning-loop.yaml +56 -0
  252. package/dist/university-content/quizzes/Q-para-601-maestro-team-collab.yaml +86 -0
  253. package/dist/university-content/quizzes/Q-para-601-nominations-debates.yaml +66 -0
  254. package/dist/university-content/quizzes/Q-para-701-agent-notebooks.yaml +66 -0
  255. package/dist/university-content/quizzes/Q-para-701-agent-pods-nevrland.yaml +66 -0
  256. package/dist/university-content/quizzes/Q-para-701-agent-profiles.yaml +66 -0
  257. package/dist/university-content/quizzes/Q-para-701-agent-roster.yaml +66 -0
  258. package/dist/university-content/quizzes/Q-para-701-agent-state.yaml +66 -0
  259. package/dist/university-content/quizzes/Q-para-701-learning-feedback-loop.yaml +66 -0
  260. package/dist/university-content/quizzes/Q-para-701-model-tier-resolution.yaml +66 -0
  261. package/dist/university-content/quizzes/Q-para-701-orchestration-enforcement.yaml +66 -0
  262. package/dist/university-content/quizzes/Q-para-701-per-project-rosters.yaml +66 -0
  263. package/dist/university-content/quizzes/Q-para-701-symphony-visibility.yaml +66 -0
  264. package/dist/university-content/quizzes/Q-plsat-v2.yaml +904 -0
  265. package/dist/university-content/quizzes/Q-plsat-v3.yaml +2909 -0
  266. package/dist/university-content/reference.json +2 -2
  267. package/dist/university-ui/assets/{index-CecQrfSn.js → index-nNgzO1il.js} +2 -2
  268. package/dist/university-ui/assets/{index-CecQrfSn.js.map → index-nNgzO1il.js.map} +1 -1
  269. package/dist/university-ui/index.html +1 -1
  270. package/dist/{upgrade-GX56QE3C.js → upgrade-NKN63VTY.js} +2 -2
  271. package/dist/validate-XUQZTF3H.js +9 -0
  272. package/dist/{watch-YCODNIET.js → watch-25GJHQYT.js} +1 -1
  273. package/lore-ui/dist/assets/{index-Bk-K0qgN.js → index-DKhNxgtW.js} +10 -10
  274. package/lore-ui/dist/index.html +1 -1
  275. package/package.json +2 -2
  276. package/platform-ui/dist/assets/{AmbientSection-BYjt75R1.js → AmbientSection-CwatqcBD.js} +1 -1
  277. package/platform-ui/dist/assets/{CanvasSection-rKvA_vZj.js → CanvasSection-dFAthehN.js} +1 -1
  278. package/platform-ui/dist/assets/{DocsSection-CI9K73M-.js → DocsSection-BZ2SFJBZ.js} +1 -1
  279. package/platform-ui/dist/assets/{GitSection-DSGj_c6S.js → GitSection-MNNYU1tO.js} +1 -1
  280. package/platform-ui/dist/assets/{GraphSection-CawN7pC5.js → GraphSection-COYjb4Pt.js} +1 -1
  281. package/platform-ui/dist/assets/LoreSection-B0hUbfsJ.js +1 -0
  282. package/platform-ui/dist/assets/{SentinelSection-DNgoYMH0.js → SentinelSection-BCxW1DCp.js} +1 -1
  283. package/platform-ui/dist/assets/{SymphonySection-C0zfcqv3.js → SymphonySection-BsucZRqy.js} +1 -1
  284. package/platform-ui/dist/assets/{TeamSection-Bzd3Dt9Q.js → TeamSection-C0QNTudW.js} +1 -1
  285. package/platform-ui/dist/assets/{UniversitySection-tBr62R0S.js → UniversitySection-DN1-g9pw.js} +1 -1
  286. package/platform-ui/dist/assets/{index-BaOmyn11.js → index-DwUT8pju.js} +2 -2
  287. package/platform-ui/dist/index.html +1 -1
  288. package/dist/add-P76GEMGF.js +0 -8
  289. package/dist/chunk-JQKKVAAN.js +0 -2
  290. package/dist/chunk-NQ47TA6C.js +0 -111
  291. package/dist/chunk-ODVKPZZ4.js +0 -2
  292. package/dist/chunk-Q2J542ST.js +0 -2
  293. package/dist/chunk-RBLK34IA.js +0 -11
  294. package/dist/chunk-RN4VE6P3.js +0 -521
  295. package/dist/chunk-WS2N27RX.js +0 -3
  296. package/dist/config-schema-GUQY2QN7.js +0 -2
  297. package/dist/decision-loader-2XPZE4EZ.js +0 -2
  298. package/dist/doctor-WMVULMQD.js +0 -2
  299. package/dist/list-5IUGP3ZB.js +0 -7
  300. package/dist/lore-loader-RVQI5GXL.js +0 -2
  301. package/dist/lore-loader-XY5MZRR2.js +0 -2
  302. package/dist/migrate-assessments-GEI5WMI2.js +0 -4
  303. package/dist/portal-compliance-6YR27IQU.js +0 -2
  304. package/dist/quiz-FE5UGAY2.js +0 -10
  305. package/dist/reindex-I6LPAKCC.js +0 -2
  306. package/dist/serve-OY6XYL7F.js +0 -12
  307. package/dist/server-2MNROHF6.js +0 -7
  308. package/dist/session-tracker-MWJAJA6Z.js +0 -2
  309. package/dist/show-BOAVWZPZ.js +0 -7
  310. package/dist/status-A37ECYNJ.js +0 -6
  311. package/dist/sync-DLUBV5HQ.js +0 -2
  312. package/dist/tools-5ITPEPSV.js +0 -2
  313. package/dist/university-content/courses/.purpose +0 -492
  314. package/dist/university-content/courses/para-001.json +0 -166
  315. package/dist/university-content/courses/para-101.json +0 -615
  316. package/dist/university-content/courses/para-201.json +0 -794
  317. package/dist/university-content/courses/para-301.json +0 -830
  318. package/dist/university-content/courses/para-401.json +0 -868
  319. package/dist/university-content/courses/para-501.json +0 -1166
  320. package/dist/university-content/courses/para-601.json +0 -719
  321. package/dist/university-content/courses/para-701.json +0 -807
  322. package/dist/university-content/plsat/.purpose +0 -162
  323. package/dist/university-content/plsat/v2.0.json +0 -760
  324. package/dist/university-content/plsat/v3.0.json +0 -3453
  325. package/dist/validate-C6SMKGYD.js +0 -9
  326. package/platform-ui/dist/assets/LoreSection-oO5dCe6O.js +0 -1
  327. /package/dist/{chunk-BV5PRPLB.js → chunk-IZSBGW6E.js} +0 -0
  328. /package/templates/paradigm/specs/{scan.md → probe.md} +0 -0
@@ -0,0 +1,146 @@
1
+ ---
2
+ id: N-para-601-context-composition
3
+ title: Context Composition
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-601
11
+ - slim-claudemd-150
12
+ - paradigmcontextcompose-assembles-base
13
+ - agent-contributions-use
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 6
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-601.json
21
+ ---
22
+
23
+ ## From Verbose to Slim
24
+
25
+ Paradigm's CLAUDE.md historically contained everything an agent might need: logging rules, portal conventions, MCP workflow guidance, flow patterns, orchestration instructions, workspace configuration, and more. At its peak, the file was ~856 lines — loaded in full at the start of every session, consuming thousands of tokens regardless of whether the task involved logging, security, or lore.
26
+
27
+ This approach has two problems. First, it wastes context window space. An agent working on test coverage does not need 200 lines of portal gate conventions. Second, it creates staleness — with all guidance in one file, updates to any topic require reading and understanding the entire file.
28
+
29
+ v5.0 restructured this into a two-layer architecture: a slim CLAUDE.md (~150 lines) for universal orientation, plus 12 on-demand guidance resources for topic-specific depth.
30
+
31
+ ## The Slim CLAUDE.md
32
+
33
+ The reduced CLAUDE.md contains only what every session needs:
34
+
35
+ 1. **Project Overview** — What this project is and which version of Paradigm it uses
36
+ 2. **Symbol System** — The 5 symbols (#, $, ^, !, ~) and their meanings
37
+ 3. **Conventions** — Naming, commit format, .purpose rules
38
+ 4. **Agent Onboarding** — What to call first (`paradigm_status`), what to check
39
+ 5. **Before Implementing** — Protocol search, ripple, gates check
40
+ 6. **Automatic Enforcement** — What the stop hook blocks
41
+ 7. **On-Demand Guidance** — Table of 12 guidance resources with their MCP URIs
42
+
43
+ This provides enough context for any agent to orient itself and know where to find deeper guidance, without spending tokens on content irrelevant to the current task.
44
+
45
+ ## 12 Guidance Resources
46
+
47
+ Guidance resources are served via MCP at `paradigm://guidance/{topic}`. Each resource generates its content on demand — it is not a static file but a function that produces the latest guidance.
48
+
49
+ The 12 topics:
50
+
51
+ | Topic | What It Covers |
52
+ |---|---|
53
+ | `logging` | Logger usage, symbol-to-method mapping by directory |
54
+ | `portal` | Portal protocol, gate patterns, route declarations |
55
+ | `mcp-workflow` | MCP tool orchestration, token budgets |
56
+ | `flows` | Flow-first development, $flow documentation |
57
+ | `orchestration` | Multi-agent orchestration, agent spawning |
58
+ | `workspaces` | Multi-project symbol awareness |
59
+ | `university` | Knowledge base, courses, PLSAT |
60
+ | `calibration` | Confidence calibration, overconfidence alerts |
61
+ | `checkpoints` | Session checkpoints, crash recovery |
62
+ | `navigation` | Task recipes, navigation patterns |
63
+ | `component-types` | Component hierarchy, type guidelines |
64
+ | `troubleshooting` | Common issues, diagnostic steps |
65
+
66
+ An agent working on portal.yaml calls `paradigm://guidance/portal` to get the full portal protocol. An agent setting up multi-project awareness calls `paradigm://guidance/workspaces`. This on-demand model means the agent pays the token cost only for the guidance it actually uses.
67
+
68
+ ## Agent Contributions Section
69
+
70
+ Beyond the static guidance resources, composed context includes a dynamic **Agent Contributions** section built from active agents' `AgentContext.contributions`.
71
+
72
+ For example, if a security agent is active and its profile includes:
73
+
74
+ ```yaml
75
+ context:
76
+ contributions:
77
+ - section: "Security Warnings"
78
+ content: "New routes added in this session require ^authenticated gate minimum."
79
+ priority: high
80
+ - section: "Portal Conventions"
81
+ content_ref: "paradigm://guidance/portal"
82
+ priority: medium
83
+ ```
84
+
85
+ ...the composed context will include a "Security Warnings" section (always, because `priority: high`) and may include the full portal guidance (if token budget allows, because `priority: medium`).
86
+
87
+ Contributions with `content_ref` instead of inline `content` are resolved lazily — the MCP resource is fetched only when the contribution is actually included in the composed context.
88
+
89
+ ## paradigm_context_compose
90
+
91
+ The `paradigm_context_compose` tool assembles the full context for a session. It takes:
92
+
93
+ - The active agent(s) and their profiles
94
+ - The current task or focus area
95
+ - Token budget constraints
96
+
97
+ It produces a composed context string that includes:
98
+
99
+ 1. **Base CLAUDE.md content** — Universal orientation
100
+ 2. **Agent identity section** — From `buildProfileEnrichment`
101
+ 3. **High-priority contributions** — From all active agents' context contributions
102
+ 4. **Relevant guidance** — On-demand resources loaded based on the task
103
+ 5. **Ambient context** — Recent team decisions, transferable journal insights, pending nominations
104
+ 6. **Medium-priority contributions** — If token budget allows
105
+
106
+ Low-priority contributions and unused guidance resources are omitted from the initial context but remain available via MCP resource URIs if the agent needs them mid-session.
107
+
108
+ ## The Full Loop: Journal to Context
109
+
110
+ Here is where everything connects. Consider this sequence:
111
+
112
+ 1. **Session A**: Builder modifies `#payment-service`, makes a mistake with JWT token ordering, gets corrected by the human. The builder records a journal entry: `trigger: 'correction_received', insight: 'JWT refresh tokens must be validated before access tokens when both are present', transferable: true, pattern: { id: 'jwt-ordering', applies_when: 'validating multiple JWT types', correct_approach: 'Check refresh token first, then access token' }`.
113
+
114
+ 2. **Between sessions**: The journal entry is stored at `~/.paradigm/agents/builder/journal/`. The pattern is extracted as a transferable pattern.
115
+
116
+ 3. **Session B**: A different agent (or the same builder on a different project) starts work on an authentication module. `paradigm_context_compose` runs, loading the builder's profile. The `buildProfileEnrichment` function includes the transferable pattern and the journal insight in the "Transferable Insights" section of the composed context.
117
+
118
+ 4. **Result**: The agent in Session B sees the JWT ordering insight before writing any code, preventing the same mistake.
119
+
120
+ This is the closed loop: DO (Session A work) -> RECORD (journal entry) -> ASSESS (attention scoring recognizes auth work in Session B) -> LEARN (pattern extracted) -> ADAPT (context composition includes the pattern) -> DO (Session B starts with the insight).
121
+
122
+ ## emitAndProcess
123
+
124
+ The `emitAndProcess` function unifies event emission with nomination processing. When an event is emitted, it is simultaneously:
125
+
126
+ 1. Written to the event stream (JSONL file + memory buffer)
127
+ 2. Scored against all active agents' attention patterns
128
+ 3. For any agent exceeding its threshold, a nomination opportunity is created
129
+
130
+ This single-call pattern ensures that no event is emitted without being evaluated for nominations. It prevents the race condition where an event is emitted but attention scoring happens too late to catch it.
131
+
132
+ The function returns both the emitted event and any nominations that were generated, giving the caller full visibility into what happened.
133
+
134
+ ## Putting It All Together
135
+
136
+ Ambient coordination is not a single feature — it is a system of interconnected capabilities:
137
+
138
+ - **Knowledge streams** split lore into purpose-specific channels
139
+ - **Events** capture every meaningful action in a structured format
140
+ - **Attention** filters events to the right agents
141
+ - **Nominations** let agents contribute without being asked
142
+ - **Data sovereignty** ensures data stays where it belongs
143
+ - **Agent renaissance** gives agents the behavioral vocabulary to participate
144
+ - **Context composition** closes the loop by feeding learnings back into future sessions
145
+
146
+ Each piece is independently useful, but together they create a system that gets smarter with every session — not because any single component is intelligent, but because the loop never breaks.
@@ -0,0 +1,140 @@
1
+ ---
2
+ id: N-para-601-data-sovereignty
3
+ title: Data Sovereignty
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-601
11
+ - four-trust-rings
12
+ - all-data-is
13
+ - data-policyyaml-configures-observation
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 5
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-601.json
21
+ ---
22
+
23
+ ## The Local Brain Principle
24
+
25
+ All data produced during agent work is project-locked by default. This is not a policy choice that requires opt-in — it is the architectural default. No data leaves the project unless the user explicitly configures it to do so. This principle is called the "local brain" — every project has its own self-contained intelligence that never leaks.
26
+
27
+ The reason is trust. When an agent records a learning journal entry about your payment processing logic, that entry should not appear in another user's project. When a work log captures which files were modified, those file paths should not flow to an analytics dashboard without consent. Data sovereignty means the user controls every boundary their data crosses.
28
+
29
+ ## Trust Rings
30
+
31
+ Data classification uses four concentric trust rings, each expanding the boundary of who can see the data:
32
+
33
+ **Ring 1: Project-Locked** — Data never leaves the project directory. Work log entries, event stream, nominations, and team decisions are project-locked by default. Storage lives in `.paradigm/` within the project.
34
+
35
+ **Ring 2: User-Scoped** — Data travels across the user's own projects but not beyond. Learning journal entries are user-scoped — an agent's insights from project A are available when working on project B, but only for the same user. Storage lives in `~/.paradigm/`.
36
+
37
+ **Ring 3: Creator-Upstream** — Anonymized, aggregate data flows to agent creators (for agents installed from a marketplace). Only high-level metrics like task type, outcome, and helpfulness rating — never code, file paths, symbol names, or conversation content. This ring requires explicit opt-in.
38
+
39
+ **Ring 4: Network-Public** — Fully anonymized, aggregated statistics shared publicly. Only `aggregated_task_success_rates` and `anonymized_pattern_frequency`. Requires explicit opt-in. Nothing in this ring can identify a project, user, or agent.
40
+
41
+ The rings are ordered: data at ring 1 can never reach ring 3 without passing through ring 2 first. Each ring expansion requires a policy declaration.
42
+
43
+ ## data-policy.yaml Format
44
+
45
+ The data policy is configured in `.paradigm/data-policy.yaml`:
46
+
47
+ ```yaml
48
+ version: "1.0"
49
+ default_ring: project-locked
50
+
51
+ observation:
52
+ allow:
53
+ - "src/**"
54
+ - ".paradigm/**"
55
+ - "portal.yaml"
56
+ deny:
57
+ - ".env*"
58
+ - "**/*.key"
59
+ - "**/*.pem"
60
+ - "**/secrets/**"
61
+
62
+ streams:
63
+ work_log:
64
+ ring: project-locked
65
+ allow_content: [file_paths, symbol_names, outcome]
66
+ deny_content: [code_snippets, file_contents, diff_content]
67
+ learning_journal:
68
+ ring: user-scoped
69
+ allow_content: [pattern_descriptions, confidence_adjustments, approach_descriptions]
70
+ deny_content: [code_snippets, file_contents, symbol_names_with_context]
71
+ redaction:
72
+ - pattern: "\\b[A-Z_]{2,}_KEY\\b"
73
+ - pattern: "password|secret|token"
74
+ team_decisions:
75
+ ring: project-locked
76
+ allow_content: [rationale, alternatives, symbol_references]
77
+ deny_content: [implementation_details]
78
+
79
+ upstream:
80
+ ring: creator-upstream
81
+ allowed: [task_type, outcome, helpfulness, duration_bucket, error_category]
82
+ denied: [code_of_any_kind, file_paths, symbol_names, conversation_content, user_identity]
83
+
84
+ network:
85
+ ring: network-public
86
+ opt_in: false
87
+ if_opted_in: [aggregated_task_success_rates, anonymized_pattern_frequency]
88
+ ```
89
+
90
+ ## Observation Rules
91
+
92
+ Observation rules control which files agents can observe. The `allow` list defines glob patterns for permitted paths. The `deny` list defines patterns that are always blocked — deny overrides allow.
93
+
94
+ The default denies `.env*`, `*.key`, `*.pem`, and `**/secrets/**`. These patterns catch common secret file locations. The deny list is **additive** when merging user policy over defaults — you can add deny patterns but never remove the built-in ones.
95
+
96
+ ## Stream Content Rules
97
+
98
+ Each knowledge stream has its own content rules defining what categories of content are allowed or denied:
99
+
100
+ **14 content categories:** `file_paths`, `symbol_names`, `symbol_names_with_context`, `outcome`, `pattern_descriptions`, `confidence_adjustments`, `approach_descriptions`, `rationale`, `alternatives`, `symbol_references`, `code_snippets`, `file_contents`, `diff_content`, `implementation_details`, `architectural_decisions`.
101
+
102
+ The work log allows `file_paths` and `symbol_names` (needed for standup context) but denies `code_snippets` (no raw code in work logs). The learning journal allows `pattern_descriptions` (abstract learnings) but denies `symbol_names_with_context` (no project-specific details in the cross-project journal).
103
+
104
+ **Redaction patterns** use regex to scrub sensitive content before it is stored. The default learning journal redaction catches environment variable names (`\b[A-Z_]{2,}_KEY\b`) and common secret terms (`password|secret|token`). Matches are replaced with `[REDACTED]`.
105
+
106
+ ## Per-Agent Overrides
107
+
108
+ The `agent_overrides` section allows per-agent policy customization:
109
+
110
+ ```yaml
111
+ agent_overrides:
112
+ security:
113
+ observation:
114
+ allow: ["src/**", ".paradigm/**", "portal.yaml", ".env.example"]
115
+ learning_journal:
116
+ deny_content: [code_snippets, file_contents, diff_content, implementation_details]
117
+ upstream:
118
+ opt_in: false
119
+ ```
120
+
121
+ This gives the security agent slightly broader observation (it can read `.env.example` to verify it matches the template) while restricting its journal content and disabling upstream feedback.
122
+
123
+ ## Enforcement Boundaries
124
+
125
+ The data policy is enforced at eight boundaries:
126
+
127
+ 1. **event-emission** — Before an event enters the stream, check if the path is observable
128
+ 2. **attention-filtering** — Agents only score events for paths they are allowed to observe
129
+ 3. **work-log-recording** — Content is filtered and redacted before writing to the work log
130
+ 4. **journal-recording** — Content is filtered and redacted before writing to the journal
131
+ 5. **cross-project-transfer** — Journal entries marked `transferable` are checked against ring 2 rules
132
+ 6. **upstream-feedback** — Data flowing to agent creators is checked against ring 3 rules
133
+ 7. **network-aggregation** — Data flowing to the network is checked against ring 4 rules
134
+ 8. **notebook-promotion** — Journal entries promoted to notebook are checked against content rules
135
+
136
+ Every enforcement action is auditable. The `AuditEntry` interface captures who, when, what boundary, what data category, and what action was taken (allowed, filtered, redacted, or blocked).
137
+
138
+ ## The Merge Rule
139
+
140
+ When a user provides a `data-policy.yaml`, it is merged over the `DEFAULT_DATA_POLICY` with a critical rule: **deny lists are additive, never replacing**. If the default denies `.env*` and the user's policy does not mention `.env*`, the deny still applies. The user can add more deny patterns but cannot remove built-in protections. Allow lists, by contrast, can be fully replaced.
@@ -0,0 +1,126 @@
1
+ ---
2
+ id: N-para-601-event-stream
3
+ title: The Event Stream
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-601
11
+ - streamevent-has-12
12
+ - 12-event-types
13
+ - 6-event-sources
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 5
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-601.json
21
+ ---
22
+
23
+ ## How Events Are Produced
24
+
25
+ Every meaningful action in a Paradigm session produces an event. When an agent modifies a file, the post-write hook emits a `file-modified` event. When an MCP tool is called, a `symbol-queried` or `gate-checked` event fires depending on the tool. When compliance issues are detected, a `compliance-violation` event captures the details. These events flow into a shared stream that all agents can observe.
26
+
27
+ The event stream is the nervous system of ambient coordination. Without it, agents are blind to each other's actions. With it, a security agent can notice that a new route was created without a gate, a tester can see that a new component was added without test coverage, and a reviewer can observe that a complex flow was modified without documentation updates.
28
+
29
+ ## StreamEvent Anatomy
30
+
31
+ Every event follows the `StreamEvent` interface with 12 fields:
32
+
33
+ ```typescript
34
+ interface StreamEvent {
35
+ id: string; // Unique ID (e.g., "ev-1710937200000-4821")
36
+ type: EventType; // Classification (12 types)
37
+ source: EventSource; // Origin (6 sources)
38
+ timestamp: string; // ISO 8601
39
+ path?: string; // File path (if applicable)
40
+ symbols?: string[]; // Paradigm symbols referenced
41
+ keywords?: string[]; // Semantic keywords extracted
42
+ context?: string; // Brief context snippet
43
+ agent?: string; // Agent that produced this event
44
+ tool?: string; // MCP tool name (if from tool call)
45
+ severity?: string; // info, warning, error, critical
46
+ data?: Record<string, unknown>; // Structured metadata
47
+ }
48
+ ```
49
+
50
+ **Event IDs** are generated from the current timestamp plus a random 4-digit suffix: `ev-{timestamp}-{rand}`. This ensures uniqueness without coordination.
51
+
52
+ **Event Sources** identify where the event originated:
53
+ - `post-write-hook` — File was written, hook detected the change
54
+ - `mcp-tool-call` — An MCP tool was invoked
55
+ - `stop-hook` — Session end triggered an event
56
+ - `conversation` — Event derived from conversation context
57
+ - `agent-action` — Agent explicitly emitted an event
58
+ - `error` — An error occurred during processing
59
+
60
+ **Event Types** classify what happened. Twelve types cover the full range of project activity:
61
+
62
+ | Type | When It Fires |
63
+ |---|---|
64
+ | `file-modified` | A source file was changed |
65
+ | `symbol-queried` | A symbol was looked up via search/navigate/ripple |
66
+ | `gate-checked` | A gate (^) was evaluated or referenced |
67
+ | `compliance-violation` | A habit, hook, or policy check failed |
68
+ | `concept-mentioned` | A semantic concept appeared in context |
69
+ | `work-completed` | A unit of work finished (pass/fail/partial) |
70
+ | `decision-made` | A team decision was recorded |
71
+ | `error-encountered` | An error was caught during processing |
72
+ | `route-created` | A new API route was added |
73
+ | `gate-added` | A new gate was added to portal.yaml |
74
+ | `flow-modified` | A flow definition was changed |
75
+ | `test-result` | A test suite reported results |
76
+
77
+ ## JSONL Storage
78
+
79
+ Events are stored as append-only JSONL (one JSON object per line) at `.paradigm/events/stream.jsonl`. The append-only format is chosen for performance — writing one line is cheaper than reading, modifying, and rewriting a file.
80
+
81
+ The stream is bounded by `DEFAULT_MAX_EVENTS` (1000). When the file exceeds ~500KB (a rough proxy for 1000 events), the `pruneIfNeeded` function reads the file, keeps only the most recent 1000 lines, and rewrites it. This ensures the stream does not grow unbounded while preserving recent history.
82
+
83
+ Events are also held in a memory buffer (`memoryStream`) for fast access during the current session. The memory buffer is independently bounded to 1000 events. Even if file I/O fails, the memory stream continues to function — file write failure is non-fatal.
84
+
85
+ ## emitEvent
86
+
87
+ The `emitEvent` function is the single entry point for producing events:
88
+
89
+ ```typescript
90
+ emitEvent(rootDir, {
91
+ type: 'file-modified',
92
+ source: 'post-write-hook',
93
+ path: 'src/auth/middleware.ts',
94
+ symbols: ['#auth-middleware', '^authenticated'],
95
+ keywords: ['authentication', 'JWT'],
96
+ context: 'Modified JWT validation logic',
97
+ });
98
+ ```
99
+
100
+ The function auto-generates the `id` and `timestamp`, appends to both the memory buffer and the JSONL file, and prunes if the file is oversized. It returns the complete `StreamEvent` with all fields populated.
101
+
102
+ ## queryEvents
103
+
104
+ The `queryEvents` function reads events from disk (falling back to the memory buffer on read failure) and supports five filters:
105
+
106
+ - `type` — Filter by event type (e.g., `'file-modified'`)
107
+ - `source` — Filter by event source (e.g., `'mcp-tool-call'`)
108
+ - `symbol` — Filter by a specific symbol in the event's `symbols` array
109
+ - `agent` — Filter by the agent that produced the event
110
+ - `since` — Only events after this ISO timestamp
111
+ - `limit` — Maximum number of events to return
112
+
113
+ Results are sorted by timestamp descending (most recent first). This ordering is intentional — in ambient coordination, recent events are almost always more relevant than older ones.
114
+
115
+ ## Event Stream Configuration
116
+
117
+ The `EventStreamConfig` interface allows fine-grained control:
118
+
119
+ - `enabled` — Master switch for ambient coordination (default: true in v5.0 projects)
120
+ - `max_events` — Maximum events retained (default: 1000)
121
+ - `event_ttl_seconds` — Time-to-live for events (default: 3600 = 1 hour)
122
+ - `emit` — Whitelist of event types to produce (if set, only these types fire)
123
+ - `suppress` — Blacklist of event types to silence (overrides emit)
124
+ - `storage` — `'memory'` (in-process only) or `'file'` (JSONL persistence)
125
+
126
+ For projects that do not need ambient coordination, setting `enabled: false` turns off event emission entirely. For projects that need it but want to reduce noise, the `suppress` list can silence high-frequency event types like `symbol-queried` while preserving important ones like `compliance-violation` and `gate-added`.
@@ -0,0 +1,144 @@
1
+ ---
2
+ id: N-para-601-knowledge-streams
3
+ title: Knowledge Streams
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-601
11
+ - three-knowledge-streams
12
+ - work-log-paradigmwork-logdate
13
+ - learning-journal-paradigmagentsidjournal
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 6
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-601.json
21
+ ---
22
+
23
+ ## The Lore Split
24
+
25
+ Paradigm's original lore system stored everything — sessions, decisions, incidents, milestones — in a single stream of date-partitioned YAML entries. This worked well for small projects, but as projects grew, the single stream created problems. A standup bot pulling "what got done this week" had to filter through architectural decisions and incident postmortems. An agent looking for "what did I learn about JWT handling" had to parse session summaries. A new team member searching for "why did we choose Redis" had to wade through hundreds of entries.
26
+
27
+ v5.0 splits lore into three knowledge streams, each with a distinct audience, lifecycle, and storage location.
28
+
29
+ ## Stream 1: Work Log — "What Got Done"
30
+
31
+ The work log is the team-facing record of completed work. It answers the question every standup asks: what did you do, what is left, what is blocking you?
32
+
33
+ **Storage:** `.paradigm/work-log/{date}/` — project-scoped, date-partitioned YAML files, one entry per work unit.
34
+
35
+ **Audience:** The team. Standup bots, sprint boards, and project managers consume work log entries.
36
+
37
+ **Lifecycle:** Ephemeral. Work log entries are relevant for days to weeks. After a sprint ends, they are historical context rather than active reference.
38
+
39
+ **Entry structure (`WorkLogEntry`):**
40
+
41
+ | Field | Required | Description |
42
+ |---|---|---|
43
+ | `id` | yes | Unique ID (e.g., `WL-security-001`) |
44
+ | `agent` | yes | Agent that performed the work |
45
+ | `timestamp` | yes | ISO 8601 timestamp |
46
+ | `summary` | yes | What was done |
47
+ | `outcome` | yes | pass, fail, partial, or blocked |
48
+ | `task_ref` | no | Ticket or issue reference (e.g., `ENG-142`) |
49
+ | `files_modified` | no | List of modified files |
50
+ | `symbols_touched` | no | Paradigm symbols touched |
51
+ | `next_steps` | no | What remains to be done |
52
+ | `blockers` | no | What is blocking progress |
53
+ | `duration_minutes` | no | How long the work took |
54
+ | `commit` | no | Git commit hash |
55
+
56
+ **MCP Tools:**
57
+ - `paradigm_work_log_record` — Record a work log entry. Requires `agent`, `summary`, and `outcome`. Supports optional `task_ref`, `files_modified`, `symbols_touched`, `next_steps`, `blockers`, `duration_minutes`, and `commit`.
58
+ - `paradigm_work_log_search` — Search work log entries by `agent`, `outcome`, `task_ref`, `symbol`, `dateFrom`, `dateTo`. Pass `summary: true` to get an aggregate summary instead of individual entries.
59
+
60
+ ## Stream 2: Learning Journal — "What I Learned"
61
+
62
+ The learning journal is the agent-private record of insights, corrections, and patterns discovered during work. It answers the question: what should I remember for next time?
63
+
64
+ **Storage:** `~/.paradigm/agents/{id}/journal/` — user-scoped, agent-specific. The journal travels with the agent across projects because learning is not project-specific.
65
+
66
+ **Audience:** The agent itself (and optionally other agents if the insight is marked `transferable`).
67
+
68
+ **Lifecycle:** Durable. A pattern discovered today about JWT ordering is relevant months from now. Journal entries persist until explicitly archived.
69
+
70
+ **Entry structure (`JournalEntry`):**
71
+
72
+ | Field | Required | Description |
73
+ |---|---|---|
74
+ | `id` | yes | Unique ID (e.g., `LJ-2026-03-20-001`) |
75
+ | `agent` | yes | Agent who learned this |
76
+ | `timestamp` | yes | ISO 8601 timestamp |
77
+ | `trigger` | yes | What prompted the learning (7 trigger types) |
78
+ | `insight` | yes | The insight itself |
79
+ | `project` | yes | Project where this happened |
80
+ | `transferable` | yes | Whether this applies to other projects |
81
+ | `confidence_before` | no | Agent's confidence before (0.0-1.0) |
82
+ | `confidence_after` | no | Adjusted confidence after (0.0-1.0) |
83
+ | `pattern` | no | Extracted `LearningPattern` (id, applies_when, correct_approach) |
84
+ | `linked_work_log` | no | Work log entry that prompted this learning |
85
+ | `tags` | no | Tags for categorization |
86
+
87
+ Seven journal triggers capture distinct learning moments: `correction_received` (human corrected the approach), `confidence_miss` (agent was confident but wrong), `pattern_discovered` (new reusable pattern found), `debate_loss` (another agent's approach was chosen), `failure_analysis` (something broke and was analyzed), `human_feedback` (direct human assessment), and `self_reflection` (agent proactively recorded an insight).
88
+
89
+ **MCP Tools:**
90
+ - `paradigm_journal_record` — Record a journal entry. Requires `agent`, `trigger`, `insight`, `project`, and `transferable`. Supports optional `confidence_before`, `confidence_after`, `pattern`, `linked_work_log`, and `tags`.
91
+ - `paradigm_journal_search` — Search journal entries by `agent`, `trigger`, `project`, `transferable`, `tag`, `dateFrom`, `dateTo`. Pass `stats: true` (with `agent`) to get aggregate statistics.
92
+
93
+ ## Stream 3: Team Decisions — "What We Decided"
94
+
95
+ Team decisions are the institutional record of choices made, rationale given, and alternatives rejected. They answer the question: why did we do it this way?
96
+
97
+ **Storage:** `.paradigm/decisions/` — project-scoped, not date-partitioned (decisions are referenced by topic, not by when they were made).
98
+
99
+ **Audience:** The entire team — current and future. New team members benefit most from decision records.
100
+
101
+ **Lifecycle:** Institutional. Decisions persist until explicitly superseded or deprecated. A decision made in month one remains authoritative until a newer decision replaces it.
102
+
103
+ **Entry structure (`TeamDecision`):**
104
+
105
+ | Field | Required | Description |
106
+ |---|---|---|
107
+ | `id` | yes | Unique ID (e.g., `TD-2026-03-20-001`) |
108
+ | `title` | yes | Decision title |
109
+ | `timestamp` | yes | ISO 8601 timestamp |
110
+ | `participants` | yes | Who participated (id, role, stance) |
111
+ | `decision` | yes | The decision itself |
112
+ | `rationale` | yes | Why this was chosen |
113
+ | `alternatives_considered` | no | What else was considered and why it was rejected |
114
+ | `symbols_affected` | no | Paradigm symbols affected |
115
+ | `status` | yes | active, proposed, superseded, deprecated, rejected |
116
+ | `tags` | no | Tags for categorization |
117
+
118
+ Participant stances capture the human dynamics: `proposed`, `supported`, `dissented`, `abstained`, `neutral`. Recording dissent is especially important — when a decision is revisited later, knowing who dissented and why saves time.
119
+
120
+ **MCP Tools:**
121
+ - `paradigm_decision_record` — Record a decision. Requires `title`, `decision`, `rationale`, and `participants`. Supports optional `alternatives_considered`, `symbols_affected`, `status`, and `tags`.
122
+ - `paradigm_decision_search` — Search decisions by `status`, `participant`, `symbol`, `tag`, `dateFrom`, `dateTo`. Pass `summary: true` for an aggregate view.
123
+
124
+ ## Auto-Classification and the Companion-Lore Pattern
125
+
126
+ When recording via `paradigm_lore_record`, the `stream` parameter routes the entry to the correct knowledge stream. Setting `stream: 'auto'` triggers auto-classification based on the entry type. The `LORE_TYPE_TO_STREAM` mapping (defined in `packages/paradigm-mcp/src/types/knowledge-streams.ts`) defines how lore types map to streams:
127
+
128
+ - `agent-session` splits into work-log (what was done) and journal (what was learned)
129
+ - `incident` splits across work-log (what happened), journal (what we learned), and decisions (prevention strategy)
130
+ - `review` splits into work-log and journal
131
+ - `human-note` routes to the decisions stream (institutional context)
132
+ - `retro` and `insight` route to journal and decisions (learnings worth preserving)
133
+ - `milestone` routes to the decisions stream
134
+
135
+ Note that the `decision` lore *type* was removed in v6.0 — see PARA 501 — but the `decision` *stream* persists. The stream is fed by `paradigm_decision_record`, not by typed lore entries. The `LORE_TYPE_TO_STREAM` table still contains a residual `'decision': ['decision']` mapping for backward-compat with v1/v2 entries that get migrated to type `insight` on read; new writes never reach that branch.
136
+
137
+ ### The Companion-Lore Pattern (v6.0)
138
+
139
+ When you call `paradigm_decision_record`, two things happen:
140
+
141
+ 1. The canonical decision is written to `.paradigm/decisions/TD-*.yaml` (decisions stream).
142
+ 2. A companion lore entry of type `insight` is auto-written to the lore timeline (journal stream), with a back-reference (`references.decision_id`) to the TD- ID.
143
+
144
+ This split lets the decision stay topic-addressable (search by symbol, status, participant) while the timeline still shows the moment it was made. Project newcomers can follow the timeline forward and see the major calls; researchers can query the decisions stream directly. The companion write is best-effort — a failure to write the companion lore never blocks the decision record.
@@ -0,0 +1,68 @@
1
+ ---
2
+ id: N-para-601-learning-loop
3
+ title: The Learning Loop
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-601
11
+ - six-phase-learning-loop
12
+ - observation-without-adaptation
13
+ - v50-closes-the
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 4
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-601.json
21
+ ---
22
+
23
+ ## Why Observation Without Adaptation Is Waste
24
+
25
+ Most development tools observe extensively but adapt almost never. Your linter sees thousands of issues. Your CI runs hundreds of tests. Your APM collects millions of metrics. All of this observation generates data — but data without a feedback loop is just noise with a storage bill.
26
+
27
+ Consider what happens in a typical AI-assisted session today. An agent modifies 8 files, creates a new service, adds routes to portal.yaml, and records a lore entry. The session ends. A week later, a different agent picks up related work and makes the same architectural mistake the first agent corrected mid-session. Why? Because the correction was never captured in a form that feeds back into future sessions. The observation happened (the lore entry recorded what was done), but the adaptation never occurred (the learning was not injected into the next agent's context).
28
+
29
+ This is the gap that Paradigm v5.0 closes.
30
+
31
+ ## The DO-RECORD-ASSESS-LEARN-ADAPT-DO Cycle
32
+
33
+ The ambient coordination system implements a six-phase loop:
34
+
35
+ **DO** — An agent performs work: modifying files, calling tools, making decisions. Every action produces events in the event stream.
36
+
37
+ **RECORD** — The work is captured in three knowledge streams, each with a different audience and lifecycle. The work log records what got done (for the team). The learning journal records what the agent learned (for itself). Team decisions record what was decided and why (for the institution).
38
+
39
+ **ASSESS** — Events flow through attention filters. Each agent scores every event against its attention patterns — symbol matches, path matches, concept matches, signal matches. Events that exceed an agent's threshold trigger the next phase.
40
+
41
+ **LEARN** — Agents self-nominate contributions based on relevant events. A security agent notices a new route without a gate. A reviewer spots a pattern they have seen fail before. A tester sees a new component without test coverage. These nominations capture agent-specific insights triggered by project activity.
42
+
43
+ **ADAPT** — Learnings feed back into context. Journal insights from past sessions appear in the next session's prompt enrichment. Recent team decisions are surfaced to agents working on related symbols. Pending nominations are included in the active agent's context. The `paradigm_context_compose` tool assembles all of this into a coherent context section.
44
+
45
+ **DO** — The cycle repeats, but now the agent starts with richer context. It knows what was tried before, what the team decided, what the security agent flagged, and what patterns to avoid. Each iteration produces better outcomes because the loop is closed.
46
+
47
+ ## What v5.0 Adds to Close the Loop
48
+
49
+ Before v5.0, Paradigm had the DO and RECORD phases (lore entries, .purpose files, portal.yaml). It had partial ASSESS capability through ripple analysis. But the LEARN and ADAPT phases were manual — a human had to read lore entries and tell the next agent what to watch out for.
50
+
51
+ v5.0 adds four capabilities that close the loop automatically:
52
+
53
+ 1. **Knowledge Streams** — Lore is split into three streams with distinct storage, lifecycles, and audiences, enabling targeted adaptation.
54
+ 2. **Event Stream** — Every tool call and file edit produces a structured event that flows through attention filters, enabling real-time assessment.
55
+ 3. **Attention Scoring & Nominations** — Agents evaluate events against their attention patterns and self-nominate contributions, enabling machine-driven learning.
56
+ 4. **Context Composition** — Journal insights, team decisions, and pending nominations are composed into the next session's context, enabling automatic adaptation.
57
+
58
+ ## Context Engineering: Slim CLAUDE.md + On-Demand Guidance
59
+
60
+ The learning loop requires efficient context management. A 900-line CLAUDE.md that loads every time wastes tokens on content that may not be relevant to the current task. v5.0 implements a context engineering approach:
61
+
62
+ **Slim CLAUDE.md** — The base CLAUDE.md was reduced from ~856 lines to ~150 lines. It contains only the orientation information needed for every session: project overview, symbol system, conventions, commit format, and pointers to on-demand resources.
63
+
64
+ **On-Demand Guidance** — Twelve guidance resources are available via `paradigm://guidance/{topic}`. Topics include logging, portal protocol, MCP workflow, flows, orchestration, workspaces, university, calibration, checkpoints, navigation, component types, and troubleshooting. An agent loads only the guidance it needs for the current task.
65
+
66
+ **Agent Contributions** — Active agents inject their own context sections via `AgentContext.contributions`. A security agent might contribute a section listing recently added gates. A reviewer might contribute a section listing code smells found in the current PR. These contributions compose dynamically based on which agents are active.
67
+
68
+ The result is a context window that contains high-signal, task-relevant content rather than a static wall of instructions. The learning loop feeds relevant history into this context, making each session incrementally smarter than the last.