@a-company/paradigm 5.38.0 → 6.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/dist/{accept-orchestration-OATWIRHP.js → accept-orchestration-QQISPINV.js} +1 -1
  2. package/dist/add-UOR4INIV.js +8 -0
  3. package/dist/{agent-loader-RIVI6QPP.js → agent-loader-2WJHD46U.js} +1 -1
  4. package/dist/{agent-loader-RJRVO5GQ.js → agent-loader-YKS2PQWO.js} +1 -1
  5. package/dist/{ambient-76YMUA5Q.js → ambient-BE3SQXNN.js} +1 -1
  6. package/dist/{ambient-WTLYUAQM.js → ambient-NVKQCW2A.js} +12 -12
  7. package/dist/{assess-UFPYEJKP.js → assess-63WXHWJV.js} +1 -1
  8. package/dist/{calibration-OLJYB5HN.js → calibration-BDHGYJOK.js} +1 -1
  9. package/dist/{chunk-5QOCKWK5.js → chunk-4PSD5R7N.js} +2 -2
  10. package/dist/{chunk-HOBHJPTL.js → chunk-6SKSV5B2.js} +1 -1
  11. package/dist/{chunk-4L7665QV.js → chunk-FEYOQMZ5.js} +1 -1
  12. package/dist/{chunk-NEJ4ZLCY.js → chunk-GAFKOFAV.js} +1 -1
  13. package/dist/chunk-GRZQIKST.js +2 -0
  14. package/dist/{chunk-RLCH7DXQ.js → chunk-K7X3Z3GL.js} +1 -1
  15. package/dist/{chunk-4VKSEOXZ.js → chunk-LPBCQM5Y.js} +3 -3
  16. package/dist/{chunk-74SGKSRQ.js → chunk-M2HKWR25.js} +1 -1
  17. package/dist/{chunk-BOYQAMGC.js → chunk-M3PPXJU4.js} +1 -1
  18. package/dist/chunk-PHEX6LU4.js +111 -0
  19. package/dist/chunk-Q527BPUF.js +2 -0
  20. package/dist/chunk-R5ECMBIV.js +11 -0
  21. package/dist/{chunk-X3U3IGYT.js → chunk-TBWWFRL5.js} +1 -1
  22. package/dist/{chunk-MQIG6SMF.js → chunk-TNVWGPCE.js} +1 -1
  23. package/dist/chunk-TZDYIPVU.js +521 -0
  24. package/dist/{chunk-3XGNXXCT.js → chunk-UZ5H7K6Q.js} +1 -1
  25. package/dist/chunk-VIG5LSGZ.js +2 -0
  26. package/dist/chunk-VNIX5KBT.js +3 -0
  27. package/dist/{chunk-AGFPVSX5.js → chunk-VXIIVMTM.js} +1 -1
  28. package/dist/{chunk-ORDKEGII.js → chunk-WESTEMIM.js} +1 -1
  29. package/dist/{chunk-DOCDDDTD.js → chunk-YNDPSWOE.js} +5 -5
  30. package/dist/chunk-Z5QW6USC.js +2 -0
  31. package/dist/{compliance-D7GD6ZYC.js → compliance-BNFWQPKM.js} +1 -1
  32. package/dist/config-schema-FLHRVZMI.js +2 -0
  33. package/dist/{context-audit-XRPT3OU2.js → context-audit-JVCA6GSV.js} +1 -1
  34. package/dist/{cursorrules-U5O4G5T4.js → cursorrules-ZXPXPZ3P.js} +1 -1
  35. package/dist/decision-loader-HELL2AMX.js +2 -0
  36. package/dist/{delete-P5VULXR4.js → delete-2C6ALLYY.js} +1 -1
  37. package/dist/{diff-YGHBIJY5.js → diff-MF55KQZH.js} +1 -1
  38. package/dist/{dist-KGRCLBJP-2QAPFYNF.js → dist-GQ42YS5N-4HIJZVBB.js} +10 -10
  39. package/dist/{docs-USDAF26F.js → docs-O37YLLRN.js} +1 -1
  40. package/dist/doctor-IG5XM4C4.js +2 -0
  41. package/dist/{edit-GUU3HBVW.js → edit-P3MDAZLU.js} +1 -1
  42. package/dist/{flow-FVZR3YJ4.js → flow-BGXOVE2V.js} +1 -1
  43. package/dist/index.js +6 -6
  44. package/dist/init-M44SO65G.js +2 -0
  45. package/dist/{init-XYB62Q3X.js → init-V4KSEKPK.js} +1 -1
  46. package/dist/{list-YKIQNKGB.js → list-2XIWUEMA.js} +1 -1
  47. package/dist/list-CFHINXIS.js +12 -0
  48. package/dist/lore-loader-D2ISOASW.js +2 -0
  49. package/dist/lore-loader-PXFKMKAN.js +2 -0
  50. package/dist/mcp.js +4 -4
  51. package/dist/metrics-UESGUHTA.js +2 -0
  52. package/dist/migrate-assessments-YSITX7KM.js +4 -0
  53. package/dist/migrate-decisions-NPLQOEEH.js +6 -0
  54. package/dist/migrate-plsat-EM2ACIQ3.js +6 -0
  55. package/dist/{nomination-engine-EALA5MGI.js → nomination-engine-QPZJH6XO.js} +1 -1
  56. package/dist/{notebook-loader-PXNRBBXD.js → notebook-loader-3J2OFMS3.js} +1 -1
  57. package/dist/{orchestrate-M5PBZBJQ.js → orchestrate-RID7HHHH.js} +1 -1
  58. package/dist/{platform-server-DNAMH4YI.js → platform-server-UD45NTGV.js} +1 -1
  59. package/dist/{portal-check-ZMLVBIGW.js → portal-check-DV2VSJ5E.js} +1 -1
  60. package/dist/portal-compliance-JONQ4SOP.js +2 -0
  61. package/dist/{probe-3FTG6LYO.js → probe-5HAXULAD.js} +1 -1
  62. package/dist/{providers-AWA7WLLM.js → providers-4PXMWA7V.js} +1 -1
  63. package/dist/quiz-WYIZJG5K.js +10 -0
  64. package/dist/{record-YXPB34MY.js → record-N3VNYYKJ.js} +1 -1
  65. package/dist/reindex-FWPD2VGM.js +2 -0
  66. package/dist/{retag-N5XF3KXP.js → retag-72R2OSZV.js} +1 -1
  67. package/dist/{review-77QI6VOC.js → review-2INNWLTW.js} +1 -1
  68. package/dist/{sentinel-HYAZ3CO5.js → sentinel-EFPEX246.js} +1 -1
  69. package/dist/{sentinel-bridge-VR357PKL.js → sentinel-bridge-UR2MKARY.js} +1 -1
  70. package/dist/{serve-U47GULB6.js → serve-MO35XIZE.js} +1 -1
  71. package/dist/serve-OQYUO7CR.js +12 -0
  72. package/dist/{server-4YNUIK4W.js → server-4D77LCST.js} +1 -1
  73. package/dist/server-FGUL2FWQ.js +7 -0
  74. package/dist/session-tracker-KGORN6B5.js +2 -0
  75. package/dist/{session-work-log-PAKXOFGL.js → session-work-log-4IEVE4KK.js} +1 -1
  76. package/dist/{session-work-log-ZP45TREI.js → session-work-log-EE4UIZ33.js} +1 -1
  77. package/dist/{setup-FEWSYS3Y.js → setup-ZSEC72BS.js} +1 -1
  78. package/dist/{shift-PC6C7NUX.js → shift-TVNY2CQF.js} +6 -6
  79. package/dist/{show-PJ5LFLIL.js → show-JH7LJ5MT.js} +1 -1
  80. package/dist/show-WVHAL4VU.js +7 -0
  81. package/dist/{spawn-M5BAV252.js → spawn-UH5RENSE.js} +1 -1
  82. package/dist/status-S7Z5FVIE.js +6 -0
  83. package/dist/{summary-PYTEIJ4U.js → summary-WLI3NF4G.js} +2 -2
  84. package/dist/{sweep-HU74OPVW.js → sweep-7TZFN5NS.js} +1 -1
  85. package/dist/sync-55U6QPIA.js +2 -0
  86. package/dist/{sync-llms-7CAI74QL.js → sync-llms-GF7DDQDI.js} +1 -1
  87. package/dist/{team-PDK64JXI.js → team-MGT66HZQ.js} +1 -1
  88. package/dist/{timeline-K3ZFKJ3R.js → timeline-RK7O2SCM.js} +1 -1
  89. package/dist/tools-QJHAVYI6.js +2 -0
  90. package/dist/university-content/notes/N-para-001-build-something.md +126 -0
  91. package/dist/university-content/notes/N-para-001-meet-the-team.md +85 -0
  92. package/dist/university-content/notes/N-para-001-shift-setup.md +74 -0
  93. package/dist/university-content/notes/N-para-101-component-types.md +99 -0
  94. package/dist/university-content/notes/N-para-101-first-steps.md +134 -0
  95. package/dist/university-content/notes/N-para-101-five-symbols.md +128 -0
  96. package/dist/university-content/notes/N-para-101-paradigm-logger.md +89 -0
  97. package/dist/university-content/notes/N-para-101-portal-yaml.md +112 -0
  98. package/dist/university-content/notes/N-para-101-project-structure.md +143 -0
  99. package/dist/university-content/notes/N-para-101-purpose-files.md +121 -0
  100. package/dist/university-content/notes/N-para-101-tags-and-classification.md +93 -0
  101. package/dist/university-content/notes/N-para-101-welcome.md +51 -0
  102. package/dist/university-content/notes/N-para-201-architecture-review.md +175 -0
  103. package/dist/university-content/notes/N-para-201-aspect-graph.md +79 -0
  104. package/dist/university-content/notes/N-para-201-aspects-and-anchors.md +112 -0
  105. package/dist/university-content/notes/N-para-201-component-patterns.md +138 -0
  106. package/dist/university-content/notes/N-para-201-cross-cutting-concerns.md +145 -0
  107. package/dist/university-content/notes/N-para-201-disciplines.md +187 -0
  108. package/dist/university-content/notes/N-para-201-flows-deep-dive.md +119 -0
  109. package/dist/university-content/notes/N-para-201-gates-deep-dive.md +165 -0
  110. package/dist/university-content/notes/N-para-201-portal-protocol.md +133 -0
  111. package/dist/university-content/notes/N-para-201-signal-patterns.md +159 -0
  112. package/dist/university-content/notes/N-para-201-symbol-naming.md +149 -0
  113. package/dist/university-content/notes/N-para-301-context-management.md +53 -0
  114. package/dist/university-content/notes/N-para-301-decisions.md +99 -0
  115. package/dist/university-content/notes/N-para-301-doctor-and-validation.md +70 -0
  116. package/dist/university-content/notes/N-para-301-enforcement-levels.md +102 -0
  117. package/dist/university-content/notes/N-para-301-fragility-tracking.md +50 -0
  118. package/dist/university-content/notes/N-para-301-history-system.md +42 -0
  119. package/dist/university-content/notes/N-para-301-navigation-system.md +55 -0
  120. package/dist/university-content/notes/N-para-301-operations-review.md +55 -0
  121. package/dist/university-content/notes/N-para-301-paradigm-shift.md +93 -0
  122. package/dist/university-content/notes/N-para-301-protocols.md +113 -0
  123. package/dist/university-content/notes/N-para-301-ripple-analysis.md +53 -0
  124. package/dist/university-content/notes/N-para-301-sentinel-observability.md +87 -0
  125. package/dist/university-content/notes/N-para-301-sync-and-maintenance.md +57 -0
  126. package/dist/university-content/notes/N-para-301-wisdom-system.md +89 -0
  127. package/dist/university-content/notes/N-para-401-agent-identity.md +99 -0
  128. package/dist/university-content/notes/N-para-401-agent-interop.md +87 -0
  129. package/dist/university-content/notes/N-para-401-agent-roles.md +107 -0
  130. package/dist/university-content/notes/N-para-401-commit-conventions.md +82 -0
  131. package/dist/university-content/notes/N-para-401-mastery-review.md +71 -0
  132. package/dist/university-content/notes/N-para-401-mcp-tools-overview.md +102 -0
  133. package/dist/university-content/notes/N-para-401-multi-agent-coordination.md +80 -0
  134. package/dist/university-content/notes/N-para-401-notebooks-permissions.md +66 -0
  135. package/dist/university-content/notes/N-para-401-orchestration-workflow.md +101 -0
  136. package/dist/university-content/notes/N-para-401-pm-governance.md +71 -0
  137. package/dist/university-content/notes/N-para-401-provider-cascade.md +75 -0
  138. package/dist/university-content/notes/N-para-401-quick-check.md +95 -0
  139. package/dist/university-content/notes/N-para-501-advanced-workflows.md +122 -0
  140. package/dist/university-content/notes/N-para-501-aspect-graph-advanced.md +195 -0
  141. package/dist/university-content/notes/N-para-501-aspect-graph-internals.md +97 -0
  142. package/dist/university-content/notes/N-para-501-assessment-loops.md +116 -0
  143. package/dist/university-content/notes/N-para-501-conductor-workspace.md +77 -0
  144. package/dist/university-content/notes/N-para-501-habits-practice.md +164 -0
  145. package/dist/university-content/notes/N-para-501-hook-enforcement.md +100 -0
  146. package/dist/university-content/notes/N-para-501-lore-system.md +155 -0
  147. package/dist/university-content/notes/N-para-501-platform-agent-ui.md +108 -0
  148. package/dist/university-content/notes/N-para-501-review-compliance.md +72 -0
  149. package/dist/university-content/notes/N-para-501-sentinel-deep-dive.md +173 -0
  150. package/dist/university-content/notes/N-para-501-session-intelligence.md +104 -0
  151. package/dist/university-content/notes/N-para-501-symphony-a-mail.md +120 -0
  152. package/dist/university-content/notes/N-para-501-symphony-networking.md +119 -0
  153. package/dist/university-content/notes/N-para-501-task-management.md +100 -0
  154. package/dist/university-content/notes/N-para-601-agent-renaissance.md +121 -0
  155. package/dist/university-content/notes/N-para-601-attention-scoring.md +129 -0
  156. package/dist/university-content/notes/N-para-601-context-composition.md +146 -0
  157. package/dist/university-content/notes/N-para-601-data-sovereignty.md +140 -0
  158. package/dist/university-content/notes/N-para-601-event-stream.md +126 -0
  159. package/dist/university-content/notes/N-para-601-knowledge-streams.md +144 -0
  160. package/dist/university-content/notes/N-para-601-learning-loop.md +68 -0
  161. package/dist/university-content/notes/N-para-601-maestro-team-collab.md +136 -0
  162. package/dist/university-content/notes/N-para-601-nominations-debates.md +115 -0
  163. package/dist/university-content/notes/N-para-701-agent-notebooks.md +131 -0
  164. package/dist/university-content/notes/N-para-701-agent-pods-nevrland.md +182 -0
  165. package/dist/university-content/notes/N-para-701-agent-profiles.md +197 -0
  166. package/dist/university-content/notes/N-para-701-agent-roster.md +82 -0
  167. package/dist/university-content/notes/N-para-701-agent-state.md +180 -0
  168. package/dist/university-content/notes/N-para-701-learning-feedback-loop.md +188 -0
  169. package/dist/university-content/notes/N-para-701-model-tier-resolution.md +204 -0
  170. package/dist/university-content/notes/N-para-701-orchestration-enforcement.md +169 -0
  171. package/dist/university-content/notes/N-para-701-per-project-rosters.md +198 -0
  172. package/dist/university-content/notes/N-para-701-symphony-visibility.md +142 -0
  173. package/dist/university-content/paths/LP-para-001.yaml +29 -0
  174. package/dist/university-content/paths/LP-para-101.yaml +59 -0
  175. package/dist/university-content/paths/LP-para-201.yaml +69 -0
  176. package/dist/university-content/paths/LP-para-301.yaml +84 -0
  177. package/dist/university-content/paths/LP-para-401.yaml +74 -0
  178. package/dist/university-content/paths/LP-para-501.yaml +89 -0
  179. package/dist/university-content/paths/LP-para-601.yaml +59 -0
  180. package/dist/university-content/paths/LP-para-701.yaml +64 -0
  181. package/dist/university-content/quizzes/Q-para-001-build-something.yaml +46 -0
  182. package/dist/university-content/quizzes/Q-para-001-meet-the-team.yaml +46 -0
  183. package/dist/university-content/quizzes/Q-para-001-shift-setup.yaml +46 -0
  184. package/dist/university-content/quizzes/Q-para-101-component-types.yaml +46 -0
  185. package/dist/university-content/quizzes/Q-para-101-first-steps.yaml +56 -0
  186. package/dist/university-content/quizzes/Q-para-101-five-symbols.yaml +66 -0
  187. package/dist/university-content/quizzes/Q-para-101-paradigm-logger.yaml +56 -0
  188. package/dist/university-content/quizzes/Q-para-101-portal-yaml.yaml +56 -0
  189. package/dist/university-content/quizzes/Q-para-101-project-structure.yaml +66 -0
  190. package/dist/university-content/quizzes/Q-para-101-purpose-files.yaml +56 -0
  191. package/dist/university-content/quizzes/Q-para-101-tags-and-classification.yaml +56 -0
  192. package/dist/university-content/quizzes/Q-para-101-welcome.yaml +56 -0
  193. package/dist/university-content/quizzes/Q-para-201-architecture-review.yaml +66 -0
  194. package/dist/university-content/quizzes/Q-para-201-aspect-graph.yaml +46 -0
  195. package/dist/university-content/quizzes/Q-para-201-aspects-and-anchors.yaml +56 -0
  196. package/dist/university-content/quizzes/Q-para-201-component-patterns.yaml +56 -0
  197. package/dist/university-content/quizzes/Q-para-201-cross-cutting-concerns.yaml +56 -0
  198. package/dist/university-content/quizzes/Q-para-201-disciplines.yaml +66 -0
  199. package/dist/university-content/quizzes/Q-para-201-flows-deep-dive.yaml +66 -0
  200. package/dist/university-content/quizzes/Q-para-201-gates-deep-dive.yaml +66 -0
  201. package/dist/university-content/quizzes/Q-para-201-portal-protocol.yaml +56 -0
  202. package/dist/university-content/quizzes/Q-para-201-signal-patterns.yaml +56 -0
  203. package/dist/university-content/quizzes/Q-para-201-symbol-naming.yaml +66 -0
  204. package/dist/university-content/quizzes/Q-para-301-context-management.yaml +56 -0
  205. package/dist/university-content/quizzes/Q-para-301-decisions.yaml +76 -0
  206. package/dist/university-content/quizzes/Q-para-301-doctor-and-validation.yaml +66 -0
  207. package/dist/university-content/quizzes/Q-para-301-enforcement-levels.yaml +46 -0
  208. package/dist/university-content/quizzes/Q-para-301-fragility-tracking.yaml +46 -0
  209. package/dist/university-content/quizzes/Q-para-301-history-system.yaml +56 -0
  210. package/dist/university-content/quizzes/Q-para-301-navigation-system.yaml +56 -0
  211. package/dist/university-content/quizzes/Q-para-301-operations-review.yaml +66 -0
  212. package/dist/university-content/quizzes/Q-para-301-paradigm-shift.yaml +46 -0
  213. package/dist/university-content/quizzes/Q-para-301-protocols.yaml +56 -0
  214. package/dist/university-content/quizzes/Q-para-301-ripple-analysis.yaml +56 -0
  215. package/dist/university-content/quizzes/Q-para-301-sentinel-observability.yaml +46 -0
  216. package/dist/university-content/quizzes/Q-para-301-sync-and-maintenance.yaml +46 -0
  217. package/dist/university-content/quizzes/Q-para-301-wisdom-system.yaml +56 -0
  218. package/dist/university-content/quizzes/Q-para-401-agent-identity.yaml +66 -0
  219. package/dist/university-content/quizzes/Q-para-401-agent-interop.yaml +46 -0
  220. package/dist/university-content/quizzes/Q-para-401-agent-roles.yaml +56 -0
  221. package/dist/university-content/quizzes/Q-para-401-commit-conventions.yaml +56 -0
  222. package/dist/university-content/quizzes/Q-para-401-mastery-review.yaml +66 -0
  223. package/dist/university-content/quizzes/Q-para-401-mcp-tools-overview.yaml +66 -0
  224. package/dist/university-content/quizzes/Q-para-401-multi-agent-coordination.yaml +76 -0
  225. package/dist/university-content/quizzes/Q-para-401-notebooks-permissions.yaml +61 -0
  226. package/dist/university-content/quizzes/Q-para-401-orchestration-workflow.yaml +66 -0
  227. package/dist/university-content/quizzes/Q-para-401-pm-governance.yaml +66 -0
  228. package/dist/university-content/quizzes/Q-para-401-provider-cascade.yaml +56 -0
  229. package/dist/university-content/quizzes/Q-para-401-quick-check.yaml +46 -0
  230. package/dist/university-content/quizzes/Q-para-501-advanced-workflows.yaml +66 -0
  231. package/dist/university-content/quizzes/Q-para-501-aspect-graph-advanced.yaml +66 -0
  232. package/dist/university-content/quizzes/Q-para-501-aspect-graph-internals.yaml +66 -0
  233. package/dist/university-content/quizzes/Q-para-501-assessment-loops.yaml +46 -0
  234. package/dist/university-content/quizzes/Q-para-501-conductor-workspace.yaml +46 -0
  235. package/dist/university-content/quizzes/Q-para-501-habits-practice.yaml +56 -0
  236. package/dist/university-content/quizzes/Q-para-501-hook-enforcement.yaml +66 -0
  237. package/dist/university-content/quizzes/Q-para-501-lore-system.yaml +66 -0
  238. package/dist/university-content/quizzes/Q-para-501-platform-agent-ui.yaml +66 -0
  239. package/dist/university-content/quizzes/Q-para-501-review-compliance.yaml +61 -0
  240. package/dist/university-content/quizzes/Q-para-501-sentinel-deep-dive.yaml +86 -0
  241. package/dist/university-content/quizzes/Q-para-501-session-intelligence.yaml +66 -0
  242. package/dist/university-content/quizzes/Q-para-501-symphony-a-mail.yaml +66 -0
  243. package/dist/university-content/quizzes/Q-para-501-symphony-networking.yaml +66 -0
  244. package/dist/university-content/quizzes/Q-para-501-task-management.yaml +46 -0
  245. package/dist/university-content/quizzes/Q-para-601-agent-renaissance.yaml +66 -0
  246. package/dist/university-content/quizzes/Q-para-601-attention-scoring.yaml +56 -0
  247. package/dist/university-content/quizzes/Q-para-601-context-composition.yaml +66 -0
  248. package/dist/university-content/quizzes/Q-para-601-data-sovereignty.yaml +56 -0
  249. package/dist/university-content/quizzes/Q-para-601-event-stream.yaml +66 -0
  250. package/dist/university-content/quizzes/Q-para-601-knowledge-streams.yaml +66 -0
  251. package/dist/university-content/quizzes/Q-para-601-learning-loop.yaml +56 -0
  252. package/dist/university-content/quizzes/Q-para-601-maestro-team-collab.yaml +86 -0
  253. package/dist/university-content/quizzes/Q-para-601-nominations-debates.yaml +66 -0
  254. package/dist/university-content/quizzes/Q-para-701-agent-notebooks.yaml +66 -0
  255. package/dist/university-content/quizzes/Q-para-701-agent-pods-nevrland.yaml +66 -0
  256. package/dist/university-content/quizzes/Q-para-701-agent-profiles.yaml +66 -0
  257. package/dist/university-content/quizzes/Q-para-701-agent-roster.yaml +66 -0
  258. package/dist/university-content/quizzes/Q-para-701-agent-state.yaml +66 -0
  259. package/dist/university-content/quizzes/Q-para-701-learning-feedback-loop.yaml +66 -0
  260. package/dist/university-content/quizzes/Q-para-701-model-tier-resolution.yaml +66 -0
  261. package/dist/university-content/quizzes/Q-para-701-orchestration-enforcement.yaml +66 -0
  262. package/dist/university-content/quizzes/Q-para-701-per-project-rosters.yaml +66 -0
  263. package/dist/university-content/quizzes/Q-para-701-symphony-visibility.yaml +66 -0
  264. package/dist/university-content/quizzes/Q-plsat-v2.yaml +904 -0
  265. package/dist/university-content/quizzes/Q-plsat-v3.yaml +2909 -0
  266. package/dist/university-content/reference.json +2 -2
  267. package/dist/university-ui/assets/{index-CecQrfSn.js → index-nNgzO1il.js} +2 -2
  268. package/dist/university-ui/assets/{index-CecQrfSn.js.map → index-nNgzO1il.js.map} +1 -1
  269. package/dist/university-ui/index.html +1 -1
  270. package/dist/{upgrade-GX56QE3C.js → upgrade-NKN63VTY.js} +2 -2
  271. package/dist/validate-XUQZTF3H.js +9 -0
  272. package/dist/{watch-YCODNIET.js → watch-25GJHQYT.js} +1 -1
  273. package/lore-ui/dist/assets/{index-Bk-K0qgN.js → index-DKhNxgtW.js} +10 -10
  274. package/lore-ui/dist/index.html +1 -1
  275. package/package.json +2 -2
  276. package/platform-ui/dist/assets/{AmbientSection-BYjt75R1.js → AmbientSection-CwatqcBD.js} +1 -1
  277. package/platform-ui/dist/assets/{CanvasSection-rKvA_vZj.js → CanvasSection-dFAthehN.js} +1 -1
  278. package/platform-ui/dist/assets/{DocsSection-CI9K73M-.js → DocsSection-BZ2SFJBZ.js} +1 -1
  279. package/platform-ui/dist/assets/{GitSection-DSGj_c6S.js → GitSection-MNNYU1tO.js} +1 -1
  280. package/platform-ui/dist/assets/{GraphSection-CawN7pC5.js → GraphSection-COYjb4Pt.js} +1 -1
  281. package/platform-ui/dist/assets/LoreSection-B0hUbfsJ.js +1 -0
  282. package/platform-ui/dist/assets/{SentinelSection-DNgoYMH0.js → SentinelSection-BCxW1DCp.js} +1 -1
  283. package/platform-ui/dist/assets/{SymphonySection-C0zfcqv3.js → SymphonySection-BsucZRqy.js} +1 -1
  284. package/platform-ui/dist/assets/{TeamSection-Bzd3Dt9Q.js → TeamSection-C0QNTudW.js} +1 -1
  285. package/platform-ui/dist/assets/{UniversitySection-tBr62R0S.js → UniversitySection-DN1-g9pw.js} +1 -1
  286. package/platform-ui/dist/assets/{index-BaOmyn11.js → index-DwUT8pju.js} +2 -2
  287. package/platform-ui/dist/index.html +1 -1
  288. package/dist/add-P76GEMGF.js +0 -8
  289. package/dist/chunk-JQKKVAAN.js +0 -2
  290. package/dist/chunk-NQ47TA6C.js +0 -111
  291. package/dist/chunk-ODVKPZZ4.js +0 -2
  292. package/dist/chunk-Q2J542ST.js +0 -2
  293. package/dist/chunk-RBLK34IA.js +0 -11
  294. package/dist/chunk-RN4VE6P3.js +0 -521
  295. package/dist/chunk-WS2N27RX.js +0 -3
  296. package/dist/config-schema-GUQY2QN7.js +0 -2
  297. package/dist/decision-loader-2XPZE4EZ.js +0 -2
  298. package/dist/doctor-WMVULMQD.js +0 -2
  299. package/dist/list-5IUGP3ZB.js +0 -7
  300. package/dist/lore-loader-RVQI5GXL.js +0 -2
  301. package/dist/lore-loader-XY5MZRR2.js +0 -2
  302. package/dist/migrate-assessments-GEI5WMI2.js +0 -4
  303. package/dist/portal-compliance-6YR27IQU.js +0 -2
  304. package/dist/quiz-FE5UGAY2.js +0 -10
  305. package/dist/reindex-I6LPAKCC.js +0 -2
  306. package/dist/serve-OY6XYL7F.js +0 -12
  307. package/dist/server-2MNROHF6.js +0 -7
  308. package/dist/session-tracker-MWJAJA6Z.js +0 -2
  309. package/dist/show-BOAVWZPZ.js +0 -7
  310. package/dist/status-A37ECYNJ.js +0 -6
  311. package/dist/sync-DLUBV5HQ.js +0 -2
  312. package/dist/tools-5ITPEPSV.js +0 -2
  313. package/dist/university-content/courses/.purpose +0 -492
  314. package/dist/university-content/courses/para-001.json +0 -166
  315. package/dist/university-content/courses/para-101.json +0 -615
  316. package/dist/university-content/courses/para-201.json +0 -794
  317. package/dist/university-content/courses/para-301.json +0 -830
  318. package/dist/university-content/courses/para-401.json +0 -868
  319. package/dist/university-content/courses/para-501.json +0 -1166
  320. package/dist/university-content/courses/para-601.json +0 -719
  321. package/dist/university-content/courses/para-701.json +0 -807
  322. package/dist/university-content/plsat/.purpose +0 -162
  323. package/dist/university-content/plsat/v2.0.json +0 -760
  324. package/dist/university-content/plsat/v3.0.json +0 -3453
  325. package/dist/validate-C6SMKGYD.js +0 -9
  326. package/platform-ui/dist/assets/LoreSection-oO5dCe6O.js +0 -1
  327. /package/dist/{chunk-BV5PRPLB.js → chunk-IZSBGW6E.js} +0 -0
  328. /package/templates/paradigm/specs/{scan.md → probe.md} +0 -0
