@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,197 @@
1
+ ---
2
+ id: N-para-701-agent-profiles
3
+ title: 'Lesson 2: Agent Profiles Deep Dive'
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-701
11
+ - the-agent-file
12
+ - personality-style-risk
13
+ - collaboration-graph-defines
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 7
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-701.json
21
+ ---
22
+
23
+ ## The .agent File
24
+
25
+ Every agent's identity lives in a `.agent` file stored at `~/.paradigm/agents/{id}.agent`. This is a YAML file that defines who the agent is: not just what it does, but how it thinks, who it works with, what it watches, and what it has learned. The `.agent` file is the complete specification of an agent's identity.
26
+
27
+ ## Core Identity Fields
28
+
29
+ The top-level fields establish the agent's identity:
30
+
31
+ ```yaml
32
+ id: security
33
+ nickname: null # Optional display name (e.g., "Jinx", "Mika")
34
+ role: Security agent
35
+ description: >-
36
+ Security specialist who audits auth flows, reviews gate implementations,
37
+ and hunts for vulnerabilities. He is the Portal/Gates champion.
38
+ version: 1.0.0
39
+ ```
40
+
41
+ `id` is the machine-readable identifier used in rosters, orchestration plans, and file paths. `nickname` is the optional human-friendly name displayed in attributed responses and Symphony threads (e.g., Mika for designer, Atlas for devops). `role` is a short description of the agent's function. `description` is a detailed paragraph that explains the agent's responsibilities, expertise boundaries, and what it does NOT do.
42
+
43
+ The description is critically important because it is injected into the agent's prompt during orchestration. A vague description produces vague behavior. A precise description like "He flags issues but does NOT implement fixes — that's the Builder's job" creates a clear boundary.
44
+
45
+ ## Personality Configuration
46
+
47
+ The `personality` block defines the agent's behavioral parameters:
48
+
49
+ ```yaml
50
+ personality:
51
+ style: methodical # How the agent approaches work
52
+ risk: conservative # Risk tolerance for decisions
53
+ verbosity: detailed # How much output the agent produces
54
+ ```
55
+
56
+ **Style** options include `rapid` (moves fast, starts immediately), `deliberate` (thinks before acting, maps impact first), `methodical` (follows systematic processes), `analytical` (data-driven, evidence-based), `opinionated` (has strong views, will lead), `confrontational` (challenges everything), `patient` (takes time to understand context), `proactive` (anticipates needs, speaks up unprompted), `strategic` (thinks about long-term implications), and `meticulous` (leaves nothing unchecked).
57
+
58
+ **Risk** values are `conservative` (prefers proven approaches, avoids experimentation), `balanced` (will take calculated risks with evidence), `moderate` (open to new approaches when justified), and `aggressive` (pushes boundaries, challenges the status quo).
59
+
60
+ **Verbosity** values are `concise` (minimal output, just the essentials), `precise` (exact and specific, no filler), `detailed` (thorough explanations with context), and `thorough` (comprehensive coverage with examples and rationale).
61
+
62
+ These values are not decorative. During orchestration, `buildProfileEnrichment()` injects them into the agent's prompt as `**Style:** methodical | **Risk:** conservative | **Verbosity:** detailed`. The LLM uses these parameters to calibrate its response style.
63
+
64
+ ## Collaboration Graph
65
+
66
+ The `collaboration` block defines how the agent works with others:
67
+
68
+ ```yaml
69
+ collaboration:
70
+ stance: advisory # Default relationship to other agents
71
+ pairs_well_with:
72
+ - architect: Security validates the architect's auth model and gate design
73
+ - devops: Atlas handles infra hardening, security handles app-layer auth
74
+ - builder: Security reviews builder's auth code before it ships
75
+ with:
76
+ architect:
77
+ stance: peer # Treat as equal, not subordinate
78
+ can_contradict: true # Allowed to disagree with architect
79
+ builder:
80
+ stance: advisory # Give guidance, not orders
81
+ review_output: true # Review what builder produces
82
+ debate:
83
+ will_challenge: true # Will push back on decisions
84
+ evidence_required: true # Requires evidence to challenge
85
+ escalate_to_human: true # Will ask the human to break ties
86
+ onboarding: >-
87
+ When joining a project, security:
88
+ 1. Reads portal.yaml
89
+ 2. Calls paradigm_gates_for_route on key routes
90
+ 3. Checks Sentinel for auth-related events
91
+ 4. Reviews auth middleware implementations
92
+ 5. Identifies unprotected routes
93
+ ```
94
+
95
+ The `stance` field defines the default relationship: `lead` (drives decisions), `advisory` (gives guidance), `support` (executes direction from leads), `peer` (equal footing), `challenger` (pushes back on everything). The `pairs_well_with` array lists productive agent pairings with explanations — these are surfaced during orchestration planning.
96
+
97
+ The `debate` section controls disagreement behavior. Jinx (advocate) has `will_challenge: true` and `evidence_required: false` — she challenges instinctively. The security agent has `evidence_required: true` — it backs challenges with OWASP references and CVE data. The `onboarding` field is a step-by-step procedure the agent follows when it first encounters a project.
98
+
99
+ ## Expertise Tracking
100
+
101
+ The `expertise` array tracks the agent's confidence on specific symbols:
102
+
103
+ ```yaml
104
+ expertise:
105
+ - symbol: '#portal-gates'
106
+ confidence: 0.95 # 0.0-1.0
107
+ sessions: 12 # Times this agent worked on this symbol
108
+ lastTouch: '2026-03-24T11:30:00.000Z'
109
+ - symbol: '#auth-security'
110
+ confidence: 0.95
111
+ sessions: 8
112
+ lastTouch: '2026-03-24T11:30:00.000Z'
113
+ ```
114
+
115
+ Confidence scores are not static. They adjust automatically based on user verdicts in the session work log: `+0.03` for accepted contributions, `-0.02` for dismissed ones, `-0.01` for revised ones. An agent that consistently gets security reviews accepted will see its `#auth-security` confidence rise over time. An agent whose suggestions are frequently dismissed will see confidence drop.
116
+
117
+ The `sessions` count and `lastTouch` timestamp provide recency context. An agent with 50 sessions on `#payment-service` that last touched it yesterday has stronger expertise than one with 2 sessions from three months ago.
118
+
119
+ ## Attention Patterns
120
+
121
+ The `attention` block defines what the agent notices in the event stream:
122
+
123
+ ```yaml
124
+ attention:
125
+ symbols:
126
+ - ^* # All gate symbols
127
+ - '#*-auth'
128
+ - '#*-middleware'
129
+ paths:
130
+ - auth/**
131
+ - middleware/**
132
+ concepts:
133
+ - JWT
134
+ - RBAC
135
+ - injection
136
+ - CSRF
137
+ signals:
138
+ - type: gate-added
139
+ - type: route-created
140
+ threshold: 0.45
141
+ ```
142
+
143
+ Attention patterns were covered in depth in PARA 601. The key point here is that they are part of the agent profile, not a separate system. The agent's identity (who it is) and its attention (what it notices) are defined in the same file.
144
+
145
+ ## Behaviors
146
+
147
+ The `behaviors` block defines named behavior protocols the agent follows:
148
+
149
+ ```yaml
150
+ behaviors:
151
+ portal-gates-mastery: >-
152
+ Security owns the portal.yaml gate model:
153
+ 1. Every route that checks auth MUST have a corresponding ^gate
154
+ 2. Use paradigm_gates_for_route to check gate coverage
155
+ 3. Gates need prizes: [] (v2 requirement)
156
+ sentinel-security-monitoring: >-
157
+ Security uses Sentinel for threat detection:
158
+ - paradigm_sentinel_events to find auth failures
159
+ - paradigm_sentinel_patterns for security patterns
160
+ security-review-checklist: >-
161
+ Before approving auth-related code:
162
+ 1. Check portal.yaml coverage
163
+ 2. Verify JWT validation
164
+ 3. Check for OWASP Top 10 vulnerabilities
165
+ ```
166
+
167
+ Behaviors are injected into the agent's orchestration prompt. They are named so that other agents and humans can reference them ("use the security-review-checklist behavior"). They define step-by-step procedures that make the agent's actions predictable and auditable.
168
+
169
+ ## Transferable Patterns
170
+
171
+ The `transferable` array contains patterns the agent has learned that apply across projects:
172
+
173
+ ```yaml
174
+ transferable:
175
+ - pattern: gate-coverage-check
176
+ description: >-
177
+ Every new route gets paradigm_gates_for_route called on it.
178
+ No exceptions. If it returns no gates and the route modifies data,
179
+ that's a security violation.
180
+ successRate: 1.0
181
+ sessions: 0
182
+ ```
183
+
184
+ Transferable patterns travel with the agent across projects. When the security agent joins a new project, it brings its `gate-coverage-check` pattern regardless of whether the previous project was a SaaS app or a CLI tool. Patterns with `successRate >= 0.7` are included in prompt enrichment; lower success rate patterns are excluded.
185
+
186
+ ## How Profiles Define WHO the Agent Is
187
+
188
+ The `.agent` file is not a configuration file — it is an identity specification. It answers:
189
+
190
+ - **Who am I?** — id, nickname, role, description, personality
191
+ - **What do I know?** — expertise with confidence scores
192
+ - **What do I notice?** — attention patterns and threshold
193
+ - **How do I work with others?** — collaboration stance, pairings, debate rules
194
+ - **How do I behave?** — named behavior protocols
195
+ - **What have I learned?** — transferable patterns
196
+
197
+ When the orchestrator invokes an agent, `buildProfileEnrichment()` assembles all of these fields into a prompt section that makes the LLM behave as that specific agent. The same base model (e.g., Claude Sonnet) becomes the security agent or the designer based entirely on the profile enrichment injected from the `.agent` file.
@@ -0,0 +1,82 @@
1
+ ---
2
+ id: N-para-701-agent-roster
3
+ title: 'Lesson 1: The Agent Roster'
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-701
11
+ - 54-agents-organized
12
+ - each-agent-has
13
+ - the-orchestrator-selects
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 5
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-701.json
21
+ ---
22
+
23
+ ## 54 Agents, 7 Tiers
24
+
25
+ Paradigm ships with 54 named agents organized into seven functional tiers. Each agent is a narrow specialist with a defined personality, expertise domain, attention patterns, and collaboration graph. The roster is not a menu of interchangeable generalists — it is a team of specialists who are each the best at one thing.
26
+
27
+ The seven tiers group agents by function:
28
+
29
+ **Builders** — Agents that produce code and artifacts. The builder agent writes implementation code. Mika (designer) produces UI/UX designs. Wren (copywriter) writes user-facing text. Ghost (e2e) writes end-to-end tests. The tester writes unit and integration tests. These agents produce output that becomes part of the codebase.
30
+
31
+ **Reviewers** — Agents that evaluate what builders produce. The reviewer checks code quality and Paradigm compliance. Shield (qa) designs test strategy and validates acceptance criteria. Jinx (advocate) is the devil's advocate who stress-tests assumptions and finds edge cases nobody considered. Bolt (performance) reviews for performance regressions.
32
+
33
+ **Strategists** — Agents that plan and decide. The architect designs systems and leads orchestration. North (product) owns the product vision and prioritization. Yuki (pm) manages tickets and tracking. Scout (researcher) conducts competitive analysis and market research. Clause (legal) handles compliance and legal review.
34
+
35
+ **Intelligence** — Agents that gather and analyze information. Sage (analyst) performs data analysis. Beacon (seo) handles search optimization. Lens (content-intel) analyzes content strategy. Oracle (ai) specializes in AI/ML patterns and prompt engineering. Cipher (reverser) reverse-engineers systems and protocols.
36
+
37
+ **Infrastructure** — Agents that manage the platform and deployment. Atlas (devops) owns CI/CD, deployment, and monitoring. Vault (dba) manages databases, migrations, and query optimization. Root (sysadmin) handles system administration. Wire (network) specializes in networking and protocols. Ship (release) manages release coordination.
38
+
39
+ **Meta** — Agents that manage other agents. Loid (forge) designs and builds new agents — she understands the full .agent profile schema and recommends team compositions. Sensei (trainer) trains agents by reviewing their performance and curating notebook entries. The documentor maintains .purpose files and portal.yaml after other agents finish their work. Bridge (mediator) resolves disagreements between agents.
40
+
41
+ **Human Ops** — Agents that support the human directly. Sunday (secretary) is a personal operations agent who tracks goals, schedules, and commitments across all projects. Obi (mentor) provides career guidance. Sheila (educator) creates learning materials for humans. Leila (operations) handles business operations.
42
+
43
+ ## Named Agents Have Personalities
44
+
45
+ Every agent has a unique nickname and personality configuration. Jinx is confrontational and aggressive — her job is to argue against the current approach. Mika is opinionated and precise — she leads design discussions and will challenge decisions. Sunday is proactive and conservative — she watches the human's commitments across all contexts. Atlas is methodical and conservative — he does not take risks with infrastructure.
46
+
47
+ These are not cosmetic names. The personality (style, risk tolerance, verbosity) shapes how the agent behaves during orchestration. A `deliberate` architect thinks carefully before responding. A `rapid` builder moves fast. A `confrontational` advocate pushes back on every assumption.
48
+
49
+ ## How the Orchestrator Picks Agents
50
+
51
+ When `paradigm_orchestrate_inline` runs in plan mode, it evaluates which agents are relevant to the task. The selection process considers:
52
+
53
+ 1. **Task classification** — What kind of work is this? A new feature needs builders, reviewers, and possibly security. A refactor needs the architect and reviewer. An incident needs devops, debugger, and security.
54
+
55
+ 2. **Symbol matching** — Which symbols does the task touch? Each agent has attention patterns (symbols, paths, concepts, signals) that define what they notice. If the task involves `^authenticated` gates, the security agent's symbol pattern `^*` matches. If it touches `src/design/**` files, Mika's path patterns match.
56
+
57
+ 3. **Attention threshold** — Each agent scores events against their attention patterns. Only agents whose relevance score meets their threshold are included. Security has a low threshold (0.45) because missing a security issue is expensive. The builder has a higher threshold (0.75) because it should only be included when directly relevant.
58
+
59
+ 4. **Roster filtering** — If the project has a `roster.yaml`, only agents listed there are considered. A game project does not need SEO or legal agents. A backend API does not need a designer.
60
+
61
+ The orchestrator then stages agents in dependency order: the architect plans first, builders implement, the reviewer and security check, the documentor updates Paradigm files last.
62
+
63
+ ## Why Narrow Specialists Beat Broad Generalists
64
+
65
+ A single "coding agent" that tries to build, review, test, and document produces mediocre results across all dimensions. The specialist model works because:
66
+
67
+ - **Expertise compounds** — The security agent's confidence on `#portal-gates` is 0.95 because that is all it focuses on. A generalist's confidence would be 0.5 across many domains.
68
+ - **Attention is focused** — The security agent watches gate symbols, auth paths, and security concepts. It does not waste attention on typography or test fixtures.
69
+ - **Collaboration is explicit** — The architect pairs with security to validate auth models. The builder pairs with the tester to verify implementation. These pairs are defined in the agent's collaboration graph, not left to chance.
70
+ - **Accountability is clear** — When a security issue ships, the security agent's acceptance rate drops. When a design is inconsistent, Mika's patterns need updating. Each agent owns a specific quality dimension.
71
+
72
+ The full roster provides coverage across code quality, security, performance, accessibility, design, testing, documentation, and business strategy. Most projects activate 15-25 agents depending on the domain. The orchestrator handles routing — the human never manually assigns agents to tasks.
73
+
74
+ | Tier | Count | Example Agents |
75
+ |---|---|---|
76
+ | Builders | ~10 | builder, designer (Mika), copywriter (Wren), tester, e2e (Ghost) |
77
+ | Reviewers | ~6 | reviewer, qa (Shield), advocate (Jinx), performance (Bolt) |
78
+ | Strategists | ~8 | architect, product (North), pm (Yuki), researcher (Scout) |
79
+ | Intelligence | ~7 | analyst (Sage), seo (Beacon), content-intel (Lens), ai (Oracle) |
80
+ | Infrastructure | ~8 | devops (Atlas), dba (Vault), sysadmin (Root), release (Ship) |
81
+ | Meta | ~6 | forge (Loid), trainer (Sensei), documentor, mediator (Bridge) |
82
+ | Human Ops | ~9 | secretary (Sunday), mentor (Obi), educator (Sheila), operations (Leila) |
@@ -0,0 +1,180 @@
1
+ ---
2
+ id: N-para-701-agent-state
3
+ title: 'Lesson 4: Agent State & Continuity'
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-701
11
+ - project-state-at
12
+ - global-state-at
13
+ - buildprofileenrichment-injects-agent
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 6
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-701.json
21
+ ---
22
+
23
+ ## The Continuity Problem
24
+
25
+ Every AI session starts from zero. The model has no memory of previous sessions. If the security agent reviewed 8 files yesterday, identified 3 gate coverage gaps, and deferred 2 items to today — all of that context is lost when the session ends. The next session's security agent starts fresh, potentially re-reviewing the same files and missing the deferred items entirely.
26
+
27
+ Agent state solves this by persisting key information between sessions at two scopes: project-level state (what happened on this specific project) and global state (career statistics across all projects).
28
+
29
+ ## Project State: AgentProjectState
30
+
31
+ Project-scoped state lives at `.paradigm/agent-state/{agent-id}.yaml` and captures what the agent has done on THIS project:
32
+
33
+ ```typescript
34
+ interface AgentProjectState {
35
+ id: string; // Agent ID
36
+ project: string; // Project name
37
+ lastSession: { // Most recent session summary
38
+ date: string; // ISO timestamp
39
+ sessionId: string; // Session identifier
40
+ summary: string; // What was done
41
+ filesReviewed?: string[]; // Files the agent looked at
42
+ symbolsTouched?: string[]; // Symbols the agent worked on
43
+ decisions?: string[]; // Decisions made in the session
44
+ };
45
+ pendingWork: string[]; // Items deferred to next session
46
+ recentPatterns: string[]; // Patterns learned about this project
47
+ sessionsOnProject: number; // Total session count
48
+ lastPurposeUpdate?: string; // When .purpose was last updated
49
+ }
50
+ ```
51
+
52
+ The `lastSession` field is the most valuable for continuity. When the agent is invoked in the next session, `buildProfileEnrichment()` injects this into the prompt:
53
+
54
+ ```markdown
55
+ ## Your Recent Work on This Project
56
+ Last session (3h ago): Reviewed auth middleware, found 2 missing gate
57
+ declarations for POST /api/payments and PUT /api/subscriptions.
58
+ Sessions on this project: 8
59
+ **Pending from last session:**
60
+ - Review the new webhook endpoint for gate coverage
61
+ - Check Sentinel for auth anomalies on the payment routes
62
+ **Project patterns you've learned:**
63
+ - This project uses sliding-window JWT rotation
64
+ - RLS policies follow the tenant-scoped pattern
65
+ ```
66
+
67
+ The agent now has context. It knows what it did last time, what remains unfinished, and what project-specific patterns it has discovered. It does not re-review files it already checked. It picks up the pending items and continues where it left off.
68
+
69
+ ## Pending Work Tracking
70
+
71
+ The `pendingWork` array is a simple but powerful mechanism. When an agent encounters work it cannot complete in the current session, it adds items:
72
+
73
+ ```typescript
74
+ addPendingWork('security', rootDir, [
75
+ 'Review webhook endpoint /api/webhooks/stripe for gate coverage',
76
+ 'Check Sentinel for auth anomalies on payment routes',
77
+ ]);
78
+ ```
79
+
80
+ When the work is completed in a future session:
81
+
82
+ ```typescript
83
+ completePendingWork('security', rootDir, [
84
+ 'Review webhook endpoint /api/webhooks/stripe for gate coverage',
85
+ ]);
86
+ ```
87
+
88
+ Pending items accumulate across sessions until explicitly completed. This creates a persistent to-do list that survives session boundaries. If the security agent defers 3 items across 3 different sessions, all 3 appear in the next session's prompt enrichment.
89
+
90
+ ## Recent Patterns
91
+
92
+ The `recentPatterns` array captures project-specific knowledge:
93
+
94
+ ```typescript
95
+ addProjectPattern('security', rootDir,
96
+ 'This project uses Supabase RLS with tenant-scoped policies'
97
+ );
98
+ ```
99
+
100
+ Patterns are kept to a maximum of 10 (oldest are dropped when new ones are added). These are different from transferable patterns in the `.agent` file — recent patterns are project-specific and do not travel. The security agent learning "this project uses tenant-scoped RLS" is only relevant to this project. The transferable pattern "always check RLS policies on Supabase tables" applies everywhere.
101
+
102
+ ## Global State: GlobalAgentState
103
+
104
+ Global state lives at `~/.paradigm/agents/{agent-id}/state.yaml` and tracks the agent's career across all projects:
105
+
106
+ ```typescript
107
+ interface GlobalAgentState {
108
+ id: string; // Agent ID
109
+ totalSessions: number; // Lifetime session count
110
+ lastActiveProject: string; // Most recent project
111
+ lastActiveDate: string; // ISO timestamp
112
+ projectHistory: Array<{ // Per-project stats
113
+ project: string;
114
+ sessions: number;
115
+ lastActive: string;
116
+ }>;
117
+ }
118
+ ```
119
+
120
+ Global state provides aggregate context: "This agent has worked 47 sessions across 5 projects, most recently on dealoracle 2 hours ago." This is useful for:
121
+
122
+ - **Expertise calibration** — An agent with 47 total sessions has more experience than one with 3.
123
+ - **Project affinity** — An agent with 30 sessions on project A and 2 on project B has deep expertise on A.
124
+ - **Recency** — An agent that was last active 3 months ago may need a full onboarding pass.
125
+
126
+ Global state is updated automatically whenever `recordAgentSession()` is called — it increments `totalSessions`, updates `lastActiveProject` and `lastActiveDate`, and maintains the `projectHistory` array sorted by most recent.
127
+
128
+ ## How State Feeds Into Prompts
129
+
130
+ The `buildProfileEnrichment()` function accepts an optional `agentState` parameter:
131
+
132
+ ```typescript
133
+ buildProfileEnrichment(
134
+ profile,
135
+ relevantSymbols,
136
+ notebookEntries,
137
+ ambientContext,
138
+ agentState: {
139
+ lastSession: { summary: '...', date: '...' },
140
+ pendingWork: ['...'],
141
+ recentPatterns: ['...'],
142
+ sessionsOnProject: 8
143
+ }
144
+ );
145
+ ```
146
+
147
+ The function assembles this into a `## Your Recent Work on This Project` section with:
148
+
149
+ 1. **Last session summary with age** — "Last session (3h ago): Reviewed auth middleware..." The age is computed from the timestamp and displayed as hours or days.
150
+ 2. **Session count** — "Sessions on this project: 8" (context for experience level)
151
+ 3. **Pending work** — Up to 5 items from the pending work list.
152
+ 4. **Project patterns** — Up to 5 recently learned patterns.
153
+
154
+ This section typically consumes 100-300 tokens depending on the amount of pending work and patterns. It is one of the highest-value sections in the prompt because it provides the specific, recent context that enables continuity.
155
+
156
+ ## Recording Sessions
157
+
158
+ At the end of an orchestration pass, the orchestrator calls `recordAgentSession()` for each agent that participated:
159
+
160
+ ```typescript
161
+ recordAgentSession('security', rootDir, {
162
+ sessionId: 'sess-2026-03-24-001',
163
+ summary: 'Reviewed 5 new routes for gate coverage. Found 2 gaps.',
164
+ filesReviewed: ['src/routes/payments.ts', 'src/routes/webhooks.ts'],
165
+ symbolsTouched: ['^authenticated', '^payment-owner', '#payment-service'],
166
+ decisions: ['Recommended adding ^payment-owner gate for refund endpoints'],
167
+ pendingWork: ['Review webhook endpoint for Stripe signature verification'],
168
+ patterns: ['This project stores Stripe webhook secrets in Supabase vault'],
169
+ });
170
+ ```
171
+
172
+ This writes the project state file, increments the session count, and also updates global state. The next time the security agent is invoked on this project, it will see this session's summary and pending work in its prompt.
173
+
174
+ ## Loading All States
175
+
176
+ The `loadAllAgentStates()` function reads all agent state files for a project, returning an array of `AgentProjectState` objects. This is useful for:
177
+
178
+ - **Dashboard views** — Conductor's agent roster view shows each agent's last session and pending work count.
179
+ - **Orchestration planning** — The orchestrator can check which agents have pending work on the current project and prioritize their inclusion.
180
+ - **Stale detection** — If an agent's last session was months ago, the orchestrator may trigger a fresh onboarding pass.
@@ -0,0 +1,188 @@
1
+ ---
2
+ id: N-para-701-learning-feedback-loop
3
+ title: 'Lesson 9: The Learning Feedback Loop'
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-701
11
+ - session-work-log
12
+ - auto-expertise-adjustment-003
13
+ - teacher-model-runs
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 6
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-701.json
21
+ ---
22
+
23
+ ## The Full Loop: DO-RECORD-ASSESS-LEARN-ADAPT-DO
24
+
25
+ PARA 601 introduced the six-phase learning loop. In the context of the agent system, this loop operates at the agent level: each agent does work, records its contributions, receives verdicts, learns from the feedback, and adapts its behavior for the next session. The agent system provides the concrete mechanisms that make each phase work.
26
+
27
+ ## Phase 1: DO — Agent Work
28
+
29
+ Agents perform work during orchestration. The builder writes code. The security agent reviews gates. The designer proposes UI patterns. Each contribution is captured in the session work log as an `agent-contribution` entry:
30
+
31
+ ```typescript
32
+ interface SessionWorkEntry {
33
+ timestamp: string;
34
+ type: 'agent-contribution' | 'user-verdict' | 'decision';
35
+ agent?: string;
36
+ contribution?: string;
37
+ attribution?: string;
38
+ symbols?: string[];
39
+ }
40
+ ```
41
+
42
+ The session work log is stored at `.paradigm/events/session-log.jsonl` as append-only JSONL, bounded to 200 entries per session. Unlike breadcrumbs (which are recovery-focused with a 50-entry limit), the session work log captures rich context specifically for the learning pass.
43
+
44
+ ## Phase 2: RECORD — Verdict Capture
45
+
46
+ When a human accepts, dismisses, or revises an agent's contribution, the verdict is recorded:
47
+
48
+ ```typescript
49
+ {
50
+ type: 'user-verdict',
51
+ agent: 'security',
52
+ nominationId: 'nom-2026-03-24-001',
53
+ verdict: 'accepted' | 'dismissed' | 'revised' | 'deferred',
54
+ reason: 'Gate coverage recommendation was accurate',
55
+ symbols: ['^authenticated', '#payment-service'],
56
+ revisionDelta?: '...', // What the human changed (for revised)
57
+ }
58
+ ```
59
+
60
+ Four verdict types capture the full range of human feedback:
61
+
62
+ - **accepted** — The contribution was correct and applied as-is.
63
+ - **dismissed** — The contribution was wrong or irrelevant.
64
+ - **revised** — The contribution was partially correct; the human modified it. The `revisionDelta` captures what changed.
65
+ - **deferred** — The contribution may be valid but is not relevant now.
66
+
67
+ Each verdict is linked to the agent and the symbols involved, enabling per-symbol confidence tracking.
68
+
69
+ ## Phase 3: ASSESS — Auto-Expertise Adjustment
70
+
71
+ When a verdict is recorded, the session work log automatically adjusts the agent's expertise confidence:
72
+
73
+ ```typescript
74
+ const delta = entry.verdict === 'accepted' ? 0.03
75
+ : entry.verdict === 'dismissed' ? -0.02
76
+ : entry.verdict === 'revised' ? -0.01
77
+ : 0; // deferred = no change
78
+ ```
79
+
80
+ This adjustment is asymmetric by design:
81
+
82
+ - **+0.03 for accepted** — Positive reinforcement is slightly stronger than negative. This prevents a single bad review from tanking an otherwise reliable agent.
83
+ - **-0.02 for dismissed** — A dismissed contribution means the agent was wrong. Confidence should decrease, but not catastrophically.
84
+ - **-0.01 for revised** — A revised contribution was partially right. The penalty is smaller because the agent was in the right direction.
85
+ - **0 for deferred** — Deferral says nothing about correctness, only timing. No confidence change.
86
+
87
+ The adjustment is applied per-symbol. If the security agent's gate recommendation for `^authenticated` was accepted, its confidence on `^authenticated` increases by 0.03. Its confidence on unrelated symbols is unchanged.
88
+
89
+ ```typescript
90
+ for (const symbol of entry.symbols!) {
91
+ const exp = profile.expertise!.find(e => e.symbol === symbol);
92
+ if (exp) {
93
+ exp.confidence = Math.max(0, Math.min(1, exp.confidence + delta));
94
+ exp.sessions = (exp.sessions || 0) + 1;
95
+ exp.lastTouch = new Date().toISOString();
96
+ }
97
+ }
98
+ ```
99
+
100
+ Confidence is clamped to `[0.0, 1.0]`. Sessions are incremented. The `lastTouch` timestamp is updated. This all happens as a fire-and-forget side effect of recording the verdict — the human never manually adjusts expertise scores.
101
+
102
+ ## Phase 4: LEARN — Teacher Model and Journal Entries
103
+
104
+ At the end of an orchestration session, the Teacher Model runs a postflight learning pass. It reads the session work log, identifies patterns in the verdicts, and writes journal entries for each agent that participated:
105
+
106
+ ```yaml
107
+ # Learning journal entry written by Teacher Model
108
+ id: LJ-2026-03-24-001
109
+ agent: security
110
+ timestamp: '2026-03-24T16:00:00.000Z'
111
+ trigger: human_feedback
112
+ insight: >-
113
+ Security review of webhook endpoints should check for Stripe
114
+ signature verification, not just gate coverage. The human revised
115
+ the gate recommendation to include webhook-specific checks.
116
+ project: dealoracle
117
+ transferable: true
118
+ confidence_before: 0.85
119
+ confidence_after: 0.84
120
+ pattern:
121
+ id: webhook-stripe-signature
122
+ applies_when: Reviewing webhook endpoints that receive Stripe events
123
+ correct_approach: Check for webhook signature verification in addition to gate coverage
124
+ ```
125
+
126
+ The Teacher Model synthesizes verdict patterns into actionable journal entries. A single "revised" verdict becomes an insight about what the agent should do differently. The `trigger: human_feedback` records that this learning came from a human correction, not self-reflection.
127
+
128
+ ## Phase 5: ADAPT — Journal Promotion to Notebooks
129
+
130
+ Journal entries that prove valuable over time are promoted into notebook entries by Sensei (trainer). The promotion pipeline:
131
+
132
+ ```
133
+ Journal entry (agent-private) → Sensei reviews →
134
+ promoteFromLore() → Notebook entry (reusable snippet) →
135
+ buildProfileEnrichment() → Injected into future prompts
136
+ ```
137
+
138
+ The key distinction: journal entries are raw learnings ("I was wrong about X because Y"). Notebook entries are distilled knowledge ("When doing X, use this pattern"). Sensei's job is to transform the former into the latter.
139
+
140
+ Not every journal entry becomes a notebook entry. Sensei evaluates:
141
+ - Is the insight transferable to other projects?
142
+ - Is it actionable (specific enough to apply)?
143
+ - Has the same insight appeared in multiple sessions (pattern confirmation)?
144
+ - Is the confidence high enough to be reliable?
145
+
146
+ ## Phase 6: The Nomination Engine
147
+
148
+ The nomination engine connects the learning loop to real-time project activity. As events flow through the event stream, each active agent scores them against their attention patterns:
149
+
150
+ ```
151
+ Event (file-modified, gate-added, etc.)
152
+
153
+ scoreEventForAgent(event, agentId, attention)
154
+
155
+ AttentionScore { score, shouldNominate, breakdown }
156
+
157
+ If shouldNominate → Create nomination
158
+
159
+ Nomination surfaced in orchestration or paradigm_ambient_nominations
160
+ ```
161
+
162
+ The nomination engine is the adaptive component: as an agent's attention patterns evolve (new concepts, adjusted thresholds), its nominations change. As its expertise confidence adjusts, its contributions become more or less influential. The system adapts based on empirical performance, not fixed rules.
163
+
164
+ ## The Complete Cycle
165
+
166
+ Putting all six phases together for a single agent:
167
+
168
+ ```
169
+ 1. DO: Security agent reviews webhook endpoint, flags missing gate
170
+ 2. RECORD: Human accepts the gate recommendation → verdict: accepted
171
+ 3. ASSESS: Security confidence on ^authenticated: 0.85 → 0.88 (+0.03)
172
+ 4. LEARN: Teacher Model writes journal entry about webhook gate patterns
173
+ 5. ADAPT: Sensei promotes journal → notebook entry for webhook security
174
+ 6. DO: Next session, security agent starts with webhook pattern in
175
+ its prompt via buildProfileEnrichment(). It applies the pattern
176
+ without needing to rediscover it.
177
+ ```
178
+
179
+ Each iteration through the loop makes the agent incrementally better. After 10 sessions with consistent feedback, the security agent's webhook review pattern is battle-tested, high-confidence, and automatically injected into every relevant orchestration. The human no longer needs to remind the agent about webhook-specific checks — the learning loop closed.
180
+
181
+ ## What Makes This Different
182
+
183
+ Most AI systems have observation without adaptation. They log what happened but do not feed it back. Paradigm's agent system closes the loop through four mechanisms:
184
+
185
+ 1. **Per-symbol expertise tracking** — Confidence adjusts based on verdicts, not manual scoring
186
+ 2. **Asymmetric reinforcement** — +0.03/-0.02/-0.01 prevents a single bad session from destroying confidence
187
+ 3. **Teacher Model postflight** — Journal entries are written automatically, not relying on agents to self-reflect
188
+ 4. **Notebook promotion** — Insights become reusable patterns via Sensei, surfaced through buildProfileEnrichment()