@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,149 @@
1
+ ---
2
+ id: N-para-201-symbol-naming
3
+ title: Symbol Naming Conventions
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-201
11
+ - all-symbol-ids
12
+ - components-noun-role-payment-service
13
+ - gates-resource-role-or
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 3
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-201.json
21
+ ---
22
+
23
+ ## Consistency Is the Goal
24
+
25
+ Naming conventions exist so that anyone — human or AI — can predict what a symbol is called without looking it up. If your payment service is sometimes `#PaymentService`, sometimes `#payment-service`, and sometimes `#paymentSvc`, agents waste tokens searching and developers waste time guessing. Paradigm defines clear naming rules for each symbol type.
26
+
27
+ ## The Base Rule: kebab-case for IDs
28
+
29
+ All symbol IDs in `.purpose` files use **kebab-case**:
30
+
31
+ ```yaml
32
+ # Correct
33
+ #payment-service:
34
+ #user-profile:
35
+ #cart-item-list:
36
+
37
+ # Incorrect
38
+ #PaymentService: # PascalCase is for display, not IDs
39
+ #payment_service: # No underscores
40
+ #paymentService: # No camelCase
41
+ ```
42
+
43
+ This applies to all five symbol types: `#component-name`, `$flow-name`, `^gate-name`, `!signal-name`, `~aspect-name`.
44
+
45
+ ## Component Naming (`#`)
46
+
47
+ Components follow the base kebab-case rule, with one exception: **class-like components** can use PascalCase in display names and code references while keeping kebab-case in the `.purpose` ID:
48
+
49
+ ```yaml
50
+ components:
51
+ #payment-service: # kebab-case ID
52
+ description: PaymentService class # PascalCase in description is fine
53
+ file: PaymentService.ts # PascalCase file names are fine
54
+ ```
55
+
56
+ Naming patterns for components:
57
+ - **Services**: `#noun-service` — `#payment-service`, `#email-service`, `#auth-service`
58
+ - **Handlers**: `#noun-handler` — `#login-handler`, `#webhook-handler`
59
+ - **Stores/State**: `#noun-store` — `#user-store`, `#cart-store`
60
+ - **Utilities**: `#noun-utils` or `#verb-helper` — `#date-utils`, `#format-helper`
61
+
62
+ ## Flow Naming (`$`)
63
+
64
+ Flows describe processes, so they use **noun-flow** or **verb-noun-flow** patterns:
65
+
66
+ ```yaml
67
+ # Good
68
+ $checkout-flow
69
+ $user-onboarding
70
+ $password-reset-flow
71
+ $daily-report-generation
72
+
73
+ # Bad
74
+ $doCheckout # Avoid imperative verb-only names
75
+ $flow1 # Non-descriptive
76
+ $theProcessOfCheckingOut # Too verbose
77
+ ```
78
+
79
+ The `-flow` suffix is optional but recommended for clarity. `$checkout-flow` is more immediately recognizable as a flow than `$checkout` (which could be confused with a component).
80
+
81
+ ## Gate Naming (`^`)
82
+
83
+ Gates use a **resource-role** or **condition** pattern:
84
+
85
+ ```yaml
86
+ # Resource-role pattern
87
+ ^authenticated # Base auth
88
+ ^project-admin # Admin of a project
89
+ ^project-member # Member of a project
90
+ ^comment-author # Author of a comment
91
+ ^team-owner # Owner of a team
92
+
93
+ # Condition pattern
94
+ ^email-verified # Email has been verified
95
+ ^payment-method-exists # User has a payment method
96
+ ^subscription-active # Subscription is not expired
97
+ ```
98
+
99
+ Avoid vague names like `^check1` or `^gate-a`. The name should describe what the gate verifies.
100
+
101
+ ## Signal Naming (`!`)
102
+
103
+ Signals represent events that have already happened, so they use **past-tense** naming:
104
+
105
+ ```yaml
106
+ # Good — past tense describes what happened
107
+ !payment-completed
108
+ !user-created
109
+ !login-failed
110
+ !order-shipped
111
+ !cache-invalidated
112
+
113
+ # Bad — present tense or imperative
114
+ !process-payment # Sounds like a command, not an event
115
+ !creating-user # Progressive tense is ambiguous
116
+ !login # Too vague — login succeeded or failed?
117
+ ```
118
+
119
+ Past tense makes the intent clear: the signal fires *after* something happened. `!payment-completed` means the payment is done; listeners can react to the completed event.
120
+
121
+ ## Aspect Naming (`~`)
122
+
123
+ Aspects describe rules or qualities, using **adjective** or **past-participle** patterns:
124
+
125
+ ```yaml
126
+ # Good
127
+ ~audit-required
128
+ ~rate-limited
129
+ ~cached
130
+ ~encrypted-at-rest
131
+ ~idempotent
132
+
133
+ # Bad
134
+ ~doAudit # Imperative — sounds like an action
135
+ ~auditStuff # Vague and informal
136
+ ~Aspect1 # Non-descriptive
137
+ ```
138
+
139
+ Aspect names should read naturally in a sentence: "This service is ~rate-limited" or "This endpoint is ~audit-required."
140
+
141
+ ## Summary Table
142
+
143
+ | Symbol | Pattern | Examples |
144
+ |--------|---------|----------|
145
+ | `#` | `noun-role` | `#payment-service`, `#login-handler` |
146
+ | `$` | `noun-flow` | `$checkout-flow`, `$onboarding` |
147
+ | `^` | `resource-role` or `condition` | `^project-admin`, `^email-verified` |
148
+ | `!` | `past-tense-event` | `!payment-completed`, `!login-failed` |
149
+ | `~` | `adjective` / `past-participle` | `~rate-limited`, `~audit-required` |
@@ -0,0 +1,53 @@
1
+ ---
2
+ id: N-para-301-context-management
3
+ title: Context Management
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-301
11
+ - paradigmsessionhealth-for-monitoring
12
+ - paradigmhandoffprepare-for-session
13
+ - paradigmsessionrecover-for-continuity
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 2
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-301.json
21
+ ---
22
+
23
+ ## Context Management
24
+
25
+ AI agents operate within a finite context window. Every file read, every tool call response, and every message in the conversation consumes tokens from that budget. When the context fills up, the agent loses the ability to recall earlier information, make coherent plans, or maintain awareness of all the changes it has made. Paradigm provides tools to monitor, manage, and gracefully handle context limits.
26
+
27
+ **`paradigm_session_health`** monitors current context usage. Call it periodically during long sessions (every 10-15 tool calls is a good cadence) to get a recommendation. The response tells you whether to "continue" (plenty of room), "be-cautious" (usage is climbing), or "handoff-soon" (>85% consumed). You can optionally pass your estimated total tokens and context window size for more accurate assessment.
28
+
29
+ ```
30
+ paradigm_session_health({
31
+ contextWindowSize: 200000,
32
+ estimatedTotalTokens: 150000
33
+ })
34
+ // Recommendation: "handoff-soon" -- context at ~75%, prepare handoff
35
+ ```
36
+
37
+ When a handoff is needed, **`paradigm_handoff_prepare`** creates a structured summary of the current session. It captures what was done, which symbols were touched, which files were modified, what still needs to happen, and any open questions. This summary becomes the starting point for the next session.
38
+
39
+ ```
40
+ paradigm_handoff_prepare({
41
+ summary: "Implemented Apple Pay in checkout flow",
42
+ symbolsTouched: ["#payment-service", "$checkout-flow", "#apple-pay-button"],
43
+ modifiedFiles: ["src/services/payment.ts", "src/components/checkout/ApplePayButton.tsx"],
44
+ nextSteps: ["Add unit tests for Apple Pay handler", "Update portal.yaml with new gates"],
45
+ openQuestions: ["Should we support Apple Pay in the mobile app too?"]
46
+ })
47
+ ```
48
+
49
+ On the receiving end, **`paradigm_session_recover`** loads breadcrumbs from the previous session. A new agent session calls this at startup to understand what was done before, pick up where the last session left off, and avoid redoing work.
50
+
51
+ For cost awareness, **`paradigm_session_stats`** shows the current session's MCP interactions, estimated token usage, and cost breakdown. This is useful for understanding which operations are expensive and optimizing your workflow.
52
+
53
+ The context management workflow forms a cycle: **monitor** usage with context_check, **prepare** handoff when limits approach, **recover** in new sessions with session_recover, and **track** costs with session_stats. Mastering this cycle means you can handle tasks that are larger than any single context window by splitting them across multiple sessions without losing progress.
@@ -0,0 +1,99 @@
1
+ ---
2
+ id: N-para-301-decisions
3
+ title: The Decision Store
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-18'
7
+ updated: '2026-04-18'
8
+ tags:
9
+ - course
10
+ - para-301
11
+ - decision-store
12
+ - paradigmdecisionrecord
13
+ - companion-lore-pattern
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 4
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: authored
20
+ source: v6.0-content-fix
21
+ ---
22
+
23
+ ## Why Decisions Got Their Own Store
24
+
25
+ Through Paradigm v5.x, architectural decisions lived in two places at once: as a `decision` lore type (date-partitioned, narrative-shaped) and as a `decision` wisdom entry (symbol-keyed, ADR-shaped). Both stores carried roughly the same content, neither was canonical, and the inconsistency caused predictable problems — agents recorded the same choice in both places, search returned conflicting versions, and "what did we decide about X?" was answered by reading two stores and reconciling.
26
+
27
+ In v6.0 the decision (D3 in the locked v6 synthesis) was to give decisions a single dedicated home. Lore stays the time-partitioned narrative timeline. Wisdom stays the symbol-keyed playbook (preferences and antipatterns). Decisions move to `.paradigm/decisions/` as `TD-*` entries with the full ADR shape — and the `decision` lore type is hard-removed.
28
+
29
+ ## The New Tools
30
+
31
+ The decision store is reached through two MCP tools (CLI: `paradigm decision record` / `paradigm decision search`):
32
+
33
+ - **`paradigm_decision_record`** — Records a new decision. Required: `title`, `decision`, `rationale`, `participants`. Optional: `alternatives_considered`, `symbols_affected`, `status`, `tags`, `context`, `consequences`, `superseded_by`, `supersedes`. Returns the canonical `TD-*` id and the companion lore id.
34
+ - **`paradigm_decision_search`** — Filters the store by `status`, `participant`, `symbol`, `tag`, `dateFrom`, `dateTo`. Pass `summary: true` for an aggregate view.
35
+
36
+ A recorded decision looks like:
37
+
38
+ ```yaml
39
+ id: TD-2026-04-18-001
40
+ title: "Adopt RS256 over HS256 for JWT signing"
41
+ timestamp: "2026-04-18T15:30:00Z"
42
+ participants:
43
+ - { id: "human/matt", role: human, stance: proposed }
44
+ - { id: "a-paradigm/security", role: agent, stance: supported }
45
+ - { id: "a-paradigm/architect", role: agent, stance: supported }
46
+ - { id: "a-paradigm/builder", role: agent, stance: dissented }
47
+ decision: "Sign all JWTs with RS256 (RSA)"
48
+ rationale: "Public-key verification lets downstream services validate without sharing the signing secret. Builder dissented over rotation overhead — accepted as a known cost."
49
+ alternatives_considered:
50
+ - option: "HS256 (shared secret)"
51
+ rejected_because: "Every verifier needs the secret; rotation is invasive across services."
52
+ symbols_affected: ["#auth-middleware", "^authenticated"]
53
+ status: active
54
+ tags: [security, auth]
55
+ ```
56
+
57
+ ## The Companion-Lore Pattern
58
+
59
+ Every successful `paradigm_decision_record` call writes two artifacts:
60
+
61
+ 1. The canonical decision in `.paradigm/decisions/TD-*.yaml`.
62
+ 2. A companion lore entry of `type: 'insight'` in `.paradigm/lore/entries/{date}/L-*.yaml`, with `references.decision_id` pointing back at the TD- id, and the `companion-lore` + `decision-reference` tags applied.
63
+
64
+ This split solves the problem the v5.x dual-store approach created. The decision is *topic-addressable* — search by symbol, status, or participant and you get one canonical answer. The companion lore is *time-addressable* — scrolling the project timeline forward, the moment the decision was made still surfaces with a one-line summary and a back-reference to the full record.
65
+
66
+ The companion write is best-effort. If it fails (filesystem error, permission issue), the decision still records — the timeline coverage is a nice-to-have, not a correctness requirement. The decision record is the source of truth.
67
+
68
+ ## How It Differs from `paradigm_wisdom_record({type:'decision'})`
69
+
70
+ The v5.x path is soft-deprecated and increasingly hard-removed:
71
+
72
+ | Concern | `wisdom_record({type:'decision'})` (v5) | `paradigm_decision_record` (v6) |
73
+ |---|---|---|
74
+ | Storage | `.paradigm/wisdom/decisions.yaml` (single file) | `.paradigm/decisions/TD-*.yaml` (one file per decision) |
75
+ | ID shape | `dec-001`, freeform | `TD-{date}-{seq}`, structured |
76
+ | Participants | Optional, freeform string | Structured array with stance enum |
77
+ | Alternatives | Optional, prose | Structured array with `rejected_because` |
78
+ | Status lifecycle | None | `active` / `proposed` / `superseded` / `deprecated` / `rejected` |
79
+ | Bidirectional supersede | One-way (`superseded_by`) | Two-way (`superseded_by` + `supersedes`) |
80
+ | Companion timeline coverage | Manual | Automatic |
81
+ | v6.0 acceptance | `paradigm_wisdom_record` rejects `type:'decision'` | First-class |
82
+
83
+ If you call `paradigm_wisdom_record({type:'decision'})` against a v6 install, you get a structured rejection envelope (`code: 'wisdom_decision_removed'`) pointing you at `paradigm_decision_record`. Same shape as the lore-record rejection envelope, so a calling agent can auto-retry without human intervention.
84
+
85
+ ## Migrating v1/v2 Lore Decisions
86
+
87
+ Projects that recorded `type: decision` lore entries through v5 are not stranded. On read, the storage layer remaps `type: decision` to `type: insight` and applies the `v6-migrated:from-decision` tag for forensic recovery. Search for the old type still works via the tag (`paradigm_lore_search({ tag: 'v6-migrated:from-decision' })`).
88
+
89
+ If you want the old entries promoted to canonical decisions in the new store, do it deliberately — read each migrated entry, decide whether it still represents an active decision, and call `paradigm_decision_record` with the structured shape. There is no automatic backfill because the v1/v2 entries lack the structured participant/alternative data the new shape requires.
90
+
91
+ ## When to Use Which Tool
92
+
93
+ - **Standalone architectural decision** (no implementation code): `paradigm_decision_record`. The companion lore covers the timeline.
94
+ - **Decision made *during* a work session** (alongside implementation): record an `agent-session` lore entry and put the decision in the entry's `decisions` field. If the choice deserves canonical status (search by symbol, supersede tracking, status lifecycle), *also* call `paradigm_decision_record` — the two are not mutually exclusive.
95
+ - **Team convention or coding standard**: `paradigm_wisdom_record({type:'preference', ...})`.
96
+ - **"Don't do X, do Y instead"**: `paradigm_wisdom_record({type:'antipattern', ...})`.
97
+ - **Tracking what changed and when**: `paradigm_history_record` (implementation events).
98
+
99
+ > **Going deeper:** PARA 501 covers the lore system in detail (including the v6 entry types and the decisions-have-their-own-store callout). PARA 601 covers the three knowledge streams (work-log, journal, decisions) and how the companion-lore pattern fits into the broader stream architecture.
@@ -0,0 +1,70 @@
1
+ ---
2
+ id: N-para-301-doctor-and-validation
3
+ title: Doctor & Validation
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-301
11
+ - paradigm-doctor-cli
12
+ - paradigmpurposevalidate-mcp-tool
13
+ - paradigmflowcheck
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 3
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-301.json
21
+ ---
22
+
23
+ ## Doctor & Validation
24
+
25
+ As a Paradigm project evolves, its metadata can drift out of sync with the actual code. A component gets renamed but its `.purpose` file still references the old name. A gate is added to `portal.yaml` but never implemented. An aspect loses its code anchor when someone refactors the file it pointed to. Paradigm's validation tools catch these inconsistencies before they cause confusion.
26
+
27
+ The `paradigm doctor` CLI command runs a comprehensive health check across your entire project. It validates several categories of issues:
28
+
29
+ - **Purpose file integrity**: Are all `.purpose` files valid YAML? Do all symbol references use correct prefixes?
30
+ - **Portal.yaml consistency**: Do routes reference gates that are actually defined? Are there gates defined but never used?
31
+ - **Aspect anchor verification**: Do all `~aspect` symbols have anchors? Do those anchors point to files and lines that still exist?
32
+ - **Orphaned symbol detection**: Are there symbols defined in `.purpose` files that are never referenced anywhere else?
33
+ - **Cross-reference validation**: When `#checkout-form` says it uses `$checkout-flow`, does that flow actually exist?
34
+
35
+ ```bash
36
+ $ paradigm doctor
37
+
38
+ Checking .purpose files...
39
+ src/features/checkout/.purpose - OK
40
+ src/features/auth/.purpose - WARNING: #legacy-login referenced but not defined
41
+ src/services/.purpose - OK
42
+
43
+ Checking portal.yaml...
44
+ ^authenticated - OK (used in 12 routes)
45
+ ^project-admin - WARNING: defined but used in 0 routes
46
+
47
+ Checking aspects...
48
+ ~audit-required - ERROR: anchor src/middleware/audit.ts:15-35 not found
49
+ ~rate-limited - OK
50
+
51
+ Results: 2 warnings, 1 error
52
+ ```
53
+
54
+ For more targeted validation, the MCP tool `paradigm_purpose_validate` lets you check a specific `.purpose` file or validate all files. You can also include portal.yaml validation with the `includePortal` parameter. This is useful after making changes to a specific area -- run validation on just the files you touched rather than the entire project.
55
+
56
+ The `paradigm_flow_check` tool specifically validates flow definitions. It checks that gates referenced in flow steps exist in `portal.yaml`, that actions described in steps have corresponding implementations in the codebase (when `checkImplementation` is true), and that signals emitted during the flow are properly defined.
57
+
58
+ A good rhythm is to run `paradigm doctor` after major changes (adding features, refactoring, renaming symbols) and before committing. Many teams integrate it into their pre-commit hooks or CI pipelines. Think of it as a linter for your Paradigm metadata -- catching problems early is always cheaper than debugging them later.
59
+
60
+ ### Clarification Markers
61
+
62
+ When a requirement is ambiguous or incomplete in a `.purpose` file, use the `[NEEDS CLARIFICATION: ...]` marker format instead of guessing. For example:
63
+
64
+ ```yaml
65
+ components:
66
+ payment-processor:
67
+ description: "Processes payments via Stripe [NEEDS CLARIFICATION: should this support PayPal fallback?]"
68
+ ```
69
+
70
+ Clarification markers are reported as **warnings** (not errors) by both `paradigm doctor` and `paradigm_purpose_validate`. They do not block validation or break builds, but they surface during health checks to remind the team that a design question remains open. The exact format `[NEEDS CLARIFICATION: <question>]` is required -- the tooling scans for this specific prefix in all description fields across `.purpose` files. Resolve all markers before shipping by replacing them with the clarified text.
@@ -0,0 +1,102 @@
1
+ ---
2
+ id: N-para-301-enforcement-levels
3
+ title: Enforcement Levels
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-301
11
+ - three-enforcement-levels
12
+ - minimal-is-the
13
+ - 13-checks-control
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 3
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-301.json
21
+ ---
22
+
23
+ ## The Three Enforcement Levels
24
+
25
+ Paradigm enforcement is configurable. Not every project needs the same rigor — a weekend prototype has different needs than a healthcare platform. Enforcement levels control which compliance checks **block** (stop you), **warn** (notify but continue), or are **off** (silent).
26
+
27
+ ### Minimal — For Learning and Prototyping
28
+
29
+ Minimal enforcement is the default for new projects created by `paradigm shift`. Only two checks are active, both as warnings:
30
+
31
+ - `purpose-coverage` — warns if source directories lack `.purpose` files
32
+ - `habits-blocking` — warns if defined habits are being violated
33
+
34
+ Everything else is off. This means hooks never block you, so you can learn Paradigm without friction. You can always run checks manually with `paradigm doctor`.
35
+
36
+ ### Balanced — For Active Development
37
+
38
+ When your team is comfortable with Paradigm, upgrade to balanced. This is where most teams operate:
39
+
40
+ - **Blocks on:** `purpose-coverage` (must have purpose files), `habits-blocking` (must follow habits)
41
+ - **Warns on:** `purpose-exists`, `portal-gates`, `aspect-anchors`, `purpose-freshness`, `lore-required`, `purpose-required-patterns`, `drift-detection`, `portal-compliance`, `orchestration-required`
42
+ - **Off:** `aspect-advisory`, `graduation-tracking`
43
+
44
+ Balanced catches problems early without being oppressive. The stop hook blocks on missing purpose files but lets you work freely otherwise.
45
+
46
+ ### Strict — For Regulated Domains
47
+
48
+ Healthcare, finance, legal — domains where compliance is not optional. Strict blocks on nearly everything:
49
+
50
+ - **Blocks on:** `purpose-coverage`, `purpose-exists`, `portal-gates`, `aspect-anchors`, `lore-required`, `habits-blocking`, `purpose-required-patterns`, `drift-detection`, `portal-compliance`, `orchestration-required`
51
+ - **Warns on:** `purpose-freshness`, `aspect-advisory`, `graduation-tracking`
52
+
53
+ With strict enforcement, you cannot commit without purpose files, portal gates, lore records, and passing drift checks. This ensures every change is documented and traceable.
54
+
55
+ ## Configuration
56
+
57
+ Set the level in `.paradigm/config.yaml`:
58
+
59
+ ```yaml
60
+ enforcement:
61
+ level: balanced # minimal | balanced | strict
62
+ ```
63
+
64
+ Override individual checks when a preset does not quite fit:
65
+
66
+ ```yaml
67
+ enforcement:
68
+ level: balanced
69
+ checks:
70
+ orchestration-required: block # Upgrade from warn to block
71
+ lore-required: off # Downgrade — we don't need lore yet
72
+ ```
73
+
74
+ Per-check overrides take precedence over the preset. This lets you start with a base level and tune specific checks to match your team's workflow.
75
+
76
+ ## The 13 Checks
77
+
78
+ | Check | What It Validates |
79
+ |-------|------------------|
80
+ | `purpose-coverage` | Source directories have .purpose files |
81
+ | `purpose-exists` | Referenced purpose files actually exist on disk |
82
+ | `portal-gates` | Routes in portal.yaml have required gates defined |
83
+ | `aspect-anchors` | Aspect anchors point to valid code locations |
84
+ | `purpose-freshness` | Purpose files are not stale (content matches code) |
85
+ | `aspect-advisory` | Components have at least one aspect (1:1 ratio) |
86
+ | `lore-required` | Sessions modifying 3+ files record lore |
87
+ | `habits-blocking` | Defined habits are being followed |
88
+ | `purpose-required-patterns` | Required patterns (flows, gates) are present |
89
+ | `drift-detection` | Aspect anchor code has not drifted |
90
+ | `portal-compliance` | Portal.yaml matches actual route definitions |
91
+ | `graduation-tracking` | Habits are graduating through automation tiers |
92
+ | `orchestration-required` | Complex tasks use multi-agent orchestration |
93
+
94
+ ## Progression Strategy
95
+
96
+ Most teams follow this path:
97
+
98
+ 1. **Start minimal** — learn Paradigm, build habits, no blocking
99
+ 2. **Move to balanced** after 1-2 weeks — catch issues early, still flexible
100
+ 3. **Upgrade to strict** for production-critical or regulated codebases
101
+
102
+ You can change levels at any time. The switch is immediate — no migration needed.
@@ -0,0 +1,50 @@
1
+ ---
2
+ id: N-para-301-fragility-tracking
3
+ title: Fragility & Stability
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-301
11
+ - paradigmhistoryfragility
12
+ - stability-scores
13
+ - fragile-symbol-indicators
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 2
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-301.json
21
+ ---
22
+
23
+ ## Fragility & Stability
24
+
25
+ Not all parts of a codebase are equally stable. Some symbols have been rock-solid for months, while others seem to break every time someone touches them. Paradigm's fragility tracking system quantifies this by analyzing the history log to produce **stability scores** for each symbol.
26
+
27
+ The tool `paradigm_history_fragility` accepts an array of symbols and returns a stability assessment for each one. The score considers several factors: how frequently the symbol has been changed, how many rollbacks it has experienced, the ratio of fixes to features, and the recency of changes. A symbol that was implemented once six months ago and never touched again has high stability. A symbol that has been refactored three times in two weeks with one rollback is flagged as fragile.
28
+
29
+ ```
30
+ paradigm_history_fragility({
31
+ symbols: ["#checkout-form", "#payment-service", "$onboarding"]
32
+ })
33
+
34
+ // Returns stability scores and warnings:
35
+ // #checkout-form: stable (score: 0.92)
36
+ // #payment-service: fragile (score: 0.34) -- 3 rollbacks in 30 days
37
+ // $onboarding: moderate (score: 0.61) -- frequent refactors
38
+ ```
39
+
40
+ Fragility information changes how you approach a task. When you are about to modify a fragile symbol, you should:
41
+
42
+ 1. **Read the full history** with `paradigm_history_context` to understand *why* it has been unstable
43
+ 2. **Check team wisdom** with `paradigm_wisdom_context` to see if there are known antipatterns or decisions about that area
44
+ 3. **Write more comprehensive tests** before making changes
45
+ 4. **Make smaller, incremental changes** rather than large refactors
46
+ 5. **Validate thoroughly** with `paradigm_history_validate` after implementation
47
+
48
+ Refactor-heavy areas deserve special attention. If a symbol has a high count of `refactor` type events, it may indicate unclear requirements, poor initial design, or a component that is trying to do too much. The fragility system surfaces these patterns so you can address the root cause rather than adding another band-aid refactor.
49
+
50
+ Stability scores are also useful for planning. When estimating effort for a feature that touches multiple symbols, fragile symbols should be weighted higher in your estimate. They are more likely to require debugging, testing, and potentially rolling back. The fragility check is a form of risk assessment that should happen before every non-trivial change.
@@ -0,0 +1,42 @@
1
+ ---
2
+ id: N-para-301-history-system
3
+ title: The History System
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-301
11
+ - append-only-implementation-log
12
+ - paradigmhistoryrecord
13
+ - paradigmhistorycontext
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 2
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-301.json
21
+ ---
22
+
23
+ ## The History System
24
+
25
+ Paradigm maintains an append-only log of every implementation change in your project. This is not a replacement for git history -- it is a higher-level, symbol-aware record that tracks *what changed at the Paradigm level*, not just which lines of code were modified. Every time you implement a feature, fix a bug, or refactor a component, Paradigm can record that event against the symbols it affected.
26
+
27
+ The primary tool for recording history is `paradigm_history_record`. When you call it, you specify three required fields: the **type** of change (`implement`, `refactor`, or `rollback`), the **symbols** affected (e.g., `["#payment-service", "$checkout-flow"]`), and a **description** of what was done. You can also specify an **intent** to further classify the change: `feature` for new capabilities, `fix` for bug repairs, `refactor` for structural improvements, `experimental` for exploratory changes, and `confirmed` for validated implementations.
28
+
29
+ ```
30
+ paradigm_history_record({
31
+ type: "implement",
32
+ symbols: ["#payment-service", "!payment-completed"],
33
+ description: "Add Stripe webhook handler for payment confirmation",
34
+ intent: "feature",
35
+ commit: "a1b2c3d",
36
+ files: ["src/services/payment.ts", "src/handlers/webhook.ts"]
37
+ })
38
+ ```
39
+
40
+ To retrieve history for symbols before making changes, use `paradigm_history_context`. Pass in an array of symbols and you get back the recent implementation events, who worked on them, and how stable they have been. This is critical context -- before modifying `#payment-service`, you want to know if it was just refactored last week, if it has been the target of multiple rollbacks, or if it has been stable for months.
41
+
42
+ The history log is append-only by design. Nothing is ever deleted or overwritten. This means you always have a complete timeline of how a symbol evolved. Rollback events do not erase the original implementation -- they add a new entry that says "this was rolled back and why." This immutability is what makes the history system trustworthy for fragility analysis and team wisdom.
@@ -0,0 +1,55 @@
1
+ ---
2
+ id: N-para-301-navigation-system
3
+ title: Codebase Navigation
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-04-22'
7
+ updated: '2026-04-22'
8
+ tags:
9
+ - course
10
+ - para-301
11
+ - paradigmnavigate-with-three
12
+ - navigatoryaml-structure-map
13
+ - paradigmsearch-with-fuzzy
14
+ symbols: []
15
+ difficulty: beginner
16
+ estimatedMinutes: 2
17
+ prerequisites: []
18
+ category: paradigm-core
19
+ origin: imported
20
+ source: courses/para-301.json
21
+ ---
22
+
23
+ ## Codebase Navigation
24
+
25
+ Large codebases are expensive to explore token-by-token. Reading files costs roughly 500-2000 tokens each, and broad exploration can quickly eat through an AI agent's context window. Paradigm's navigation system solves this by providing efficient, symbol-aware lookup that costs only 100-200 tokens per query.
26
+
27
+ The primary tool is `paradigm_navigate`, which supports three intents:
28
+
29
+ **"find"** performs a direct symbol lookup. Give it a symbol like `#checkout-form` or a file path, and it returns the exact location in the codebase. This is the fastest way to go from a symbol name to its source file.
30
+
31
+ ```
32
+ paradigm_navigate({ intent: "find", target: "#payment-service" })
33
+ // Returns: src/services/payment.ts (defined in src/services/.purpose)
34
+ ```
35
+
36
+ **"explore"** lets you browse a functional area of the codebase. Instead of looking for a specific symbol, you describe an area like "authentication" or "payments" and get back all the symbols, files, and structure in that domain.
37
+
38
+ ```
39
+ paradigm_navigate({ intent: "explore", target: "authentication" })
40
+ // Returns: gates, components, flows related to auth
41
+ ```
42
+
43
+ **"context"** is task-based discovery. Describe what you want to accomplish, and the navigator returns the relevant files, symbols, and patterns you will need. This is the most powerful intent -- it answers "what do I need to know to complete this task?"
44
+
45
+ ```
46
+ paradigm_navigate({ intent: "context", task: "add Apple Pay to checkout" })
47
+ // Returns: #payment-service, $checkout-flow, #checkout-form,
48
+ // existing payment method patterns, relevant gates
49
+ ```
50
+
51
+ Behind the scenes, navigation is powered by `navigator.yaml`, a generated structure map of your entire project. This file is created and updated by `paradigm scan` and contains the directory tree, symbol locations, and file classifications. You do not edit `navigator.yaml` directly -- it is regenerated from `.purpose` files.
52
+
53
+ For fuzzy text search across symbol names, descriptions, and tags, use `paradigm_search`. This supports typo-tolerant matching, so searching for "paymnt" will still find `#payment-service`. You can filter by symbol type (component, flow, gate, signal, aspect) and control result limits.
54
+
55
+ The general rule is: **MCP queries for discovery, file reads for implementation.** Use navigate and search to find what you need (~100-200 tokens), then read only the specific files required (~500-2000 tokens). Never broadly explore a codebase by reading directories when navigation tools are available.