@a-company/paradigm 5.37.11 → 6.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/dist/{accept-orchestration-SBZVK3H4.js → accept-orchestration-QQISPINV.js} +1 -1
  2. package/dist/add-UOR4INIV.js +8 -0
  3. package/dist/{agent-loader-RIVI6QPP.js → agent-loader-2WJHD46U.js} +1 -1
  4. package/dist/{agent-loader-RJRVO5GQ.js → agent-loader-YKS2PQWO.js} +1 -1
  5. package/dist/{aggregate-W66DM3GA.js → aggregate-A5S5MTCC.js} +1 -1
  6. package/dist/{ambient-76YMUA5Q.js → ambient-BE3SQXNN.js} +1 -1
  7. package/dist/{ambient-WTLYUAQM.js → ambient-NVKQCW2A.js} +12 -12
  8. package/dist/{assess-UFPYEJKP.js → assess-63WXHWJV.js} +1 -1
  9. package/dist/{beacon-5QVYV5DF.js → beacon-QVUD3MGP.js} +1 -1
  10. package/dist/{calibration-OLJYB5HN.js → calibration-BDHGYJOK.js} +1 -1
  11. package/dist/{chunk-SI6SV76D.js → chunk-3DZK54RU.js} +72 -19
  12. package/dist/{chunk-CHVQNRRT.js → chunk-4PSD5R7N.js} +2 -2
  13. package/dist/chunk-6SKSV5B2.js +24 -0
  14. package/dist/{chunk-KFNHCQ4R.js → chunk-FEYOQMZ5.js} +1 -1
  15. package/dist/{chunk-NEJ4ZLCY.js → chunk-GAFKOFAV.js} +1 -1
  16. package/dist/chunk-GRZQIKST.js +2 -0
  17. package/dist/{chunk-RLCH7DXQ.js → chunk-K7X3Z3GL.js} +1 -1
  18. package/dist/chunk-LPBCQM5Y.js +6 -0
  19. package/dist/{chunk-T6IDXUUA.js → chunk-LWAIVOSF.js} +1 -1
  20. package/dist/{chunk-74SGKSRQ.js → chunk-M2HKWR25.js} +1 -1
  21. package/dist/{chunk-BOYQAMGC.js → chunk-M3PPXJU4.js} +1 -1
  22. package/dist/chunk-PHEX6LU4.js +111 -0
  23. package/dist/chunk-Q527BPUF.js +2 -0
  24. package/dist/chunk-R5ECMBIV.js +11 -0
  25. package/dist/{chunk-X3U3IGYT.js → chunk-TBWWFRL5.js} +1 -1
  26. package/dist/{chunk-MQIG6SMF.js → chunk-TNVWGPCE.js} +1 -1
  27. package/dist/{chunk-SUU6M4JH.js → chunk-TOYQ2QCB.js} +1 -1
  28. package/dist/chunk-TZDYIPVU.js +521 -0
  29. package/dist/{chunk-3XGNXXCT.js → chunk-UZ5H7K6Q.js} +1 -1
  30. package/dist/chunk-VIG5LSGZ.js +2 -0
  31. package/dist/chunk-VNIX5KBT.js +3 -0
  32. package/dist/{chunk-AGFPVSX5.js → chunk-VXIIVMTM.js} +1 -1
  33. package/dist/{chunk-ORDKEGII.js → chunk-WESTEMIM.js} +1 -1
  34. package/dist/{chunk-LBQBWIEX.js → chunk-Y4P4SGZV.js} +1 -1
  35. package/dist/{chunk-DOCDDDTD.js → chunk-YNDPSWOE.js} +5 -5
  36. package/dist/chunk-Z5QW6USC.js +2 -0
  37. package/dist/chunk-ZJQY5PPP.js +7 -0
  38. package/dist/{commands-LMUD5L6R.js → commands-ANRJNG2W.js} +1 -1
  39. package/dist/compliance-BNFWQPKM.js +6 -0
  40. package/dist/config-schema-FLHRVZMI.js +2 -0
  41. package/dist/{constellation-CG7C4WFE.js → constellation-NWLXYATA.js} +1 -1
  42. package/dist/{context-audit-XRPT3OU2.js → context-audit-JVCA6GSV.js} +1 -1
  43. package/dist/{cost-IDNVMAEV.js → cost-24UZSS2P.js} +1 -1
  44. package/dist/{cursorrules-U5O4G5T4.js → cursorrules-ZXPXPZ3P.js} +1 -1
  45. package/dist/decision-loader-HELL2AMX.js +2 -0
  46. package/dist/{delete-P5VULXR4.js → delete-2C6ALLYY.js} +1 -1
  47. package/dist/{diff-JVEYCXUC.js → diff-MF55KQZH.js} +1 -1
  48. package/dist/{dist-KGRCLBJP-2QAPFYNF.js → dist-GQ42YS5N-4HIJZVBB.js} +10 -10
  49. package/dist/dist-JZZJLVMR.js +2 -0
  50. package/dist/{dist-3ZCH25SG.js → dist-OG6MM4VY.js} +1 -1
  51. package/dist/dist-SE67SOXB.js +2 -0
  52. package/dist/{docs-USDAF26F.js → docs-O37YLLRN.js} +1 -1
  53. package/dist/doctor-IG5XM4C4.js +2 -0
  54. package/dist/{edit-GUU3HBVW.js → edit-P3MDAZLU.js} +1 -1
  55. package/dist/{flow-POQP27WA.js → flow-BGXOVE2V.js} +1 -1
  56. package/dist/{hooks-IG2GOAHP.js → hooks-TFMMMB2H.js} +1 -1
  57. package/dist/index.js +6 -6
  58. package/dist/init-M44SO65G.js +2 -0
  59. package/dist/init-V4KSEKPK.js +2 -0
  60. package/dist/{integrity-UYDOOJDP.js → integrity-ROO3G43N.js} +1 -1
  61. package/dist/{list-YKIQNKGB.js → list-2XIWUEMA.js} +1 -1
  62. package/dist/list-CFHINXIS.js +12 -0
  63. package/dist/lore-loader-D2ISOASW.js +2 -0
  64. package/dist/lore-loader-PXFKMKAN.js +2 -0
  65. package/dist/mcp.js +19 -11
  66. package/dist/metrics-UESGUHTA.js +2 -0
  67. package/dist/{migrate-IBDE7VK4.js → migrate-Z5UQN57G.js} +1 -1
  68. package/dist/migrate-assessments-YSITX7KM.js +4 -0
  69. package/dist/migrate-decisions-NPLQOEEH.js +6 -0
  70. package/dist/migrate-plsat-EM2ACIQ3.js +6 -0
  71. package/dist/{nomination-engine-EALA5MGI.js → nomination-engine-QPZJH6XO.js} +1 -1
  72. package/dist/{notebook-loader-PXNRBBXD.js → notebook-loader-3J2OFMS3.js} +1 -1
  73. package/dist/{orchestrate-RCAMBOIB.js → orchestrate-RID7HHHH.js} +1 -1
  74. package/dist/{platform-server-DNAMH4YI.js → platform-server-UD45NTGV.js} +1 -1
  75. package/dist/portal-check-DV2VSJ5E.js +8 -0
  76. package/dist/{portal-compliance-4MG5F2GI.js → portal-compliance-JONQ4SOP.js} +1 -1
  77. package/dist/{probe-B22G2JKF.js → probe-5HAXULAD.js} +1 -1
  78. package/dist/{providers-AWA7WLLM.js → providers-4PXMWA7V.js} +1 -1
  79. package/dist/quiz-WYIZJG5K.js +10 -0
  80. package/dist/{record-YXPB34MY.js → record-N3VNYYKJ.js} +1 -1
  81. package/dist/reindex-FWPD2VGM.js +2 -0
  82. package/dist/{retag-N5XF3KXP.js → retag-72R2OSZV.js} +1 -1
  83. package/dist/{review-77QI6VOC.js → review-2INNWLTW.js} +1 -1
  84. package/dist/{review-6UAH6V3R.js → review-VMSX2PKI.js} +1 -1
  85. package/dist/{ripple-ZGDITCGB.js → ripple-FNZI47SH.js} +1 -1
  86. package/dist/{sentinel-HYAZ3CO5.js → sentinel-EFPEX246.js} +1 -1
  87. package/dist/{sentinel-bridge-VR357PKL.js → sentinel-bridge-UR2MKARY.js} +1 -1
  88. package/dist/sentinel.js +1 -1
  89. package/dist/{serve-U47GULB6.js → serve-MO35XIZE.js} +1 -1
  90. package/dist/serve-OQYUO7CR.js +12 -0
  91. package/dist/{server-4YNUIK4W.js → server-4D77LCST.js} +1 -1
  92. package/dist/server-FGUL2FWQ.js +7 -0
  93. package/dist/session-tracker-KGORN6B5.js +2 -0
  94. package/dist/{session-work-log-PAKXOFGL.js → session-work-log-4IEVE4KK.js} +1 -1
  95. package/dist/{session-work-log-ZP45TREI.js → session-work-log-EE4UIZ33.js} +1 -1
  96. package/dist/{setup-3F5IK7MO.js → setup-ZSEC72BS.js} +2 -2
  97. package/dist/{shift-FDADESC4.js → shift-TVNY2CQF.js} +6 -6
  98. package/dist/{show-PJ5LFLIL.js → show-JH7LJ5MT.js} +1 -1
  99. package/dist/show-WVHAL4VU.js +7 -0
  100. package/dist/{snapshot-L2G56RPL.js → snapshot-3IYB67D4.js} +1 -1
  101. package/dist/{spawn-M5BAV252.js → spawn-UH5RENSE.js} +1 -1
  102. package/dist/{status-77M3SDIF.js → status-DB3KNLW3.js} +1 -1
  103. package/dist/status-S7Z5FVIE.js +6 -0
  104. package/dist/{summary-LXLHFRN7.js → summary-WLI3NF4G.js} +2 -2
  105. package/dist/{sweep-HU74OPVW.js → sweep-7TZFN5NS.js} +1 -1
  106. package/dist/sync-55U6QPIA.js +2 -0
  107. package/dist/{sync-llms-7CAI74QL.js → sync-llms-GF7DDQDI.js} +1 -1
  108. package/dist/team-MGT66HZQ.js +2 -0
  109. package/dist/{test-BQJMS4Y2.js → test-WLEPZQFC.js} +1 -1
  110. package/dist/{timeline-K3ZFKJ3R.js → timeline-RK7O2SCM.js} +1 -1
  111. package/dist/tools-QJHAVYI6.js +2 -0
  112. package/dist/university-content/notes/N-para-001-build-something.md +126 -0
  113. package/dist/university-content/notes/N-para-001-meet-the-team.md +85 -0
  114. package/dist/university-content/notes/N-para-001-shift-setup.md +74 -0
  115. package/dist/university-content/notes/N-para-101-component-types.md +99 -0
  116. package/dist/university-content/notes/N-para-101-first-steps.md +134 -0
  117. package/dist/university-content/notes/N-para-101-five-symbols.md +128 -0
  118. package/dist/university-content/notes/N-para-101-paradigm-logger.md +89 -0
  119. package/dist/university-content/notes/N-para-101-portal-yaml.md +112 -0
  120. package/dist/university-content/notes/N-para-101-project-structure.md +143 -0
  121. package/dist/university-content/notes/N-para-101-purpose-files.md +121 -0
  122. package/dist/university-content/notes/N-para-101-tags-and-classification.md +93 -0
  123. package/dist/university-content/notes/N-para-101-welcome.md +51 -0
  124. package/dist/university-content/notes/N-para-201-architecture-review.md +175 -0
  125. package/dist/university-content/notes/N-para-201-aspect-graph.md +79 -0
  126. package/dist/university-content/notes/N-para-201-aspects-and-anchors.md +112 -0
  127. package/dist/university-content/notes/N-para-201-component-patterns.md +138 -0
  128. package/dist/university-content/notes/N-para-201-cross-cutting-concerns.md +145 -0
  129. package/dist/university-content/notes/N-para-201-disciplines.md +187 -0
  130. package/dist/university-content/notes/N-para-201-flows-deep-dive.md +119 -0
  131. package/dist/university-content/notes/N-para-201-gates-deep-dive.md +165 -0
  132. package/dist/university-content/notes/N-para-201-portal-protocol.md +133 -0
  133. package/dist/university-content/notes/N-para-201-signal-patterns.md +159 -0
  134. package/dist/university-content/notes/N-para-201-symbol-naming.md +149 -0
  135. package/dist/university-content/notes/N-para-301-context-management.md +53 -0
  136. package/dist/university-content/notes/N-para-301-decisions.md +99 -0
  137. package/dist/university-content/notes/N-para-301-doctor-and-validation.md +70 -0
  138. package/dist/university-content/notes/N-para-301-enforcement-levels.md +102 -0
  139. package/dist/university-content/notes/N-para-301-fragility-tracking.md +50 -0
  140. package/dist/university-content/notes/N-para-301-history-system.md +42 -0
  141. package/dist/university-content/notes/N-para-301-navigation-system.md +55 -0
  142. package/dist/university-content/notes/N-para-301-operations-review.md +55 -0
  143. package/dist/university-content/notes/N-para-301-paradigm-shift.md +93 -0
  144. package/dist/university-content/notes/N-para-301-protocols.md +113 -0
  145. package/dist/university-content/notes/N-para-301-ripple-analysis.md +53 -0
  146. package/dist/university-content/notes/N-para-301-sentinel-observability.md +87 -0
  147. package/dist/university-content/notes/N-para-301-sync-and-maintenance.md +57 -0
  148. package/dist/university-content/notes/N-para-301-wisdom-system.md +89 -0
  149. package/dist/university-content/notes/N-para-401-agent-identity.md +99 -0
  150. package/dist/university-content/notes/N-para-401-agent-interop.md +87 -0
  151. package/dist/university-content/notes/N-para-401-agent-roles.md +107 -0
  152. package/dist/university-content/notes/N-para-401-commit-conventions.md +82 -0
  153. package/dist/university-content/notes/N-para-401-mastery-review.md +71 -0
  154. package/dist/university-content/notes/N-para-401-mcp-tools-overview.md +102 -0
  155. package/dist/university-content/notes/N-para-401-multi-agent-coordination.md +80 -0
  156. package/dist/university-content/notes/N-para-401-notebooks-permissions.md +66 -0
  157. package/dist/university-content/notes/N-para-401-orchestration-workflow.md +101 -0
  158. package/dist/university-content/notes/N-para-401-pm-governance.md +71 -0
  159. package/dist/university-content/notes/N-para-401-provider-cascade.md +75 -0
  160. package/dist/university-content/notes/N-para-401-quick-check.md +95 -0
  161. package/dist/university-content/notes/N-para-501-advanced-workflows.md +122 -0
  162. package/dist/university-content/notes/N-para-501-aspect-graph-advanced.md +195 -0
  163. package/dist/university-content/notes/N-para-501-aspect-graph-internals.md +97 -0
  164. package/dist/university-content/notes/N-para-501-assessment-loops.md +116 -0
  165. package/dist/university-content/notes/N-para-501-conductor-workspace.md +77 -0
  166. package/dist/university-content/notes/N-para-501-habits-practice.md +164 -0
  167. package/dist/university-content/notes/N-para-501-hook-enforcement.md +100 -0
  168. package/dist/university-content/notes/N-para-501-lore-system.md +155 -0
  169. package/dist/university-content/notes/N-para-501-platform-agent-ui.md +108 -0
  170. package/dist/university-content/notes/N-para-501-review-compliance.md +72 -0
  171. package/dist/university-content/notes/N-para-501-sentinel-deep-dive.md +173 -0
  172. package/dist/university-content/notes/N-para-501-session-intelligence.md +104 -0
  173. package/dist/university-content/notes/N-para-501-symphony-a-mail.md +120 -0
  174. package/dist/university-content/notes/N-para-501-symphony-networking.md +119 -0
  175. package/dist/university-content/notes/N-para-501-task-management.md +100 -0
  176. package/dist/university-content/notes/N-para-601-agent-renaissance.md +121 -0
  177. package/dist/university-content/notes/N-para-601-attention-scoring.md +129 -0
  178. package/dist/university-content/notes/N-para-601-context-composition.md +146 -0
  179. package/dist/university-content/notes/N-para-601-data-sovereignty.md +140 -0
  180. package/dist/university-content/notes/N-para-601-event-stream.md +126 -0
  181. package/dist/university-content/notes/N-para-601-knowledge-streams.md +144 -0
  182. package/dist/university-content/notes/N-para-601-learning-loop.md +68 -0
  183. package/dist/university-content/notes/N-para-601-maestro-team-collab.md +136 -0
  184. package/dist/university-content/notes/N-para-601-nominations-debates.md +115 -0
  185. package/dist/university-content/notes/N-para-701-agent-notebooks.md +131 -0
  186. package/dist/university-content/notes/N-para-701-agent-pods-nevrland.md +182 -0
  187. package/dist/university-content/notes/N-para-701-agent-profiles.md +197 -0
  188. package/dist/university-content/notes/N-para-701-agent-roster.md +82 -0
  189. package/dist/university-content/notes/N-para-701-agent-state.md +180 -0
  190. package/dist/university-content/notes/N-para-701-learning-feedback-loop.md +188 -0
  191. package/dist/university-content/notes/N-para-701-model-tier-resolution.md +204 -0
  192. package/dist/university-content/notes/N-para-701-orchestration-enforcement.md +169 -0
  193. package/dist/university-content/notes/N-para-701-per-project-rosters.md +198 -0
  194. package/dist/university-content/notes/N-para-701-symphony-visibility.md +142 -0
  195. package/dist/university-content/paths/LP-para-001.yaml +29 -0
  196. package/dist/university-content/paths/LP-para-101.yaml +59 -0
  197. package/dist/university-content/paths/LP-para-201.yaml +69 -0
  198. package/dist/university-content/paths/LP-para-301.yaml +84 -0
  199. package/dist/university-content/paths/LP-para-401.yaml +74 -0
  200. package/dist/university-content/paths/LP-para-501.yaml +89 -0
  201. package/dist/university-content/paths/LP-para-601.yaml +59 -0
  202. package/dist/university-content/paths/LP-para-701.yaml +64 -0
  203. package/dist/university-content/quizzes/Q-para-001-build-something.yaml +46 -0
  204. package/dist/university-content/quizzes/Q-para-001-meet-the-team.yaml +46 -0
  205. package/dist/university-content/quizzes/Q-para-001-shift-setup.yaml +46 -0
  206. package/dist/university-content/quizzes/Q-para-101-component-types.yaml +46 -0
  207. package/dist/university-content/quizzes/Q-para-101-first-steps.yaml +56 -0
  208. package/dist/university-content/quizzes/Q-para-101-five-symbols.yaml +66 -0
  209. package/dist/university-content/quizzes/Q-para-101-paradigm-logger.yaml +56 -0
  210. package/dist/university-content/quizzes/Q-para-101-portal-yaml.yaml +56 -0
  211. package/dist/university-content/quizzes/Q-para-101-project-structure.yaml +66 -0
  212. package/dist/university-content/quizzes/Q-para-101-purpose-files.yaml +56 -0
  213. package/dist/university-content/quizzes/Q-para-101-tags-and-classification.yaml +56 -0
  214. package/dist/university-content/quizzes/Q-para-101-welcome.yaml +56 -0
  215. package/dist/university-content/quizzes/Q-para-201-architecture-review.yaml +66 -0
  216. package/dist/university-content/quizzes/Q-para-201-aspect-graph.yaml +46 -0
  217. package/dist/university-content/quizzes/Q-para-201-aspects-and-anchors.yaml +56 -0
  218. package/dist/university-content/quizzes/Q-para-201-component-patterns.yaml +56 -0
  219. package/dist/university-content/quizzes/Q-para-201-cross-cutting-concerns.yaml +56 -0
  220. package/dist/university-content/quizzes/Q-para-201-disciplines.yaml +66 -0
  221. package/dist/university-content/quizzes/Q-para-201-flows-deep-dive.yaml +66 -0
  222. package/dist/university-content/quizzes/Q-para-201-gates-deep-dive.yaml +66 -0
  223. package/dist/university-content/quizzes/Q-para-201-portal-protocol.yaml +56 -0
  224. package/dist/university-content/quizzes/Q-para-201-signal-patterns.yaml +56 -0
  225. package/dist/university-content/quizzes/Q-para-201-symbol-naming.yaml +66 -0
  226. package/dist/university-content/quizzes/Q-para-301-context-management.yaml +56 -0
  227. package/dist/university-content/quizzes/Q-para-301-decisions.yaml +76 -0
  228. package/dist/university-content/quizzes/Q-para-301-doctor-and-validation.yaml +66 -0
  229. package/dist/university-content/quizzes/Q-para-301-enforcement-levels.yaml +46 -0
  230. package/dist/university-content/quizzes/Q-para-301-fragility-tracking.yaml +46 -0
  231. package/dist/university-content/quizzes/Q-para-301-history-system.yaml +56 -0
  232. package/dist/university-content/quizzes/Q-para-301-navigation-system.yaml +56 -0
  233. package/dist/university-content/quizzes/Q-para-301-operations-review.yaml +66 -0
  234. package/dist/university-content/quizzes/Q-para-301-paradigm-shift.yaml +46 -0
  235. package/dist/university-content/quizzes/Q-para-301-protocols.yaml +56 -0
  236. package/dist/university-content/quizzes/Q-para-301-ripple-analysis.yaml +56 -0
  237. package/dist/university-content/quizzes/Q-para-301-sentinel-observability.yaml +46 -0
  238. package/dist/university-content/quizzes/Q-para-301-sync-and-maintenance.yaml +46 -0
  239. package/dist/university-content/quizzes/Q-para-301-wisdom-system.yaml +56 -0
  240. package/dist/university-content/quizzes/Q-para-401-agent-identity.yaml +66 -0
  241. package/dist/university-content/quizzes/Q-para-401-agent-interop.yaml +46 -0
  242. package/dist/university-content/quizzes/Q-para-401-agent-roles.yaml +56 -0
  243. package/dist/university-content/quizzes/Q-para-401-commit-conventions.yaml +56 -0
  244. package/dist/university-content/quizzes/Q-para-401-mastery-review.yaml +66 -0
  245. package/dist/university-content/quizzes/Q-para-401-mcp-tools-overview.yaml +66 -0
  246. package/dist/university-content/quizzes/Q-para-401-multi-agent-coordination.yaml +76 -0
  247. package/dist/university-content/quizzes/Q-para-401-notebooks-permissions.yaml +61 -0
  248. package/dist/university-content/quizzes/Q-para-401-orchestration-workflow.yaml +66 -0
  249. package/dist/university-content/quizzes/Q-para-401-pm-governance.yaml +66 -0
  250. package/dist/university-content/quizzes/Q-para-401-provider-cascade.yaml +56 -0
  251. package/dist/university-content/quizzes/Q-para-401-quick-check.yaml +46 -0
  252. package/dist/university-content/quizzes/Q-para-501-advanced-workflows.yaml +66 -0
  253. package/dist/university-content/quizzes/Q-para-501-aspect-graph-advanced.yaml +66 -0
  254. package/dist/university-content/quizzes/Q-para-501-aspect-graph-internals.yaml +66 -0
  255. package/dist/university-content/quizzes/Q-para-501-assessment-loops.yaml +46 -0
  256. package/dist/university-content/quizzes/Q-para-501-conductor-workspace.yaml +46 -0
  257. package/dist/university-content/quizzes/Q-para-501-habits-practice.yaml +56 -0
  258. package/dist/university-content/quizzes/Q-para-501-hook-enforcement.yaml +66 -0
  259. package/dist/university-content/quizzes/Q-para-501-lore-system.yaml +66 -0
  260. package/dist/university-content/quizzes/Q-para-501-platform-agent-ui.yaml +66 -0
  261. package/dist/university-content/quizzes/Q-para-501-review-compliance.yaml +61 -0
  262. package/dist/university-content/quizzes/Q-para-501-sentinel-deep-dive.yaml +86 -0
  263. package/dist/university-content/quizzes/Q-para-501-session-intelligence.yaml +66 -0
  264. package/dist/university-content/quizzes/Q-para-501-symphony-a-mail.yaml +66 -0
  265. package/dist/university-content/quizzes/Q-para-501-symphony-networking.yaml +66 -0
  266. package/dist/university-content/quizzes/Q-para-501-task-management.yaml +46 -0
  267. package/dist/university-content/quizzes/Q-para-601-agent-renaissance.yaml +66 -0
  268. package/dist/university-content/quizzes/Q-para-601-attention-scoring.yaml +56 -0
  269. package/dist/university-content/quizzes/Q-para-601-context-composition.yaml +66 -0
  270. package/dist/university-content/quizzes/Q-para-601-data-sovereignty.yaml +56 -0
  271. package/dist/university-content/quizzes/Q-para-601-event-stream.yaml +66 -0
  272. package/dist/university-content/quizzes/Q-para-601-knowledge-streams.yaml +66 -0
  273. package/dist/university-content/quizzes/Q-para-601-learning-loop.yaml +56 -0
  274. package/dist/university-content/quizzes/Q-para-601-maestro-team-collab.yaml +86 -0
  275. package/dist/university-content/quizzes/Q-para-601-nominations-debates.yaml +66 -0
  276. package/dist/university-content/quizzes/Q-para-701-agent-notebooks.yaml +66 -0
  277. package/dist/university-content/quizzes/Q-para-701-agent-pods-nevrland.yaml +66 -0
  278. package/dist/university-content/quizzes/Q-para-701-agent-profiles.yaml +66 -0
  279. package/dist/university-content/quizzes/Q-para-701-agent-roster.yaml +66 -0
  280. package/dist/university-content/quizzes/Q-para-701-agent-state.yaml +66 -0
  281. package/dist/university-content/quizzes/Q-para-701-learning-feedback-loop.yaml +66 -0
  282. package/dist/university-content/quizzes/Q-para-701-model-tier-resolution.yaml +66 -0
  283. package/dist/university-content/quizzes/Q-para-701-orchestration-enforcement.yaml +66 -0
  284. package/dist/university-content/quizzes/Q-para-701-per-project-rosters.yaml +66 -0
  285. package/dist/university-content/quizzes/Q-para-701-symphony-visibility.yaml +66 -0
  286. package/dist/university-content/quizzes/Q-plsat-v2.yaml +904 -0
  287. package/dist/university-content/quizzes/Q-plsat-v3.yaml +2909 -0
  288. package/dist/university-content/reference.json +2 -2
  289. package/dist/university-ui/assets/{index-CecQrfSn.js → index-nNgzO1il.js} +2 -2
  290. package/dist/university-ui/assets/{index-CecQrfSn.js.map → index-nNgzO1il.js.map} +1 -1
  291. package/dist/university-ui/index.html +1 -1
  292. package/dist/{upgrade-GX56QE3C.js → upgrade-NKN63VTY.js} +2 -2
  293. package/dist/{validate-VZXTJHGO.js → validate-BB6LRWIY.js} +1 -1
  294. package/dist/validate-XUQZTF3H.js +9 -0
  295. package/dist/{watch-YCODNIET.js → watch-25GJHQYT.js} +1 -1
  296. package/dist/workspace-VMSPYIBV.js +2 -0
  297. package/lore-ui/dist/assets/{index-Bk-K0qgN.js → index-DKhNxgtW.js} +10 -10
  298. package/lore-ui/dist/index.html +1 -1
  299. package/package.json +3 -2
  300. package/platform-ui/dist/assets/{AmbientSection-BYjt75R1.js → AmbientSection-CwatqcBD.js} +1 -1
  301. package/platform-ui/dist/assets/{CanvasSection-rKvA_vZj.js → CanvasSection-dFAthehN.js} +1 -1
  302. package/platform-ui/dist/assets/{DocsSection-CI9K73M-.js → DocsSection-BZ2SFJBZ.js} +1 -1
  303. package/platform-ui/dist/assets/{GitSection-DSGj_c6S.js → GitSection-MNNYU1tO.js} +1 -1
  304. package/platform-ui/dist/assets/{GraphSection-CawN7pC5.js → GraphSection-COYjb4Pt.js} +1 -1
  305. package/platform-ui/dist/assets/LoreSection-B0hUbfsJ.js +1 -0
  306. package/platform-ui/dist/assets/{SentinelSection-DNgoYMH0.js → SentinelSection-BCxW1DCp.js} +1 -1
  307. package/platform-ui/dist/assets/{SymphonySection-C0zfcqv3.js → SymphonySection-BsucZRqy.js} +1 -1
  308. package/platform-ui/dist/assets/{TeamSection-Bzd3Dt9Q.js → TeamSection-C0QNTudW.js} +1 -1
  309. package/platform-ui/dist/assets/{UniversitySection-tBr62R0S.js → UniversitySection-DN1-g9pw.js} +1 -1
  310. package/platform-ui/dist/assets/{index-BaOmyn11.js → index-DwUT8pju.js} +2 -2
  311. package/platform-ui/dist/index.html +1 -1
  312. package/templates/paradigm/specs/symbols.md +4 -2
  313. package/dist/add-P76GEMGF.js +0 -8
  314. package/dist/chunk-3TR6LLXP.js +0 -111
  315. package/dist/chunk-G7XFK2GI.js +0 -11
  316. package/dist/chunk-J6KWGCHN.js +0 -24
  317. package/dist/chunk-JQKKVAAN.js +0 -2
  318. package/dist/chunk-ODVKPZZ4.js +0 -2
  319. package/dist/chunk-Q2J542ST.js +0 -2
  320. package/dist/chunk-QT2LKB3P.js +0 -7
  321. package/dist/chunk-SHD27BQX.js +0 -6
  322. package/dist/chunk-WS2N27RX.js +0 -3
  323. package/dist/chunk-YT52WLBF.js +0 -521
  324. package/dist/compliance-WJINB5DM.js +0 -6
  325. package/dist/config-schema-GUQY2QN7.js +0 -2
  326. package/dist/decision-loader-2XPZE4EZ.js +0 -2
  327. package/dist/dist-R3RWD35F.js +0 -2
  328. package/dist/dist-VXCZWVVJ.js +0 -2
  329. package/dist/doctor-QJ47XAUP.js +0 -2
  330. package/dist/init-HIBRSVUB.js +0 -2
  331. package/dist/list-5IUGP3ZB.js +0 -7
  332. package/dist/lore-loader-RVQI5GXL.js +0 -2
  333. package/dist/lore-loader-XY5MZRR2.js +0 -2
  334. package/dist/migrate-assessments-GEI5WMI2.js +0 -4
  335. package/dist/portal-check-Z3OCQEQR.js +0 -8
  336. package/dist/quiz-FE5UGAY2.js +0 -10
  337. package/dist/reindex-FO5VMZVQ.js +0 -2
  338. package/dist/serve-OY6XYL7F.js +0 -12
  339. package/dist/server-2MNROHF6.js +0 -7
  340. package/dist/session-tracker-MWJAJA6Z.js +0 -2
  341. package/dist/show-BOAVWZPZ.js +0 -7
  342. package/dist/status-A37ECYNJ.js +0 -6
  343. package/dist/sync-DLUBV5HQ.js +0 -2
  344. package/dist/team-NSP6PMPS.js +0 -2
  345. package/dist/tools-CERDNVCG.js +0 -2
  346. package/dist/university-content/courses/.purpose +0 -492
  347. package/dist/university-content/courses/para-001.json +0 -166
  348. package/dist/university-content/courses/para-101.json +0 -615
  349. package/dist/university-content/courses/para-201.json +0 -794
  350. package/dist/university-content/courses/para-301.json +0 -830
  351. package/dist/university-content/courses/para-401.json +0 -868
  352. package/dist/university-content/courses/para-501.json +0 -1166
  353. package/dist/university-content/courses/para-601.json +0 -719
  354. package/dist/university-content/courses/para-701.json +0 -807
  355. package/dist/university-content/plsat/.purpose +0 -162
  356. package/dist/university-content/plsat/v2.0.json +0 -760
  357. package/dist/university-content/plsat/v3.0.json +0 -3453
  358. package/dist/validate-C6SMKGYD.js +0 -9
  359. package/dist/workspace-MKSQN7B2.js +0 -2
  360. package/platform-ui/dist/assets/LoreSection-oO5dCe6O.js +0 -1
  361. /package/dist/{chunk-BV5PRPLB.js → chunk-IZSBGW6E.js} +0 -0
  362. /package/templates/paradigm/specs/{scan.md → probe.md} +0 -0
