@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-201-flows-deep-dive
2
+ title: 'PARA 201: Architecture — Flows in Depth'
3
+ description: 'Quiz for lesson: Flows in Depth'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-201
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-201.json
16
+ questions:
17
+ - id: q1
18
+ question: A controller calls a service, which queries a database and returns a result. Should this be a $flow?
19
+ choices:
20
+ A: Yes — any multi-step process should be a flow
21
+ B: Yes — database queries always require flow documentation
22
+ C: No — this is a two-component interaction with no sequence ambiguity
23
+ D: No — flows can only be used for user-facing features
24
+ E: It depends on whether the service emits a signal
25
+ correct: C
26
+ explanation: A flow is warranted when logic spans three or more components in a specific order. A controller calling a service (with its database query) is a straightforward two-component interaction that can be documented on the component itself.
27
+ - id: q2
28
+ question: Where should a $checkout-flow be defined if the checkout process starts in the cart module?
29
+ choices:
30
+ A: In .paradigm/flows/checkout.yaml
31
+ B: In portal.yaml under a flows section
32
+ C: In src/cart/.purpose, since the cart module initiates the flow
33
+ D: In every .purpose file of every component involved in the flow
34
+ E: In a standalone checkout-flow.purpose file at the project root
35
+ correct: C
36
+ explanation: Flows are defined in the .purpose file of the initiating component's directory. Since the checkout flow starts in the cart module, it belongs in src/cart/.purpose. The flow will reference components from other directories.
37
+ - id: q3
38
+ question: 'What does `paradigm_flow_check` with `checkImplementation: true` verify?'
39
+ choices:
40
+ A: That the flow executes correctly at runtime
41
+ B: That referenced components exist in .purpose files, actions are implemented, and signals are emitted
42
+ C: That the flow has fewer than 10 steps
43
+ D: That all flows use the same naming convention
44
+ E: That the flow is referenced in portal.yaml
45
+ correct: B
46
+ explanation: 'With checkImplementation: true, the validator performs deep checks: it verifies that referenced #components exist in .purpose files, that the named actions are implemented in the actual codebase, and that listed signals are actually emitted. This catches documentation-code drift.'
47
+ - id: q4
48
+ question: What is the fundamental nature of a Paradigm flow?
49
+ choices:
50
+ A: A workflow engine that orchestrates service calls at runtime
51
+ B: A saga implementation with rollback support
52
+ C: Documentation metadata describing what happens in a sequence, not how to execute it
53
+ D: A state machine that transitions between components
54
+ E: An event bus configuration defining message routing
55
+ correct: C
56
+ explanation: Flows are documentation, not orchestration. They describe the sequence of operations for humans and AI agents to understand. Your code still handles the actual service calls, error handling, and state management however you choose to implement it.
57
+ - id: q5
58
+ question: '`$checkout-flow` lists `relatedFlows: [$payment-flow]` and `$payment-flow` lists `relatedFlows: [$checkout-flow]`. What does `paradigm_flow_check` report?'
59
+ choices:
60
+ A: No issues — bidirectional references are valid
61
+ B: 'A circular dependency: $checkout-flow → $payment-flow → $checkout-flow'
62
+ C: A missing step error — related flows must appear as steps
63
+ D: A naming violation — flows cannot reference each other
64
+ E: A warning about duplicate flow definitions
65
+ correct: B
66
+ explanation: When flows reference each other in a cycle via relatedFlows, Paradigm detects it as a circular dependency using depth-first search. The resolution is to extract shared logic into a third flow, remove one direction of the dependency, or replace direct flow references with signal-based communication.
@@ -0,0 +1,66 @@
1
+ id: Q-para-201-gates-deep-dive
2
+ title: 'PARA 201: Architecture — Gates in Depth'
3
+ description: 'Quiz for lesson: Gates in Depth'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-201
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-201.json
16
+ questions:
17
+ - id: q1
18
+ question: A gate checks whether a user's subscription is active before allowing access to premium content. What type should this gate be?
19
+ choices:
20
+ A: auth — it verifies the user's identity
21
+ B: role — it checks the user's permission level
22
+ C: ownership — it verifies resource ownership
23
+ D: state-precondition — it verifies the system is in the right condition
24
+ E: integration — it checks a third-party service
25
+ correct: D
26
+ explanation: This gate verifies system state — whether the subscription is active — rather than identity (auth), permission level (role), or resource ownership. State-precondition gates check conditions about the current state of data.
27
+ - id: q2
28
+ question: 'What is wrong with this gate check expression: `check: user is admin`?'
29
+ choices:
30
+ A: Nothing — it is clear and concise
31
+ B: It should use JavaScript syntax, not English
32
+ C: It is too vague — a developer cannot implement it without more information
33
+ D: It is missing the req. prefix
34
+ E: Gate checks must be written in YAML, not pseudo-code
35
+ correct: C
36
+ explanation: 'Check expressions should be precise enough to implement from reading the expression. ''user is admin'' does not specify how admin status is determined — is it a boolean field? A role in an array? A separate table? A better expression: project.admins.includes(req.user.id).'
37
+ - id: q3
38
+ question: 'A route requires `[^authenticated, ^org-admin, ^billing-enabled]`. The `^org-admin` gate has `requires: [^authenticated]`. What happens at runtime?'
39
+ choices:
40
+ A: ^authenticated runs twice — once from the route, once from ^org-admin's requires
41
+ B: ^authenticated runs once, ^org-admin runs once, ^billing-enabled runs once — in that order
42
+ C: An error is thrown because ^authenticated is listed both in the route and in requires
43
+ D: All three gates run in parallel for performance
44
+ E: Only ^billing-enabled runs because the other two are implicit from requires
45
+ correct: B
46
+ explanation: 'Gate chains prevent redundant checks. ^authenticated is required by ^org-admin, but since the route lists ^authenticated first, it runs once and subsequent gates know it already passed. The three gates execute in order: authenticated, org-admin, billing-enabled.'
47
+ - id: q4
48
+ question: When should the `effects` field be an empty array `[]`?
49
+ choices:
50
+ A: Never — every gate must have at least one prize
51
+ B: When the gate has no side effects to trigger on pass
52
+ C: When the gate is of type 'auth'
53
+ D: When the gate is used on GET routes only
54
+ E: When the gate has been deprecated
55
+ correct: B
56
+ explanation: 'Use effects: [] when the gate has no side effects. Most gates simply allow or deny access without triggering additional actions. Effects are for special cases like gamification badges, onboarding rewards, or analytics events.'
57
+ - id: q5
58
+ question: 'portal.yaml says `"DELETE /api/posts/:id": [^authenticated, ^post-author]`, but the route handler only checks authentication, not authorship. What is the consequence?'
59
+ choices:
60
+ A: No consequence — portal.yaml is just documentation
61
+ B: The route will return 403 automatically based on portal.yaml
62
+ C: Any authenticated user can delete any post — a security vulnerability caused by the implementation not matching the specification
63
+ D: The paradigm scan command will fix the discrepancy automatically
64
+ E: The delete will fail silently
65
+ correct: C
66
+ explanation: portal.yaml defines what SHOULD happen, but your code must implement it. If the middleware only checks authentication without verifying post authorship, any logged-in user can delete any post. This is a security vulnerability caused by specification-implementation drift.
@@ -0,0 +1,56 @@
1
+ id: Q-para-201-portal-protocol
2
+ title: 'PARA 201: Architecture — The Portal Protocol'
3
+ description: 'Quiz for lesson: The Portal Protocol'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-201
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-201.json
16
+ questions:
17
+ - id: q1
18
+ question: You need to add `DELETE /api/teams/:id`. What is the FIRST step in the Portal Protocol?
19
+ choices:
20
+ A: Write the delete handler and add authentication middleware
21
+ B: Add the route to portal.yaml with [^authenticated]
22
+ C: Call paradigm_gates_for_route to get gate suggestions
23
+ D: Write a test for the 403 response
24
+ E: Create a ^team-admin gate in middleware
25
+ correct: C
26
+ explanation: The Portal Protocol starts with asking Paradigm. Call paradigm_gates_for_route with the route and method to get suggestions based on existing patterns. This ensures you consider all necessary gates before implementation.
27
+ - id: q2
28
+ question: 'Your portal.yaml specifies `"PUT /api/posts/:id": [^authenticated, ^post-author]`. Your middleware only checks ^authenticated. What is the security impact?'
29
+ choices:
30
+ A: None — portal.yaml automatically enforces all listed gates
31
+ B: Any authenticated user can edit any post, because the ^post-author check is missing from the implementation
32
+ C: The route will return 500 because of the missing gate
33
+ D: Paradigm will block the request at the framework level
34
+ E: The post-author gate runs automatically via the requires field
35
+ correct: B
36
+ explanation: portal.yaml is a specification, not enforcement. If the middleware does not implement the ^post-author check, any authenticated user can edit any post. This is a security vulnerability caused by the implementation not matching the specification.
37
+ - id: q3
38
+ question: In a web API, which HTTP status code should a failed authentication gate return, versus a failed authorization gate?
39
+ choices:
40
+ A: Both return 403 Forbidden
41
+ B: Authentication returns 401 Unauthorized; authorization returns 403 Forbidden
42
+ C: Authentication returns 403 Forbidden; authorization returns 401 Unauthorized
43
+ D: Both return 401 Unauthorized
44
+ E: Authentication returns 400 Bad Request; authorization returns 403 Forbidden
45
+ correct: B
46
+ explanation: In the HTTP discipline, the standard distinguishes between authentication (who are you?) and authorization (are you allowed?). A failed auth gate (^authenticated) returns 401 Unauthorized. A failed role/ownership gate (^project-admin) returns 403 Forbidden. Note that this is the web API implementation — other disciplines express gate failure differently (a mobile app might show a login screen or disable a button; a CLI might exit with an error code).
47
+ - id: q4
48
+ question: Why does the Portal Protocol require defining gates BEFORE writing handler code?
49
+ choices:
50
+ A: Because Paradigm cannot parse handler code that already exists
51
+ B: Because it creates an auditable specification separate from implementation, preventing conditions as an afterthought
52
+ C: Because TypeScript requires gate types to be defined before use
53
+ D: Because AI agents refuse to write code without portal.yaml
54
+ E: Because gate middleware must be loaded before route handlers in the server stack
55
+ correct: B
56
+ explanation: The Portal Protocol's core principle is specification before implementation. By specifying gates in portal.yaml first, you create an auditable specification that is separate from (and checkable against) the implementation. This prevents the common pattern of building features first and bolting on checks later.
@@ -0,0 +1,56 @@
1
+ id: Q-para-201-signal-patterns
2
+ title: 'PARA 201: Architecture — Signal Patterns'
3
+ description: 'Quiz for lesson: Signal Patterns'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-201
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-201.json
16
+ questions:
17
+ - id: q1
18
+ question: The order service needs to send a confirmation email after an order is placed. What is the correct architecture?
19
+ choices:
20
+ A: The order service directly calls the email service's sendEmail method
21
+ B: The order service emits !order-placed; the email service listens to that signal
22
+ C: The email service polls the order service every 5 seconds for new orders
23
+ D: A $send-email-flow orchestrates the interaction
24
+ E: The order service includes email logic internally
25
+ correct: B
26
+ explanation: Signal-based communication decouples the order service from the email service. The order service emits !order-placed and does not know who listens. The email service independently listens for that signal. This means you can add more listeners (analytics, loyalty points) without touching the order service.
27
+ - id: q2
28
+ question: Where are signal listeners documented in Paradigm?
29
+ choices:
30
+ A: On the signal definition in the 'listeners' field
31
+ B: On the listening component in a 'listens' field
32
+ C: In portal.yaml under a 'listeners' section
33
+ D: In .paradigm/config.yaml
34
+ E: They are not documented — only emitters are tracked
35
+ correct: B
36
+ explanation: Listeners are documented on the component that listens, using a 'listens' field. This asymmetry is intentional — the emitter declares what it emits (on the signal), and each listener independently declares what it consumes (on the component). This maintains true decoupling.
37
+ - id: q3
38
+ question: A failed login attempt from an unknown IP should emit what category of signal?
39
+ choices:
40
+ A: business — it affects the user's experience
41
+ B: system — it is an infrastructure event
42
+ C: security — it is an authentication event relevant to audit trails
43
+ D: error — it indicates a system failure
44
+ E: It should not emit a signal — failed logins are expected
45
+ correct: C
46
+ explanation: Failed login attempts are security events. They are critical for audit trails, intrusion detection, and monitoring suspicious activity. The signal (!login-failed) should include data like email, reason, and IP address to support security analysis.
47
+ - id: q4
48
+ question: A system currently has !order-placed consumed by 3 listeners. A developer needs to add a Slack notification when orders are placed. What must change?
49
+ choices:
50
+ A: The !order-placed signal definition must be updated to list the Slack notifier as an emitter
51
+ B: The $order-flow must add a Slack notification step
52
+ C: 'Only the new #slack-notifier component needs a ''listens: ["!order-placed"]'' declaration — nothing else changes'
53
+ D: 'The #order-service must be modified to call the Slack API'
54
+ E: portal.yaml must add a ^slack-authorized gate
55
+ correct: C
56
+ explanation: This is the power of signal-based decoupling. Adding a new listener requires only defining the new component with its 'listens' field. The signal definition, the emitting component, and all existing listeners remain untouched.
@@ -0,0 +1,66 @@
1
+ id: Q-para-201-symbol-naming
2
+ title: 'PARA 201: Architecture — Symbol Naming Conventions'
3
+ description: 'Quiz for lesson: Symbol Naming Conventions'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-201
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-201.json
16
+ questions:
17
+ - id: q1
18
+ question: Which of these signal names follows Paradigm naming conventions?
19
+ choices:
20
+ A: '!processPayment'
21
+ B: '!payment-completed'
22
+ C: '!PaymentSignal'
23
+ D: '!creating-user'
24
+ E: '!payment_done'
25
+ correct: B
26
+ explanation: 'Signals use kebab-case and past-tense naming: !payment-completed. Option A uses camelCase and imperative mood. C uses PascalCase. D uses progressive tense. E uses underscores instead of hyphens.'
27
+ - id: q2
28
+ question: 'A flow that handles user registration from form submission to welcome email should be named:'
29
+ choices:
30
+ A: $doRegistration
31
+ B: $registerUser
32
+ C: $user-registration-flow
33
+ D: $REGISTRATION
34
+ E: $flow_register
35
+ correct: C
36
+ explanation: Flows use kebab-case with a noun-flow pattern. $user-registration-flow is descriptive and follows the convention. Imperative names (doRegistration, registerUser), ALL CAPS, and underscores all violate the naming rules.
37
+ - id: q3
38
+ question: What is wrong with the gate name `^check1`?
39
+ choices:
40
+ A: Nothing — it is valid kebab-case
41
+ B: Gates must start with a verb
42
+ C: The number 1 is not allowed in symbol names
43
+ D: It is non-descriptive — the name should describe what the gate verifies
44
+ E: Gates must end with '-gate'
45
+ correct: D
46
+ explanation: 'Gate names should describe what they verify: ^project-admin, ^email-verified, ^subscription-active. The name ^check1 tells you nothing about what condition is being checked. A developer or AI agent cannot infer the gate''s purpose from its name.'
47
+ - id: q4
48
+ question: A component wraps the Stripe API for payment processing. Its class is `StripePaymentClient`. What should its .purpose ID be?
49
+ choices:
50
+ A: '#StripePaymentClient'
51
+ B: '#stripe-payment-client'
52
+ C: '#stripe_payment_client'
53
+ D: '#stripePaymentClient'
54
+ E: '#STRIPE-CLIENT'
55
+ correct: B
56
+ explanation: 'All symbol IDs in .purpose files use kebab-case: #stripe-payment-client. The PascalCase class name (StripePaymentClient) is fine in code and descriptions, but the ID must be kebab-case.'
57
+ - id: q5
58
+ question: 'Which aspect name reads most naturally in the sentence: ''All financial services are ___''?'
59
+ choices:
60
+ A: ~doAudit
61
+ B: ~auditStuff
62
+ C: ~audit-required
63
+ D: ~auditService
64
+ E: ~the-audit-aspect
65
+ correct: C
66
+ explanation: 'Aspect names should read as adjectives or past-participles: ''All financial services are ~audit-required.'' Options A and B are informal/imperative, D sounds like a component name, and E is unnecessarily verbose.'
@@ -0,0 +1,56 @@
1
+ id: Q-para-301-context-management
2
+ title: 'PARA 301: Operations — Context Management'
3
+ description: 'Quiz for lesson: Context Management'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-301
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-301.json
16
+ questions:
17
+ - id: q1
18
+ question: How often should you call paradigm_session_health during a long session?
19
+ choices:
20
+ A: Only at the start of the session
21
+ B: Every 10-15 tool calls
22
+ C: Only when the AI starts forgetting things
23
+ D: Once per hour
24
+ E: Only before handoff
25
+ correct: B
26
+ explanation: The recommended cadence for context checks is every 10-15 tool calls. This proactive monitoring lets you prepare for handoff before context is exhausted, rather than discovering the limit when it is too late.
27
+ - id: q2
28
+ question: paradigm_session_health returns 'handoff-soon'. What should you do?
29
+ choices:
30
+ A: Ignore it and keep working
31
+ B: Immediately stop all work
32
+ C: Finish the current task, then call paradigm_handoff_prepare with summary and next steps
33
+ D: Delete old messages to free up context
34
+ E: Switch to a model with a larger context window
35
+ correct: C
36
+ explanation: When handoff is recommended, prioritize completing the current task (if close to done), then prepare a handoff summary. paradigm_handoff_prepare captures what was done, files modified, next steps, and open questions so the next session can continue seamlessly.
37
+ - id: q3
38
+ question: What is the first thing a new AI agent session should do to continue work from a previous session?
39
+ choices:
40
+ A: Read every file that was modified
41
+ B: Call paradigm_session_recover to load breadcrumbs from the previous session
42
+ C: Start the task from scratch
43
+ D: Call paradigm_doctor to validate the project
44
+ E: Run paradigm scan to rebuild the index
45
+ correct: B
46
+ explanation: paradigm_session_recover loads the breadcrumbs and handoff summary from the previous session. This tells the new agent what was done, what files were modified, what remains, and any open questions -- enabling seamless continuity.
47
+ - id: q4
48
+ question: At what context usage threshold does Paradigm recommend preparing a handoff?
49
+ choices:
50
+ A: 50%
51
+ B: 65%
52
+ C: 75%
53
+ D: 85%
54
+ E: 95%
55
+ correct: D
56
+ explanation: When context usage exceeds 85%, Paradigm recommends preparing a handoff. This leaves enough room to complete the current task and create a proper handoff summary without running out of context.
@@ -0,0 +1,76 @@
1
+ id: Q-para-301-decisions
2
+ title: 'PARA 301: Operations — The Decision Store'
3
+ description: 'Quiz for lesson: The Decision Store'
4
+ author: paradigm
5
+ created: '2026-04-18'
6
+ updated: '2026-04-18'
7
+ tags:
8
+ - course
9
+ - para-301
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: authored
15
+ source: v6.0-content-fix
16
+ questions:
17
+ - id: q1
18
+ question: In Paradigm v6.0, where do architectural decisions live?
19
+ choices:
20
+ A: '`.paradigm/wisdom/decisions.yaml` — written via `paradigm_wisdom_record({ type: ''decision'', ... })`'
21
+ B: '`.paradigm/lore/entries/{date}/L-*.yaml` — written via `paradigm_lore_record({ type: ''decision'', ... })`'
22
+ C: '`.paradigm/decisions/TD-*.yaml` — written via `paradigm_decision_record`, with a companion lore `insight` auto-written for timeline coverage'
23
+ D: '`.paradigm/history/decisions.jsonl` — written via `paradigm_history_record({ type: ''decision'', ... })`'
24
+ E: They live in commit messages with the `decision:` trailer
25
+ correct: C
26
+ explanation: 'In v6.0 decisions moved to a dedicated topic-addressable store at `.paradigm/decisions/`. Each decision is one `TD-*.yaml` file recorded via `paradigm_decision_record`. A companion lore entry of `type: ''insight''` is auto-written so the timeline still surfaces when the decision was made. Both `paradigm_wisdom_record({type:''decision''})` (A) and `paradigm_lore_record({type:''decision''})` (B) reject with a structured envelope pointing at the new tool.'
27
+ - id: q2
28
+ question: You call `paradigm_decision_record` and it succeeds. What gets written to disk?
29
+ choices:
30
+ A: Only the `TD-*.yaml` decision file
31
+ B: The `TD-*.yaml` decision file AND a companion lore `insight` entry with `references.decision_id` back-pointing to the TD- id
32
+ C: Only the companion lore entry — decisions are stored as a special lore type
33
+ D: Three files — one in decisions, one in wisdom, one in lore (for backward compat)
34
+ E: Nothing on disk — decisions are kept in memory only
35
+ correct: B
36
+ explanation: 'Two artifacts are written. (1) The canonical decision goes to `.paradigm/decisions/TD-*.yaml` — topic-addressable, with full ADR shape. (2) A companion lore entry of `type: ''insight''` goes to `.paradigm/lore/entries/{date}/L-*.yaml` with `references.decision_id` pointing back at the TD- id and the `companion-lore` + `decision-reference` tags. The lore entry keeps the project timeline complete; the TD- entry stays the source of truth. The companion write is best-effort — a failure to write the lore entry never blocks the decision record.'
37
+ - id: q3
38
+ question: 'A teammate has a v5 project with old `type: decision` lore entries in `.paradigm/lore/entries/`. They upgrade to v6.0 and run `paradigm_lore_search`. What happens to those old entries?'
39
+ choices:
40
+ A: They disappear — decisions are no longer a valid lore type
41
+ B: 'They are auto-deleted on the first read after upgrade'
42
+ C: 'They are remapped to `type: insight` on read and tagged `v6-migrated:from-decision`, so they remain searchable via the tag'
43
+ D: 'They throw errors and block lore-search until the user manually edits each one'
44
+ E: 'They are auto-converted into `paradigm_decision_record` entries in `.paradigm/decisions/`'
45
+ correct: C
46
+ explanation: 'v1/v2 entries with `type: decision` are remapped to `type: insight` on read with the `v6-migrated:from-decision` tag applied for forensic recovery. The old entries remain searchable (`paradigm_lore_search({ tag: ''v6-migrated:from-decision'' })`). There is no automatic conversion to canonical TD- records (E) — the v1/v2 entries lack the structured participant/alternative data the new shape requires, so promotion to the new store is deliberate, one-by-one.'
47
+ - id: q4
48
+ question: 'In v6.0, you call `paradigm_lore_record({ type: ''decision'', title: ''Use Redis'', ... })`. What is the response?'
49
+ choices:
50
+ A: 'The entry is recorded successfully — `decision` is still a valid lore type'
51
+ B: 'A structured rejection envelope (code: ''lore_type_decision_removed'', successor_tool: ''paradigm_decision_record'') so a calling agent can auto-retry against the right tool without human intervention'
52
+ C: A silent no-op — the call returns success but nothing is written
53
+ D: The entry is written but flagged as deprecated and hidden from search
54
+ E: The CLI prompts the user interactively to choose a different type
55
+ correct: B
56
+ explanation: 'The storage layer (in `packages/paradigm/src/core/lore/storage.ts`) hard-rejects `type: ''decision''` with a structured rejection envelope. The envelope includes `code: ''lore_type_decision_removed''`, `successor_tool: ''paradigm_decision_record''`, `removed_in: ''6.0.0''`, and `doc: ''docs/private/plans/v6.0-decisions-locked.md''`. Same shape applies if you call `paradigm_wisdom_record({type:''decision''})`. The structured shape lets a calling agent (LLM or script) auto-retry against the right tool — no human in the loop required.'
57
+ - id: q5
58
+ question: 'You finish a 40-minute work session that modified 5 files and decided to switch from PostgreSQL to CockroachDB. How should you record this in v6.0?'
59
+ choices:
60
+ A: 'Just `paradigm_decision_record` — it covers the choice; no lore needed'
61
+ B: 'Just `paradigm_lore_record({ type: ''agent-session'' })` with the choice in the `decisions` field'
62
+ C: 'Both: an `agent-session` lore entry covers the work session; if the DB choice also deserves canonical status (search by symbol, status lifecycle), call `paradigm_decision_record` separately. They are not mutually exclusive.'
63
+ D: 'Use `paradigm_wisdom_record({ type: ''decision'' })` — wisdom captures team choices'
64
+ E: 'Use `paradigm_history_record` — DB switches are implementation events'
65
+ correct: C
66
+ explanation: 'Lore and decisions are not mutually exclusive. The `agent-session` entry captures the work session (5 files modified, what was learned) — and its `decisions` field can hold a brief reference to the DB switch. If the DB choice also deserves canonical status (you want to search "what did we decide about the user-service database?" later), call `paradigm_decision_record` separately. The TD- entry is the canonical source; the agent-session lore covers "what happened that day." D is invalid in v6 (`paradigm_wisdom_record` rejects `type: ''decision''`).'
67
+ - id: q6
68
+ question: What does `paradigm_decision_record` give you that `paradigm_wisdom_record({type:''decision''})` (v5 style) did not?
69
+ choices:
70
+ A: Nothing — it is just a rename
71
+ B: Structured participants with stance enum (proposed/supported/dissented/abstained), structured alternatives_considered with rejected_because, status lifecycle (active/superseded/deprecated/rejected), bidirectional supersede tracking, and an automatic companion lore insight for timeline coverage
72
+ C: Faster writes — TD- files are smaller than wisdom entries
73
+ D: Encryption — decisions are encrypted at rest, wisdom was not
74
+ E: Public-key signing — every decision is cryptographically signed
75
+ correct: B
76
+ explanation: 'The new tool brings ADR-shape structure that the wisdom path never had: structured participants with a stance enum, structured alternatives_considered with `rejected_because`, a status lifecycle, bidirectional supersede tracking (`superseded_by` + `supersedes`), and the companion-lore pattern for automatic timeline coverage. None of A/C/D/E are real differences — the win is structured-data discipline plus the companion timeline write.'
@@ -0,0 +1,66 @@
1
+ id: Q-para-301-doctor-and-validation
2
+ title: 'PARA 301: Operations — Doctor & Validation'
3
+ description: 'Quiz for lesson: Doctor & Validation'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-301
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-301.json
16
+ questions:
17
+ - id: q1
18
+ question: Which of the following is NOT checked by paradigm doctor?
19
+ choices:
20
+ A: Purpose file YAML validity
21
+ B: Aspect anchor existence
22
+ C: Portal.yaml gate usage
23
+ D: JavaScript syntax errors in source code
24
+ E: Orphaned symbol detection
25
+ correct: D
26
+ explanation: 'paradigm doctor validates Paradigm metadata: .purpose files, portal.yaml, aspect anchors, and cross-references. It does not check source code syntax -- that is the job of your language''s compiler or linter.'
27
+ - id: q2
28
+ question: An aspect ~rate-limited has an anchor pointing to src/middleware/rate-limit.ts:10-25, but that file was recently renamed. What will paradigm doctor report?
29
+ choices:
30
+ A: Nothing -- it only checks YAML syntax
31
+ B: A warning about unused gates
32
+ C: An error because the anchor points to a file that no longer exists
33
+ D: It will automatically update the anchor
34
+ E: A suggestion to create the file
35
+ correct: C
36
+ explanation: Paradigm doctor verifies that aspect anchors point to files and line ranges that actually exist. If the file was renamed, the anchor is broken and doctor will report an error, prompting you to update the anchor.
37
+ - id: q3
38
+ question: When is the best time to run paradigm doctor?
39
+ choices:
40
+ A: Only during initial project setup
41
+ B: After major changes and before committing
42
+ C: Only when errors occur in production
43
+ D: Once per quarter
44
+ E: Only when adding new .purpose files
45
+ correct: B
46
+ explanation: paradigm doctor should be run after major changes (adding features, refactoring, renaming symbols) and before committing. Many teams also integrate it into pre-commit hooks or CI pipelines to catch metadata drift early.
47
+ - id: q4
48
+ question: What does paradigm_flow_check check when checkImplementation is set to true?
49
+ choices:
50
+ A: Only YAML syntax of the flow definition
51
+ B: That flow steps reference existing gates, actions are implemented in code, and signals are defined
52
+ C: Only that the flow has at least three steps
53
+ D: That the flow has been tested in production
54
+ E: Only that gate names match portal.yaml
55
+ correct: B
56
+ explanation: 'With checkImplementation enabled, paradigm_flow_check performs a deep check: verifying that gates exist in portal.yaml, that actions described in flow steps have corresponding implementations in the codebase, and that emitted signals are properly defined.'
57
+ - id: q5
58
+ question: 'A .purpose file contains: `description: "Handles order processing [NEEDS CLARIFICATION: should cancelled orders trigger refunds?]"`. How do `paradigm doctor` and `paradigm_purpose_validate` treat this marker?'
59
+ choices:
60
+ A: As an error that blocks validation and must be fixed immediately
61
+ B: As a warning that surfaces during checks but does not block validation
62
+ C: They ignore it completely -- it is just text in a description field
63
+ D: As an info message that only appears in verbose mode
64
+ E: As a fatal error that prevents the .purpose file from being parsed
65
+ correct: B
66
+ explanation: 'Clarification markers (`[NEEDS CLARIFICATION: ...]`) are treated as warnings, not errors. Both `paradigm doctor` and `paradigm_purpose_validate` scan description fields for this exact pattern and report matches as warnings. They surface during health checks to remind the team of unresolved design questions, but they do not block validation or break builds. Resolve them before shipping.'
@@ -0,0 +1,46 @@
1
+ id: Q-para-301-enforcement-levels
2
+ title: 'PARA 301: Operations — Enforcement Levels'
3
+ description: 'Quiz for lesson: Enforcement Levels'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-301
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-301.json
16
+ questions:
17
+ - id: q1
18
+ question: Your team is building a healthcare claims processing system that requires audit trails. A new developer joins and asks which enforcement level to use. What do you recommend?
19
+ choices:
20
+ A: Minimal — let the new developer learn without friction first
21
+ B: Balanced — it catches most issues without being too strict
22
+ C: Strict — healthcare is a regulated domain where every change must be documented and traceable
23
+ D: Minimal with lore-required overridden to block — just the audit trail matters
24
+ E: No enforcement — the team should self-police
25
+ correct: C
26
+ explanation: Healthcare is a regulated domain where compliance is not optional. Strict enforcement ensures every change has purpose files, portal gates, lore records, and passing drift checks — exactly the traceability an audit requires. The new developer should work within these constraints from day one rather than building habits that strict mode would later break.
27
+ - id: q2
28
+ question: Your project uses balanced enforcement but your team never records lore entries, causing constant warnings. What is the best fix?
29
+ choices:
30
+ A: Switch to minimal enforcement to silence all warnings
31
+ B: Override lore-required to off in config.yaml — your team does not need lore yet
32
+ C: Override lore-required to block — force the team to comply
33
+ D: Delete the enforcement section from config.yaml entirely
34
+ E: Ignore the warnings — they are just advisory
35
+ correct: B
36
+ explanation: Per-check overrides exist for exactly this situation. If your team is not ready for lore tracking, override lore-required to off rather than downgrading the entire enforcement level. This keeps all other balanced checks active while silencing the one that does not match your current workflow. You can re-enable it later when the team is ready.
37
+ - id: q3
38
+ question: A stop hook blocks your commit with "missing .purpose file for src/payments/". You are on balanced enforcement. What happened?
39
+ choices:
40
+ A: purpose-exists check failed — the .purpose file has a syntax error
41
+ B: purpose-coverage check blocked — you modified files in src/payments/ but that directory has no .purpose file
42
+ C: portal-gates check failed — src/payments/ has unprotected routes
43
+ D: purpose-freshness check failed — the .purpose file exists but is stale
44
+ E: aspect-anchors check failed — aspects in src/payments/ have broken anchors
45
+ correct: B
46
+ explanation: 'On balanced enforcement, purpose-coverage is the only check set to block (besides habits-blocking). The error message says "missing .purpose file" which means the directory lacks one entirely — that is purpose-coverage, not purpose-exists (which checks that referenced files exist) or purpose-freshness (which checks staleness). Fix: create a .purpose file in src/payments/ describing its components.'
@@ -0,0 +1,46 @@
1
+ id: Q-para-301-fragility-tracking
2
+ title: 'PARA 301: Operations — Fragility & Stability'
3
+ description: 'Quiz for lesson: Fragility & Stability'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-301
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-301.json
16
+ questions:
17
+ - id: q1
18
+ question: Which factors does Paradigm's fragility analysis consider when computing stability scores?
19
+ choices:
20
+ A: Only the number of lines of code
21
+ B: Change frequency, rollback count, fix-to-feature ratio, and recency of changes
22
+ C: Only how many rollbacks have occurred
23
+ D: The number of developers who have modified the symbol
24
+ E: Test coverage percentage
25
+ correct: B
26
+ explanation: 'Fragility analysis considers multiple factors: how frequently the symbol changes, how many rollbacks occurred, the ratio of fixes to features (high fix ratio suggests instability), and how recently changes were made.'
27
+ - id: q2
28
+ question: 'You are about to modify #billing-engine, which paradigm_history_fragility reports as fragile. What should you do FIRST?'
29
+ choices:
30
+ A: Skip the change entirely
31
+ B: Refactor the symbol to improve stability
32
+ C: Read its full history and check team wisdom to understand why it is unstable
33
+ D: Delete the symbol and start fresh
34
+ E: Increase the stability score manually
35
+ correct: C
36
+ explanation: Before modifying a fragile symbol, you should first understand why it is fragile by reading its history (paradigm_history_context) and checking team wisdom (paradigm_wisdom_context). This context helps you avoid repeating past mistakes.
37
+ - id: q3
38
+ question: A symbol has a high count of 'refactor' type events in its history. What might this indicate?
39
+ choices:
40
+ A: The symbol is well-maintained and actively improved
41
+ B: The symbol has excellent test coverage
42
+ C: Unclear requirements, poor initial design, or a component doing too much
43
+ D: The symbol is ready for production
44
+ E: The development team is very productive
45
+ correct: C
46
+ explanation: Frequent refactors often indicate underlying issues -- unclear requirements that keep changing, a poor initial design that needs constant adjustment, or a component that has grown beyond its original scope. The fragility system surfaces these patterns for root cause analysis.