@@ -0,0 +1,46 @@
1
+ id: Q-para-001-build-something
2
+ title: 'PARA 001: Quick Start — Build With the Team'
3
+ description: 'Quiz for lesson: Build With the Team'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-001
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-001.json
16
+ questions:
17
+ - id: q1
18
+ question: You built a new API endpoint without running quick-check or orchestration. The code works fine. On minimal enforcement, what happens when you commit?
19
+ choices:
20
+ A: The commit is blocked — orchestration is always required
21
+ B: The commit succeeds but the stop hook warns that no orchestration record exists for the changed files
22
+ C: Nothing — minimal enforcement has no checks
23
+ D: The commit is reverted automatically
24
+ E: Git rejects the commit because the pre-commit hook fails
25
+ correct: B
26
+ explanation: On minimal enforcement, orchestration-required is set to off, so the stop hook does not block. However, the purpose-coverage check (which is set to warn on minimal) may warn if you did not create a .purpose file for the new endpoint. The commit succeeds either way — minimal enforcement never blocks. But you have no orchestration record, no Rune compliance report, and no structured review.
27
+ - id: q2
28
+ question: 'During the build step, Rune creates a symbol plan with #health-check as a component. After the builder writes the code, Rune''s compliance report says "1 component, 0 aspects — blocking." Why is this a problem?'
29
+ choices:
30
+ A: Aspects are required for documentation completeness but have no real purpose
31
+ B: Every component needs at least one aspect (rule, constraint, or configuration) — the 1:1 ratio means you must define what rules govern the health endpoint
32
+ C: Rune made an error — health endpoints do not need aspects
33
+ D: The builder should have created the aspect automatically
34
+ E: This only matters on strict enforcement
35
+ correct: B
36
+ explanation: 'Rune enforces a 1:1 component-to-aspect ratio. Even a health endpoint has rules: response format, which checks it runs, timeout behavior, whether it includes dependency status. Defining an aspect like ~health-check-format forces you to document what the endpoint actually guarantees. This is not busywork — it is how Paradigm ensures every component has a documented contract.'
37
+ - id: q3
38
+ question: 'The commit message for your feature reads: feat(#health-check): add GET /health endpoint. The Symbols: trailer says Symbols: #health-check. What does the post-commit hook do with this information?'
39
+ choices:
40
+ A: Nothing — the Symbols trailer is just for human readability
41
+ B: 'It parses the Symbols trailer and records the commit in Paradigm''s history system, linking the change to #health-check for traceability'
42
+ C: 'It validates that #health-check exists in a .purpose file'
43
+ D: It sends a notification to the agent team
44
+ E: It automatically creates a changelog entry
45
+ correct: B
46
+ explanation: 'The post-commit hook parses the Symbols: trailer and records the commit in Paradigm''s history system. This creates a traceable link: commit → symbols affected. Later, when someone asks "what changed about #health-check?" or runs paradigm_history_context, the answer includes this commit. The pre-commit hook handles index rebuilding; the post-commit hook handles history capture.'
@@ -0,0 +1,46 @@
1
+ id: Q-para-001-meet-the-team
2
+ title: 'PARA 001: Quick Start — Meet Your Agent Team'
3
+ description: 'Quiz for lesson: Meet Your Agent Team'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-001
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-001.json
16
+ questions:
17
+ - id: q1
18
+ question: Your project is a React frontend with no backend. Which of these agents would paradigm shift likely NOT include in your roster?
19
+ choices:
20
+ A: Builder — every project needs code implementation
21
+ B: A database specialist — there is no database in a frontend-only project
22
+ C: Reviewer — code review is universal
23
+ D: compliance — symbol coverage applies to all projects
24
+ E: security — even frontend apps have security concerns (XSS, CSRF)
25
+ correct: B
26
+ explanation: Specialized agents like a database specialist are only rostered when the project type matches. A React frontend with no backend has no database layer, so database agents would not be selected. The core team (including the security role — frontend security matters too) appears in every roster. Specialized and ecosystem agents are added based on detection.
27
+ - id: q2
28
+ question: 'The Architect uses opus (tier-1) while the Builder uses haiku (tier-3). A junior developer asks: "Does that mean the builder writes worse code?" How do you explain?'
29
+ choices:
30
+ A: Yes — tier-3 is lower quality, but it is faster and cheaper
31
+ B: No — tiers match complexity, not quality. Architecture requires open-ended reasoning (opus). Building is well-defined implementation work where speed matters more (haiku).
32
+ C: The tiers are just labels with no real difference
33
+ D: The builder should be upgraded to opus for important features
34
+ E: All agents should use the same model for consistency
35
+ correct: B
36
+ explanation: Model tier assignment is about matching the nature of the work, not ranking quality. Architectural design is open-ended — "how should we structure this?" benefits from deeper reasoning. Implementation is well-defined — "write this function that does X" benefits from speed. A fast model writing clearly specified code often produces better results than an overthinking model.
37
+ - id: q3
38
+ question: You want to add a DevOps specialist agent to your web project's roster. What command would you use?
39
+ choices:
40
+ A: Edit roster.yaml by hand and add the agent definition
41
+ B: paradigm agent activate devops — it adds the agent to your project roster
42
+ C: paradigm shift --add-agent devops
43
+ D: Re-run paradigm shift and hope it detects the need
44
+ E: DevOps agents cannot be added to web projects
45
+ correct: B
46
+ explanation: paradigm agent activate <id> adds an agent to your project roster. This is the proper way to customize your team — the CLI updates roster.yaml, agents.yaml, and any related configuration atomically. While you could edit roster.yaml by hand, using the CLI ensures all related files stay in sync.
@@ -0,0 +1,46 @@
1
+ id: Q-para-001-shift-setup
2
+ title: 'PARA 001: Quick Start — Your First paradigm shift'
3
+ description: 'Quiz for lesson: Your First paradigm shift'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-001
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-001.json
16
+ questions:
17
+ - id: q1
18
+ question: You just ran paradigm shift in a Node.js project. Which of the following was NOT created or configured automatically?
19
+ choices:
20
+ A: .paradigm/config.yaml with discipline auto-detected from package.json
21
+ B: CLAUDE.md with AI instructions derived from your configuration
22
+ C: A comprehensive test suite for your existing code
23
+ D: Git hooks for automated compliance checking
24
+ E: .paradigm/roster.yaml with agents suited for a Node.js project
25
+ correct: C
26
+ explanation: paradigm shift sets up Paradigm metadata and tooling — it does not generate tests, modify your source code, or create application logic. It creates configuration, instruction files, hooks, and an agent roster. Testing is handled by the tester agent during orchestration, not during initialization.
27
+ - id: q2
28
+ question: After running paradigm shift, you edit .paradigm/config.yaml to change your enforcement level. Now CLAUDE.md is out of date. How do you update it?
29
+ choices:
30
+ A: Edit CLAUDE.md manually to match your changes
31
+ B: Run paradigm shift again — it regenerates CLAUDE.md from your updated config
32
+ C: Delete CLAUDE.md and it will regenerate on the next commit
33
+ D: Run paradigm sync to rebuild only the instruction files
34
+ E: Both B and D would work — shift re-runs all steps including sync, while sync targets just the instruction files
35
+ correct: E
36
+ explanation: CLAUDE.md is a derived file — always generated from config, never hand-edited. Both paradigm shift (full re-run) and paradigm sync (targeted) will regenerate it. Use sync when you only changed config; use shift when you want the full pipeline (migrate, scan, hooks, etc.).
37
+ - id: q3
38
+ question: A teammate says "I ran paradigm shift but it broke my project — hooks are blocking my commits." This should not happen with default settings. What likely went wrong?
39
+ choices:
40
+ A: paradigm shift always uses strict enforcement
41
+ B: The project already had a config.yaml with enforcement level set to strict or balanced from a previous setup
42
+ C: Hooks always block on the first run to teach discipline
43
+ D: The teammate's Git version is incompatible with Paradigm hooks
44
+ E: paradigm shift requires admin privileges to install hooks
45
+ correct: B
46
+ explanation: New projects default to minimal enforcement, which warns but never blocks. But paradigm shift is idempotent — if the project already had a .paradigm/config.yaml with a higher enforcement level, shift preserves that setting. The teammate's project was likely previously configured with balanced or strict enforcement. Check config.yaml and adjust enforcement.level if needed.
@@ -0,0 +1,46 @@
1
+ id: Q-para-101-component-types
2
+ title: 'PARA 101: Foundations — Component Types & Hierarchy'
3
+ description: 'Quiz for lesson: Component Types & Hierarchy'
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 does the `type` field on a component describe?
19
+ choices:
20
+ A: The programming language the component is written in
21
+ B: The structural role of the component (e.g., service, view, router)
22
+ C: The business domain the component belongs to
23
+ D: The test coverage level of the component
24
+ E: The deployment environment for the component
25
+ correct: B
26
+ explanation: The `type` field describes a component's structural role — what the code IS architecturally (service, view, router, filter, etc.). Business domain classification uses tags instead.
27
+ - id: q2
28
+ question: Where should the `parent` relationship be declared?
29
+ choices:
30
+ A: On the parent component, listing all children
31
+ B: In a separate relationships.yaml file
32
+ C: 'On the child component, referencing the parent with a # symbol'
33
+ D: In portal.yaml alongside gate definitions
34
+ E: In the config.yaml component_types glossary
35
+ correct: C
36
+ explanation: 'Parent is declared on the child component using a `parent: "#parent-name"` field. This keeps .purpose files decentralized — you don''t need to maintain rosters on parent components.'
37
+ - id: q3
38
+ question: A `PaymentService` handles payment processing and integrates with Stripe. How should it be documented?
39
+ choices:
40
+ A: '`type: integration` with no tags'
41
+ B: '`type: service` with `tags: [integration, feature]`'
42
+ C: '`tags: [service, integration]` with no type'
43
+ D: '`type: feature` with `tags: [service]`'
44
+ E: '`type: service-integration` combining both concepts'
45
+ correct: B
46
+ explanation: 'Type describes what the code IS (a service), while tags describe behavior and domain (it''s an integration and a feature). The correct approach is `type: service` with `tags: [integration, feature]`.'
@@ -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.