@a-company/paradigm 5.38.0 → 6.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/dist/{accept-orchestration-OATWIRHP.js → accept-orchestration-TIXUQQGR.js} +1 -1
  2. package/dist/add-UOR4INIV.js +8 -0
  3. package/dist/agent-MB3H5EZA.js +33 -0
  4. package/dist/{agent-loader-RIVI6QPP.js → agent-loader-VGBPL3TH.js} +1 -1
  5. package/dist/{agent-loader-RJRVO5GQ.js → agent-loader-W3RQJVW7.js} +1 -1
  6. package/dist/{agents-suggest-HYTFMQD3.js → agents-suggest-IKY6VD2R.js} +1 -1
  7. package/dist/{ambient-WTLYUAQM.js → ambient-AI42BOM5.js} +12 -12
  8. package/dist/{ambient-76YMUA5Q.js → ambient-FNNFB4AP.js} +1 -1
  9. package/dist/{assess-UFPYEJKP.js → assess-63WXHWJV.js} +1 -1
  10. package/dist/authority-FA3HLEOA.js +2 -0
  11. package/dist/{calibration-OLJYB5HN.js → calibration-BDHGYJOK.js} +1 -1
  12. package/dist/chunk-23T6UG73.js +605 -0
  13. package/dist/{chunk-4L7665QV.js → chunk-2AU5L333.js} +1 -1
  14. package/dist/{chunk-BOYQAMGC.js → chunk-4N56FRNE.js} +1 -1
  15. package/dist/{chunk-5QOCKWK5.js → chunk-4PSD5R7N.js} +2 -2
  16. package/dist/{chunk-MQIG6SMF.js → chunk-6QXBXZF6.js} +1 -1
  17. package/dist/{chunk-ORDKEGII.js → chunk-AMLD7IYC.js} +1 -1
  18. package/dist/{chunk-3DZK54RU.js → chunk-DBEWOKD6.js} +32 -7
  19. package/dist/{chunk-AGFPVSX5.js → chunk-F6E3HW45.js} +1 -1
  20. package/dist/{chunk-X3U3IGYT.js → chunk-GD4F2HC6.js} +2 -2
  21. package/dist/chunk-GRZQIKST.js +2 -0
  22. package/dist/{chunk-HOBHJPTL.js → chunk-IOVHF4SR.js} +1 -1
  23. package/dist/{chunk-RLCH7DXQ.js → chunk-K7X3Z3GL.js} +1 -1
  24. package/dist/{chunk-74SGKSRQ.js → chunk-KAFQA7HV.js} +2 -2
  25. package/dist/{chunk-NEJ4ZLCY.js → chunk-LAYBUKMB.js} +1 -1
  26. package/dist/{chunk-4VKSEOXZ.js → chunk-LPBCQM5Y.js} +3 -3
  27. package/dist/chunk-Q527BPUF.js +2 -0
  28. package/dist/{chunk-AO7ZSRME.js → chunk-TQOT2LBO.js} +2 -2
  29. package/dist/{chunk-3XGNXXCT.js → chunk-UZ5H7K6Q.js} +1 -1
  30. package/dist/chunk-VIG5LSGZ.js +2 -0
  31. package/dist/chunk-VNIX5KBT.js +3 -0
  32. package/dist/chunk-WXF5VFB4.js +111 -0
  33. package/dist/chunk-XQLO5URP.js +11 -0
  34. package/dist/{chunk-DOCDDDTD.js → chunk-YNDPSWOE.js} +5 -5
  35. package/dist/chunk-Z5QW6USC.js +2 -0
  36. package/dist/{compliance-D7GD6ZYC.js → compliance-J3VOV445.js} +1 -1
  37. package/dist/config-schema-FLHRVZMI.js +2 -0
  38. package/dist/{context-audit-XRPT3OU2.js → context-audit-JVCA6GSV.js} +1 -1
  39. package/dist/{cursorrules-U5O4G5T4.js → cursorrules-ZXPXPZ3P.js} +1 -1
  40. package/dist/decision-loader-HELL2AMX.js +2 -0
  41. package/dist/{delete-P5VULXR4.js → delete-2C6ALLYY.js} +1 -1
  42. package/dist/{diff-YGHBIJY5.js → diff-75MABOSL.js} +1 -1
  43. package/dist/{dist-KGRCLBJP-2QAPFYNF.js → dist-GQ42YS5N-4HIJZVBB.js} +10 -10
  44. package/dist/{docs-USDAF26F.js → docs-TSAAS4W3.js} +1 -1
  45. package/dist/doctor-L5XZENCF.js +2 -0
  46. package/dist/{edit-GUU3HBVW.js → edit-P3MDAZLU.js} +1 -1
  47. package/dist/{flow-FVZR3YJ4.js → flow-BGXOVE2V.js} +1 -1
  48. package/dist/{hooks-TFMMMB2H.js → hooks-KUEE5KMM.js} +1 -1
  49. package/dist/index.js +6 -6
  50. package/dist/init-M44SO65G.js +2 -0
  51. package/dist/{init-XYB62Q3X.js → init-V4KSEKPK.js} +1 -1
  52. package/dist/{list-YKIQNKGB.js → list-2XIWUEMA.js} +1 -1
  53. package/dist/list-CFHINXIS.js +12 -0
  54. package/dist/lore-loader-D2ISOASW.js +2 -0
  55. package/dist/lore-loader-PXFKMKAN.js +2 -0
  56. package/dist/mcp.js +4 -4
  57. package/dist/metrics-UESGUHTA.js +2 -0
  58. package/dist/{migrate-Z5UQN57G.js → migrate-ZPNYDNM4.js} +1 -1
  59. package/dist/migrate-assessments-YSITX7KM.js +4 -0
  60. package/dist/migrate-decisions-NPLQOEEH.js +6 -0
  61. package/dist/migrate-plsat-EM2ACIQ3.js +6 -0
  62. package/dist/migration-notices-BHLEYC4T.js +4 -0
  63. package/dist/{nomination-engine-EALA5MGI.js → nomination-engine-NCLTGMAK.js} +1 -1
  64. package/dist/{notebook-loader-PXNRBBXD.js → notebook-loader-3J2OFMS3.js} +1 -1
  65. package/dist/{orchestrate-M5PBZBJQ.js → orchestrate-K4KBTBYK.js} +1 -1
  66. package/dist/{platform-server-DNAMH4YI.js → platform-server-ANOALDPL.js} +1 -1
  67. package/dist/{portal-check-ZMLVBIGW.js → portal-check-DV2VSJ5E.js} +1 -1
  68. package/dist/portal-compliance-JONQ4SOP.js +2 -0
  69. package/dist/{probe-3FTG6LYO.js → probe-5HAXULAD.js} +1 -1
  70. package/dist/{providers-AWA7WLLM.js → providers-TBPOE4DI.js} +1 -1
  71. package/dist/quiz-WYIZJG5K.js +10 -0
  72. package/dist/{record-YXPB34MY.js → record-N3VNYYKJ.js} +1 -1
  73. package/dist/registry-OUTA3DXW.js +20 -0
  74. package/dist/reindex-IZCD2JGD.js +2 -0
  75. package/dist/{retag-N5XF3KXP.js → retag-72R2OSZV.js} +1 -1
  76. package/dist/{review-77QI6VOC.js → review-2INNWLTW.js} +1 -1
  77. package/dist/{sentinel-HYAZ3CO5.js → sentinel-EFPEX246.js} +1 -1
  78. package/dist/{sentinel-bridge-VR357PKL.js → sentinel-bridge-UR2MKARY.js} +1 -1
  79. package/dist/{serve-U47GULB6.js → serve-3FMUWW5K.js} +1 -1
  80. package/dist/serve-OQYUO7CR.js +12 -0
  81. package/dist/{server-4YNUIK4W.js → server-4D77LCST.js} +1 -1
  82. package/dist/server-FGUL2FWQ.js +7 -0
  83. package/dist/session-tracker-HHNY6J4I.js +2 -0
  84. package/dist/{session-work-log-ZP45TREI.js → session-work-log-MEJ33TYD.js} +1 -1
  85. package/dist/{session-work-log-PAKXOFGL.js → session-work-log-ZVVJGO7X.js} +1 -1
  86. package/dist/{setup-FEWSYS3Y.js → setup-ZSEC72BS.js} +1 -1
  87. package/dist/shift-WGMZGWOC.js +60 -0
  88. package/dist/{show-PJ5LFLIL.js → show-JH7LJ5MT.js} +1 -1
  89. package/dist/show-WVHAL4VU.js +7 -0
  90. package/dist/{spawn-M5BAV252.js → spawn-KKDDR6UR.js} +1 -1
  91. package/dist/status-S7Z5FVIE.js +6 -0
  92. package/dist/{summary-PYTEIJ4U.js → summary-WLI3NF4G.js} +2 -2
  93. package/dist/{sweep-HU74OPVW.js → sweep-7TZFN5NS.js} +1 -1
  94. package/dist/sync-55U6QPIA.js +2 -0
  95. package/dist/{sync-llms-7CAI74QL.js → sync-llms-GF7DDQDI.js} +1 -1
  96. package/dist/{team-PDK64JXI.js → team-2LGZQRP4.js} +1 -1
  97. package/dist/{timeline-K3ZFKJ3R.js → timeline-RK7O2SCM.js} +1 -1
  98. package/dist/tools-4RRFTU5H.js +2 -0
  99. package/dist/university-content/notes/N-para-001-build-something.md +126 -0
  100. package/dist/university-content/notes/N-para-001-meet-the-team.md +85 -0
  101. package/dist/university-content/notes/N-para-001-shift-setup.md +74 -0
  102. package/dist/university-content/notes/N-para-101-component-types.md +99 -0
  103. package/dist/university-content/notes/N-para-101-first-steps.md +134 -0
  104. package/dist/university-content/notes/N-para-101-five-symbols.md +128 -0
  105. package/dist/university-content/notes/N-para-101-paradigm-logger.md +89 -0
  106. package/dist/university-content/notes/N-para-101-portal-yaml.md +112 -0
  107. package/dist/university-content/notes/N-para-101-project-structure.md +143 -0
  108. package/dist/university-content/notes/N-para-101-purpose-files.md +121 -0
  109. package/dist/university-content/notes/N-para-101-tags-and-classification.md +93 -0
  110. package/dist/university-content/notes/N-para-101-welcome.md +51 -0
  111. package/dist/university-content/notes/N-para-201-architecture-review.md +175 -0
  112. package/dist/university-content/notes/N-para-201-aspect-graph.md +79 -0
  113. package/dist/university-content/notes/N-para-201-aspects-and-anchors.md +112 -0
  114. package/dist/university-content/notes/N-para-201-component-patterns.md +138 -0
  115. package/dist/university-content/notes/N-para-201-cross-cutting-concerns.md +145 -0
  116. package/dist/university-content/notes/N-para-201-disciplines.md +187 -0
  117. package/dist/university-content/notes/N-para-201-flows-deep-dive.md +119 -0
  118. package/dist/university-content/notes/N-para-201-gates-deep-dive.md +165 -0
  119. package/dist/university-content/notes/N-para-201-portal-protocol.md +133 -0
  120. package/dist/university-content/notes/N-para-201-signal-patterns.md +159 -0
  121. package/dist/university-content/notes/N-para-201-symbol-naming.md +149 -0
  122. package/dist/university-content/notes/N-para-301-context-management.md +53 -0
  123. package/dist/university-content/notes/N-para-301-decisions.md +99 -0
  124. package/dist/university-content/notes/N-para-301-doctor-and-validation.md +70 -0
  125. package/dist/university-content/notes/N-para-301-enforcement-levels.md +102 -0
  126. package/dist/university-content/notes/N-para-301-fragility-tracking.md +50 -0
  127. package/dist/university-content/notes/N-para-301-history-system.md +42 -0
  128. package/dist/university-content/notes/N-para-301-navigation-system.md +55 -0
  129. package/dist/university-content/notes/N-para-301-operations-review.md +55 -0
  130. package/dist/university-content/notes/N-para-301-paradigm-shift.md +93 -0
  131. package/dist/university-content/notes/N-para-301-protocols.md +113 -0
  132. package/dist/university-content/notes/N-para-301-ripple-analysis.md +53 -0
  133. package/dist/university-content/notes/N-para-301-sentinel-observability.md +87 -0
  134. package/dist/university-content/notes/N-para-301-sync-and-maintenance.md +57 -0
  135. package/dist/university-content/notes/N-para-301-wisdom-system.md +89 -0
  136. package/dist/university-content/notes/N-para-401-agent-identity.md +99 -0
  137. package/dist/university-content/notes/N-para-401-agent-interop.md +87 -0
  138. package/dist/university-content/notes/N-para-401-agent-roles.md +107 -0
  139. package/dist/university-content/notes/N-para-401-commit-conventions.md +82 -0
  140. package/dist/university-content/notes/N-para-401-mastery-review.md +71 -0
  141. package/dist/university-content/notes/N-para-401-mcp-tools-overview.md +102 -0
  142. package/dist/university-content/notes/N-para-401-multi-agent-coordination.md +80 -0
  143. package/dist/university-content/notes/N-para-401-notebooks-permissions.md +66 -0
  144. package/dist/university-content/notes/N-para-401-orchestration-workflow.md +101 -0
  145. package/dist/university-content/notes/N-para-401-pm-governance.md +71 -0
  146. package/dist/university-content/notes/N-para-401-provider-cascade.md +75 -0
  147. package/dist/university-content/notes/N-para-401-quick-check.md +95 -0
  148. package/dist/university-content/notes/N-para-451-agent-routing.md +117 -0
  149. package/dist/university-content/notes/N-para-451-archetypes-vs-instances.md +82 -0
  150. package/dist/university-content/notes/N-para-451-identity-layers.md +76 -0
  151. package/dist/university-content/notes/N-para-451-orchestration-modes.md +85 -0
  152. package/dist/university-content/notes/N-para-451-paradigm-shift.md +95 -0
  153. package/dist/university-content/notes/N-para-451-partners-primitive.md +107 -0
  154. package/dist/university-content/notes/N-para-451-roster-management.md +132 -0
  155. package/dist/university-content/notes/N-para-451-roster-reference.md +106 -0
  156. package/dist/university-content/notes/N-para-451-the-team-pattern.md +87 -0
  157. package/dist/university-content/notes/N-para-451-tiers.md +81 -0
  158. package/dist/university-content/notes/N-para-451-welcome.md +55 -0
  159. package/dist/university-content/notes/N-para-451-what-is-an-agent.md +73 -0
  160. package/dist/university-content/notes/N-para-501-advanced-workflows.md +122 -0
  161. package/dist/university-content/notes/N-para-501-aspect-graph-advanced.md +195 -0
  162. package/dist/university-content/notes/N-para-501-aspect-graph-internals.md +97 -0
  163. package/dist/university-content/notes/N-para-501-assessment-loops.md +116 -0
  164. package/dist/university-content/notes/N-para-501-conductor-workspace.md +77 -0
  165. package/dist/university-content/notes/N-para-501-habits-practice.md +164 -0
  166. package/dist/university-content/notes/N-para-501-hook-enforcement.md +100 -0
  167. package/dist/university-content/notes/N-para-501-lore-system.md +155 -0
  168. package/dist/university-content/notes/N-para-501-platform-agent-ui.md +108 -0
  169. package/dist/university-content/notes/N-para-501-review-compliance.md +72 -0
  170. package/dist/university-content/notes/N-para-501-sentinel-deep-dive.md +173 -0
  171. package/dist/university-content/notes/N-para-501-session-intelligence.md +104 -0
  172. package/dist/university-content/notes/N-para-501-symphony-a-mail.md +120 -0
  173. package/dist/university-content/notes/N-para-501-symphony-networking.md +119 -0
  174. package/dist/university-content/notes/N-para-501-task-management.md +100 -0
  175. package/dist/university-content/notes/N-para-601-agent-renaissance.md +121 -0
  176. package/dist/university-content/notes/N-para-601-attention-scoring.md +129 -0
  177. package/dist/university-content/notes/N-para-601-context-composition.md +146 -0
  178. package/dist/university-content/notes/N-para-601-data-sovereignty.md +140 -0
  179. package/dist/university-content/notes/N-para-601-event-stream.md +126 -0
  180. package/dist/university-content/notes/N-para-601-knowledge-streams.md +144 -0
  181. package/dist/university-content/notes/N-para-601-learning-loop.md +68 -0
  182. package/dist/university-content/notes/N-para-601-maestro-team-collab.md +136 -0
  183. package/dist/university-content/notes/N-para-601-nominations-debates.md +115 -0
  184. package/dist/university-content/notes/N-para-701-agent-notebooks.md +131 -0
  185. package/dist/university-content/notes/N-para-701-agent-pods-nevrland.md +182 -0
  186. package/dist/university-content/notes/N-para-701-agent-profiles.md +197 -0
  187. package/dist/university-content/notes/N-para-701-agent-roster.md +82 -0
  188. package/dist/university-content/notes/N-para-701-agent-state.md +180 -0
  189. package/dist/university-content/notes/N-para-701-learning-feedback-loop.md +188 -0
  190. package/dist/university-content/notes/N-para-701-model-tier-resolution.md +204 -0
  191. package/dist/university-content/notes/N-para-701-orchestration-enforcement.md +169 -0
  192. package/dist/university-content/notes/N-para-701-per-project-rosters.md +198 -0
  193. package/dist/university-content/notes/N-para-701-symphony-visibility.md +142 -0
  194. package/dist/university-content/paths/LP-para-001.yaml +29 -0
  195. package/dist/university-content/paths/LP-para-101.yaml +59 -0
  196. package/dist/university-content/paths/LP-para-201.yaml +69 -0
  197. package/dist/university-content/paths/LP-para-301.yaml +84 -0
  198. package/dist/university-content/paths/LP-para-401.yaml +74 -0
  199. package/dist/university-content/paths/LP-para-451.yaml +69 -0
  200. package/dist/university-content/paths/LP-para-501.yaml +89 -0
  201. package/dist/university-content/paths/LP-para-601.yaml +59 -0
  202. package/dist/university-content/paths/LP-para-701.yaml +64 -0
  203. package/dist/university-content/quizzes/Q-para-001-build-something.yaml +46 -0
  204. package/dist/university-content/quizzes/Q-para-001-meet-the-team.yaml +46 -0
  205. package/dist/university-content/quizzes/Q-para-001-shift-setup.yaml +46 -0
  206. package/dist/university-content/quizzes/Q-para-101-component-types.yaml +46 -0
  207. package/dist/university-content/quizzes/Q-para-101-first-steps.yaml +56 -0
  208. package/dist/university-content/quizzes/Q-para-101-five-symbols.yaml +66 -0
  209. package/dist/university-content/quizzes/Q-para-101-paradigm-logger.yaml +56 -0
  210. package/dist/university-content/quizzes/Q-para-101-portal-yaml.yaml +56 -0
  211. package/dist/university-content/quizzes/Q-para-101-project-structure.yaml +66 -0
  212. package/dist/university-content/quizzes/Q-para-101-purpose-files.yaml +56 -0
  213. package/dist/university-content/quizzes/Q-para-101-tags-and-classification.yaml +56 -0
  214. package/dist/university-content/quizzes/Q-para-101-welcome.yaml +56 -0
  215. package/dist/university-content/quizzes/Q-para-201-architecture-review.yaml +66 -0
  216. package/dist/university-content/quizzes/Q-para-201-aspect-graph.yaml +46 -0
  217. package/dist/university-content/quizzes/Q-para-201-aspects-and-anchors.yaml +56 -0
  218. package/dist/university-content/quizzes/Q-para-201-component-patterns.yaml +56 -0
  219. package/dist/university-content/quizzes/Q-para-201-cross-cutting-concerns.yaml +56 -0
  220. package/dist/university-content/quizzes/Q-para-201-disciplines.yaml +66 -0
  221. package/dist/university-content/quizzes/Q-para-201-flows-deep-dive.yaml +66 -0
  222. package/dist/university-content/quizzes/Q-para-201-gates-deep-dive.yaml +66 -0
  223. package/dist/university-content/quizzes/Q-para-201-portal-protocol.yaml +56 -0
  224. package/dist/university-content/quizzes/Q-para-201-signal-patterns.yaml +56 -0
  225. package/dist/university-content/quizzes/Q-para-201-symbol-naming.yaml +66 -0
  226. package/dist/university-content/quizzes/Q-para-301-context-management.yaml +56 -0
  227. package/dist/university-content/quizzes/Q-para-301-decisions.yaml +76 -0
  228. package/dist/university-content/quizzes/Q-para-301-doctor-and-validation.yaml +66 -0
  229. package/dist/university-content/quizzes/Q-para-301-enforcement-levels.yaml +46 -0
  230. package/dist/university-content/quizzes/Q-para-301-fragility-tracking.yaml +46 -0
  231. package/dist/university-content/quizzes/Q-para-301-history-system.yaml +56 -0
  232. package/dist/university-content/quizzes/Q-para-301-navigation-system.yaml +56 -0
  233. package/dist/university-content/quizzes/Q-para-301-operations-review.yaml +66 -0
  234. package/dist/university-content/quizzes/Q-para-301-paradigm-shift.yaml +46 -0
  235. package/dist/university-content/quizzes/Q-para-301-protocols.yaml +56 -0
  236. package/dist/university-content/quizzes/Q-para-301-ripple-analysis.yaml +56 -0
  237. package/dist/university-content/quizzes/Q-para-301-sentinel-observability.yaml +46 -0
  238. package/dist/university-content/quizzes/Q-para-301-sync-and-maintenance.yaml +46 -0
  239. package/dist/university-content/quizzes/Q-para-301-wisdom-system.yaml +56 -0
  240. package/dist/university-content/quizzes/Q-para-401-agent-identity.yaml +66 -0
  241. package/dist/university-content/quizzes/Q-para-401-agent-interop.yaml +46 -0
  242. package/dist/university-content/quizzes/Q-para-401-agent-roles.yaml +56 -0
  243. package/dist/university-content/quizzes/Q-para-401-commit-conventions.yaml +56 -0
  244. package/dist/university-content/quizzes/Q-para-401-mastery-review.yaml +66 -0
  245. package/dist/university-content/quizzes/Q-para-401-mcp-tools-overview.yaml +66 -0
  246. package/dist/university-content/quizzes/Q-para-401-multi-agent-coordination.yaml +76 -0
  247. package/dist/university-content/quizzes/Q-para-401-notebooks-permissions.yaml +61 -0
  248. package/dist/university-content/quizzes/Q-para-401-orchestration-workflow.yaml +66 -0
  249. package/dist/university-content/quizzes/Q-para-401-pm-governance.yaml +66 -0
  250. package/dist/university-content/quizzes/Q-para-401-provider-cascade.yaml +56 -0
  251. package/dist/university-content/quizzes/Q-para-401-quick-check.yaml +46 -0
  252. package/dist/university-content/quizzes/Q-para-451-foundations.yaml +154 -0
  253. package/dist/university-content/quizzes/Q-para-451-when-to-invoke.yaml +182 -0
  254. package/dist/university-content/quizzes/Q-para-501-advanced-workflows.yaml +66 -0
  255. package/dist/university-content/quizzes/Q-para-501-aspect-graph-advanced.yaml +66 -0
  256. package/dist/university-content/quizzes/Q-para-501-aspect-graph-internals.yaml +66 -0
  257. package/dist/university-content/quizzes/Q-para-501-assessment-loops.yaml +46 -0
  258. package/dist/university-content/quizzes/Q-para-501-conductor-workspace.yaml +46 -0
  259. package/dist/university-content/quizzes/Q-para-501-habits-practice.yaml +56 -0
  260. package/dist/university-content/quizzes/Q-para-501-hook-enforcement.yaml +66 -0
  261. package/dist/university-content/quizzes/Q-para-501-lore-system.yaml +66 -0
  262. package/dist/university-content/quizzes/Q-para-501-platform-agent-ui.yaml +66 -0
  263. package/dist/university-content/quizzes/Q-para-501-review-compliance.yaml +61 -0
  264. package/dist/university-content/quizzes/Q-para-501-sentinel-deep-dive.yaml +86 -0
  265. package/dist/university-content/quizzes/Q-para-501-session-intelligence.yaml +66 -0
  266. package/dist/university-content/quizzes/Q-para-501-symphony-a-mail.yaml +66 -0
  267. package/dist/university-content/quizzes/Q-para-501-symphony-networking.yaml +66 -0
  268. package/dist/university-content/quizzes/Q-para-501-task-management.yaml +46 -0
  269. package/dist/university-content/quizzes/Q-para-601-agent-renaissance.yaml +66 -0
  270. package/dist/university-content/quizzes/Q-para-601-attention-scoring.yaml +56 -0
  271. package/dist/university-content/quizzes/Q-para-601-context-composition.yaml +66 -0
  272. package/dist/university-content/quizzes/Q-para-601-data-sovereignty.yaml +56 -0
  273. package/dist/university-content/quizzes/Q-para-601-event-stream.yaml +66 -0
  274. package/dist/university-content/quizzes/Q-para-601-knowledge-streams.yaml +66 -0
  275. package/dist/university-content/quizzes/Q-para-601-learning-loop.yaml +56 -0
  276. package/dist/university-content/quizzes/Q-para-601-maestro-team-collab.yaml +86 -0
  277. package/dist/university-content/quizzes/Q-para-601-nominations-debates.yaml +66 -0
  278. package/dist/university-content/quizzes/Q-para-701-agent-notebooks.yaml +66 -0
  279. package/dist/university-content/quizzes/Q-para-701-agent-pods-nevrland.yaml +66 -0
  280. package/dist/university-content/quizzes/Q-para-701-agent-profiles.yaml +66 -0
  281. package/dist/university-content/quizzes/Q-para-701-agent-roster.yaml +66 -0
  282. package/dist/university-content/quizzes/Q-para-701-agent-state.yaml +66 -0
  283. package/dist/university-content/quizzes/Q-para-701-learning-feedback-loop.yaml +66 -0
  284. package/dist/university-content/quizzes/Q-para-701-model-tier-resolution.yaml +66 -0
  285. package/dist/university-content/quizzes/Q-para-701-orchestration-enforcement.yaml +66 -0
  286. package/dist/university-content/quizzes/Q-para-701-per-project-rosters.yaml +66 -0
  287. package/dist/university-content/quizzes/Q-para-701-symphony-visibility.yaml +66 -0
  288. package/dist/university-content/quizzes/Q-plsat-v2.yaml +904 -0
  289. package/dist/university-content/quizzes/Q-plsat-v3.yaml +2909 -0
  290. package/dist/university-content/reference.json +2 -2
  291. package/dist/university-ui/assets/{index-CecQrfSn.js → index-nNgzO1il.js} +2 -2
  292. package/dist/university-ui/assets/{index-CecQrfSn.js.map → index-nNgzO1il.js.map} +1 -1
  293. package/dist/university-ui/index.html +1 -1
  294. package/dist/{upgrade-GX56QE3C.js → upgrade-NKN63VTY.js} +2 -2
  295. package/dist/validate-XUQZTF3H.js +9 -0
  296. package/dist/{watch-YCODNIET.js → watch-25GJHQYT.js} +1 -1
  297. package/lore-ui/dist/assets/{index-Bk-K0qgN.js → index-DKhNxgtW.js} +10 -10
  298. package/lore-ui/dist/index.html +1 -1
  299. package/package.json +2 -2
  300. package/platform-ui/dist/assets/{AmbientSection-BYjt75R1.js → AmbientSection-CwatqcBD.js} +1 -1
  301. package/platform-ui/dist/assets/{CanvasSection-rKvA_vZj.js → CanvasSection-dFAthehN.js} +1 -1
  302. package/platform-ui/dist/assets/{DocsSection-CI9K73M-.js → DocsSection-BZ2SFJBZ.js} +1 -1
  303. package/platform-ui/dist/assets/{GitSection-DSGj_c6S.js → GitSection-MNNYU1tO.js} +1 -1
  304. package/platform-ui/dist/assets/{GraphSection-CawN7pC5.js → GraphSection-COYjb4Pt.js} +1 -1
  305. package/platform-ui/dist/assets/LoreSection-B0hUbfsJ.js +1 -0
  306. package/platform-ui/dist/assets/{SentinelSection-DNgoYMH0.js → SentinelSection-BCxW1DCp.js} +1 -1
  307. package/platform-ui/dist/assets/{SymphonySection-C0zfcqv3.js → SymphonySection-BsucZRqy.js} +1 -1
  308. package/platform-ui/dist/assets/{TeamSection-Bzd3Dt9Q.js → TeamSection-C0QNTudW.js} +1 -1
  309. package/platform-ui/dist/assets/{UniversitySection-tBr62R0S.js → UniversitySection-DN1-g9pw.js} +1 -1
  310. package/platform-ui/dist/assets/{index-BaOmyn11.js → index-DwUT8pju.js} +2 -2
  311. package/platform-ui/dist/index.html +1 -1
  312. package/dist/add-P76GEMGF.js +0 -8
  313. package/dist/agent-X6I2YWOB.js +0 -33
  314. package/dist/chunk-JQKKVAAN.js +0 -2
  315. package/dist/chunk-NQ47TA6C.js +0 -111
  316. package/dist/chunk-ODVKPZZ4.js +0 -2
  317. package/dist/chunk-Q2J542ST.js +0 -2
  318. package/dist/chunk-RBLK34IA.js +0 -11
  319. package/dist/chunk-RN4VE6P3.js +0 -521
  320. package/dist/chunk-WS2N27RX.js +0 -3
  321. package/dist/config-schema-GUQY2QN7.js +0 -2
  322. package/dist/decision-loader-2XPZE4EZ.js +0 -2
  323. package/dist/doctor-WMVULMQD.js +0 -2
  324. package/dist/list-5IUGP3ZB.js +0 -7
  325. package/dist/lore-loader-RVQI5GXL.js +0 -2
  326. package/dist/lore-loader-XY5MZRR2.js +0 -2
  327. package/dist/migrate-assessments-GEI5WMI2.js +0 -4
  328. package/dist/portal-compliance-6YR27IQU.js +0 -2
  329. package/dist/quiz-FE5UGAY2.js +0 -10
  330. package/dist/registry-KOOKFUWD.js +0 -20
  331. package/dist/reindex-I6LPAKCC.js +0 -2
  332. package/dist/serve-OY6XYL7F.js +0 -12
  333. package/dist/server-2MNROHF6.js +0 -7
  334. package/dist/session-tracker-MWJAJA6Z.js +0 -2
  335. package/dist/shift-PC6C7NUX.js +0 -60
  336. package/dist/show-BOAVWZPZ.js +0 -7
  337. package/dist/status-A37ECYNJ.js +0 -6
  338. package/dist/sync-DLUBV5HQ.js +0 -2
  339. package/dist/tools-5ITPEPSV.js +0 -2
  340. package/dist/university-content/courses/.purpose +0 -492
  341. package/dist/university-content/courses/para-001.json +0 -166
  342. package/dist/university-content/courses/para-101.json +0 -615
  343. package/dist/university-content/courses/para-201.json +0 -794
  344. package/dist/university-content/courses/para-301.json +0 -830
  345. package/dist/university-content/courses/para-401.json +0 -868
  346. package/dist/university-content/courses/para-501.json +0 -1166
  347. package/dist/university-content/courses/para-601.json +0 -719
  348. package/dist/university-content/courses/para-701.json +0 -807
  349. package/dist/university-content/plsat/.purpose +0 -162
  350. package/dist/university-content/plsat/v2.0.json +0 -760
  351. package/dist/university-content/plsat/v3.0.json +0 -3453
  352. package/dist/validate-C6SMKGYD.js +0 -9
  353. package/platform-ui/dist/assets/LoreSection-oO5dCe6O.js +0 -1
  354. /package/dist/{chunk-BV5PRPLB.js → chunk-HXGYVS2N.js} +0 -0
  355. /package/templates/paradigm/specs/{scan.md → probe.md} +0 -0