@@ -0,0 +1,66 @@
1
+ id: Q-para-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.
@@ -0,0 +1,56 @@
1
+ id: Q-para-201-component-patterns
2
+ title: 'PARA 201: Architecture — Component Patterns'
3
+ description: 'Quiz for lesson: Component Patterns'
4
+ author: paradigm
5
+ created: '2026-04-22'
6
+ updated: '2026-04-22'
7
+ tags:
8
+ - course
9
+ - para-201
10
+ symbols: []
11
+ difficulty: beginner
12
+ passThreshold: 0.7
13
+ category: paradigm-core
14
+ origin: imported
15
+ source: courses/para-201.json
16
+ questions:
17
+ - id: q1
18
+ question: A Redis caching layer is used by the user service, the product service, and the search service. How should it be tagged?
19
+ choices:
20
+ A: 'tags: [feature, redis] — because users interact with cached data'
21
+ B: 'tags: [integration, redis] — because Redis is a third-party service'
22
+ C: 'tags: [state, cache, redis] — because it manages data storage'
23
+ D: 'tags: [infrastructure, redis] — because it is a foundational service'
24
+ E: Both C and D are acceptable, depending on whether caching is the primary purpose or a supporting capability
25
+ correct: E
26
+ explanation: 'If the component''s primary purpose is data caching (storing and retrieving cached data), tags: [state, cache, redis] is appropriate. If it is more of a foundational service that provides caching as infrastructure, tags: [infrastructure, cache, redis] fits. Both are valid interpretations.'
27
+ - id: q2
28
+ question: You have a 500-line module that handles payment processing AND sends email receipts. What should you do?
29
+ choices:
30
+ A: Keep it as one component — splitting would be premature optimization
31
+ B: 'Split into #payment-processor and #receipt-emailer — they have distinct responsibilities'
32
+ C: Create a $payment-receipt-flow instead of splitting
33
+ D: Add more tags to cover both responsibilities in one component
34
+ E: Move the email logic into the logger
35
+ correct: B
36
+ explanation: Payment processing and email sending are distinct responsibilities that could change independently (e.g., switching email providers without touching payment logic). The module is also large (500 lines). Splitting into two focused components follows the 'split when responsibilities are distinct' guideline.
37
+ - id: q3
38
+ question: Why should you check paradigm_history_fragility before modifying infrastructure components?
39
+ choices:
40
+ A: Because infrastructure components have more lines of code
41
+ B: Because many other components depend on them, making changes high-risk
42
+ C: Because infrastructure components are never tested
43
+ D: Because the fragility check automatically creates a backup
44
+ E: Because infrastructure tags prevent direct modification
45
+ correct: B
46
+ explanation: 'Infrastructure components (logger, config-loader, database-pool) are foundational — many other components depend on them. A breaking change to #database-pool could cascade across the entire application. Fragility analysis warns you about this risk before you make changes.'
47
+ - id: q4
48
+ question: What is wrong with splitting a payment module into `#payment-step-1` and `#payment-step-2`?
49
+ choices:
50
+ A: Components cannot have numbers in their names
51
+ B: There should be three components minimum
52
+ C: The names are non-descriptive and the split is artificial — neither component has an independent responsibility
53
+ D: Steps should be defined as a flow, not as components
54
+ E: The hyphen before the number violates kebab-case
55
+ correct: C
56
+ explanation: 'If you cannot describe a component without referencing ''the other half,'' the split is artificial. #payment-step-1 and #payment-step-2 are not independent responsibilities — they are an arbitrary division of a single unit. Keep them as one component with a clear description.'
@@ -0,0 +1,56 @@
1
+ id: Q-para-201-cross-cutting-concerns
2
+ title: 'PARA 201: Architecture — Cross-Cutting Concerns'
3
+ description: 'Quiz for lesson: Cross-Cutting Concerns'
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: All API handlers must validate input against a defined schema. Should this be modeled as a gate, signal, or aspect?
19
+ choices:
20
+ A: ^ gate — it checks a condition before processing
21
+ B: '! signal — it fires when validation fails'
22
+ C: ~ aspect — it is a structural pattern applied across all handlers
23
+ D: $ flow — it is a step in the request processing flow
24
+ E: '# component — it is a validation utility'
25
+ correct: C
26
+ explanation: Input validation across all handlers is a cross-cutting concern — the same pattern (validate against a schema) applies to every handler. This is an aspect (~validated), not a gate (gates check conditions like authorization, not input format) or a signal (validation is a structural requirement, not an event).
27
+ - id: q2
28
+ question: 'An aspect `~cached` has `applies-to: ["#*-query"]`. You create `#user-query` without applying caching. What is the recommended action?'
29
+ choices:
30
+ A: Nothing — aspects are just documentation
31
+ B: Delete the ~cached aspect since it does not apply universally
32
+ C: 'Apply the caching pattern to #user-query, since it matches the applies-to pattern'
33
+ D: 'Rename #user-query to #user-fetch to avoid matching the pattern'
34
+ E: 'Add an exception for #user-query in the aspect definition'
35
+ correct: C
36
+ explanation: 'When a new component matches an aspect''s applies-to pattern, the aspect should be applied. If ~cached applies to all #*-query components, then #user-query should use the caching pattern. If there is a genuine reason to exempt it, document that exception rather than working around the naming.'
37
+ - id: q3
38
+ question: Why is a rate limiter classified as an aspect (~rate-limited) rather than a gate (^rate-limited)?
39
+ choices:
40
+ A: Because rate limiters are implemented in middleware
41
+ B: Because rate limiters do not return 403 status codes
42
+ C: Because rate limiting is a structural pattern applied across many endpoints, not a per-resource authorization check
43
+ D: Because rate limiters do not require authentication
44
+ E: Because the ~ prefix is alphabetically closer to 'rate'
45
+ correct: C
46
+ explanation: Gates check specific conditions per request — 'is this user allowed to access this resource?' or 'is this feature enabled?' Rate limiting is a different concern — it applies the same pattern (request counting and throttling) across many endpoints as a structural rule. This cross-cutting nature makes it an aspect.
47
+ - id: q4
48
+ question: After a large refactor that moved files, what is the correct procedure for maintaining aspects?
49
+ choices:
50
+ A: Delete all aspects and recreate them from scratch
51
+ B: Run paradigm_aspect_check to find broken anchors, then update the anchor paths in .purpose files
52
+ C: Aspects automatically update their anchors when files move
53
+ D: Ignore broken anchors — they will fix themselves on the next paradigm scan
54
+ E: Convert all aspects to gates since gates do not have anchors
55
+ correct: B
56
+ explanation: After refactoring, run paradigm_aspect_check to identify which anchors now point to moved or renamed files. Then update the anchors in the .purpose files to reflect the new file paths and line numbers. This maintenance is the trade-off for having verifiable enforcement code.
@@ -0,0 +1,66 @@
1
+ id: Q-para-201-disciplines
2
+ title: 'PARA 201: Architecture — Disciplines'
3
+ description: 'Quiz for lesson: Disciplines'
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: In a web discipline project, what symbol type should a frontend hook like `useAuth` be classified as?
19
+ choices:
20
+ A: '! signal — hooks fire events'
21
+ B: ^ gate — hooks check conditions
22
+ C: '# component — hooks are code units that encapsulate logic'
23
+ D: $ flow — hooks define sequences
24
+ E: ~ aspect — hooks are cross-cutting concerns
25
+ correct: C
26
+ explanation: 'Hooks are code units, not events. A frontend hook like useAuth encapsulates authentication logic — it is #useAuth, a component. The ! signal prefix is reserved for events that trigger decoupled side effects, which is not what hooks do.'
27
+ - id: q2
28
+ question: A project has `src/client/` for frontend and `src/server/` for backend code. Which discipline should be used?
29
+ choices:
30
+ A: web — because the client directory is listed first
31
+ B: backend — because server code is more important
32
+ C: fullstack — it combines both web and backend mappings based on directory path
33
+ D: library — because the code is shared between client and server
34
+ E: cli — because the server might have CLI commands
35
+ correct: C
36
+ explanation: 'The fullstack discipline combines web and backend mappings. It uses the directory path to determine which mapping applies: src/client/ uses web discipline rules, src/server/ uses backend rules.'
37
+ - id: q3
38
+ question: What three things does the discipline setting affect in Paradigm tooling?
39
+ choices:
40
+ A: Build output, test runner, deployment target
41
+ B: Navigator generation, logging conventions, gate recommendations
42
+ C: File naming, import paths, type definitions
43
+ D: Package manager, bundler, linter configuration
44
+ E: Database schema, API schema, UI schema
45
+ correct: B
46
+ explanation: 'The discipline affects: (1) navigator generation — how paradigm scan categorizes directories, (2) logging conventions — which log methods are conventional for each directory, and (3) gate recommendations — what paradigm_gates_for_route suggests.'
47
+ - id: q4
48
+ question: Your backend project has a `policies/` directory for authorization policies. You want Paradigm to treat them as gates. How do you configure this?
49
+ choices:
50
+ A: Rename the directory to middleware/
51
+ B: Change the discipline to 'web' since it handles auth differently
52
+ C: 'Add a custom-mappings entry in config.yaml: "policies/": "^"'
53
+ D: Create a .purpose file with only gate definitions
54
+ E: It is not possible — gates can only live in middleware/
55
+ correct: C
56
+ explanation: 'Custom mappings in config.yaml extend the discipline defaults. Adding "policies/": "^" tells Paradigm to treat files in the policies/ directory as gates, without changing the overall discipline or renaming directories.'
57
+ - id: q5
58
+ question: 'A Next.js project runs `paradigm init`. The output shows `discipline: fullstack` and `stack: nextjs`. What does the stack preset add that the discipline alone does not provide?'
59
+ choices:
60
+ A: A completely different set of symbol mappings that replaces the discipline
61
+ B: Framework-specific scan hints, refined symbol mappings for Next.js patterns like app/ routes, and purpose-required paths
62
+ C: Automatic code generation for Next.js boilerplate
63
+ D: A Next.js-specific version of portal.yaml with pre-defined gates
64
+ E: Nothing — stack presets and disciplines are the same thing
65
+ correct: B
66
+ explanation: Stack presets layer framework-specific configuration on top of disciplines. For Next.js, the preset adds knowledge about app/ directory routing, server components, API route handlers, and other Next.js-specific patterns. It refines the generic fullstack discipline with framework-aware scan hints and purpose-required paths. Presets extend disciplines — they do not replace them.