@a-company/paradigm 5.37.11 → 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 (362) hide show
  1. package/dist/{accept-orchestration-SBZVK3H4.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/{aggregate-W66DM3GA.js → aggregate-A5S5MTCC.js} +1 -1
  6. package/dist/{ambient-76YMUA5Q.js → ambient-BE3SQXNN.js} +1 -1
  7. package/dist/{ambient-WTLYUAQM.js → ambient-NVKQCW2A.js} +12 -12
  8. package/dist/{assess-UFPYEJKP.js → assess-63WXHWJV.js} +1 -1
  9. package/dist/{beacon-5QVYV5DF.js → beacon-QVUD3MGP.js} +1 -1
  10. package/dist/{calibration-OLJYB5HN.js → calibration-BDHGYJOK.js} +1 -1
  11. package/dist/{chunk-SI6SV76D.js → chunk-3DZK54RU.js} +72 -19
  12. package/dist/{chunk-CHVQNRRT.js → chunk-4PSD5R7N.js} +2 -2
  13. package/dist/chunk-6SKSV5B2.js +24 -0
  14. package/dist/{chunk-KFNHCQ4R.js → chunk-FEYOQMZ5.js} +1 -1
  15. package/dist/{chunk-NEJ4ZLCY.js → chunk-GAFKOFAV.js} +1 -1
  16. package/dist/chunk-GRZQIKST.js +2 -0
  17. package/dist/{chunk-RLCH7DXQ.js → chunk-K7X3Z3GL.js} +1 -1
  18. package/dist/chunk-LPBCQM5Y.js +6 -0
  19. package/dist/{chunk-T6IDXUUA.js → chunk-LWAIVOSF.js} +1 -1
  20. package/dist/{chunk-74SGKSRQ.js → chunk-M2HKWR25.js} +1 -1
  21. package/dist/{chunk-BOYQAMGC.js → chunk-M3PPXJU4.js} +1 -1
  22. package/dist/chunk-PHEX6LU4.js +111 -0
  23. package/dist/chunk-Q527BPUF.js +2 -0
  24. package/dist/chunk-R5ECMBIV.js +11 -0
  25. package/dist/{chunk-X3U3IGYT.js → chunk-TBWWFRL5.js} +1 -1
  26. package/dist/{chunk-MQIG6SMF.js → chunk-TNVWGPCE.js} +1 -1
  27. package/dist/{chunk-SUU6M4JH.js → chunk-TOYQ2QCB.js} +1 -1
  28. package/dist/chunk-TZDYIPVU.js +521 -0
  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-AGFPVSX5.js → chunk-VXIIVMTM.js} +1 -1
  33. package/dist/{chunk-ORDKEGII.js → chunk-WESTEMIM.js} +1 -1
  34. package/dist/{chunk-LBQBWIEX.js → chunk-Y4P4SGZV.js} +1 -1
  35. package/dist/{chunk-DOCDDDTD.js → chunk-YNDPSWOE.js} +5 -5
  36. package/dist/chunk-Z5QW6USC.js +2 -0
  37. package/dist/chunk-ZJQY5PPP.js +7 -0
  38. package/dist/{commands-LMUD5L6R.js → commands-ANRJNG2W.js} +1 -1
  39. package/dist/compliance-BNFWQPKM.js +6 -0
  40. package/dist/config-schema-FLHRVZMI.js +2 -0
  41. package/dist/{constellation-CG7C4WFE.js → constellation-NWLXYATA.js} +1 -1
  42. package/dist/{context-audit-XRPT3OU2.js → context-audit-JVCA6GSV.js} +1 -1
  43. package/dist/{cost-IDNVMAEV.js → cost-24UZSS2P.js} +1 -1
  44. package/dist/{cursorrules-U5O4G5T4.js → cursorrules-ZXPXPZ3P.js} +1 -1
  45. package/dist/decision-loader-HELL2AMX.js +2 -0
  46. package/dist/{delete-P5VULXR4.js → delete-2C6ALLYY.js} +1 -1
  47. package/dist/{diff-JVEYCXUC.js → diff-MF55KQZH.js} +1 -1
  48. package/dist/{dist-KGRCLBJP-2QAPFYNF.js → dist-GQ42YS5N-4HIJZVBB.js} +10 -10
  49. package/dist/dist-JZZJLVMR.js +2 -0
  50. package/dist/{dist-3ZCH25SG.js → dist-OG6MM4VY.js} +1 -1
  51. package/dist/dist-SE67SOXB.js +2 -0
  52. package/dist/{docs-USDAF26F.js → docs-O37YLLRN.js} +1 -1
  53. package/dist/doctor-IG5XM4C4.js +2 -0
  54. package/dist/{edit-GUU3HBVW.js → edit-P3MDAZLU.js} +1 -1
  55. package/dist/{flow-POQP27WA.js → flow-BGXOVE2V.js} +1 -1
  56. package/dist/{hooks-IG2GOAHP.js → hooks-TFMMMB2H.js} +1 -1
  57. package/dist/index.js +6 -6
  58. package/dist/init-M44SO65G.js +2 -0
  59. package/dist/init-V4KSEKPK.js +2 -0
  60. package/dist/{integrity-UYDOOJDP.js → integrity-ROO3G43N.js} +1 -1
  61. package/dist/{list-YKIQNKGB.js → list-2XIWUEMA.js} +1 -1
  62. package/dist/list-CFHINXIS.js +12 -0
  63. package/dist/lore-loader-D2ISOASW.js +2 -0
  64. package/dist/lore-loader-PXFKMKAN.js +2 -0
  65. package/dist/mcp.js +19 -11
  66. package/dist/metrics-UESGUHTA.js +2 -0
  67. package/dist/{migrate-IBDE7VK4.js → migrate-Z5UQN57G.js} +1 -1
  68. package/dist/migrate-assessments-YSITX7KM.js +4 -0
  69. package/dist/migrate-decisions-NPLQOEEH.js +6 -0
  70. package/dist/migrate-plsat-EM2ACIQ3.js +6 -0
  71. package/dist/{nomination-engine-EALA5MGI.js → nomination-engine-QPZJH6XO.js} +1 -1
  72. package/dist/{notebook-loader-PXNRBBXD.js → notebook-loader-3J2OFMS3.js} +1 -1
  73. package/dist/{orchestrate-RCAMBOIB.js → orchestrate-RID7HHHH.js} +1 -1
  74. package/dist/{platform-server-DNAMH4YI.js → platform-server-UD45NTGV.js} +1 -1
  75. package/dist/portal-check-DV2VSJ5E.js +8 -0
  76. package/dist/{portal-compliance-4MG5F2GI.js → portal-compliance-JONQ4SOP.js} +1 -1
  77. package/dist/{probe-B22G2JKF.js → probe-5HAXULAD.js} +1 -1
  78. package/dist/{providers-AWA7WLLM.js → providers-4PXMWA7V.js} +1 -1
  79. package/dist/quiz-WYIZJG5K.js +10 -0
  80. package/dist/{record-YXPB34MY.js → record-N3VNYYKJ.js} +1 -1
  81. package/dist/reindex-FWPD2VGM.js +2 -0
  82. package/dist/{retag-N5XF3KXP.js → retag-72R2OSZV.js} +1 -1
  83. package/dist/{review-77QI6VOC.js → review-2INNWLTW.js} +1 -1
  84. package/dist/{review-6UAH6V3R.js → review-VMSX2PKI.js} +1 -1
  85. package/dist/{ripple-ZGDITCGB.js → ripple-FNZI47SH.js} +1 -1
  86. package/dist/{sentinel-HYAZ3CO5.js → sentinel-EFPEX246.js} +1 -1
  87. package/dist/{sentinel-bridge-VR357PKL.js → sentinel-bridge-UR2MKARY.js} +1 -1
  88. package/dist/sentinel.js +1 -1
  89. package/dist/{serve-U47GULB6.js → serve-MO35XIZE.js} +1 -1
  90. package/dist/serve-OQYUO7CR.js +12 -0
  91. package/dist/{server-4YNUIK4W.js → server-4D77LCST.js} +1 -1
  92. package/dist/server-FGUL2FWQ.js +7 -0
  93. package/dist/session-tracker-KGORN6B5.js +2 -0
  94. package/dist/{session-work-log-PAKXOFGL.js → session-work-log-4IEVE4KK.js} +1 -1
  95. package/dist/{session-work-log-ZP45TREI.js → session-work-log-EE4UIZ33.js} +1 -1
  96. package/dist/{setup-3F5IK7MO.js → setup-ZSEC72BS.js} +2 -2
  97. package/dist/{shift-FDADESC4.js → shift-TVNY2CQF.js} +6 -6
  98. package/dist/{show-PJ5LFLIL.js → show-JH7LJ5MT.js} +1 -1
  99. package/dist/show-WVHAL4VU.js +7 -0
  100. package/dist/{snapshot-L2G56RPL.js → snapshot-3IYB67D4.js} +1 -1
  101. package/dist/{spawn-M5BAV252.js → spawn-UH5RENSE.js} +1 -1
  102. package/dist/{status-77M3SDIF.js → status-DB3KNLW3.js} +1 -1
  103. package/dist/status-S7Z5FVIE.js +6 -0
  104. package/dist/{summary-LXLHFRN7.js → summary-WLI3NF4G.js} +2 -2
  105. package/dist/{sweep-HU74OPVW.js → sweep-7TZFN5NS.js} +1 -1
  106. package/dist/sync-55U6QPIA.js +2 -0
  107. package/dist/{sync-llms-7CAI74QL.js → sync-llms-GF7DDQDI.js} +1 -1
  108. package/dist/team-MGT66HZQ.js +2 -0
  109. package/dist/{test-BQJMS4Y2.js → test-WLEPZQFC.js} +1 -1
  110. package/dist/{timeline-K3ZFKJ3R.js → timeline-RK7O2SCM.js} +1 -1
  111. package/dist/tools-QJHAVYI6.js +2 -0
  112. package/dist/university-content/notes/N-para-001-build-something.md +126 -0
  113. package/dist/university-content/notes/N-para-001-meet-the-team.md +85 -0
  114. package/dist/university-content/notes/N-para-001-shift-setup.md +74 -0
  115. package/dist/university-content/notes/N-para-101-component-types.md +99 -0
  116. package/dist/university-content/notes/N-para-101-first-steps.md +134 -0
  117. package/dist/university-content/notes/N-para-101-five-symbols.md +128 -0
  118. package/dist/university-content/notes/N-para-101-paradigm-logger.md +89 -0
  119. package/dist/university-content/notes/N-para-101-portal-yaml.md +112 -0
  120. package/dist/university-content/notes/N-para-101-project-structure.md +143 -0
  121. package/dist/university-content/notes/N-para-101-purpose-files.md +121 -0
  122. package/dist/university-content/notes/N-para-101-tags-and-classification.md +93 -0
  123. package/dist/university-content/notes/N-para-101-welcome.md +51 -0
  124. package/dist/university-content/notes/N-para-201-architecture-review.md +175 -0
  125. package/dist/university-content/notes/N-para-201-aspect-graph.md +79 -0
  126. package/dist/university-content/notes/N-para-201-aspects-and-anchors.md +112 -0
  127. package/dist/university-content/notes/N-para-201-component-patterns.md +138 -0
  128. package/dist/university-content/notes/N-para-201-cross-cutting-concerns.md +145 -0
  129. package/dist/university-content/notes/N-para-201-disciplines.md +187 -0
  130. package/dist/university-content/notes/N-para-201-flows-deep-dive.md +119 -0
  131. package/dist/university-content/notes/N-para-201-gates-deep-dive.md +165 -0
  132. package/dist/university-content/notes/N-para-201-portal-protocol.md +133 -0
  133. package/dist/university-content/notes/N-para-201-signal-patterns.md +159 -0
  134. package/dist/university-content/notes/N-para-201-symbol-naming.md +149 -0
  135. package/dist/university-content/notes/N-para-301-context-management.md +53 -0
  136. package/dist/university-content/notes/N-para-301-decisions.md +99 -0
  137. package/dist/university-content/notes/N-para-301-doctor-and-validation.md +70 -0
  138. package/dist/university-content/notes/N-para-301-enforcement-levels.md +102 -0
  139. package/dist/university-content/notes/N-para-301-fragility-tracking.md +50 -0
  140. package/dist/university-content/notes/N-para-301-history-system.md +42 -0
  141. package/dist/university-content/notes/N-para-301-navigation-system.md +55 -0
  142. package/dist/university-content/notes/N-para-301-operations-review.md +55 -0
  143. package/dist/university-content/notes/N-para-301-paradigm-shift.md +93 -0
  144. package/dist/university-content/notes/N-para-301-protocols.md +113 -0
  145. package/dist/university-content/notes/N-para-301-ripple-analysis.md +53 -0
  146. package/dist/university-content/notes/N-para-301-sentinel-observability.md +87 -0
  147. package/dist/university-content/notes/N-para-301-sync-and-maintenance.md +57 -0
  148. package/dist/university-content/notes/N-para-301-wisdom-system.md +89 -0
  149. package/dist/university-content/notes/N-para-401-agent-identity.md +99 -0
  150. package/dist/university-content/notes/N-para-401-agent-interop.md +87 -0
  151. package/dist/university-content/notes/N-para-401-agent-roles.md +107 -0
  152. package/dist/university-content/notes/N-para-401-commit-conventions.md +82 -0
  153. package/dist/university-content/notes/N-para-401-mastery-review.md +71 -0
  154. package/dist/university-content/notes/N-para-401-mcp-tools-overview.md +102 -0
  155. package/dist/university-content/notes/N-para-401-multi-agent-coordination.md +80 -0
  156. package/dist/university-content/notes/N-para-401-notebooks-permissions.md +66 -0
  157. package/dist/university-content/notes/N-para-401-orchestration-workflow.md +101 -0
  158. package/dist/university-content/notes/N-para-401-pm-governance.md +71 -0
  159. package/dist/university-content/notes/N-para-401-provider-cascade.md +75 -0
  160. package/dist/university-content/notes/N-para-401-quick-check.md +95 -0
  161. package/dist/university-content/notes/N-para-501-advanced-workflows.md +122 -0
  162. package/dist/university-content/notes/N-para-501-aspect-graph-advanced.md +195 -0
  163. package/dist/university-content/notes/N-para-501-aspect-graph-internals.md +97 -0
  164. package/dist/university-content/notes/N-para-501-assessment-loops.md +116 -0
  165. package/dist/university-content/notes/N-para-501-conductor-workspace.md +77 -0
  166. package/dist/university-content/notes/N-para-501-habits-practice.md +164 -0
  167. package/dist/university-content/notes/N-para-501-hook-enforcement.md +100 -0
  168. package/dist/university-content/notes/N-para-501-lore-system.md +155 -0
  169. package/dist/university-content/notes/N-para-501-platform-agent-ui.md +108 -0
  170. package/dist/university-content/notes/N-para-501-review-compliance.md +72 -0
  171. package/dist/university-content/notes/N-para-501-sentinel-deep-dive.md +173 -0
  172. package/dist/university-content/notes/N-para-501-session-intelligence.md +104 -0
  173. package/dist/university-content/notes/N-para-501-symphony-a-mail.md +120 -0
  174. package/dist/university-content/notes/N-para-501-symphony-networking.md +119 -0
  175. package/dist/university-content/notes/N-para-501-task-management.md +100 -0
  176. package/dist/university-content/notes/N-para-601-agent-renaissance.md +121 -0
  177. package/dist/university-content/notes/N-para-601-attention-scoring.md +129 -0
  178. package/dist/university-content/notes/N-para-601-context-composition.md +146 -0
  179. package/dist/university-content/notes/N-para-601-data-sovereignty.md +140 -0
  180. package/dist/university-content/notes/N-para-601-event-stream.md +126 -0
  181. package/dist/university-content/notes/N-para-601-knowledge-streams.md +144 -0
  182. package/dist/university-content/notes/N-para-601-learning-loop.md +68 -0
  183. package/dist/university-content/notes/N-para-601-maestro-team-collab.md +136 -0
  184. package/dist/university-content/notes/N-para-601-nominations-debates.md +115 -0
  185. package/dist/university-content/notes/N-para-701-agent-notebooks.md +131 -0
  186. package/dist/university-content/notes/N-para-701-agent-pods-nevrland.md +182 -0
  187. package/dist/university-content/notes/N-para-701-agent-profiles.md +197 -0
  188. package/dist/university-content/notes/N-para-701-agent-roster.md +82 -0
  189. package/dist/university-content/notes/N-para-701-agent-state.md +180 -0
  190. package/dist/university-content/notes/N-para-701-learning-feedback-loop.md +188 -0
  191. package/dist/university-content/notes/N-para-701-model-tier-resolution.md +204 -0
  192. package/dist/university-content/notes/N-para-701-orchestration-enforcement.md +169 -0
  193. package/dist/university-content/notes/N-para-701-per-project-rosters.md +198 -0
  194. package/dist/university-content/notes/N-para-701-symphony-visibility.md +142 -0
  195. package/dist/university-content/paths/LP-para-001.yaml +29 -0
  196. package/dist/university-content/paths/LP-para-101.yaml +59 -0
  197. package/dist/university-content/paths/LP-para-201.yaml +69 -0
  198. package/dist/university-content/paths/LP-para-301.yaml +84 -0
  199. package/dist/university-content/paths/LP-para-401.yaml +74 -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-501-advanced-workflows.yaml +66 -0
  253. package/dist/university-content/quizzes/Q-para-501-aspect-graph-advanced.yaml +66 -0
  254. package/dist/university-content/quizzes/Q-para-501-aspect-graph-internals.yaml +66 -0
  255. package/dist/university-content/quizzes/Q-para-501-assessment-loops.yaml +46 -0
  256. package/dist/university-content/quizzes/Q-para-501-conductor-workspace.yaml +46 -0
  257. package/dist/university-content/quizzes/Q-para-501-habits-practice.yaml +56 -0
  258. package/dist/university-content/quizzes/Q-para-501-hook-enforcement.yaml +66 -0
  259. package/dist/university-content/quizzes/Q-para-501-lore-system.yaml +66 -0
  260. package/dist/university-content/quizzes/Q-para-501-platform-agent-ui.yaml +66 -0
  261. package/dist/university-content/quizzes/Q-para-501-review-compliance.yaml +61 -0
  262. package/dist/university-content/quizzes/Q-para-501-sentinel-deep-dive.yaml +86 -0
  263. package/dist/university-content/quizzes/Q-para-501-session-intelligence.yaml +66 -0
  264. package/dist/university-content/quizzes/Q-para-501-symphony-a-mail.yaml +66 -0
  265. package/dist/university-content/quizzes/Q-para-501-symphony-networking.yaml +66 -0
  266. package/dist/university-content/quizzes/Q-para-501-task-management.yaml +46 -0
  267. package/dist/university-content/quizzes/Q-para-601-agent-renaissance.yaml +66 -0
  268. package/dist/university-content/quizzes/Q-para-601-attention-scoring.yaml +56 -0
  269. package/dist/university-content/quizzes/Q-para-601-context-composition.yaml +66 -0
  270. package/dist/university-content/quizzes/Q-para-601-data-sovereignty.yaml +56 -0
  271. package/dist/university-content/quizzes/Q-para-601-event-stream.yaml +66 -0
  272. package/dist/university-content/quizzes/Q-para-601-knowledge-streams.yaml +66 -0
  273. package/dist/university-content/quizzes/Q-para-601-learning-loop.yaml +56 -0
  274. package/dist/university-content/quizzes/Q-para-601-maestro-team-collab.yaml +86 -0
  275. package/dist/university-content/quizzes/Q-para-601-nominations-debates.yaml +66 -0
  276. package/dist/university-content/quizzes/Q-para-701-agent-notebooks.yaml +66 -0
  277. package/dist/university-content/quizzes/Q-para-701-agent-pods-nevrland.yaml +66 -0
  278. package/dist/university-content/quizzes/Q-para-701-agent-profiles.yaml +66 -0
  279. package/dist/university-content/quizzes/Q-para-701-agent-roster.yaml +66 -0
  280. package/dist/university-content/quizzes/Q-para-701-agent-state.yaml +66 -0
  281. package/dist/university-content/quizzes/Q-para-701-learning-feedback-loop.yaml +66 -0
  282. package/dist/university-content/quizzes/Q-para-701-model-tier-resolution.yaml +66 -0
  283. package/dist/university-content/quizzes/Q-para-701-orchestration-enforcement.yaml +66 -0
  284. package/dist/university-content/quizzes/Q-para-701-per-project-rosters.yaml +66 -0
  285. package/dist/university-content/quizzes/Q-para-701-symphony-visibility.yaml +66 -0
  286. package/dist/university-content/quizzes/Q-plsat-v2.yaml +904 -0
  287. package/dist/university-content/quizzes/Q-plsat-v3.yaml +2909 -0
  288. package/dist/university-content/reference.json +2 -2
  289. package/dist/university-ui/assets/{index-CecQrfSn.js → index-nNgzO1il.js} +2 -2
  290. package/dist/university-ui/assets/{index-CecQrfSn.js.map → index-nNgzO1il.js.map} +1 -1
  291. package/dist/university-ui/index.html +1 -1
  292. package/dist/{upgrade-GX56QE3C.js → upgrade-NKN63VTY.js} +2 -2
  293. package/dist/{validate-VZXTJHGO.js → validate-BB6LRWIY.js} +1 -1
  294. package/dist/validate-XUQZTF3H.js +9 -0
  295. package/dist/{watch-YCODNIET.js → watch-25GJHQYT.js} +1 -1
  296. package/dist/workspace-VMSPYIBV.js +2 -0
  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 +3 -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/templates/paradigm/specs/symbols.md +4 -2
  313. package/dist/add-P76GEMGF.js +0 -8
  314. package/dist/chunk-3TR6LLXP.js +0 -111
  315. package/dist/chunk-G7XFK2GI.js +0 -11
  316. package/dist/chunk-J6KWGCHN.js +0 -24
  317. package/dist/chunk-JQKKVAAN.js +0 -2
  318. package/dist/chunk-ODVKPZZ4.js +0 -2
  319. package/dist/chunk-Q2J542ST.js +0 -2
  320. package/dist/chunk-QT2LKB3P.js +0 -7
  321. package/dist/chunk-SHD27BQX.js +0 -6
  322. package/dist/chunk-WS2N27RX.js +0 -3
  323. package/dist/chunk-YT52WLBF.js +0 -521
  324. package/dist/compliance-WJINB5DM.js +0 -6
  325. package/dist/config-schema-GUQY2QN7.js +0 -2
  326. package/dist/decision-loader-2XPZE4EZ.js +0 -2
  327. package/dist/dist-R3RWD35F.js +0 -2
  328. package/dist/dist-VXCZWVVJ.js +0 -2
  329. package/dist/doctor-QJ47XAUP.js +0 -2
  330. package/dist/init-HIBRSVUB.js +0 -2
  331. package/dist/list-5IUGP3ZB.js +0 -7
  332. package/dist/lore-loader-RVQI5GXL.js +0 -2
  333. package/dist/lore-loader-XY5MZRR2.js +0 -2
  334. package/dist/migrate-assessments-GEI5WMI2.js +0 -4
  335. package/dist/portal-check-Z3OCQEQR.js +0 -8
  336. package/dist/quiz-FE5UGAY2.js +0 -10
  337. package/dist/reindex-FO5VMZVQ.js +0 -2
  338. package/dist/serve-OY6XYL7F.js +0 -12
  339. package/dist/server-2MNROHF6.js +0 -7
  340. package/dist/session-tracker-MWJAJA6Z.js +0 -2
  341. package/dist/show-BOAVWZPZ.js +0 -7
  342. package/dist/status-A37ECYNJ.js +0 -6
  343. package/dist/sync-DLUBV5HQ.js +0 -2
  344. package/dist/team-NSP6PMPS.js +0 -2
  345. package/dist/tools-CERDNVCG.js +0 -2
  346. package/dist/university-content/courses/.purpose +0 -492
  347. package/dist/university-content/courses/para-001.json +0 -166
  348. package/dist/university-content/courses/para-101.json +0 -615
  349. package/dist/university-content/courses/para-201.json +0 -794
  350. package/dist/university-content/courses/para-301.json +0 -830
  351. package/dist/university-content/courses/para-401.json +0 -868
  352. package/dist/university-content/courses/para-501.json +0 -1166
  353. package/dist/university-content/courses/para-601.json +0 -719
  354. package/dist/university-content/courses/para-701.json +0 -807
  355. package/dist/university-content/plsat/.purpose +0 -162
  356. package/dist/university-content/plsat/v2.0.json +0 -760
  357. package/dist/university-content/plsat/v3.0.json +0 -3453
  358. package/dist/validate-C6SMKGYD.js +0 -9
  359. package/dist/workspace-MKSQN7B2.js +0 -2
  360. package/platform-ui/dist/assets/LoreSection-oO5dCe6O.js +0 -1
  361. /package/dist/{chunk-BV5PRPLB.js → chunk-IZSBGW6E.js} +0 -0
  362. /package/templates/paradigm/specs/{scan.md → probe.md} +0 -0
