@a-company/paradigm 5.38.0 → 6.0.4

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 (355) hide show
  1. package/dist/{accept-orchestration-OATWIRHP.js → accept-orchestration-TIXUQQGR.js} +1 -1
  2. package/dist/add-UOR4INIV.js +8 -0
  3. package/dist/agent-MB3H5EZA.js +33 -0
  4. package/dist/{agent-loader-RIVI6QPP.js → agent-loader-VGBPL3TH.js} +1 -1
  5. package/dist/{agent-loader-RJRVO5GQ.js → agent-loader-W3RQJVW7.js} +1 -1
  6. package/dist/{agents-suggest-HYTFMQD3.js → agents-suggest-IKY6VD2R.js} +1 -1
  7. package/dist/{ambient-WTLYUAQM.js → ambient-AI42BOM5.js} +12 -12
  8. package/dist/{ambient-76YMUA5Q.js → ambient-FNNFB4AP.js} +1 -1
  9. package/dist/{assess-UFPYEJKP.js → assess-63WXHWJV.js} +1 -1
  10. package/dist/authority-FA3HLEOA.js +2 -0
  11. package/dist/{calibration-OLJYB5HN.js → calibration-BDHGYJOK.js} +1 -1
  12. package/dist/chunk-23T6UG73.js +605 -0
  13. package/dist/{chunk-4L7665QV.js → chunk-2AU5L333.js} +1 -1
  14. package/dist/{chunk-BOYQAMGC.js → chunk-4N56FRNE.js} +1 -1
  15. package/dist/{chunk-5QOCKWK5.js → chunk-4PSD5R7N.js} +2 -2
  16. package/dist/{chunk-MQIG6SMF.js → chunk-6QXBXZF6.js} +1 -1
  17. package/dist/{chunk-ORDKEGII.js → chunk-AMLD7IYC.js} +1 -1
  18. package/dist/{chunk-3DZK54RU.js → chunk-DBEWOKD6.js} +32 -7
  19. package/dist/{chunk-AGFPVSX5.js → chunk-F6E3HW45.js} +1 -1
  20. package/dist/{chunk-X3U3IGYT.js → chunk-GD4F2HC6.js} +2 -2
  21. package/dist/chunk-GRZQIKST.js +2 -0
  22. package/dist/{chunk-HOBHJPTL.js → chunk-IOVHF4SR.js} +1 -1
  23. package/dist/{chunk-RLCH7DXQ.js → chunk-K7X3Z3GL.js} +1 -1
  24. package/dist/{chunk-74SGKSRQ.js → chunk-KAFQA7HV.js} +2 -2
  25. package/dist/{chunk-NEJ4ZLCY.js → chunk-LAYBUKMB.js} +1 -1
  26. package/dist/{chunk-4VKSEOXZ.js → chunk-LPBCQM5Y.js} +3 -3
  27. package/dist/chunk-Q527BPUF.js +2 -0
  28. package/dist/{chunk-AO7ZSRME.js → chunk-TQOT2LBO.js} +2 -2
  29. package/dist/{chunk-3XGNXXCT.js → chunk-UZ5H7K6Q.js} +1 -1
  30. package/dist/chunk-VIG5LSGZ.js +2 -0
  31. package/dist/chunk-VNIX5KBT.js +3 -0
  32. package/dist/chunk-WXF5VFB4.js +111 -0
  33. package/dist/chunk-XQLO5URP.js +11 -0
  34. package/dist/{chunk-DOCDDDTD.js → chunk-YNDPSWOE.js} +5 -5
  35. package/dist/chunk-Z5QW6USC.js +2 -0
  36. package/dist/{compliance-D7GD6ZYC.js → compliance-J3VOV445.js} +1 -1
  37. package/dist/config-schema-FLHRVZMI.js +2 -0
  38. package/dist/{context-audit-XRPT3OU2.js → context-audit-JVCA6GSV.js} +1 -1
  39. package/dist/{cursorrules-U5O4G5T4.js → cursorrules-ZXPXPZ3P.js} +1 -1
  40. package/dist/decision-loader-HELL2AMX.js +2 -0
  41. package/dist/{delete-P5VULXR4.js → delete-2C6ALLYY.js} +1 -1
  42. package/dist/{diff-YGHBIJY5.js → diff-75MABOSL.js} +1 -1
  43. package/dist/{dist-KGRCLBJP-2QAPFYNF.js → dist-GQ42YS5N-4HIJZVBB.js} +10 -10
  44. package/dist/{docs-USDAF26F.js → docs-TSAAS4W3.js} +1 -1
  45. package/dist/doctor-L5XZENCF.js +2 -0
  46. package/dist/{edit-GUU3HBVW.js → edit-P3MDAZLU.js} +1 -1
  47. package/dist/{flow-FVZR3YJ4.js → flow-BGXOVE2V.js} +1 -1
  48. package/dist/{hooks-TFMMMB2H.js → hooks-KUEE5KMM.js} +1 -1
  49. package/dist/index.js +6 -6
  50. package/dist/init-M44SO65G.js +2 -0
  51. package/dist/{init-XYB62Q3X.js → init-V4KSEKPK.js} +1 -1
  52. package/dist/{list-YKIQNKGB.js → list-2XIWUEMA.js} +1 -1
  53. package/dist/list-CFHINXIS.js +12 -0
  54. package/dist/lore-loader-D2ISOASW.js +2 -0
  55. package/dist/lore-loader-PXFKMKAN.js +2 -0
  56. package/dist/mcp.js +4 -4
  57. package/dist/metrics-UESGUHTA.js +2 -0
  58. package/dist/{migrate-Z5UQN57G.js → migrate-ZPNYDNM4.js} +1 -1
  59. package/dist/migrate-assessments-YSITX7KM.js +4 -0
  60. package/dist/migrate-decisions-NPLQOEEH.js +6 -0
  61. package/dist/migrate-plsat-EM2ACIQ3.js +6 -0
  62. package/dist/migration-notices-BHLEYC4T.js +4 -0
  63. package/dist/{nomination-engine-EALA5MGI.js → nomination-engine-NCLTGMAK.js} +1 -1
  64. package/dist/{notebook-loader-PXNRBBXD.js → notebook-loader-3J2OFMS3.js} +1 -1
  65. package/dist/{orchestrate-M5PBZBJQ.js → orchestrate-K4KBTBYK.js} +1 -1
  66. package/dist/{platform-server-DNAMH4YI.js → platform-server-ANOALDPL.js} +1 -1
  67. package/dist/{portal-check-ZMLVBIGW.js → portal-check-DV2VSJ5E.js} +1 -1
  68. package/dist/portal-compliance-JONQ4SOP.js +2 -0
  69. package/dist/{probe-3FTG6LYO.js → probe-5HAXULAD.js} +1 -1
  70. package/dist/{providers-AWA7WLLM.js → providers-TBPOE4DI.js} +1 -1
  71. package/dist/quiz-WYIZJG5K.js +10 -0
  72. package/dist/{record-YXPB34MY.js → record-N3VNYYKJ.js} +1 -1
  73. package/dist/registry-OUTA3DXW.js +20 -0
  74. package/dist/reindex-IZCD2JGD.js +2 -0
  75. package/dist/{retag-N5XF3KXP.js → retag-72R2OSZV.js} +1 -1
  76. package/dist/{review-77QI6VOC.js → review-2INNWLTW.js} +1 -1
  77. package/dist/{sentinel-HYAZ3CO5.js → sentinel-EFPEX246.js} +1 -1
  78. package/dist/{sentinel-bridge-VR357PKL.js → sentinel-bridge-UR2MKARY.js} +1 -1
  79. package/dist/{serve-U47GULB6.js → serve-3FMUWW5K.js} +1 -1
  80. package/dist/serve-OQYUO7CR.js +12 -0
  81. package/dist/{server-4YNUIK4W.js → server-4D77LCST.js} +1 -1
  82. package/dist/server-FGUL2FWQ.js +7 -0
  83. package/dist/session-tracker-HHNY6J4I.js +2 -0
  84. package/dist/{session-work-log-ZP45TREI.js → session-work-log-MEJ33TYD.js} +1 -1
  85. package/dist/{session-work-log-PAKXOFGL.js → session-work-log-ZVVJGO7X.js} +1 -1
  86. package/dist/{setup-FEWSYS3Y.js → setup-ZSEC72BS.js} +1 -1
  87. package/dist/shift-WGMZGWOC.js +60 -0
  88. package/dist/{show-PJ5LFLIL.js → show-JH7LJ5MT.js} +1 -1
  89. package/dist/show-WVHAL4VU.js +7 -0
  90. package/dist/{spawn-M5BAV252.js → spawn-KKDDR6UR.js} +1 -1
  91. package/dist/status-S7Z5FVIE.js +6 -0
  92. package/dist/{summary-PYTEIJ4U.js → summary-WLI3NF4G.js} +2 -2
  93. package/dist/{sweep-HU74OPVW.js → sweep-7TZFN5NS.js} +1 -1
  94. package/dist/sync-55U6QPIA.js +2 -0
  95. package/dist/{sync-llms-7CAI74QL.js → sync-llms-GF7DDQDI.js} +1 -1
  96. package/dist/{team-PDK64JXI.js → team-2LGZQRP4.js} +1 -1
  97. package/dist/{timeline-K3ZFKJ3R.js → timeline-RK7O2SCM.js} +1 -1
  98. package/dist/tools-4RRFTU5H.js +2 -0
  99. package/dist/university-content/notes/N-para-001-build-something.md +126 -0
  100. package/dist/university-content/notes/N-para-001-meet-the-team.md +85 -0
  101. package/dist/university-content/notes/N-para-001-shift-setup.md +74 -0
  102. package/dist/university-content/notes/N-para-101-component-types.md +99 -0
  103. package/dist/university-content/notes/N-para-101-first-steps.md +134 -0
  104. package/dist/university-content/notes/N-para-101-five-symbols.md +128 -0
  105. package/dist/university-content/notes/N-para-101-paradigm-logger.md +89 -0
  106. package/dist/university-content/notes/N-para-101-portal-yaml.md +112 -0
  107. package/dist/university-content/notes/N-para-101-project-structure.md +143 -0
  108. package/dist/university-content/notes/N-para-101-purpose-files.md +121 -0
  109. package/dist/university-content/notes/N-para-101-tags-and-classification.md +93 -0
  110. package/dist/university-content/notes/N-para-101-welcome.md +51 -0
  111. package/dist/university-content/notes/N-para-201-architecture-review.md +175 -0
  112. package/dist/university-content/notes/N-para-201-aspect-graph.md +79 -0
  113. package/dist/university-content/notes/N-para-201-aspects-and-anchors.md +112 -0
  114. package/dist/university-content/notes/N-para-201-component-patterns.md +138 -0
  115. package/dist/university-content/notes/N-para-201-cross-cutting-concerns.md +145 -0
  116. package/dist/university-content/notes/N-para-201-disciplines.md +187 -0
  117. package/dist/university-content/notes/N-para-201-flows-deep-dive.md +119 -0
  118. package/dist/university-content/notes/N-para-201-gates-deep-dive.md +165 -0
  119. package/dist/university-content/notes/N-para-201-portal-protocol.md +133 -0
  120. package/dist/university-content/notes/N-para-201-signal-patterns.md +159 -0
  121. package/dist/university-content/notes/N-para-201-symbol-naming.md +149 -0
  122. package/dist/university-content/notes/N-para-301-context-management.md +53 -0
  123. package/dist/university-content/notes/N-para-301-decisions.md +99 -0
  124. package/dist/university-content/notes/N-para-301-doctor-and-validation.md +70 -0
  125. package/dist/university-content/notes/N-para-301-enforcement-levels.md +102 -0
  126. package/dist/university-content/notes/N-para-301-fragility-tracking.md +50 -0
  127. package/dist/university-content/notes/N-para-301-history-system.md +42 -0
  128. package/dist/university-content/notes/N-para-301-navigation-system.md +55 -0
  129. package/dist/university-content/notes/N-para-301-operations-review.md +55 -0
  130. package/dist/university-content/notes/N-para-301-paradigm-shift.md +93 -0
  131. package/dist/university-content/notes/N-para-301-protocols.md +113 -0
  132. package/dist/university-content/notes/N-para-301-ripple-analysis.md +53 -0
  133. package/dist/university-content/notes/N-para-301-sentinel-observability.md +87 -0
  134. package/dist/university-content/notes/N-para-301-sync-and-maintenance.md +57 -0
  135. package/dist/university-content/notes/N-para-301-wisdom-system.md +89 -0
  136. package/dist/university-content/notes/N-para-401-agent-identity.md +99 -0
  137. package/dist/university-content/notes/N-para-401-agent-interop.md +87 -0
  138. package/dist/university-content/notes/N-para-401-agent-roles.md +107 -0
  139. package/dist/university-content/notes/N-para-401-commit-conventions.md +82 -0
  140. package/dist/university-content/notes/N-para-401-mastery-review.md +71 -0
  141. package/dist/university-content/notes/N-para-401-mcp-tools-overview.md +102 -0
  142. package/dist/university-content/notes/N-para-401-multi-agent-coordination.md +80 -0
  143. package/dist/university-content/notes/N-para-401-notebooks-permissions.md +66 -0
  144. package/dist/university-content/notes/N-para-401-orchestration-workflow.md +101 -0
  145. package/dist/university-content/notes/N-para-401-pm-governance.md +71 -0
  146. package/dist/university-content/notes/N-para-401-provider-cascade.md +75 -0
  147. package/dist/university-content/notes/N-para-401-quick-check.md +95 -0
  148. package/dist/university-content/notes/N-para-451-agent-routing.md +117 -0
  149. package/dist/university-content/notes/N-para-451-archetypes-vs-instances.md +82 -0
  150. package/dist/university-content/notes/N-para-451-identity-layers.md +76 -0
  151. package/dist/university-content/notes/N-para-451-orchestration-modes.md +85 -0
  152. package/dist/university-content/notes/N-para-451-paradigm-shift.md +95 -0
  153. package/dist/university-content/notes/N-para-451-partners-primitive.md +107 -0
  154. package/dist/university-content/notes/N-para-451-roster-management.md +132 -0
  155. package/dist/university-content/notes/N-para-451-roster-reference.md +106 -0
  156. package/dist/university-content/notes/N-para-451-the-team-pattern.md +87 -0
  157. package/dist/university-content/notes/N-para-451-tiers.md +81 -0
  158. package/dist/university-content/notes/N-para-451-welcome.md +55 -0
  159. package/dist/university-content/notes/N-para-451-what-is-an-agent.md +73 -0
  160. package/dist/university-content/notes/N-para-501-advanced-workflows.md +122 -0
  161. package/dist/university-content/notes/N-para-501-aspect-graph-advanced.md +195 -0
  162. package/dist/university-content/notes/N-para-501-aspect-graph-internals.md +97 -0
  163. package/dist/university-content/notes/N-para-501-assessment-loops.md +116 -0
  164. package/dist/university-content/notes/N-para-501-conductor-workspace.md +77 -0
  165. package/dist/university-content/notes/N-para-501-habits-practice.md +164 -0
  166. package/dist/university-content/notes/N-para-501-hook-enforcement.md +100 -0
  167. package/dist/university-content/notes/N-para-501-lore-system.md +155 -0
  168. package/dist/university-content/notes/N-para-501-platform-agent-ui.md +108 -0
  169. package/dist/university-content/notes/N-para-501-review-compliance.md +72 -0
  170. package/dist/university-content/notes/N-para-501-sentinel-deep-dive.md +173 -0
  171. package/dist/university-content/notes/N-para-501-session-intelligence.md +104 -0
  172. package/dist/university-content/notes/N-para-501-symphony-a-mail.md +120 -0
  173. package/dist/university-content/notes/N-para-501-symphony-networking.md +119 -0
  174. package/dist/university-content/notes/N-para-501-task-management.md +100 -0
  175. package/dist/university-content/notes/N-para-601-agent-renaissance.md +121 -0
  176. package/dist/university-content/notes/N-para-601-attention-scoring.md +129 -0
  177. package/dist/university-content/notes/N-para-601-context-composition.md +146 -0
  178. package/dist/university-content/notes/N-para-601-data-sovereignty.md +140 -0
  179. package/dist/university-content/notes/N-para-601-event-stream.md +126 -0
  180. package/dist/university-content/notes/N-para-601-knowledge-streams.md +144 -0
  181. package/dist/university-content/notes/N-para-601-learning-loop.md +68 -0
  182. package/dist/university-content/notes/N-para-601-maestro-team-collab.md +136 -0
  183. package/dist/university-content/notes/N-para-601-nominations-debates.md +115 -0
  184. package/dist/university-content/notes/N-para-701-agent-notebooks.md +131 -0
  185. package/dist/university-content/notes/N-para-701-agent-pods-nevrland.md +182 -0
  186. package/dist/university-content/notes/N-para-701-agent-profiles.md +197 -0
  187. package/dist/university-content/notes/N-para-701-agent-roster.md +82 -0
  188. package/dist/university-content/notes/N-para-701-agent-state.md +180 -0
  189. package/dist/university-content/notes/N-para-701-learning-feedback-loop.md +188 -0
  190. package/dist/university-content/notes/N-para-701-model-tier-resolution.md +204 -0
  191. package/dist/university-content/notes/N-para-701-orchestration-enforcement.md +169 -0
  192. package/dist/university-content/notes/N-para-701-per-project-rosters.md +198 -0
  193. package/dist/university-content/notes/N-para-701-symphony-visibility.md +142 -0
  194. package/dist/university-content/paths/LP-para-001.yaml +29 -0
  195. package/dist/university-content/paths/LP-para-101.yaml +59 -0
  196. package/dist/university-content/paths/LP-para-201.yaml +69 -0
  197. package/dist/university-content/paths/LP-para-301.yaml +84 -0
  198. package/dist/university-content/paths/LP-para-401.yaml +74 -0
  199. package/dist/university-content/paths/LP-para-451.yaml +69 -0
  200. package/dist/university-content/paths/LP-para-501.yaml +89 -0
  201. package/dist/university-content/paths/LP-para-601.yaml +59 -0
  202. package/dist/university-content/paths/LP-para-701.yaml +64 -0
  203. package/dist/university-content/quizzes/Q-para-001-build-something.yaml +46 -0
  204. package/dist/university-content/quizzes/Q-para-001-meet-the-team.yaml +46 -0
  205. package/dist/university-content/quizzes/Q-para-001-shift-setup.yaml +46 -0
  206. package/dist/university-content/quizzes/Q-para-101-component-types.yaml +46 -0
  207. package/dist/university-content/quizzes/Q-para-101-first-steps.yaml +56 -0
  208. package/dist/university-content/quizzes/Q-para-101-five-symbols.yaml +66 -0
  209. package/dist/university-content/quizzes/Q-para-101-paradigm-logger.yaml +56 -0
  210. package/dist/university-content/quizzes/Q-para-101-portal-yaml.yaml +56 -0
  211. package/dist/university-content/quizzes/Q-para-101-project-structure.yaml +66 -0
  212. package/dist/university-content/quizzes/Q-para-101-purpose-files.yaml +56 -0
  213. package/dist/university-content/quizzes/Q-para-101-tags-and-classification.yaml +56 -0
  214. package/dist/university-content/quizzes/Q-para-101-welcome.yaml +56 -0
  215. package/dist/university-content/quizzes/Q-para-201-architecture-review.yaml +66 -0
  216. package/dist/university-content/quizzes/Q-para-201-aspect-graph.yaml +46 -0
  217. package/dist/university-content/quizzes/Q-para-201-aspects-and-anchors.yaml +56 -0
  218. package/dist/university-content/quizzes/Q-para-201-component-patterns.yaml +56 -0
  219. package/dist/university-content/quizzes/Q-para-201-cross-cutting-concerns.yaml +56 -0
  220. package/dist/university-content/quizzes/Q-para-201-disciplines.yaml +66 -0
  221. package/dist/university-content/quizzes/Q-para-201-flows-deep-dive.yaml +66 -0
  222. package/dist/university-content/quizzes/Q-para-201-gates-deep-dive.yaml +66 -0
  223. package/dist/university-content/quizzes/Q-para-201-portal-protocol.yaml +56 -0
  224. package/dist/university-content/quizzes/Q-para-201-signal-patterns.yaml +56 -0
  225. package/dist/university-content/quizzes/Q-para-201-symbol-naming.yaml +66 -0
  226. package/dist/university-content/quizzes/Q-para-301-context-management.yaml +56 -0
  227. package/dist/university-content/quizzes/Q-para-301-decisions.yaml +76 -0
  228. package/dist/university-content/quizzes/Q-para-301-doctor-and-validation.yaml +66 -0
  229. package/dist/university-content/quizzes/Q-para-301-enforcement-levels.yaml +46 -0
  230. package/dist/university-content/quizzes/Q-para-301-fragility-tracking.yaml +46 -0
  231. package/dist/university-content/quizzes/Q-para-301-history-system.yaml +56 -0
  232. package/dist/university-content/quizzes/Q-para-301-navigation-system.yaml +56 -0
  233. package/dist/university-content/quizzes/Q-para-301-operations-review.yaml +66 -0
  234. package/dist/university-content/quizzes/Q-para-301-paradigm-shift.yaml +46 -0
  235. package/dist/university-content/quizzes/Q-para-301-protocols.yaml +56 -0
  236. package/dist/university-content/quizzes/Q-para-301-ripple-analysis.yaml +56 -0
  237. package/dist/university-content/quizzes/Q-para-301-sentinel-observability.yaml +46 -0
  238. package/dist/university-content/quizzes/Q-para-301-sync-and-maintenance.yaml +46 -0
  239. package/dist/university-content/quizzes/Q-para-301-wisdom-system.yaml +56 -0
  240. package/dist/university-content/quizzes/Q-para-401-agent-identity.yaml +66 -0
  241. package/dist/university-content/quizzes/Q-para-401-agent-interop.yaml +46 -0
  242. package/dist/university-content/quizzes/Q-para-401-agent-roles.yaml +56 -0
  243. package/dist/university-content/quizzes/Q-para-401-commit-conventions.yaml +56 -0
  244. package/dist/university-content/quizzes/Q-para-401-mastery-review.yaml +66 -0
  245. package/dist/university-content/quizzes/Q-para-401-mcp-tools-overview.yaml +66 -0
  246. package/dist/university-content/quizzes/Q-para-401-multi-agent-coordination.yaml +76 -0
  247. package/dist/university-content/quizzes/Q-para-401-notebooks-permissions.yaml +61 -0
  248. package/dist/university-content/quizzes/Q-para-401-orchestration-workflow.yaml +66 -0
  249. package/dist/university-content/quizzes/Q-para-401-pm-governance.yaml +66 -0
  250. package/dist/university-content/quizzes/Q-para-401-provider-cascade.yaml +56 -0
  251. package/dist/university-content/quizzes/Q-para-401-quick-check.yaml +46 -0
  252. package/dist/university-content/quizzes/Q-para-451-foundations.yaml +154 -0
  253. package/dist/university-content/quizzes/Q-para-451-when-to-invoke.yaml +182 -0
  254. package/dist/university-content/quizzes/Q-para-501-advanced-workflows.yaml +66 -0
  255. package/dist/university-content/quizzes/Q-para-501-aspect-graph-advanced.yaml +66 -0
  256. package/dist/university-content/quizzes/Q-para-501-aspect-graph-internals.yaml +66 -0
  257. package/dist/university-content/quizzes/Q-para-501-assessment-loops.yaml +46 -0
  258. package/dist/university-content/quizzes/Q-para-501-conductor-workspace.yaml +46 -0
  259. package/dist/university-content/quizzes/Q-para-501-habits-practice.yaml +56 -0
  260. package/dist/university-content/quizzes/Q-para-501-hook-enforcement.yaml +66 -0
  261. package/dist/university-content/quizzes/Q-para-501-lore-system.yaml +66 -0
  262. package/dist/university-content/quizzes/Q-para-501-platform-agent-ui.yaml +66 -0
  263. package/dist/university-content/quizzes/Q-para-501-review-compliance.yaml +61 -0
  264. package/dist/university-content/quizzes/Q-para-501-sentinel-deep-dive.yaml +86 -0
  265. package/dist/university-content/quizzes/Q-para-501-session-intelligence.yaml +66 -0
  266. package/dist/university-content/quizzes/Q-para-501-symphony-a-mail.yaml +66 -0
  267. package/dist/university-content/quizzes/Q-para-501-symphony-networking.yaml +66 -0
  268. package/dist/university-content/quizzes/Q-para-501-task-management.yaml +46 -0
  269. package/dist/university-content/quizzes/Q-para-601-agent-renaissance.yaml +66 -0
  270. package/dist/university-content/quizzes/Q-para-601-attention-scoring.yaml +56 -0
  271. package/dist/university-content/quizzes/Q-para-601-context-composition.yaml +66 -0
  272. package/dist/university-content/quizzes/Q-para-601-data-sovereignty.yaml +56 -0
  273. package/dist/university-content/quizzes/Q-para-601-event-stream.yaml +66 -0
  274. package/dist/university-content/quizzes/Q-para-601-knowledge-streams.yaml +66 -0
  275. package/dist/university-content/quizzes/Q-para-601-learning-loop.yaml +56 -0
  276. package/dist/university-content/quizzes/Q-para-601-maestro-team-collab.yaml +86 -0
  277. package/dist/university-content/quizzes/Q-para-601-nominations-debates.yaml +66 -0
  278. package/dist/university-content/quizzes/Q-para-701-agent-notebooks.yaml +66 -0
  279. package/dist/university-content/quizzes/Q-para-701-agent-pods-nevrland.yaml +66 -0
  280. package/dist/university-content/quizzes/Q-para-701-agent-profiles.yaml +66 -0
  281. package/dist/university-content/quizzes/Q-para-701-agent-roster.yaml +66 -0
  282. package/dist/university-content/quizzes/Q-para-701-agent-state.yaml +66 -0
  283. package/dist/university-content/quizzes/Q-para-701-learning-feedback-loop.yaml +66 -0
  284. package/dist/university-content/quizzes/Q-para-701-model-tier-resolution.yaml +66 -0
  285. package/dist/university-content/quizzes/Q-para-701-orchestration-enforcement.yaml +66 -0
  286. package/dist/university-content/quizzes/Q-para-701-per-project-rosters.yaml +66 -0
  287. package/dist/university-content/quizzes/Q-para-701-symphony-visibility.yaml +66 -0
  288. package/dist/university-content/quizzes/Q-plsat-v2.yaml +904 -0
  289. package/dist/university-content/quizzes/Q-plsat-v3.yaml +2909 -0
  290. package/dist/university-content/reference.json +2 -2
  291. package/dist/university-ui/assets/{index-CecQrfSn.js → index-nNgzO1il.js} +2 -2
  292. package/dist/university-ui/assets/{index-CecQrfSn.js.map → index-nNgzO1il.js.map} +1 -1
  293. package/dist/university-ui/index.html +1 -1
  294. package/dist/{upgrade-GX56QE3C.js → upgrade-NKN63VTY.js} +2 -2
  295. package/dist/validate-XUQZTF3H.js +9 -0
  296. package/dist/{watch-YCODNIET.js → watch-25GJHQYT.js} +1 -1
  297. package/lore-ui/dist/assets/{index-Bk-K0qgN.js → index-DKhNxgtW.js} +10 -10
  298. package/lore-ui/dist/index.html +1 -1
  299. package/package.json +2 -2
  300. package/platform-ui/dist/assets/{AmbientSection-BYjt75R1.js → AmbientSection-CwatqcBD.js} +1 -1
  301. package/platform-ui/dist/assets/{CanvasSection-rKvA_vZj.js → CanvasSection-dFAthehN.js} +1 -1
  302. package/platform-ui/dist/assets/{DocsSection-CI9K73M-.js → DocsSection-BZ2SFJBZ.js} +1 -1
  303. package/platform-ui/dist/assets/{GitSection-DSGj_c6S.js → GitSection-MNNYU1tO.js} +1 -1
  304. package/platform-ui/dist/assets/{GraphSection-CawN7pC5.js → GraphSection-COYjb4Pt.js} +1 -1
  305. package/platform-ui/dist/assets/LoreSection-B0hUbfsJ.js +1 -0
  306. package/platform-ui/dist/assets/{SentinelSection-DNgoYMH0.js → SentinelSection-BCxW1DCp.js} +1 -1
  307. package/platform-ui/dist/assets/{SymphonySection-C0zfcqv3.js → SymphonySection-BsucZRqy.js} +1 -1
  308. package/platform-ui/dist/assets/{TeamSection-Bzd3Dt9Q.js → TeamSection-C0QNTudW.js} +1 -1
  309. package/platform-ui/dist/assets/{UniversitySection-tBr62R0S.js → UniversitySection-DN1-g9pw.js} +1 -1
  310. package/platform-ui/dist/assets/{index-BaOmyn11.js → index-DwUT8pju.js} +2 -2
  311. package/platform-ui/dist/index.html +1 -1
  312. package/dist/add-P76GEMGF.js +0 -8
  313. package/dist/agent-X6I2YWOB.js +0 -33
  314. package/dist/chunk-JQKKVAAN.js +0 -2
  315. package/dist/chunk-NQ47TA6C.js +0 -111
  316. package/dist/chunk-ODVKPZZ4.js +0 -2
  317. package/dist/chunk-Q2J542ST.js +0 -2
  318. package/dist/chunk-RBLK34IA.js +0 -11
  319. package/dist/chunk-RN4VE6P3.js +0 -521
  320. package/dist/chunk-WS2N27RX.js +0 -3
  321. package/dist/config-schema-GUQY2QN7.js +0 -2
  322. package/dist/decision-loader-2XPZE4EZ.js +0 -2
  323. package/dist/doctor-WMVULMQD.js +0 -2
  324. package/dist/list-5IUGP3ZB.js +0 -7
  325. package/dist/lore-loader-RVQI5GXL.js +0 -2
  326. package/dist/lore-loader-XY5MZRR2.js +0 -2
  327. package/dist/migrate-assessments-GEI5WMI2.js +0 -4
  328. package/dist/portal-compliance-6YR27IQU.js +0 -2
  329. package/dist/quiz-FE5UGAY2.js +0 -10
  330. package/dist/registry-KOOKFUWD.js +0 -20
  331. package/dist/reindex-I6LPAKCC.js +0 -2
  332. package/dist/serve-OY6XYL7F.js +0 -12
  333. package/dist/server-2MNROHF6.js +0 -7
  334. package/dist/session-tracker-MWJAJA6Z.js +0 -2
  335. package/dist/shift-PC6C7NUX.js +0 -60
  336. package/dist/show-BOAVWZPZ.js +0 -7
  337. package/dist/status-A37ECYNJ.js +0 -6
  338. package/dist/sync-DLUBV5HQ.js +0 -2
  339. package/dist/tools-5ITPEPSV.js +0 -2
  340. package/dist/university-content/courses/.purpose +0 -492
  341. package/dist/university-content/courses/para-001.json +0 -166
  342. package/dist/university-content/courses/para-101.json +0 -615
  343. package/dist/university-content/courses/para-201.json +0 -794
  344. package/dist/university-content/courses/para-301.json +0 -830
  345. package/dist/university-content/courses/para-401.json +0 -868
  346. package/dist/university-content/courses/para-501.json +0 -1166
  347. package/dist/university-content/courses/para-601.json +0 -719
  348. package/dist/university-content/courses/para-701.json +0 -807
  349. package/dist/university-content/plsat/.purpose +0 -162
  350. package/dist/university-content/plsat/v2.0.json +0 -760
  351. package/dist/university-content/plsat/v3.0.json +0 -3453
  352. package/dist/validate-C6SMKGYD.js +0 -9
  353. package/platform-ui/dist/assets/LoreSection-oO5dCe6O.js +0 -1
  354. /package/dist/{chunk-BV5PRPLB.js → chunk-HXGYVS2N.js} +0 -0
  355. /package/templates/paradigm/specs/{scan.md → probe.md} +0 -0