@@ -0,0 +1,56 @@
1
+ id: Q-para-101-first-steps
2
+ title: 'PARA 101: Foundations — Your First Steps'
3
+ description: 'Quiz for lesson: Your First Steps'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-101
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-101.json
16
+ questions:
17
+ - id: q1
18
+ question: What is the correct order for the AI agent orientation protocol?
19
+ choices:
20
+ A: Read source code, write tests, check coverage, deploy
21
+ B: Call paradigm_status, read config.yaml, check portal.yaml, use paradigm_navigate
22
+ C: Run paradigm scan, edit navigator.yaml, read .purpose files, commit changes
23
+ D: Read package.json, install dependencies, run build, check logs
24
+ E: Create .purpose files, define gates, emit signals, validate flows
25
+ correct: B
26
+ explanation: 'The orientation protocol is: (1) paradigm_status for project overview, (2) read config.yaml for conventions, (3) check portal.yaml for security gates, (4) paradigm_navigate to find the relevant code area. This takes ~500 tokens and gives the agent full context.'
27
+ - id: q2
28
+ question: After creating new .purpose files, what command should you run?
29
+ choices:
30
+ A: paradigm shift
31
+ B: paradigm validate
32
+ C: paradigm scan
33
+ D: paradigm deploy
34
+ E: paradigm build
35
+ correct: C
36
+ explanation: paradigm scan reads all .purpose files and portal.yaml, builds the symbol index, and regenerates navigator.yaml. Without rescanning, AI agents will not find the newly defined symbols through navigation tools.
37
+ - id: q3
38
+ question: In portal.yaml, what does an empty gate array on a route mean?
39
+ choices:
40
+ A: The route is disabled and will return 404
41
+ B: The route requires all gates to pass
42
+ C: The route is intentionally unprotected — documented as public
43
+ D: The route has not been configured yet and will return 500
44
+ E: The route inherits gates from its parent path
45
+ correct: C
46
+ explanation: An empty gate array [] means the route is intentionally public. Listing it in portal.yaml with no gates documents the decision that this route should be accessible without authentication — it is not an oversight.
47
+ - id: q4
48
+ question: Which of these is a common pitfall when starting with Paradigm?
49
+ choices:
50
+ A: Creating too many .purpose files on day one instead of starting small
51
+ B: Using the Paradigm logger instead of console.log
52
+ C: Running paradigm scan after adding new purpose files
53
+ D: Putting portal.yaml at the project root
54
+ E: Using tags to classify components
55
+ correct: A
56
+ explanation: A common pitfall is trying to document everything on day one. The recommended approach is to start with the most critical module, create one .purpose file, and expand incrementally as the project grows.
@@ -0,0 +1,66 @@
1
+ id: Q-para-101-five-symbols
2
+ title: 'PARA 101: Foundations — The Five Symbols'
3
+ description: 'Quiz for lesson: The Five Symbols'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-101
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-101.json
16
+ questions:
17
+ - id: q1
18
+ question: A middleware function that checks whether the current user has admin privileges should be classified as which symbol?
19
+ choices:
20
+ A: '# Component'
21
+ B: $ Flow
22
+ C: ^ Gate
23
+ D: '! Signal'
24
+ E: ~ Aspect
25
+ correct: C
26
+ explanation: A middleware function that checks a condition and either allows or blocks access is a gate (^). Gates verify that a required condition is met before proceeding — in this case, admin privileges.
27
+ - id: q2
28
+ question: After a refactor, you run paradigm doctor and it reports "3 broken anchors detected." Which symbol type was affected?
29
+ choices:
30
+ A: '# Component — components have code anchors that broke during refactoring'
31
+ B: $ Flow — flow steps reference line numbers that shifted
32
+ C: ^ Gate — gate definitions include file paths that changed
33
+ D: '! Signal — signal emitters moved to different files'
34
+ E: ~ Aspect — aspects are the only symbol with code anchors, and the refactor moved the anchored lines
35
+ correct: E
36
+ explanation: Aspects (~) are the only symbol type that requires code anchors — specific file:line references pointing to where the rule is enforced. When code is refactored and lines move, those anchors break. paradigm doctor detects this via SHA-256 hash comparison, and paradigm_aspect_drift can show exactly which anchors drifted.
37
+ - id: q3
38
+ question: A payment processing module contains a Stripe API wrapper, a billing calculator, and an in-memory cart. How should these be classified?
39
+ choices:
40
+ A: 'Each gets a different symbol type: $ for Stripe, # for calculator, ! for cart'
41
+ B: 'They are all # components, differentiated by tags like [integration, stripe], [feature], and [state]'
42
+ C: 'They should all be a single # component since they are in the same module'
43
+ D: The Stripe wrapper is a ~ aspect since it is a cross-cutting concern
44
+ E: They should be modeled as steps in a $ flow
45
+ correct: B
46
+ explanation: 'All three are documented code units, so they are all # components. The differences are captured by tags: #stripe-service with tags: [integration, stripe], #billing-calculator with tags: [feature], #cart-store with tags: [state]. Tags add nuance without requiring different symbol types.'
47
+ - id: q4
48
+ question: When should you create a $flow?
49
+ choices:
50
+ A: For every function that takes more than 10 lines of code
51
+ B: Only for authentication sequences
52
+ C: When logic spans three or more components in a specific order
53
+ D: Whenever you emit a signal
54
+ E: For all API endpoints regardless of complexity
55
+ correct: C
56
+ explanation: Flows document multi-step processes that involve three or more components in a defined sequence. A single-component operation or a two-component call does not warrant a flow — it adds documentation overhead without providing navigational value.
57
+ - id: q5
58
+ question: Your payment module emits !payment-completed after charging a card. Later, the marketing team adds a "send receipt email" listener, and the analytics team adds a "record conversion" listener. Neither team modified the payment module. How is this possible?
59
+ choices:
60
+ A: The payment module was refactored to call both services directly
61
+ B: Signals promote loose coupling — the emitter fires the event without knowing who listens, so new listeners can be added independently
62
+ C: The listeners were added to the payment module's .purpose file
63
+ D: Both teams used the same $flow as the payment module
64
+ E: The ^payment gate routes events to registered handlers
65
+ correct: B
66
+ explanation: 'This is the core value of signals: loose coupling. The payment module emits !payment-completed and has zero knowledge of who listens. The marketing team and analytics team independently subscribe to the signal. No code in the payment module was modified. This is why Paradigm separates signals (!) from flows ($) — flows define explicit steps, while signals enable independent, decoupled reactions.'
@@ -0,0 +1,56 @@
1
+ id: Q-para-101-paradigm-logger
2
+ title: 'PARA 101: Foundations — The Paradigm Logger'
3
+ description: 'Quiz for lesson: The Paradigm Logger'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-101
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-101.json
16
+ questions:
17
+ - id: q1
18
+ question: What is the correct way to log a successful payment in `#payment-service`?
19
+ choices:
20
+ A: 'console.log(''Payment processed'', { amount: 4999 })'
21
+ B: log.info('#payment-service', 'Payment processed')
22
+ C: 'log.component(''#payment-service'').info(''Payment processed'', { amount: 4999 })'
23
+ D: log.signal('!payment-completed').info('Payment processed')
24
+ E: log.gate('#payment-service').info('Payment processed')
25
+ correct: C
26
+ explanation: 'Paradigm''s logging philosophy is that every log entry should be tagged with the symbol it relates to. For a component like #payment-service, the log should identify it as a component-level entry at the info level.'
27
+ - id: q2
28
+ question: Code in the `middleware/` directory should typically use which logger method?
29
+ choices:
30
+ A: log.component()
31
+ B: log.flow()
32
+ C: log.signal()
33
+ D: log.gate()
34
+ E: log.aspect()
35
+ correct: D
36
+ explanation: By Paradigm's directory-to-symbol convention, middleware/ maps to gates (^). Code in middleware directories typically performs condition checks, which are gate operations — so logs from these files should be tagged as gate-related.
37
+ - id: q3
38
+ question: An authentication gate denies access to an unauthenticated user. What log level should be used?
39
+ choices:
40
+ A: debug — it is a routine check
41
+ B: info — the gate worked correctly
42
+ C: warn — access was denied, which is unexpected but not a failure
43
+ D: error — someone tried to access a protected resource
44
+ E: No logging — gate denials should be silent
45
+ correct: C
46
+ explanation: A gate denial is unexpected from the user's perspective (they tried to access something they should not) but it is recoverable and the system handled it correctly. This makes it a warn — not an error (the system did not fail) and not info (something unusual happened).
47
+ - id: q4
48
+ question: Which of these is a valid reason to use the Paradigm logger instead of console.log?
49
+ choices:
50
+ A: console.log is slower in production environments
51
+ B: The Paradigm logger automatically fixes bugs in the logged code
52
+ C: Structured symbol-tagged logs enable filtering, tracing, and incident correlation
53
+ D: console.log does not work in TypeScript projects
54
+ E: The Paradigm logger compresses log output to save disk space
55
+ correct: C
56
+ explanation: The primary advantage of the Paradigm logger is structure. Every log line is tagged with a symbol type and name, enabling you to filter by component, trace entries back to .purpose definitions, and correlate incidents with specific symbols.
@@ -0,0 +1,56 @@
1
+ id: Q-para-101-portal-yaml
2
+ title: 'PARA 101: Foundations — Portal.yaml'
3
+ description: 'Quiz for lesson: Portal.yaml'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-101
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-101.json
16
+ questions:
17
+ - id: q1
18
+ question: You are adding a new action that requires preconditions — only authenticated team admins should be able to invite users. What is the correct gate workflow?
19
+ choices:
20
+ A: Write the handler code first, then add authorization if there is time
21
+ B: Identify the required gates, add them to portal.yaml, implement the checks, test that failing a gate blocks the action
22
+ C: Add a console.log that prints the user's role for manual verification
23
+ D: Create a new .purpose file with a ^gate definition — portal.yaml is optional
24
+ E: Add the route to navigator.yaml so AI agents know about it
25
+ correct: B
26
+ explanation: 'The Paradigm gate-first workflow is: (1) identify the required gates (paradigm_gates_for_route can suggest them for web routes), (2) define the gates in portal.yaml, (3) implement the gate checks in code, (4) test that failing a gate blocks the action. Conditions are defined before implementation.'
27
+ - id: q2
28
+ question: What does the `requires` field on a gate definition do?
29
+ choices:
30
+ A: Lists npm packages the gate depends on
31
+ B: Specifies other gates that must pass before this gate is checked
32
+ C: Defines the HTTP status code returned on failure
33
+ D: Lists the source files that implement the gate
34
+ E: Specifies environment variables needed for the check
35
+ correct: B
36
+ explanation: The requires field creates a gate chain. For example, ^project-admin requires [^authenticated] — the authentication check must pass before the admin role check is evaluated.
37
+ - id: q3
38
+ question: When is portal.yaml NOT needed?
39
+ choices:
40
+ A: When the project has condition checks that must pass before actions proceed
41
+ B: When the project has role-based access control
42
+ C: When the application has no gates — no conditions need to be checked before any action
43
+ D: When the project only has GET endpoints
44
+ E: When the project uses a third-party auth service
45
+ correct: C
46
+ explanation: portal.yaml is needed whenever your application has gates — conditions that must be checked before actions proceed. If no action in the system requires a precondition check (authentication, feature flags, data readiness, etc.), then portal.yaml is not needed.
47
+ - id: q4
48
+ question: What is the `effects` field on a gate definition?
49
+ choices:
50
+ A: The HTTP response body returned when the gate passes
51
+ B: Side effects triggered when the gate is successfully passed
52
+ C: The list of routes protected by this gate
53
+ D: The reward given to the developer who implemented the gate
54
+ E: A list of test cases for the gate
55
+ correct: B
56
+ explanation: 'Effects are side effects that trigger when a gate passes. For example, passing ^first-login might award an onboarding badge. If there are no side effects, use an empty array: effects: [].'
@@ -0,0 +1,66 @@
1
+ id: Q-para-101-project-structure
2
+ title: 'PARA 101: Foundations — Project Structure'
3
+ description: 'Quiz for lesson: Project Structure'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-101
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-101.json
16
+ questions:
17
+ - id: q1
18
+ question: Where does portal.yaml live in a Paradigm project?
19
+ choices:
20
+ A: Inside .paradigm/specs/
21
+ B: Inside .paradigm/ at the top level
22
+ C: At the project root, alongside .paradigm/
23
+ D: Inside each source directory that has protected routes
24
+ E: It does not exist as a file — it is generated at runtime
25
+ correct: C
26
+ explanation: portal.yaml lives at the project root, not inside .paradigm/. This is intentional — as a security-critical file defining gates and protected routes, it should be visible and easy to audit.
27
+ - id: q2
28
+ question: What is navigator.yaml and how is it created?
29
+ choices:
30
+ A: A manually written guide to project conventions
31
+ B: A machine-generated codebase map created by 'paradigm scan'
32
+ C: A configuration file for IDE navigation shortcuts
33
+ D: A list of all npm dependencies and their versions
34
+ E: An auto-generated test coverage report
35
+ correct: B
36
+ explanation: navigator.yaml is generated by running 'paradigm scan'. It maps symbols to file paths and directories to categories, giving AI agents a fast way to locate code without traversing the file system.
37
+ - id: q3
38
+ question: An AI agent wants to check if there are known antipatterns before modifying the payment module. Where should it look?
39
+ choices:
40
+ A: src/payments/.purpose
41
+ B: .paradigm/wisdom/ (via paradigm_wisdom_context)
42
+ C: .paradigm/specs/payments.md
43
+ D: portal.yaml
44
+ E: package.json
45
+ correct: B
46
+ explanation: Team knowledge — including antipatterns, decisions, and preferences — lives in .paradigm/wisdom/. AI agents access it by calling paradigm_wisdom_context with the symbols they plan to modify.
47
+ - id: q4
48
+ question: What does the 'discipline' field in config.yaml control?
49
+ choices:
50
+ A: Which programming language the project uses
51
+ B: How directory patterns map to symbol types (web vs backend vs fullstack)
52
+ C: The maximum number of components allowed per directory
53
+ D: Whether the project uses TypeScript or JavaScript
54
+ E: The deployment target (cloud, on-premise, serverless)
55
+ correct: B
56
+ explanation: The discipline field tells Paradigm how to interpret directory patterns. A 'web' discipline maps routes/ to components, while a 'backend' discipline maps services/ to components. This affects the navigator, logger suggestions, and gate recommendations.
57
+ - id: q5
58
+ question: Which of these files should be written by hand, NOT generated by a tool?
59
+ choices:
60
+ A: navigator.yaml
61
+ B: config.yaml
62
+ C: history/ entries
63
+ D: All of the above are generated
64
+ E: None of the above — all are written by hand
65
+ correct: B
66
+ explanation: config.yaml is a project configuration file written by the team (or initialized by 'paradigm shift' and then customized). navigator.yaml is generated by 'paradigm scan', and history entries are recorded by tools and post-commit hooks.
@@ -0,0 +1,56 @@
1
+ id: Q-para-101-purpose-files
2
+ title: 'PARA 101: Foundations — Purpose Files'
3
+ description: 'Quiz for lesson: Purpose Files'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-101
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-101.json
16
+ questions:
17
+ - id: q1
18
+ question: Where should a .purpose file be placed?
19
+ choices:
20
+ A: In the .paradigm/ directory at the project root
21
+ B: In the source directory it describes, alongside the code files
22
+ C: In a dedicated /docs directory
23
+ D: In the project root, one file for the entire project
24
+ E: In the node_modules directory for package documentation
25
+ correct: B
26
+ explanation: Purpose files live in the source directory they describe — right next to the code. The .paradigm/ directory holds project-wide configuration, not directory-level documentation.
27
+ - id: q2
28
+ question: What is the `context` field in a .purpose file used for?
29
+ choices:
30
+ A: Defining application context providers
31
+ B: Specifying environment variables required by the module
32
+ C: Free-text notes aimed at AI agents — conventions, gotchas, assumptions
33
+ D: Listing the test files associated with the directory
34
+ E: Declaring the programming language used in the directory
35
+ correct: C
36
+ explanation: The context field is an array of free-text strings written specifically for AI agents. It conveys things like 'all amounts are in cents', 'this module is deprecated', or 'uses Stripe signatures for webhook verification'.
37
+ - id: q3
38
+ question: How many .purpose files should a single directory contain?
39
+ choices:
40
+ A: Exactly one for every file in the directory
41
+ B: At most one per directory
42
+ C: One per component defined in the directory
43
+ D: At least three — one for components, one for flows, one for gates
44
+ E: None — purpose files are generated automatically
45
+ correct: B
46
+ explanation: Each directory should have at most one .purpose file. All symbols in that directory (components, flows, gates, signals, aspects) are defined within that single file.
47
+ - id: q4
48
+ question: Which field is REQUIRED on every symbol defined in a .purpose file?
49
+ choices:
50
+ A: file
51
+ B: tags
52
+ C: description
53
+ D: version
54
+ E: anchors
55
+ correct: C
56
+ explanation: Every symbol must have a description. Without it, AI agents cannot understand what the symbol represents. The file, tags, and version fields are useful but optional. Anchors are required only for aspects (~).
@@ -0,0 +1,56 @@
1
+ id: Q-para-101-tags-and-classification
2
+ title: 'PARA 101: Foundations — Tags & Classification'
3
+ description: 'Quiz for lesson: Tags & Classification'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-101
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-101.json
16
+ questions:
17
+ - id: q1
18
+ question: How should a Stripe API wrapper be documented in Paradigm?
19
+ choices:
20
+ A: $stripe-service as a flow with Stripe steps
21
+ B: '#stripe-service with tags: [integration, stripe]'
22
+ C: ^stripe-service as a gate that checks Stripe credentials
23
+ D: '!stripe-service as a signal emitted on payment'
24
+ E: ~stripe-service as an aspect that applies Stripe logic across components
25
+ correct: B
26
+ explanation: 'A Stripe API wrapper is a documented code unit, so it is a # component. The integration role is captured by tags: #stripe-service with tags: [integration, stripe]. Tags provide searchable classification without requiring different symbol types.'
27
+ - id: q2
28
+ question: Where are project-specific tags defined?
29
+ choices:
30
+ A: In each .purpose file's tags section
31
+ B: In portal.yaml alongside gate definitions
32
+ C: In .paradigm/tags.yaml under the 'project' section
33
+ D: In package.json under the 'paradigm' key
34
+ E: They are not defined anywhere — any string can be a tag
35
+ correct: C
36
+ explanation: 'Tags are defined in .paradigm/tags.yaml. The file has three sections: core (universal), project (team-specific), and suggested (AI-proposed). Project-specific tags go in the ''project'' section.'
37
+ - id: q3
38
+ question: An AI agent notices that seven components in the codebase handle webhook processing. What should it do?
39
+ choices:
40
+ A: Create a new ~webhook aspect with anchors
41
+ B: Rename all seven components to start with 'webhook-'
42
+ C: Use paradigm_tags_suggest to propose a 'webhook-handler' tag for human review
43
+ D: Add a $webhook-flow connecting all seven components
44
+ E: Ignore the pattern — tags should only be created by humans
45
+ correct: C
46
+ explanation: AI agents can propose new tags using paradigm_tags_suggest. The proposed tag goes into the 'suggested' section of tags.yaml, where a human reviews it and decides whether to promote it to the 'project' section.
47
+ - id: q4
48
+ question: How many tags should a typical symbol have?
49
+ choices:
50
+ A: Exactly one
51
+ B: Two to four
52
+ C: At least five for maximum discoverability
53
+ D: None — tags are optional and rarely used
54
+ E: As many as possible to cover all search terms
55
+ correct: B
56
+ explanation: The guideline is 2-4 tags per symbol. One tag is often too vague to be useful, while five or more creates noise and dilutes searchability. Tags should be chosen for discoverability — the terms you would search for to find the component.
@@ -0,0 +1,56 @@
1
+ id: Q-para-101-welcome
2
+ title: 'PARA 101: Foundations — Welcome to Paradigm'
3
+ description: 'Quiz for lesson: Welcome to Paradigm'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-101
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-101.json
16
+ questions:
17
+ - id: q1
18
+ question: What is Paradigm best described as?
19
+ choices:
20
+ A: A JavaScript component library for building UIs
21
+ B: A code generation tool that scaffolds project boilerplate
22
+ C: A meta-framework that organizes how AI agents understand your codebase
23
+ D: A testing framework with built-in assertion helpers
24
+ E: A deployment pipeline tool for CI/CD
25
+ correct: C
26
+ explanation: Paradigm is a meta-framework — it does not ship runtime code or components. Its purpose is to give AI agents structured context (symbols, purpose files, specifications) so they can navigate and modify codebases efficiently.
27
+ - id: q2
28
+ question: Which of the following is NOT one of Paradigm's three pillars?
29
+ choices:
30
+ A: Symbols
31
+ B: Purpose Files
32
+ C: Specifications
33
+ D: Runtime Middleware
34
+ E: All of the above are pillars
35
+ correct: D
36
+ explanation: Paradigm's three pillars are Symbols (the vocabulary), Purpose Files (the directory maps), and Specifications (the project rulebook). Runtime Middleware is not a Paradigm concept — Paradigm is metadata, not runtime code.
37
+ - id: q3
38
+ question: What problem does Paradigm primarily solve for AI agents?
39
+ choices:
40
+ A: Slow compilation times in large TypeScript projects
41
+ B: Excessive token usage and missed context when navigating undocumented codebases
42
+ C: Lack of type safety in JavaScript applications
43
+ D: Difficulty deploying applications to cloud providers
44
+ E: Missing test coverage in legacy codebases
45
+ correct: B
46
+ explanation: AI agents waste tokens exploring directories, guessing relationships, and re-reading files when a codebase has no structured context. Paradigm provides that structure so agents can find what they need in ~100 tokens instead of 2,000+.
47
+ - id: q4
48
+ question: 'You open a .purpose file and see symbols prefixed with #, $, ^, !, and ~. A new team member asks what the ~ symbol means. What do you tell them?'
49
+ choices:
50
+ A: ~ marks a component — a documented code unit
51
+ B: ~ marks a flow — a multi-step process
52
+ C: ~ marks a gate — a security checkpoint
53
+ D: ~ marks a signal — an event notification
54
+ E: ~ marks an aspect — a cross-cutting rule, constraint, or configuration anchored to specific code
55
+ correct: E
56
+ explanation: 'The five symbols are: # (Component), $ (Flow), ^ (Gate), ! (Signal), and ~ (Aspect). Aspects represent cross-cutting concerns — rules, constraints, and configuration values that are anchored to specific lines of code. They are the only symbol type that requires code anchors.'
@@ -0,0 +1,66 @@
1
+ id: Q-para-201-architecture-review
2
+ title: 'PARA 201: Architecture — Putting It All Together'
3
+ description: 'Quiz for lesson: Putting It All Together'
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 team invitation feature uses a token to accept invitations. The token was created by an admin. Should the accept action require the ^team-admin gate?
19
+ choices:
20
+ A: Yes — only admins should be able to modify team membership
21
+ B: No — the invitation token itself serves as proof of authorization, so any authenticated user with a valid token should be able to accept
22
+ C: Yes — ^team-admin is always required for team-related operations
23
+ D: No — acceptance actions should be completely public with no gates at all
24
+ E: It depends on whether the token has expired
25
+ correct: B
26
+ explanation: The invitation token itself is the authorization. The admin already approved the invitation by creating it. Any authenticated user who possesses the valid token (received via email) should be able to accept. Requiring ^team-admin would make the feature useless — the invitee is not yet a team member, let alone an admin. The token acts as a delegated authorization from the admin.
27
+ - id: q2
28
+ question: The walkthrough creates four components. Put them in the correct order of the $team-invitation-flow steps.
29
+ choices:
30
+ A: '#invitation-email → #invitation-token → #invitation-store → #invitation-service'
31
+ B: '#invitation-service → #invitation-token → #invitation-store → #invitation-email'
32
+ C: '#invitation-store → #invitation-service → #invitation-email → #invitation-token'
33
+ D: '#invitation-token → #invitation-email → #invitation-service → #invitation-store'
34
+ E: '#invitation-service → #invitation-email → #invitation-token → #invitation-store'
35
+ correct: B
36
+ explanation: 'The flow is: (1) #invitation-service validates and creates, (2) #invitation-token generates the secure token, (3) #invitation-store persists the invitation, (4) #invitation-email sends the email. The service orchestrates, the token is needed before storage, and the email is sent last.'
37
+ - id: q3
38
+ question: The feature building pattern ends with 'validate → implement'. Why does implementation come last?
39
+ choices:
40
+ A: Because Paradigm generates the implementation code automatically
41
+ B: Because implementation is the least important step
42
+ C: Because documenting architecture first ensures security is defined before code, AI agents can navigate immediately, and the team has a clear map
43
+ D: Because .purpose files must be committed before any source files
44
+ E: Because the validator rejects implementations that do not match definitions
45
+ correct: C
46
+ explanation: 'Front-loading documentation has three benefits: (1) security gates are defined in portal.yaml before handler code exists, preventing auth as an afterthought, (2) AI agents can navigate the feature structure immediately, and (3) the team has a validated architectural map before writing any implementation.'
47
+ - id: q4
48
+ question: 'After defining all components for the invitation feature, you run paradigm_ripple on #invitation-service. What is this checking?'
49
+ choices:
50
+ A: Whether the invitation service's code compiles
51
+ B: Whether the service name follows naming conventions
52
+ C: 'What existing code and symbols would be affected by changes to #invitation-service'
53
+ D: Whether the service has enough test coverage
54
+ E: Whether the service's dependencies are installed
55
+ correct: C
56
+ explanation: 'paradigm_ripple analyzes the dependency graph to show what would be impacted if #invitation-service changes. This reveals connections to flows, signals, gates, and other components — helping you understand the blast radius before implementation.'
57
+ - id: q5
58
+ question: 'You notice that ~audit-required applies-to ["#*Service"] and your new #invitation-service matches this pattern. What should you do?'
59
+ choices:
60
+ A: 'Rename #invitation-service to #invitation-handler to avoid the aspect'
61
+ B: Delete the ~audit-required aspect since it is too broad
62
+ C: 'Ensure the audit middleware is applied to #invitation-service and add aspects: ["~audit-required"] to its definition'
63
+ D: Nothing — aspects are enforced automatically by Paradigm
64
+ E: Create a new aspect ~invitation-audit specific to this service
65
+ correct: C
66
+ explanation: 'When a new component matches an existing aspect''s applies-to pattern, you should apply that aspect. This means ensuring the enforcement code (audit middleware) is used by the new service and documenting the relationship by adding aspects: ["~audit-required"] to the component''s .purpose definition.'
@@ -0,0 +1,46 @@
1
+ id: Q-para-201-aspect-graph
2
+ title: 'PARA 201: Architecture — The Aspect Graph'
3
+ description: 'Quiz for lesson: The Aspect Graph'
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: Your team's rate limiter was recently changed from 100 req/min to 500 req/min, but no one updated the aspect definition. Which tool would catch this?
19
+ choices:
20
+ A: paradigm_aspect_search — it would find the stale value in search results
21
+ B: paradigm_aspect_drift — it compares code hashes at anchor line ranges and detects the change
22
+ C: paradigm_aspect_heatmap — it shows the aspect is no longer being accessed
23
+ D: paradigm_aspect_graph — it reveals the broken edge to the rate limiter component
24
+ E: paradigm_reindex — it automatically updates the aspect value during reindexing
25
+ correct: B
26
+ explanation: paradigm_aspect_drift compares SHA-256 hashes of code at anchored line ranges against the hashes from the last scan. When the rate limiter code changed, the hash changed, flagging the anchor as drifted. The other tools don't detect code changes — reindex rebuilds the graph from YAML, which still has the old value.
27
+ - id: q2
28
+ question: Which aspect category best fits "JWT access tokens expire after 24 hours"?
29
+ choices:
30
+ A: rule — it defines a behavioral pattern that code must follow
31
+ B: decision — it captures an architectural choice
32
+ C: constraint — it is a hard limit that cannot be violated
33
+ D: configuration — it is a value that may differ across environments
34
+ E: invariant — it is a condition that must always hold true
35
+ correct: D
36
+ explanation: A JWT expiry duration is a configuration value — it could reasonably differ between environments (shorter in dev, longer in production). A constraint is a hard limitation (like "maximum 100 items per page"). A rule is a behavioral pattern. Configuration captures what specific value was set and where.
37
+ - id: q3
38
+ question: 'An aspect has edges: [{symbol: "^authenticated", relation: "enforced-by"}]. What does this tell you?'
39
+ choices:
40
+ A: The aspect enforces the ^authenticated gate
41
+ B: The ^authenticated gate depends on the aspect existing
42
+ C: The ^authenticated gate is the mechanism that ensures the aspect holds true
43
+ D: The aspect and the gate are in conflict
44
+ E: The aspect will be removed if the gate is deleted
45
+ correct: C
46
+ explanation: The enforced-by relation means the target symbol is what ensures the aspect's rule holds. Here, the ^authenticated gate is the checkpoint that enforces whatever the aspect defines. Aspects declare what must be true; gates enforce those truths. The edge makes this relationship explicit and queryable.
@@ -0,0 +1,56 @@
1
+ id: Q-para-201-aspects-and-anchors
2
+ title: 'PARA 201: Architecture — Aspects & Code Anchors'
3
+ description: 'Quiz for lesson: Aspects & Code Anchors'
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: Why do aspects require anchors while other symbols do not?
19
+ choices:
20
+ A: Because aspects are more important than other symbols
21
+ B: Because without anchors, an aspect is an unenforced rule — a wish, not a constraint
22
+ C: Because YAML requires at least one nested field under aspects
23
+ D: Because AI agents cannot understand aspects without seeing the code
24
+ E: Because aspects are always defined in middleware files
25
+ correct: B
26
+ explanation: An aspect without anchors is just a statement of intent with no proof of enforcement. Anchors point to the actual code that enforces the rule, making the aspect verifiable by tools, reviewable by developers, and auditable by compliance.
27
+ - id: q2
28
+ question: The anchor `src/middleware/auth.ts:42-78` points to what?
29
+ choices:
30
+ A: Lines 42 and 78 only (two specific lines)
31
+ B: The 42nd through 78th characters on line 1
32
+ C: A range of lines from line 42 to line 78 inclusive
33
+ D: Column 42 through column 78 on every line in the file
34
+ E: The 42nd and 78th functions defined in the file
35
+ correct: C
36
+ explanation: The range format (file:start-end) points to a block of consecutive lines. src/middleware/auth.ts:42-78 covers lines 42 through 78 inclusive — typically a complete function or middleware definition.
37
+ - id: q3
38
+ question: 'You define `~cached` with `applies-to: ["#*-query"]`. You then create `#user-query` without applying the cache aspect. What should happen?'
39
+ choices:
40
+ A: Nothing — applies-to is just a suggestion
41
+ B: 'paradigm_aspect_check reports a coverage gap: #user-query matches the pattern but is not covered'
42
+ C: The build fails because the aspect is not applied
43
+ D: The component is automatically cached by Paradigm
44
+ E: '#user-query is renamed to #user-query-cached'
45
+ correct: B
46
+ explanation: 'The applies-to field is declarative — it says ''this aspect should cover all components matching this pattern.'' When paradigm_aspect_check runs, it identifies #user-query as matching #*-query but not having the caching aspect applied, reporting a coverage gap.'
47
+ - id: q4
48
+ question: After a major refactor, several source files were renamed and moved. What is the risk to aspects?
49
+ choices:
50
+ A: No risk — aspects are tied to symbol names, not file paths
51
+ B: Anchor references break because they point to file paths and line numbers that may no longer exist
52
+ C: The aspect definitions are automatically updated by git
53
+ D: Aspects are deleted when their files move
54
+ E: The refactor cannot proceed if aspects exist
55
+ correct: B
56
+ explanation: Anchors contain file paths and line numbers (e.g., src/middleware/audit.ts:15-35). When files are renamed, moved, or heavily edited, these references break. Running paradigm_aspect_check after refactoring catches this drift.