@@ -0,0 +1,66 @@
1
+ id: Q-para-601-event-stream
2
+ title: 'PARA 601: Paradigm Ambient — The Event Stream'
3
+ description: 'Quiz for lesson: The Event Stream'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-601
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-601.json
16
+ questions:
17
+ - id: q1
18
+ question: An agent adds a new POST route to `src/routes/payments.ts` and updates `portal.yaml` with a `^authenticated` gate. How many events are emitted, and of what types?
19
+ choices:
20
+ A: 'One event: `file-modified` for the route file'
21
+ B: 'Two events: `file-modified` for the route file and `file-modified` for portal.yaml'
22
+ C: 'At minimum two events: `route-created` (or `file-modified`) for the new route, and `gate-added` for the portal.yaml change — exact count depends on which hooks and tools fired'
23
+ D: No events — events are only emitted by MCP tool calls, not file edits
24
+ E: 'One event: `gate-added` — only portal.yaml changes produce events'
25
+ correct: C
26
+ explanation: Adding a route and a gate are distinct actions that produce distinct events. The route change produces at least a `file-modified` or `route-created` event (depending on whether the post-write hook recognizes it as a route file). The portal.yaml change produces a `gate-added` event. Additional events like `symbol-queried` may fire if the agent used ripple or navigate tools during the process. The exact count depends on the session's tool usage and hook configuration.
27
+ - id: q2
28
+ question: The event stream file at `.paradigm/events/stream.jsonl` grows to 600KB. What happens on the next `emitEvent` call?
29
+ choices:
30
+ A: The event is rejected — the file is too large
31
+ B: The file is deleted and a fresh one is started
32
+ C: The file is read, only the most recent 1000 lines are kept, and it is rewritten — then the new event is appended
33
+ D: A second file (`stream-2.jsonl`) is created for overflow
34
+ E: Nothing special — pruning only happens at startup
35
+ correct: C
36
+ explanation: The `pruneIfNeeded` function runs after every `emitEvent` call. When the file exceeds ~500KB (512 * 1024 bytes), it reads all lines, keeps only the most recent 1000 (`lines.slice(-DEFAULT_MAX_EVENTS)`), and rewrites the file. The new event has already been appended before pruning runs, so it is included in the kept lines. This bounded pruning ensures the stream never grows unbounded.
37
+ - id: q3
38
+ question: You want to see all compliance violations from the last hour. Which `queryEvents` call is correct?
39
+ choices:
40
+ A: '`queryEvents(rootDir, { type: ''compliance-violation'', since: oneHourAgo.toISOString() })`'
41
+ B: '`queryEvents(rootDir, { source: ''compliance'', limit: 100 })`'
42
+ C: '`queryEvents(rootDir, { symbol: ''compliance-violation'' })`'
43
+ D: '`queryEvents(rootDir, { type: ''error-encountered'', agent: ''compliance'' })`'
44
+ E: '`queryEvents(rootDir)` and filter in application code'
45
+ correct: A
46
+ explanation: The `type` filter matches the event classification (`'compliance-violation'` is one of the 12 event types), and the `since` filter restricts to events after the given ISO timestamp. Source `'compliance'` does not exist — valid sources are `post-write-hook`, `mcp-tool-call`, `stop-hook`, `conversation`, `agent-action`, and `error`. The `symbol` filter matches against the event's `symbols` array, not the event type.
47
+ - id: q4
48
+ question: File I/O fails when `emitEvent` tries to append to the JSONL file. What happens to the event?
49
+ choices:
50
+ A: The event is lost — it was not written anywhere
51
+ B: An exception is thrown and the calling tool fails
52
+ C: The event is still stored in the in-memory buffer — file write failure is non-fatal
53
+ D: The event is written to a fallback file at `/tmp/paradigm-events.jsonl`
54
+ E: The event is queued and retried on the next `emitEvent` call
55
+ correct: C
56
+ explanation: Events are always pushed to the memory buffer (`memoryStream`) before attempting file I/O. The file write is wrapped in a try/catch that silently absorbs failures. This design ensures that ambient coordination continues functioning even if the filesystem is temporarily unavailable. The memory buffer is independently bounded to 1000 events, providing the same capacity as the file-based stream.
57
+ - id: q5
58
+ question: A project wants ambient coordination but finds `symbol-queried` events too noisy. How should they configure the event stream?
59
+ choices:
60
+ A: 'Set `enabled: false` to disable the entire event stream'
61
+ B: 'Set `max_events: 100` to reduce the buffer size'
62
+ C: 'Add `suppress: [''symbol-queried'']` to the EventStreamConfig to silence that event type while keeping all others'
63
+ D: Remove all `paradigm_search` and `paradigm_navigate` tools from the MCP server
64
+ E: 'Set `storage: ''memory''` so noisy events are not persisted'
65
+ correct: C
66
+ explanation: 'The `suppress` array in `EventStreamConfig` blacklists specific event types. Adding `''symbol-queried''` to this list prevents those events from being emitted while preserving all other event types. This is the targeted solution — `enabled: false` would kill the entire ambient system, `max_events: 100` would reduce history but not noise, and `storage: ''memory''` would affect persistence but not which events fire.'
@@ -0,0 +1,66 @@
1
+ id: Q-para-601-knowledge-streams
2
+ title: 'PARA 601: Paradigm Ambient — Knowledge Streams'
3
+ description: 'Quiz for lesson: Knowledge Streams'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-601
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-601.json
16
+ questions:
17
+ - id: q1
18
+ question: A security agent discovers during a session that JWT refresh tokens must be rotated on every use (not just on expiry). This insight applies to every project that uses JWTs. Where should this be recorded?
19
+ choices:
20
+ A: Work log — it is work the agent performed
21
+ B: Team decisions — the team needs to know about JWT rotation
22
+ C: 'Learning journal with `transferable: true` — it is an agent-learned insight that applies across projects'
23
+ D: Lore entry with type `agent-session`
24
+ E: CLAUDE.md as a permanent instruction
25
+ correct: C
26
+ explanation: 'This is a learning moment — the agent discovered a pattern (`pattern_discovered` or `correction_received` trigger) that applies beyond the current project. Recording it in the learning journal with `transferable: true` ensures it travels with the agent to future projects via `~/.paradigm/agents/{id}/journal/`. A work log entry would capture what was done but not the reusable insight. A team decision would capture a project-specific choice but not the cross-project pattern.'
27
+ - id: q2
28
+ question: Where are learning journal entries stored, and why?
29
+ choices:
30
+ A: '`.paradigm/journal/` — project-scoped because learnings are project-specific'
31
+ B: '`~/.paradigm/agents/{id}/journal/` — user-scoped because learnings travel with the agent across projects'
32
+ C: '`.paradigm/lore/entries/` — in the same location as all other lore entries'
33
+ D: '`~/.paradigm/journal/` — global but not agent-specific'
34
+ E: In memory only — journal entries are ephemeral
35
+ correct: B
36
+ explanation: Journal entries are stored at `~/.paradigm/agents/{id}/journal/` — in the user's home directory, scoped to the specific agent. This location is user-scoped (ring 2) rather than project-locked (ring 1) because learning is not project-specific. An insight about JWT handling discovered in project A should be available when the same agent works on project B.
37
+ - id: q3
38
+ question: 'A lore entry of type `incident` is recorded with `stream: ''auto''`. Which knowledge streams receive data?'
39
+ choices:
40
+ A: Only the work log — incidents are about what happened
41
+ B: Only the learning journal — incidents are about what was learned
42
+ C: Work log, learning journal, and team decisions — incidents split across all three streams
43
+ D: Only team decisions — incidents result in policy changes
44
+ E: The entry is rejected — incidents cannot use auto-classification
45
+ correct: C
46
+ explanation: 'The `LORE_TYPE_TO_STREAM` mapping routes `incident` to all three streams: the work log captures what happened (the incident timeline), the learning journal captures what was learned (failure analysis), and team decisions capture the prevention strategy. This is because incidents naturally contain all three kinds of knowledge — facts about the event, insights from investigation, and decisions about prevention.'
47
+ - id: q4
48
+ question: 'A team decision has two participants: `human/matt` with stance `proposed` and `a-paradigm/security` with stance `dissented`. Six months later, the team revisits this decision. Why is the recorded dissent valuable?'
49
+ choices:
50
+ A: It proves the human was wrong and the agent was right
51
+ B: It provides an audit trail for compliance purposes
52
+ C: It immediately surfaces the security agent's original concerns, saving time re-analyzing the tradeoffs
53
+ D: It triggers an automatic alert to the security agent
54
+ E: It prevents the same decision from being proposed again
55
+ correct: C
56
+ explanation: Recording dissent captures the counter-arguments at the time of the decision. When the decision is revisited, the team can immediately see what the security agent objected to rather than re-analyzing from scratch. This is especially valuable when the original participants have moved on or forgotten the context. The `dissented` stance does not imply the decision was wrong — it preserves the full deliberation for future reference.
57
+ - id: q5
58
+ question: You want to find all work done by the builder agent this sprint that resulted in a `blocked` outcome. Which tool and parameters do you use?
59
+ choices:
60
+ A: '`paradigm_lore_search` with `author: ''builder''` and `type: ''agent-session''`'
61
+ B: '`paradigm_work_log_search` with `agent: ''builder''`, `outcome: ''blocked''`, and `dateFrom` set to sprint start'
62
+ C: '`paradigm_journal_search` with `agent: ''builder''` and `trigger: ''failure_analysis''`'
63
+ D: '`paradigm_decision_search` with `participant: ''builder''`'
64
+ E: '`paradigm_work_log_search` with `summary: true` only'
65
+ correct: B
66
+ explanation: '`paradigm_work_log_search` is purpose-built for answering "what got done" questions. Passing `agent: ''builder''`, `outcome: ''blocked''`, and `dateFrom` set to the sprint start date filters to exactly the entries needed. The journal would show what the agent learned, not what work was blocked. The lore search would work but returns the old unified format rather than the structured work log fields like `outcome`, `blockers`, and `next_steps`.'
@@ -0,0 +1,56 @@
1
+ id: Q-para-601-learning-loop
2
+ title: 'PARA 601: Paradigm Ambient — The Learning Loop'
3
+ description: 'Quiz for lesson: The Learning Loop'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-601
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-601.json
16
+ questions:
17
+ - id: q1
18
+ question: An agent completes a session where it discovers that Express v5 requires explicit async error wrapping. It records this in a lore entry but no journal entry is created. Three weeks later, a different agent makes the same mistake. Which phase of the learning loop failed?
19
+ choices:
20
+ A: DO — the first agent should not have made the mistake
21
+ B: RECORD — the lore entry was insufficient
22
+ C: LEARN — the insight was captured in lore but never extracted into a journal entry that could feed back into future context
23
+ D: ADAPT — the context composition tool was broken
24
+ E: ASSESS — the event stream missed the original correction
25
+ correct: C
26
+ explanation: 'The LEARN phase failed. The observation was recorded (RECORD phase worked — there is a lore entry), but the insight was never extracted into a learning journal entry with a transferable pattern. Without a journal entry, the ADAPT phase has nothing to inject into future sessions. The fix is recording a journal entry with `transferable: true` and extracting a `LearningPattern` so it feeds into context composition.'
27
+ - id: q2
28
+ question: Why did Paradigm v5.0 reduce CLAUDE.md from ~856 lines to ~150 lines?
29
+ choices:
30
+ A: The old content was outdated and no longer relevant
31
+ B: Smaller files load faster from disk
32
+ C: Loading all guidance every session wastes tokens on content irrelevant to the current task — on-demand resources let agents load only what they need
33
+ D: Claude Code has a strict file size limit for CLAUDE.md
34
+ E: The content was moved to .paradigm/config.yaml instead
35
+ correct: C
36
+ explanation: Context engineering is about putting high-signal, task-relevant content in the context window. A 856-line CLAUDE.md loaded every session means hundreds of tokens spent on logging rules when the task is about testing, or portal conventions when the task is about lore. The slim CLAUDE.md provides universal orientation, and 12 `paradigm://guidance/{topic}` resources provide targeted guidance on demand.
37
+ - id: q3
38
+ question: Which phases of the learning loop existed before v5.0?
39
+ choices:
40
+ A: All six phases existed but were unreliable
41
+ B: Only DO existed — everything else is new in v5.0
42
+ C: DO, RECORD, and partial ASSESS (via ripple analysis) — LEARN, ADAPT, and full ASSESS were manual
43
+ D: DO, RECORD, ASSESS, and LEARN — only ADAPT was missing
44
+ E: DO and ADAPT — recording and assessment were added in v5.0
45
+ correct: C
46
+ explanation: Before v5.0, Paradigm had DO (agents perform work), RECORD (lore entries, .purpose files, portal.yaml), and partial ASSESS (ripple analysis could identify impact, but there was no event stream or attention filtering). The LEARN phase (journal entries, nominations) and ADAPT phase (context composition from learnings) were entirely manual — a human had to read lore and brief the next agent.
47
+ - id: q4
48
+ question: A security agent contributes a context section listing recently added gates. Where is this contribution defined?
49
+ choices:
50
+ A: In the security agent's `.agent` file under the `context.contributions` field
51
+ B: In `.paradigm/config.yaml` under a `context_sections` key
52
+ C: In CLAUDE.md as a static section
53
+ D: In `portal.yaml` under each gate definition
54
+ E: In the security agent's learning journal
55
+ correct: A
56
+ explanation: Agent context contributions are defined in the `AgentContext.contributions` array on the agent's profile (the `.agent` file). Each contribution specifies a `section` name, inline `content` or a `content_ref` MCP resource URI, and a `priority` (high, medium, low). High-priority contributions are always included; low-priority ones are loaded on demand. This allows each agent to inject task-relevant context without hardcoding it into CLAUDE.md.
@@ -0,0 +1,86 @@
1
+ id: Q-para-601-maestro-team-collab
2
+ title: 'PARA 601: Paradigm Ambient — Maestro: Visible Team Orchestration'
3
+ description: 'Quiz for lesson: Maestro: Visible Team Orchestration'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-601
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-601.json
16
+ questions:
17
+ - id: q1
18
+ question: What is the primary difference between Maestro and traditional multi-agent orchestration?
19
+ choices:
20
+ A: Maestro uses more agents per task
21
+ B: Maestro presents each agent's response as an attributed message rather than synthesizing a single summary
22
+ C: Maestro runs agents in parallel instead of sequentially
23
+ D: Maestro eliminates the need for human approval
24
+ E: Maestro uses persistent background agents
25
+ correct: B
26
+ explanation: Maestro's key innovation is visibility. Instead of synthesizing agent responses into a single voice, each agent speaks for itself with an attribution prefix like [architect]. This preserves individual perspectives and lets the human see disagreements, novel approaches, and the reasoning behind each contribution.
27
+ - id: q2
28
+ question: When a security agent is consistently dismissed by the user (>60% dismissal rate), what happens at postflight?
29
+ choices:
30
+ A: The agent is automatically deleted
31
+ B: The agent is moved to a different project
32
+ C: paradigm_ambient_learn raises the agent's attention threshold, making it nominate less
33
+ D: The agent's expertise scores are reset to zero
34
+ E: Nothing changes — threshold adjustment is manual
35
+ correct: C
36
+ explanation: The learning loop is automatic. When dismissal rate exceeds 60%, paradigm_ambient_learn raises the agent's attention threshold by 0.05, meaning it requires higher relevance scores before nominating. This self-tunes the agent to speak less when it is being noisy. Conversely, >80% acceptance lowers the threshold, encouraging the agent to contribute more.
37
+ - id: q3
38
+ question: What ambient context is injected into agent profiles before Maestro spawns them?
39
+ choices:
40
+ A: Only the agent's expertise scores
41
+ B: The full project codebase
42
+ C: Recent team decisions, transferable journal insights, and pending nominations
43
+ D: The complete git history
44
+ E: Nothing — agents start fresh each session
45
+ correct: C
46
+ explanation: buildProfileEnrichment() accepts an ambientContext parameter containing recent team decisions (from decision-loader), transferable journal insights (from journal-loader), and pending nominations (from nomination-engine). This gives each agent awareness of what the team has decided, what patterns have been discovered, and what issues are outstanding — creating genuine team intelligence rather than isolated tool execution.
47
+ - id: q4
48
+ question: What does the Neverland test health status 'calibrating' indicate?
49
+ choices:
50
+ A: No agents have been created yet
51
+ B: Agents have fewer than 10 total nominations
52
+ C: Average acceptance rate is between 50% and 70% — agents are learning but haven't reached target
53
+ D: All agents have been benched
54
+ E: The system has reached maturity and needs no further adjustment
55
+ correct: C
56
+ explanation: 'The Neverland health statuses are: cold-start (<10 nominations), accumulating (<50% accept rate), calibrating (50-70% accept rate), and mature (>70%). ''Calibrating'' means agents are past the initial noise phase and their thresholds are actively being tuned by the learning loop, but haven''t yet reached the 70% target. This typically occurs around sessions 4-7.'
57
+ - id: q5
58
+ question: How does benching an agent differ from deleting it?
59
+ choices:
60
+ A: There is no difference — bench removes the agent profile
61
+ B: Benching sets benched=true — the profile stays intact but Maestro and the nomination engine skip it
62
+ C: Benching only affects CLI commands, not MCP tools
63
+ D: Benching removes expertise but keeps the profile
64
+ E: Benching is permanent while deletion can be undone
65
+ correct: B
66
+ explanation: Benching is a reversible pause. The agent's .agent file remains with all expertise, journal entries, notebooks, and transferable patterns intact. Both paradigm_orchestrate_inline and processEvent check profile.benched and skip the agent if true. paradigm agent activate restores the agent immediately with all its accumulated learning preserved.
67
+ - id: q6
68
+ question: Why does the Teacher Model write journal entries instead of adjusting thresholds directly?
69
+ choices:
70
+ A: Journal entries are cheaper in token cost
71
+ B: Thresholds can only go up, not down
72
+ C: Journal entries carry semantic knowledge (what to look for, what was wrong) while thresholds are just a single number that says 'speak more' or 'speak less'
73
+ D: The threshold system is being removed in favor of journals
74
+ E: Journal entries are visible to the user while thresholds are hidden
75
+ correct: C
76
+ explanation: 'Thresholds control volume (speak more/less) but not quality. A threshold can''t teach the security agent to distinguish audit logging from vulnerabilities. A journal entry can: ''When auth files change with logging additions, recognize these as security-positive — don''t flag as violations.'' This knowledge promotes to notebooks and appears in future prompts via buildProfileEnrichment, making the agent genuinely smarter rather than just quieter.'
77
+ - id: q7
78
+ question: What is the documentor agent's relationship to the stop hook?
79
+ choices:
80
+ A: The documentor replaces the stop hook entirely
81
+ B: The documentor runs before the stop hook and should prevent it from ever triggering, but the hook remains as a safety net
82
+ C: The stop hook runs the documentor automatically
83
+ D: They are unrelated systems
84
+ E: The documentor disables the stop hook for the session
85
+ correct: B
86
+ explanation: The stop hook blocks when .purpose files are missing for modified source directories. The documentor's job is to update these files as the final orchestration stage, so the stop hook should never need to block. However, the stop hook remains as a safety net — if the documentor misses something or orchestration wasn't used, the hook catches it. Defense in depth.
@@ -0,0 +1,66 @@
1
+ id: Q-para-601-nominations-debates
2
+ title: 'PARA 601: Paradigm Ambient — Nominations & Debates'
3
+ description: 'Quiz for lesson: Nominations & Debates'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-601
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-601.json
16
+ questions:
17
+ - id: q1
18
+ question: 'A security agent creates a nomination with `urgency: ''medium''` and `type: ''warning''` about a missing gate. The user has configured the security agent''s `min_urgency` to `''high''`. What happens?'
19
+ choices:
20
+ A: The nomination is deleted — it does not meet the urgency threshold
21
+ B: The nomination is recorded but not surfaced — it falls below the user's configured minimum urgency for that agent
22
+ C: The nomination is surfaced anyway because warnings always override urgency settings
23
+ D: The nomination is upgraded to `high` urgency automatically
24
+ E: The user's setting is ignored because security nominations are always shown
25
+ correct: B
26
+ explanation: 'The nomination is still recorded in `.paradigm/events/nominations.jsonl` (all nominations are persisted), but surfacing rules respect the user''s configuration. Since `min_urgency: ''high''` means only `high` and `critical` nominations from the security agent are shown, a `medium` nomination is suppressed. The nomination remains available if the user later queries all nominations or lowers the threshold.'
27
+ - id: q2
28
+ question: An architect nominates "Use a message queue for async processing" while a builder nominates "Use direct HTTP calls for simplicity" — both triggered by the same `route-created` event. How does Paradigm classify this?
29
+ choices:
30
+ A: Two independent nominations — no debate is detected because different agents created them
31
+ B: A complementary debate — both are responding to the same event
32
+ C: A conflicting debate — the nominations share a `triggered_by` event but propose different approaches
33
+ D: An error — only one agent should nominate per event
34
+ E: The nomination with the higher relevance score wins automatically
35
+ correct: C
36
+ explanation: Debate detection checks for overlapping `triggered_by` event IDs. Both nominations reference the same `route-created` event, so they are grouped. Since they propose different approaches (message queue vs HTTP calls), the debate is classified as `conflicting`. The debate is surfaced as a group so the human sees both perspectives together rather than individual nominations. Resolution requires a human choice or consensus.
37
+ - id: q3
38
+ question: 'A nomination has `evidence: [{ symbol: ''^payment-authorized'', file: ''portal.yaml'', lines: { start: 42, end: 45 }, description: ''All /api/payments routes require this gate'' }]`. Why is this better than a nomination without evidence?'
39
+ choices:
40
+ A: Evidence makes the nomination sort higher in the UI
41
+ B: Nominations without evidence are automatically dismissed
42
+ C: Evidence transforms the nomination from opinion to argument — the human can verify the claim against specific code locations without investigating from scratch
43
+ D: Evidence is required for all nomination types
44
+ E: Evidence triggers automatic remediation
45
+ correct: C
46
+ explanation: Evidence gives the nomination credibility and actionability. Without evidence, "This route needs a gate" requires the human to verify the claim manually. With evidence pointing to portal.yaml line 42 and the specific gate symbol, the human can quickly confirm the pattern and act. Evidence is optional (the `evidence` field is nullable), but nominations with evidence are more likely to be accepted rather than dismissed.
47
+ - id: q4
48
+ question: 'A tester creates a nomination with `type: ''offer''` and `action_offered: ''Write integration tests for the new payment flow''`. The human responds via `paradigm_ambient_engage` with `response: ''accepted''`. What happens next?'
49
+ choices:
50
+ A: Paradigm automatically generates the test files
51
+ B: The nomination's `detail` and `evidence` are returned so the tester agent can proceed with the offered action
52
+ C: The nomination is moved to a task queue for later execution
53
+ D: The tester agent is immediately spawned in a new session
54
+ E: Nothing — acceptance is recorded but has no effect
55
+ correct: B
56
+ explanation: When a nomination is accepted via `paradigm_ambient_engage`, the full nomination including `detail` and `evidence` is returned. For `offer` type nominations, this signals that the agent should proceed with the offered action. The actual execution depends on the orchestration context — in a multi-agent session, the tester may act immediately; in a single-agent session, the offer acceptance is recorded for the next session. Paradigm does not auto-generate code; it surfaces the offer for the agent to execute.
57
+ - id: q5
58
+ question: Over 30 sessions, a reviewer agent's nominations are dismissed 80% of the time. What does this pattern suggest?
59
+ choices:
60
+ A: The reviewer agent should be removed from the project
61
+ B: The reviewer's attention threshold may be too low — it is nominating on weak matches, and raising the threshold would reduce false positives
62
+ C: The human is ignoring valid feedback and should be trained
63
+ D: Dismissed nominations indicate the system is working correctly — not all observations are actionable
64
+ E: The nomination storage file is corrupted
65
+ correct: B
66
+ explanation: An 80% dismissal rate is a strong signal that the agent is speaking up too often on weak matches. The most likely fix is raising the agent's attention threshold (e.g., from 0.6 to 0.75) so it only nominates on stronger matches. The `paradigm_ambient_engage` feedback loop exists precisely for this calibration — over time, the pattern of accepted vs dismissed nominations reveals whether an agent's threshold is well-tuned.
@@ -0,0 +1,66 @@
1
+ id: Q-para-701-agent-notebooks
2
+ title: 'PARA 701: Agent Mastery — Lesson 3: Agent Notebooks'
3
+ description: 'Quiz for lesson: Lesson 3: Agent Notebooks'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-701
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-701.json
16
+ questions:
17
+ - id: q1
18
+ question: A security agent has 30 notebook entries. During orchestration, how many are injected into its prompt?
19
+ choices:
20
+ A: All 30 — notebooks are always fully injected
21
+ B: The top 5 by concept match against the task's relevant symbols, sorted by appliedCount
22
+ C: The top 10, since 10 high-signal entries is the recommended maximum
23
+ D: Only entries with appliedCount > 0
24
+ E: A random selection of 5 entries
25
+ correct: B
26
+ explanation: 'buildProfileEnrichment() includes `notebookEntries.slice(0, 5)` — a hard limit of 5 entries. These are pre-filtered by concept match against the task''s relevant symbols and sorted by appliedCount descending (most-used first). The 5-entry budget is a deliberate token constraint: each entry consumes 100-300 tokens, so 5 entries use 500-1,500 tokens, which balances value against context budget.'
27
+ - id: q2
28
+ question: The security agent has a global notebook entry `nb-jwt-validation-001` and the current project has a project notebook entry with the same ID. Which one is used?
29
+ choices:
30
+ A: The global entry — global always takes precedence
31
+ B: Both entries are merged into one
32
+ C: The project entry wins — project overrides global on ID collision
33
+ D: An error is thrown for duplicate IDs
34
+ E: The entry with the higher appliedCount is used
35
+ correct: C
36
+ explanation: 'The notebook loader reads global entries first, then project entries. Entries are stored in a Map keyed by ID. When a project entry has the same ID as a global entry, the project entry overwrites the global one: `entries.set(entry.id, entry)`. This allows a project to customize an agent''s generic knowledge for project-specific needs — for example, overriding a generic JWT pattern with the project''s specific token rotation strategy.'
37
+ - id: q3
38
+ question: 'What is the difference between a notebook entry with `provenance.source: ''lore''` and one with `provenance.source: ''manual''`?'
39
+ choices:
40
+ A: Lore entries are read-only; manual entries are editable
41
+ B: Lore entries were promoted from session experience via promoteFromLore() and link to the original lore entry; manual entries were written directly without a session origin
42
+ C: Manual entries have higher confidence scores by default
43
+ D: Lore entries are global; manual entries are project-scoped
44
+ E: There is no functional difference — provenance is informational only
45
+ correct: B
46
+ explanation: 'Provenance tracks the origin of a notebook entry. `source: ''lore''` means the entry was created by `promoteFromLore()` — it links to the original lore entry via `loreEntryId` and was extracted from real session experience. `source: ''manual''` means someone wrote it directly (bootstrapping or direct curation). Lore-promoted entries have a verifiable chain of evidence (the session where the pattern was discovered), while manual entries rely on the author''s judgment. Both are functionally equivalent in how they''re used during enrichment.'
47
+ - id: q4
48
+ question: Why is `appliedCount` the primary sorting key for notebook entries rather than `confidence`?
49
+ choices:
50
+ A: appliedCount is easier to compute than confidence
51
+ B: Confidence is deprecated in favor of appliedCount
52
+ C: appliedCount is an empirical signal — an entry applied 15 times is proven useful in practice, while confidence is an initial estimate that may not reflect actual utility
53
+ D: appliedCount determines the entry's storage priority on disk
54
+ E: Confidence only applies to expertise scores, not notebook entries
55
+ correct: C
56
+ explanation: appliedCount tracks how many times an entry was actually used in orchestration. An entry with appliedCount of 15 has been surfaced and found useful in 15 sessions — this is empirical evidence of value. Confidence is an initial estimate (0.0-1.0) that may be set optimistically when the entry is created. A newly bootstrapped entry might have confidence 0.8 but appliedCount 0, meaning it looks good on paper but has never been validated. The system trusts what has been proven (appliedCount) over what has been estimated (confidence).
57
+ - id: q5
58
+ question: An agent's notebook entry snippet is 800 characters long. How does buildProfileEnrichment() handle this?
59
+ choices:
60
+ A: It injects the full 800-character snippet
61
+ B: It skips the entry entirely
62
+ C: It truncates the snippet to 300 characters and appends '...'
63
+ D: It splits the snippet across multiple prompt sections
64
+ E: It compresses the snippet using summarization
65
+ correct: C
66
+ explanation: 'buildProfileEnrichment() truncates long snippets: `nb.snippet.length > 300 ? nb.snippet.slice(0, 300) + ''...'' : nb.snippet`. The 300-character limit prevents a single large entry from consuming the entire notebook token budget. If the agent needs the full snippet, it can use `paradigm_notebook_search` to retrieve the complete entry on demand. This is the context engineering principle at work — inject enough to be useful, provide a retrieval path for more detail.'
@@ -0,0 +1,66 @@
1
+ id: Q-para-701-agent-pods-nevrland
2
+ title: 'PARA 701: Agent Mastery — Lesson 10: Agent Pods & nevr.land'
3
+ description: 'Quiz for lesson: Lesson 10: Agent Pods & nevr.land'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-701
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-701.json
16
+ questions:
17
+ - id: q1
18
+ question: A developer activates the Ship Pod and then the Design Pod. How many agents are in the roster?
19
+ choices:
20
+ A: 6 — the Design Pod replaces the Ship Pod
21
+ B: 11 — Ship Pod (6) + Design Pod (5), no overlap
22
+ C: The union of both pods — pods are additive, agents from both are in the roster with no duplicates
23
+ D: Only the Design Pod agents — the last activated pod wins
24
+ E: All 54 agents — activating any pod enables all agents
25
+ correct: C
26
+ explanation: 'Pods are additive. Activating a pod adds its agents to the existing roster. The Ship Pod adds architect, builder, reviewer, tester, security, and documentor. The Design Pod adds designer, copywriter, a11y, creative, and presenter. The roster now contains the union of both: 11 unique agents (no overlap between these two pods). If pods had overlapping agents (e.g., both include reviewer), the agent would appear once in the roster.'
27
+ - id: q2
28
+ question: What is the difference between a pod and a roster?
29
+ choices:
30
+ A: They are the same thing with different names
31
+ B: A pod is a named preset of agents (a template); a roster is the actual list of active agents on a project. Activating a pod modifies the roster.
32
+ C: A pod modifies agent behavior; a roster just lists agent names
33
+ D: A roster can contain pods but not individual agents
34
+ E: Pods are for production; rosters are for development
35
+ correct: B
36
+ explanation: A pod is a template — a named group of agents optimized for a workflow (like "Ship Pod" = architect + builder + reviewer + tester + security + documentor). A roster is the actual configuration file (`.paradigm/roster.yaml`) that lists which agents are active on a project. The command `paradigm agents activate --pod ship-pod` reads the pod template and adds its agents to the roster. The pod is the input; the roster is the output.
37
+ - id: q3
38
+ question: A community-published agent from nevr.land is installed. How does it participate in the local Paradigm system?
39
+ choices:
40
+ A: It runs in a sandboxed mode with limited capabilities
41
+ B: 'It is installed to ~/.paradigm/agents/ and participates identically to built-in agents: same orchestration, attention scoring, learning loop, expertise tracking, and notebook system'
42
+ C: It can only be used manually, not through orchestration
43
+ D: It requires an API key from the publisher to function
44
+ E: It is read-only and cannot accumulate expertise or notebook entries
45
+ correct: B
46
+ explanation: 'An installed agent follows the standard `.agent` schema and is placed in `~/.paradigm/agents/`. The system treats it identically to a built-in agent: it is included in orchestration planning (if in the roster), scores events against its attention patterns, self-nominates contributions, accumulates expertise through verdicts, and builds notebook entries through the learning loop. Trust level affects installation warnings, not runtime capabilities.'
47
+ - id: q4
48
+ question: An agent package on nevr.land includes a `notebooks/` directory with 5 YAML files. Where are these installed?
49
+ choices:
50
+ A: In the project's .paradigm/notebooks/{agent-id}/
51
+ B: In ~/.paradigm/notebooks/{agent-id}/ as global entries that travel across all projects
52
+ C: They are not installed — notebooks must be created manually
53
+ D: In the agent's .agent file as inline snippets
54
+ E: In ~/.paradigm/agents/{agent-id}/notebooks/
55
+ correct: B
56
+ explanation: 'Notebook entries from an agent package are installed into `~/.paradigm/notebooks/{agent-id}/` as global entries. This means they are available on every project the agent joins, providing bootstrapping knowledge from day one. This matches the storage pattern: global notebooks at ~/.paradigm/notebooks/ travel with the agent, while project notebooks at .paradigm/notebooks/ are project-specific. Bootstrapping entries should be global because they represent the agent''s foundational knowledge, not project-specific patterns.'
57
+ - id: q5
58
+ question: Why does the agent package format use YAML files instead of a compiled binary format?
59
+ choices:
60
+ A: YAML is faster to parse than binary formats
61
+ B: Binary formats are not supported on all platforms
62
+ C: YAML is human-readable, enabling inspection, forking, and modification before installation — agents are knowledge, not code, and should be as shareable and composable as possible
63
+ D: YAML is required by the Paradigm schema validator
64
+ E: Binary formats would require code signing
65
+ correct: C
66
+ explanation: The design principle is that agents are knowledge, not compiled code. A human-readable YAML format means you can inspect an agent's personality, expertise, behaviors, and attention patterns before installing it. You can fork a community agent, modify its attention threshold, add a behavior, and republish. You can copy a single transferable pattern from one agent to another. A binary format would make all of this opaque. The package format (agent.yaml + notebooks/ + metadata.yaml) is intentionally the simplest possible structure that captures the complete agent identity.
@@ -0,0 +1,66 @@
1
+ id: Q-para-701-agent-profiles
2
+ title: 'PARA 701: Agent Mastery — Lesson 2: Agent Profiles Deep Dive'
3
+ description: 'Quiz for lesson: Lesson 2: Agent Profiles Deep Dive'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-701
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-701.json
16
+ questions:
17
+ - id: q1
18
+ question: 'A security agent has `confidence: 0.85` on `#auth-security`. Over the next 5 sessions, its security review contributions are accepted 4 times and dismissed 1 time. What is the approximate new confidence score?'
19
+ choices:
20
+ A: 0.85 — confidence does not change automatically
21
+ B: ~0.95 — 4 accepts at +0.03 each, 1 dismiss at -0.02 = +0.10 net
22
+ C: 1.0 — confidence maxes out after enough acceptances
23
+ D: ~0.80 — the single dismissal outweighs the acceptances
24
+ E: Depends on the reviewer, not the verdicts
25
+ correct: B
26
+ explanation: 'Expertise confidence adjusts per verdict: `+0.03` for accepted, `-0.02` for dismissed, `-0.01` for revised. Four acceptances: `4 * 0.03 = +0.12`. One dismissal: `1 * -0.02 = -0.02`. Net delta: `+0.10`. Starting from 0.85, the new confidence is approximately 0.95. In practice, confidence is clamped to `[0.0, 1.0]`, so it would be `min(1.0, 0.95) = 0.95`.'
27
+ - id: q2
28
+ question: What is the difference between `collaboration.stance` and `collaboration.with.{agent}.stance`?
29
+ choices:
30
+ A: They are the same field with different syntax
31
+ B: '`collaboration.stance` is the default stance toward all agents; `collaboration.with.{agent}.stance` overrides it for a specific agent'
32
+ C: '`collaboration.with` is deprecated in favor of `collaboration.stance`'
33
+ D: '`collaboration.stance` applies to humans; `collaboration.with` applies to agents'
34
+ E: '`collaboration.stance` only applies during orchestration; `collaboration.with` applies in Symphony'
35
+ correct: B
36
+ explanation: 'The top-level `collaboration.stance` (e.g., `advisory`) is the default relationship the agent has with all other agents. The `collaboration.with.{agent}.stance` (e.g., `with.architect.stance: peer`) overrides it for a specific agent. This allows fine-grained relationships: the security agent is `advisory` by default but treats the architect as a `peer` with `can_contradict: true`.'
37
+ - id: q3
38
+ question: 'An agent has a transferable pattern with `successRate: 0.5`. How does this affect its inclusion in orchestration prompts?'
39
+ choices:
40
+ A: It is included with a warning label
41
+ B: It is always included — all patterns are injected regardless of success rate
42
+ C: It is excluded — buildProfileEnrichment() only includes patterns with successRate >= 0.7
43
+ D: It is included but with reduced priority
44
+ E: It triggers a notification to the human to update the pattern
45
+ correct: C
46
+ explanation: 'The `buildProfileEnrichment()` function filters transferable patterns: `(profile.transferable || []).filter(p => p.successRate >= 0.7)`. Patterns with a success rate below 0.7 are excluded from prompt enrichment. A 0.5 success rate means the pattern works only half the time — injecting it into every orchestration prompt would waste context tokens on unreliable guidance. The agent needs to improve the pattern (or it will naturally improve as the system tracks successes) before it gets promoted to prompt enrichment.'
47
+ - id: q4
48
+ question: Why does the security agent's description explicitly state "He flags issues but does NOT implement fixes — that's the Builder's job"?
49
+ choices:
50
+ A: It is a style preference with no functional impact
51
+ B: The description is injected into the agent's prompt during orchestration, so explicit boundaries prevent the security agent from writing implementation code when it should only be reviewing
52
+ C: It is documentation for the human developer only
53
+ D: It prevents the security agent from being activated on implementation tasks
54
+ E: It triggers the orchestrator to always pair security with builder
55
+ correct: B
56
+ explanation: The agent's `description` field is injected into the orchestration prompt. When the LLM receives the security agent's prompt, it reads this boundary statement and constrains its behavior accordingly. Without explicit boundaries in the description, the LLM might generate implementation code when it should only flag issues for the builder. Clear description boundaries are how you enforce separation of concerns between agents that share the same underlying LLM.
57
+ - id: q5
58
+ question: What happens when the orchestrator calls buildProfileEnrichment() for an agent?
59
+ choices:
60
+ A: It writes the agent's profile to disk in a new format
61
+ B: It compiles the agent's .agent file into a binary prompt template
62
+ C: It assembles the agent's personality, relevant expertise, transferable patterns, notebook entries, and agent state into a markdown prompt section that makes the base LLM behave as that specific agent
63
+ D: It validates the agent's profile for schema errors
64
+ E: It sends the profile to the Conductor UI for display
65
+ correct: C
66
+ explanation: buildProfileEnrichment() is the function that transforms a static .agent file into a dynamic prompt enrichment section. It takes the agent's profile, the relevant symbols for the current task, notebook entries matched by concept, ambient context (decisions, journal insights, nominations), and agent state (last session, pending work). It assembles all of this into markdown that includes sections like '## Agent Identity', '## Your Expertise on Relevant Symbols', '## Transferable Patterns', '## Relevant Notebook Entries', and '## Your Recent Work on This Project'. This prompt enrichment is what makes the same base LLM behave differently as each agent.
@@ -0,0 +1,66 @@
1
+ id: Q-para-701-agent-roster
2
+ title: 'PARA 701: Agent Mastery — Lesson 1: The Agent Roster'
3
+ description: 'Quiz for lesson: Lesson 1: The Agent Roster'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-701
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-701.json
16
+ questions:
17
+ - id: q1
18
+ question: A new SaaS web app project needs to build a payment flow with Stripe integration. The task touches `^authenticated`, `$checkout-flow`, and `#payment-service`. Which agents would the orchestrator most likely include, and why?
19
+ choices:
20
+ A: Only the builder — it is a coding task
21
+ B: The architect (plans the flow), builder (implements), security (gates on ^authenticated), reviewer (quality check), and documentor (.purpose updates) — because their attention patterns match the symbols involved
22
+ C: All 54 agents — payments are critical and need full coverage
23
+ D: The designer and copywriter — it is a user-facing payment page
24
+ E: The devops agent — Stripe is infrastructure
25
+ correct: B
26
+ explanation: The orchestrator matches task symbols against agent attention patterns. The architect's `$*` pattern matches `$checkout-flow`. Security's `^*` pattern matches `^authenticated`. The builder's path patterns match source files. The reviewer watches all symbol types. The documentor has the lowest threshold (0.3) and matches symbol patterns. The designer and copywriter might be included if UI work is required, but the core selection is driven by symbol matching against attention patterns.
27
+ - id: q2
28
+ question: Why does the security agent have an attention threshold of 0.45 while the builder has 0.75?
29
+ choices:
30
+ A: The security agent is more important than the builder
31
+ B: The builder writes more code and needs to be more selective about when it speaks up
32
+ C: The cost of missing a security issue (low threshold = more alerts) far outweighs the cost of a false alarm, while the builder should only engage when directly relevant to implementation
33
+ D: Lower thresholds mean the agent runs faster
34
+ E: The thresholds are arbitrary defaults with no design rationale
35
+ correct: C
36
+ explanation: Threshold values encode the asymmetry of costs. A security agent that stays quiet when a gate is missing creates a vulnerability — the cost of a false negative is high. So it uses a low threshold (0.45) to speak up early and often. The builder speaking up on tasks not directly relevant to implementation just adds noise. The cost of a builder false positive is wasted context tokens. So it uses a higher threshold (0.75) to stay focused.
37
+ - id: q3
38
+ question: What is the purpose of the Meta tier agents (forge, trainer, documentor, mediator)?
39
+ choices:
40
+ A: They manage the codebase directly, writing and reviewing source files
41
+ B: They manage other agents — designing new agents, training existing ones, maintaining Paradigm files, and resolving agent disagreements
42
+ C: They are administrative agents that handle user authentication
43
+ D: They provide backup for the builder when it is unavailable
44
+ E: They are deprecated and no longer used in the roster
45
+ correct: B
46
+ explanation: Meta agents operate on the agent system itself rather than on the codebase directly. Loid (forge) designs and builds new agents by understanding the full .agent profile schema. Sensei (trainer) reviews agent performance and curates notebook entries to improve them. The documentor maintains .purpose and portal.yaml files after other agents finish. Bridge (mediator) resolves disagreements between agents. They are the agents that make other agents better.
47
+ - id: q4
48
+ question: A developer is working on a game project built with Godot. Which of these agents would likely NOT be in the project roster?
49
+ choices:
50
+ A: The gamedev agent (Pixel)
51
+ B: The 3d agent (Neon)
52
+ C: The audio agent (Echo)
53
+ D: The SEO agent (Beacon)
54
+ E: The builder agent
55
+ correct: D
56
+ explanation: The SEO agent (Beacon) specializes in search engine optimization — concepts like meta tags, crawlability, structured data, and organic traffic. A Godot game project has no web pages to optimize for search engines. The game project type suggests a roster including architect, builder, reviewer, tester, documentor, gamedev (Pixel), 3d (Neon), audio (Echo), designer, performance, and debugger. SEO is irrelevant to this domain.
57
+ - id: q5
58
+ question: What distinguishes Jinx (advocate) from the reviewer in the Reviewers tier?
59
+ choices:
60
+ A: Jinx writes code and the reviewer does not
61
+ B: Jinx is a devil's advocate who stress-tests assumptions and challenges approaches, while the reviewer checks code correctness, quality, and Paradigm compliance
62
+ C: Jinx is the reviewer's backup — they do the same work
63
+ D: Jinx only works on security-related code
64
+ E: Jinx has a higher attention threshold than the reviewer
65
+ correct: B
66
+ explanation: 'Jinx and the reviewer serve fundamentally different purposes. The reviewer checks code quality: correctness, naming conventions, .purpose coverage, aspect anchors, test coverage. Jinx''s job is to argue against the current approach entirely — she stress-tests assumptions, finds edge cases nobody considered, and asks uncomfortable questions. Her personality is confrontational and aggressive, while the reviewer is deliberate and conservative. Jinx attacks the design; the reviewer evaluates the implementation.'