@@ -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()
@@ -0,0 +1,204 @@
1
+ ---
2
+ id: N-para-701-model-tier-resolution
3
+ title: 'Lesson 6: Model Tier Resolution'
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-701
11
+ - three-capability-tiers
12
+ - model-resolution-config-block
13
+ - five-level-resolution-cascade
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
+ ## The Platform Portability Problem
24
+
25
+ Early Paradigm agent profiles specified `defaultModel: opus | sonnet | haiku` — Anthropic-specific model names hardcoded into each agent's configuration. This created four problems:
26
+
27
+ 1. **Platform lock-in** — These model names do not exist in Cursor, Windsurf, Copilot, or other IDEs. An agent profile designed for Claude Code breaks everywhere else.
28
+ 2. **Plan limitations** — Not every user has access to Opus. A developer on a Sonnet-only plan cannot use agents that request Opus without manual profile editing.
29
+ 3. **Provider assumptions** — The model names assume Anthropic. Users who want to use GPT-4o, Gemini, or local models through Ollama have no path.
30
+ 4. **Maintenance burden** — Model names were hardcoded in the orchestrator as `DEFAULT_MODELS`. Every time Anthropic ships a new model, someone has to update agent profiles.
31
+
32
+ ## The Solution: Capability Tiers
33
+
34
+ Model tier resolution replaces specific model names with abstract **capability tiers** that describe what the agent needs, not which model to use:
35
+
36
+ | Tier | Capability | Use Cases |
37
+ |---|---|---|
38
+ | `tier-1` (reasoning) | Complex analysis, multi-step planning | Architect, security audit, system design |
39
+ | `tier-2` (balanced) | General coding, review, design | Reviewer, designer, most agent work |
40
+ | `tier-3` (fast) | Simple tasks, documentation, bulk ops | Builder, tester, documentor |
41
+
42
+ Agent profiles now specify `modelTier` instead of `defaultModel`:
43
+
44
+ ```yaml
45
+ # Before (platform-locked)
46
+ defaultModel: opus
47
+
48
+ # After (platform-agnostic)
49
+ modelTier: tier-1
50
+ ```
51
+
52
+ The orchestrator maps tier requests to available models through a resolution table in the project configuration.
53
+
54
+ ## The model-resolution Config Block
55
+
56
+ The `model-resolution` block in `.paradigm/config.yaml` maps tiers to actual model identifiers:
57
+
58
+ ```yaml
59
+ # .paradigm/config.yaml
60
+ model-resolution:
61
+ tier-1: claude-opus-4-6 # Best reasoning available
62
+ tier-2: claude-sonnet-4-6 # Balanced
63
+ tier-3: claude-haiku-4-5 # Fast/cheap
64
+ ```
65
+
66
+ This is the single configuration point where model choices live. Changing all agent models is a 3-line edit. Different environments ship different defaults:
67
+
68
+ ```yaml
69
+ # Claude Code (full Anthropic access)
70
+ model-resolution:
71
+ tier-1: claude-opus-4-6
72
+ tier-2: claude-sonnet-4-6
73
+ tier-3: claude-haiku-4-5
74
+
75
+ # Cursor (may not have Opus access)
76
+ model-resolution:
77
+ tier-1: claude-sonnet-4-6
78
+ tier-2: claude-sonnet-4-6
79
+ tier-3: claude-haiku-4-5
80
+
81
+ # OpenAI-only environment
82
+ model-resolution:
83
+ tier-1: gpt-4o
84
+ tier-2: gpt-4o-mini
85
+ tier-3: gpt-4o-mini
86
+
87
+ # Self-hosted / Ollama
88
+ model-resolution:
89
+ tier-1: llama-3.1-70b
90
+ tier-2: llama-3.1-8b
91
+ tier-3: llama-3.1-8b
92
+
93
+ # Budget-conscious
94
+ model-resolution:
95
+ tier-1: claude-sonnet-4-6
96
+ tier-2: claude-sonnet-4-6
97
+ tier-3: claude-sonnet-4-6
98
+ ```
99
+
100
+ The budget-conscious configuration demonstrates the power of tiers: you can run the full 54-agent orchestration system with Sonnet for everything by mapping all three tiers to the same model. The agents still have different personalities, expertise, and behaviors — the model tier only affects the underlying LLM capability.
101
+
102
+ ## Resolution Order
103
+
104
+ When the orchestrator needs a model for an agent, it resolves through a five-level cascade:
105
+
106
+ 1. **Agent profile** — `modelTier` field (what the agent requests)
107
+ 2. **Project config** — `.paradigm/config.yaml` `model-resolution` block (project override)
108
+ 3. **Global config** — `~/.paradigm/config.yaml` `model-resolution` block (user preference)
109
+ 4. **IDE detection** — Auto-detect available models from environment variables (`CLAUDE_CODE`, `CURSOR_SESSION`, `WINDSURF_SESSION`)
110
+ 5. **Fallback** — Default to tier-2 (balanced) with the best available model
111
+
112
+ ```typescript
113
+ function resolveModel(tier: ModelTier, config: ParadigmConfig): string {
114
+ return config.modelResolution?.[tier] ?? DEFAULTS[tier];
115
+ }
116
+ ```
117
+
118
+ The cascade ensures that agent preferences are respected when possible, project-level overrides take precedence over global preferences, and there is always a working fallback even if nothing is configured.
119
+
120
+ ## Environment Detection
121
+
122
+ The system auto-detects the IDE environment to set sensible defaults:
123
+
124
+ ```typescript
125
+ function detectEnvironment(): ModelResolution {
126
+ if (process.env.CLAUDE_CODE) {
127
+ return {
128
+ 'tier-1': 'claude-opus-4-6',
129
+ 'tier-2': 'claude-sonnet-4-6',
130
+ 'tier-3': 'claude-haiku-4-5'
131
+ };
132
+ }
133
+ if (process.env.CURSOR_SESSION) {
134
+ return {
135
+ 'tier-1': 'claude-sonnet-4-6',
136
+ 'tier-2': 'claude-sonnet-4-6',
137
+ 'tier-3': 'claude-haiku-4-5'
138
+ };
139
+ }
140
+ // Fallback: everything is tier-2
141
+ return {
142
+ 'tier-1': 'claude-sonnet-4-6',
143
+ 'tier-2': 'claude-sonnet-4-6',
144
+ 'tier-3': 'claude-sonnet-4-6'
145
+ };
146
+ }
147
+ ```
148
+
149
+ Claude Code users get the full tier spread (Opus/Sonnet/Haiku). Cursor users get Sonnet for tier-1 because Opus may not be available in Cursor's model selection. Unknown environments get Sonnet for everything as a safe fallback.
150
+
151
+ ## Default Tier Assignments
152
+
153
+ The orchestrator assigns default tiers to standard agent roles:
154
+
155
+ ```typescript
156
+ const DEFAULT_TIERS: Record<string, ModelTier> = {
157
+ architect: 'tier-1', // Complex planning and design
158
+ security: 'tier-1', // Critical analysis, cannot miss vulnerabilities
159
+ reviewer: 'tier-2', // Balanced evaluation
160
+ builder: 'tier-3', // Fast implementation
161
+ tester: 'tier-3', // Fast test writing
162
+ documentor: 'tier-3', // Fast file maintenance
163
+ };
164
+ ```
165
+
166
+ Architect and security get tier-1 because their work requires deep reasoning (system design, vulnerability analysis). Builder, tester, and documentor get tier-3 because their work is more mechanical (implement this spec, write this test, update this .purpose file). Reviewer gets tier-2 as a balanced middle ground.
167
+
168
+ These defaults can be overridden per-agent in the `.agent` file (`modelTier: tier-2`) or per-project in config.yaml.
169
+
170
+ ## Cost Estimation
171
+
172
+ The orchestrator uses tier cost multipliers for budget estimation:
173
+
174
+ ```typescript
175
+ const TIER_COST_MULTIPLIER = {
176
+ 'tier-1': 3.0, // ~$15/MTok for Opus
177
+ 'tier-2': 1.0, // ~$3/MTok for Sonnet (baseline)
178
+ 'tier-3': 0.25, // ~$0.80/MTok for Haiku
179
+ };
180
+ ```
181
+
182
+ The orchestration plan output includes cost estimates: "Estimated cost: $0.12 (tier-1: architect, tier-2: reviewer, tier-3: builder+documentor)". This transparency lets the human approve or modify the plan before execution.
183
+
184
+ ## Backward Compatibility
185
+
186
+ The migration path preserves existing profiles:
187
+
188
+ ```yaml
189
+ # Agent profile with both fields (transitional)
190
+ defaultModel: opus # Old field (deprecated, still read)
191
+ modelTier: tier-1 # New field (preferred)
192
+ ```
193
+
194
+ The resolution logic checks `modelTier` first. If only `defaultModel` exists, it maps: `opus` to `tier-1`, `sonnet` to `tier-2`, `haiku` to `tier-3`. This ensures existing agent profiles continue working without modification.
195
+
196
+ ## What This Enables
197
+
198
+ Model tier resolution unlocks five capabilities:
199
+
200
+ - **Budget control** — Map all tiers to Sonnet and run the full orchestration at Sonnet cost.
201
+ - **Platform portability** — Same agents work in Claude Code, Cursor, Windsurf, and Copilot.
202
+ - **Provider flexibility** — Swap to OpenAI, Gemini, or local models by changing 3 lines in config.
203
+ - **Graceful degradation** — If the tier-1 model is unavailable, fall back to tier-2 automatically.
204
+ - **Team consistency** — The entire team shares one `model-resolution` config block, not per-agent model names.