@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.
- package/dist/{accept-orchestration-OATWIRHP.js → accept-orchestration-QQISPINV.js} +1 -1
- package/dist/add-UOR4INIV.js +8 -0
- package/dist/{agent-loader-RIVI6QPP.js → agent-loader-2WJHD46U.js} +1 -1
- package/dist/{agent-loader-RJRVO5GQ.js → agent-loader-YKS2PQWO.js} +1 -1
- package/dist/{ambient-76YMUA5Q.js → ambient-BE3SQXNN.js} +1 -1
- package/dist/{ambient-WTLYUAQM.js → ambient-NVKQCW2A.js} +12 -12
- package/dist/{assess-UFPYEJKP.js → assess-63WXHWJV.js} +1 -1
- package/dist/{calibration-OLJYB5HN.js → calibration-BDHGYJOK.js} +1 -1
- package/dist/{chunk-5QOCKWK5.js → chunk-4PSD5R7N.js} +2 -2
- package/dist/{chunk-HOBHJPTL.js → chunk-6SKSV5B2.js} +1 -1
- package/dist/{chunk-4L7665QV.js → chunk-FEYOQMZ5.js} +1 -1
- package/dist/{chunk-NEJ4ZLCY.js → chunk-GAFKOFAV.js} +1 -1
- package/dist/chunk-GRZQIKST.js +2 -0
- package/dist/{chunk-RLCH7DXQ.js → chunk-K7X3Z3GL.js} +1 -1
- package/dist/{chunk-4VKSEOXZ.js → chunk-LPBCQM5Y.js} +3 -3
- package/dist/{chunk-74SGKSRQ.js → chunk-M2HKWR25.js} +1 -1
- package/dist/{chunk-BOYQAMGC.js → chunk-M3PPXJU4.js} +1 -1
- package/dist/chunk-PHEX6LU4.js +111 -0
- package/dist/chunk-Q527BPUF.js +2 -0
- package/dist/chunk-R5ECMBIV.js +11 -0
- package/dist/{chunk-X3U3IGYT.js → chunk-TBWWFRL5.js} +1 -1
- package/dist/{chunk-MQIG6SMF.js → chunk-TNVWGPCE.js} +1 -1
- package/dist/chunk-TZDYIPVU.js +521 -0
- package/dist/{chunk-3XGNXXCT.js → chunk-UZ5H7K6Q.js} +1 -1
- package/dist/chunk-VIG5LSGZ.js +2 -0
- package/dist/chunk-VNIX5KBT.js +3 -0
- package/dist/{chunk-AGFPVSX5.js → chunk-VXIIVMTM.js} +1 -1
- package/dist/{chunk-ORDKEGII.js → chunk-WESTEMIM.js} +1 -1
- package/dist/{chunk-DOCDDDTD.js → chunk-YNDPSWOE.js} +5 -5
- package/dist/chunk-Z5QW6USC.js +2 -0
- package/dist/{compliance-D7GD6ZYC.js → compliance-BNFWQPKM.js} +1 -1
- package/dist/config-schema-FLHRVZMI.js +2 -0
- package/dist/{context-audit-XRPT3OU2.js → context-audit-JVCA6GSV.js} +1 -1
- package/dist/{cursorrules-U5O4G5T4.js → cursorrules-ZXPXPZ3P.js} +1 -1
- package/dist/decision-loader-HELL2AMX.js +2 -0
- package/dist/{delete-P5VULXR4.js → delete-2C6ALLYY.js} +1 -1
- package/dist/{diff-YGHBIJY5.js → diff-MF55KQZH.js} +1 -1
- package/dist/{dist-KGRCLBJP-2QAPFYNF.js → dist-GQ42YS5N-4HIJZVBB.js} +10 -10
- package/dist/{docs-USDAF26F.js → docs-O37YLLRN.js} +1 -1
- package/dist/doctor-IG5XM4C4.js +2 -0
- package/dist/{edit-GUU3HBVW.js → edit-P3MDAZLU.js} +1 -1
- package/dist/{flow-FVZR3YJ4.js → flow-BGXOVE2V.js} +1 -1
- package/dist/index.js +6 -6
- package/dist/init-M44SO65G.js +2 -0
- package/dist/{init-XYB62Q3X.js → init-V4KSEKPK.js} +1 -1
- package/dist/{list-YKIQNKGB.js → list-2XIWUEMA.js} +1 -1
- package/dist/list-CFHINXIS.js +12 -0
- package/dist/lore-loader-D2ISOASW.js +2 -0
- package/dist/lore-loader-PXFKMKAN.js +2 -0
- package/dist/mcp.js +4 -4
- package/dist/metrics-UESGUHTA.js +2 -0
- package/dist/migrate-assessments-YSITX7KM.js +4 -0
- package/dist/migrate-decisions-NPLQOEEH.js +6 -0
- package/dist/migrate-plsat-EM2ACIQ3.js +6 -0
- package/dist/{nomination-engine-EALA5MGI.js → nomination-engine-QPZJH6XO.js} +1 -1
- package/dist/{notebook-loader-PXNRBBXD.js → notebook-loader-3J2OFMS3.js} +1 -1
- package/dist/{orchestrate-M5PBZBJQ.js → orchestrate-RID7HHHH.js} +1 -1
- package/dist/{platform-server-DNAMH4YI.js → platform-server-UD45NTGV.js} +1 -1
- package/dist/{portal-check-ZMLVBIGW.js → portal-check-DV2VSJ5E.js} +1 -1
- package/dist/portal-compliance-JONQ4SOP.js +2 -0
- package/dist/{probe-3FTG6LYO.js → probe-5HAXULAD.js} +1 -1
- package/dist/{providers-AWA7WLLM.js → providers-4PXMWA7V.js} +1 -1
- package/dist/quiz-WYIZJG5K.js +10 -0
- package/dist/{record-YXPB34MY.js → record-N3VNYYKJ.js} +1 -1
- package/dist/reindex-FWPD2VGM.js +2 -0
- package/dist/{retag-N5XF3KXP.js → retag-72R2OSZV.js} +1 -1
- package/dist/{review-77QI6VOC.js → review-2INNWLTW.js} +1 -1
- package/dist/{sentinel-HYAZ3CO5.js → sentinel-EFPEX246.js} +1 -1
- package/dist/{sentinel-bridge-VR357PKL.js → sentinel-bridge-UR2MKARY.js} +1 -1
- package/dist/{serve-U47GULB6.js → serve-MO35XIZE.js} +1 -1
- package/dist/serve-OQYUO7CR.js +12 -0
- package/dist/{server-4YNUIK4W.js → server-4D77LCST.js} +1 -1
- package/dist/server-FGUL2FWQ.js +7 -0
- package/dist/session-tracker-KGORN6B5.js +2 -0
- package/dist/{session-work-log-PAKXOFGL.js → session-work-log-4IEVE4KK.js} +1 -1
- package/dist/{session-work-log-ZP45TREI.js → session-work-log-EE4UIZ33.js} +1 -1
- package/dist/{setup-FEWSYS3Y.js → setup-ZSEC72BS.js} +1 -1
- package/dist/{shift-PC6C7NUX.js → shift-TVNY2CQF.js} +6 -6
- package/dist/{show-PJ5LFLIL.js → show-JH7LJ5MT.js} +1 -1
- package/dist/show-WVHAL4VU.js +7 -0
- package/dist/{spawn-M5BAV252.js → spawn-UH5RENSE.js} +1 -1
- package/dist/status-S7Z5FVIE.js +6 -0
- package/dist/{summary-PYTEIJ4U.js → summary-WLI3NF4G.js} +2 -2
- package/dist/{sweep-HU74OPVW.js → sweep-7TZFN5NS.js} +1 -1
- package/dist/sync-55U6QPIA.js +2 -0
- package/dist/{sync-llms-7CAI74QL.js → sync-llms-GF7DDQDI.js} +1 -1
- package/dist/{team-PDK64JXI.js → team-MGT66HZQ.js} +1 -1
- package/dist/{timeline-K3ZFKJ3R.js → timeline-RK7O2SCM.js} +1 -1
- package/dist/tools-QJHAVYI6.js +2 -0
- package/dist/university-content/notes/N-para-001-build-something.md +126 -0
- package/dist/university-content/notes/N-para-001-meet-the-team.md +85 -0
- package/dist/university-content/notes/N-para-001-shift-setup.md +74 -0
- package/dist/university-content/notes/N-para-101-component-types.md +99 -0
- package/dist/university-content/notes/N-para-101-first-steps.md +134 -0
- package/dist/university-content/notes/N-para-101-five-symbols.md +128 -0
- package/dist/university-content/notes/N-para-101-paradigm-logger.md +89 -0
- package/dist/university-content/notes/N-para-101-portal-yaml.md +112 -0
- package/dist/university-content/notes/N-para-101-project-structure.md +143 -0
- package/dist/university-content/notes/N-para-101-purpose-files.md +121 -0
- package/dist/university-content/notes/N-para-101-tags-and-classification.md +93 -0
- package/dist/university-content/notes/N-para-101-welcome.md +51 -0
- package/dist/university-content/notes/N-para-201-architecture-review.md +175 -0
- package/dist/university-content/notes/N-para-201-aspect-graph.md +79 -0
- package/dist/university-content/notes/N-para-201-aspects-and-anchors.md +112 -0
- package/dist/university-content/notes/N-para-201-component-patterns.md +138 -0
- package/dist/university-content/notes/N-para-201-cross-cutting-concerns.md +145 -0
- package/dist/university-content/notes/N-para-201-disciplines.md +187 -0
- package/dist/university-content/notes/N-para-201-flows-deep-dive.md +119 -0
- package/dist/university-content/notes/N-para-201-gates-deep-dive.md +165 -0
- package/dist/university-content/notes/N-para-201-portal-protocol.md +133 -0
- package/dist/university-content/notes/N-para-201-signal-patterns.md +159 -0
- package/dist/university-content/notes/N-para-201-symbol-naming.md +149 -0
- package/dist/university-content/notes/N-para-301-context-management.md +53 -0
- package/dist/university-content/notes/N-para-301-decisions.md +99 -0
- package/dist/university-content/notes/N-para-301-doctor-and-validation.md +70 -0
- package/dist/university-content/notes/N-para-301-enforcement-levels.md +102 -0
- package/dist/university-content/notes/N-para-301-fragility-tracking.md +50 -0
- package/dist/university-content/notes/N-para-301-history-system.md +42 -0
- package/dist/university-content/notes/N-para-301-navigation-system.md +55 -0
- package/dist/university-content/notes/N-para-301-operations-review.md +55 -0
- package/dist/university-content/notes/N-para-301-paradigm-shift.md +93 -0
- package/dist/university-content/notes/N-para-301-protocols.md +113 -0
- package/dist/university-content/notes/N-para-301-ripple-analysis.md +53 -0
- package/dist/university-content/notes/N-para-301-sentinel-observability.md +87 -0
- package/dist/university-content/notes/N-para-301-sync-and-maintenance.md +57 -0
- package/dist/university-content/notes/N-para-301-wisdom-system.md +89 -0
- package/dist/university-content/notes/N-para-401-agent-identity.md +99 -0
- package/dist/university-content/notes/N-para-401-agent-interop.md +87 -0
- package/dist/university-content/notes/N-para-401-agent-roles.md +107 -0
- package/dist/university-content/notes/N-para-401-commit-conventions.md +82 -0
- package/dist/university-content/notes/N-para-401-mastery-review.md +71 -0
- package/dist/university-content/notes/N-para-401-mcp-tools-overview.md +102 -0
- package/dist/university-content/notes/N-para-401-multi-agent-coordination.md +80 -0
- package/dist/university-content/notes/N-para-401-notebooks-permissions.md +66 -0
- package/dist/university-content/notes/N-para-401-orchestration-workflow.md +101 -0
- package/dist/university-content/notes/N-para-401-pm-governance.md +71 -0
- package/dist/university-content/notes/N-para-401-provider-cascade.md +75 -0
- package/dist/university-content/notes/N-para-401-quick-check.md +95 -0
- package/dist/university-content/notes/N-para-501-advanced-workflows.md +122 -0
- package/dist/university-content/notes/N-para-501-aspect-graph-advanced.md +195 -0
- package/dist/university-content/notes/N-para-501-aspect-graph-internals.md +97 -0
- package/dist/university-content/notes/N-para-501-assessment-loops.md +116 -0
- package/dist/university-content/notes/N-para-501-conductor-workspace.md +77 -0
- package/dist/university-content/notes/N-para-501-habits-practice.md +164 -0
- package/dist/university-content/notes/N-para-501-hook-enforcement.md +100 -0
- package/dist/university-content/notes/N-para-501-lore-system.md +155 -0
- package/dist/university-content/notes/N-para-501-platform-agent-ui.md +108 -0
- package/dist/university-content/notes/N-para-501-review-compliance.md +72 -0
- package/dist/university-content/notes/N-para-501-sentinel-deep-dive.md +173 -0
- package/dist/university-content/notes/N-para-501-session-intelligence.md +104 -0
- package/dist/university-content/notes/N-para-501-symphony-a-mail.md +120 -0
- package/dist/university-content/notes/N-para-501-symphony-networking.md +119 -0
- package/dist/university-content/notes/N-para-501-task-management.md +100 -0
- package/dist/university-content/notes/N-para-601-agent-renaissance.md +121 -0
- package/dist/university-content/notes/N-para-601-attention-scoring.md +129 -0
- package/dist/university-content/notes/N-para-601-context-composition.md +146 -0
- package/dist/university-content/notes/N-para-601-data-sovereignty.md +140 -0
- package/dist/university-content/notes/N-para-601-event-stream.md +126 -0
- package/dist/university-content/notes/N-para-601-knowledge-streams.md +144 -0
- package/dist/university-content/notes/N-para-601-learning-loop.md +68 -0
- package/dist/university-content/notes/N-para-601-maestro-team-collab.md +136 -0
- package/dist/university-content/notes/N-para-601-nominations-debates.md +115 -0
- package/dist/university-content/notes/N-para-701-agent-notebooks.md +131 -0
- package/dist/university-content/notes/N-para-701-agent-pods-nevrland.md +182 -0
- package/dist/university-content/notes/N-para-701-agent-profiles.md +197 -0
- package/dist/university-content/notes/N-para-701-agent-roster.md +82 -0
- package/dist/university-content/notes/N-para-701-agent-state.md +180 -0
- package/dist/university-content/notes/N-para-701-learning-feedback-loop.md +188 -0
- package/dist/university-content/notes/N-para-701-model-tier-resolution.md +204 -0
- package/dist/university-content/notes/N-para-701-orchestration-enforcement.md +169 -0
- package/dist/university-content/notes/N-para-701-per-project-rosters.md +198 -0
- package/dist/university-content/notes/N-para-701-symphony-visibility.md +142 -0
- package/dist/university-content/paths/LP-para-001.yaml +29 -0
- package/dist/university-content/paths/LP-para-101.yaml +59 -0
- package/dist/university-content/paths/LP-para-201.yaml +69 -0
- package/dist/university-content/paths/LP-para-301.yaml +84 -0
- package/dist/university-content/paths/LP-para-401.yaml +74 -0
- package/dist/university-content/paths/LP-para-501.yaml +89 -0
- package/dist/university-content/paths/LP-para-601.yaml +59 -0
- package/dist/university-content/paths/LP-para-701.yaml +64 -0
- package/dist/university-content/quizzes/Q-para-001-build-something.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-001-meet-the-team.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-001-shift-setup.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-101-component-types.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-101-first-steps.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-five-symbols.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-101-paradigm-logger.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-portal-yaml.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-project-structure.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-101-purpose-files.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-tags-and-classification.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-welcome.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-architecture-review.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-aspect-graph.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-201-aspects-and-anchors.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-component-patterns.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-cross-cutting-concerns.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-disciplines.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-flows-deep-dive.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-gates-deep-dive.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-portal-protocol.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-signal-patterns.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-symbol-naming.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-301-context-management.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-decisions.yaml +76 -0
- package/dist/university-content/quizzes/Q-para-301-doctor-and-validation.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-301-enforcement-levels.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-fragility-tracking.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-history-system.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-navigation-system.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-operations-review.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-301-paradigm-shift.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-protocols.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-ripple-analysis.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-sentinel-observability.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-sync-and-maintenance.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-wisdom-system.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-agent-identity.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-agent-interop.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-401-agent-roles.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-commit-conventions.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-mastery-review.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-mcp-tools-overview.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-multi-agent-coordination.yaml +76 -0
- package/dist/university-content/quizzes/Q-para-401-notebooks-permissions.yaml +61 -0
- package/dist/university-content/quizzes/Q-para-401-orchestration-workflow.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-pm-governance.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-provider-cascade.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-quick-check.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-501-advanced-workflows.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-aspect-graph-advanced.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-aspect-graph-internals.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-assessment-loops.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-501-conductor-workspace.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-501-habits-practice.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-501-hook-enforcement.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-lore-system.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-platform-agent-ui.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-review-compliance.yaml +61 -0
- package/dist/university-content/quizzes/Q-para-501-sentinel-deep-dive.yaml +86 -0
- package/dist/university-content/quizzes/Q-para-501-session-intelligence.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-symphony-a-mail.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-symphony-networking.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-task-management.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-601-agent-renaissance.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-attention-scoring.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-601-context-composition.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-data-sovereignty.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-601-event-stream.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-knowledge-streams.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-learning-loop.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-601-maestro-team-collab.yaml +86 -0
- package/dist/university-content/quizzes/Q-para-601-nominations-debates.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-notebooks.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-pods-nevrland.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-profiles.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-roster.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-state.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-learning-feedback-loop.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-model-tier-resolution.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-orchestration-enforcement.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-per-project-rosters.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-symphony-visibility.yaml +66 -0
- package/dist/university-content/quizzes/Q-plsat-v2.yaml +904 -0
- package/dist/university-content/quizzes/Q-plsat-v3.yaml +2909 -0
- package/dist/university-content/reference.json +2 -2
- package/dist/university-ui/assets/{index-CecQrfSn.js → index-nNgzO1il.js} +2 -2
- package/dist/university-ui/assets/{index-CecQrfSn.js.map → index-nNgzO1il.js.map} +1 -1
- package/dist/university-ui/index.html +1 -1
- package/dist/{upgrade-GX56QE3C.js → upgrade-NKN63VTY.js} +2 -2
- package/dist/validate-XUQZTF3H.js +9 -0
- package/dist/{watch-YCODNIET.js → watch-25GJHQYT.js} +1 -1
- package/lore-ui/dist/assets/{index-Bk-K0qgN.js → index-DKhNxgtW.js} +10 -10
- package/lore-ui/dist/index.html +1 -1
- package/package.json +2 -2
- package/platform-ui/dist/assets/{AmbientSection-BYjt75R1.js → AmbientSection-CwatqcBD.js} +1 -1
- package/platform-ui/dist/assets/{CanvasSection-rKvA_vZj.js → CanvasSection-dFAthehN.js} +1 -1
- package/platform-ui/dist/assets/{DocsSection-CI9K73M-.js → DocsSection-BZ2SFJBZ.js} +1 -1
- package/platform-ui/dist/assets/{GitSection-DSGj_c6S.js → GitSection-MNNYU1tO.js} +1 -1
- package/platform-ui/dist/assets/{GraphSection-CawN7pC5.js → GraphSection-COYjb4Pt.js} +1 -1
- package/platform-ui/dist/assets/LoreSection-B0hUbfsJ.js +1 -0
- package/platform-ui/dist/assets/{SentinelSection-DNgoYMH0.js → SentinelSection-BCxW1DCp.js} +1 -1
- package/platform-ui/dist/assets/{SymphonySection-C0zfcqv3.js → SymphonySection-BsucZRqy.js} +1 -1
- package/platform-ui/dist/assets/{TeamSection-Bzd3Dt9Q.js → TeamSection-C0QNTudW.js} +1 -1
- package/platform-ui/dist/assets/{UniversitySection-tBr62R0S.js → UniversitySection-DN1-g9pw.js} +1 -1
- package/platform-ui/dist/assets/{index-BaOmyn11.js → index-DwUT8pju.js} +2 -2
- package/platform-ui/dist/index.html +1 -1
- package/dist/add-P76GEMGF.js +0 -8
- package/dist/chunk-JQKKVAAN.js +0 -2
- package/dist/chunk-NQ47TA6C.js +0 -111
- package/dist/chunk-ODVKPZZ4.js +0 -2
- package/dist/chunk-Q2J542ST.js +0 -2
- package/dist/chunk-RBLK34IA.js +0 -11
- package/dist/chunk-RN4VE6P3.js +0 -521
- package/dist/chunk-WS2N27RX.js +0 -3
- package/dist/config-schema-GUQY2QN7.js +0 -2
- package/dist/decision-loader-2XPZE4EZ.js +0 -2
- package/dist/doctor-WMVULMQD.js +0 -2
- package/dist/list-5IUGP3ZB.js +0 -7
- package/dist/lore-loader-RVQI5GXL.js +0 -2
- package/dist/lore-loader-XY5MZRR2.js +0 -2
- package/dist/migrate-assessments-GEI5WMI2.js +0 -4
- package/dist/portal-compliance-6YR27IQU.js +0 -2
- package/dist/quiz-FE5UGAY2.js +0 -10
- package/dist/reindex-I6LPAKCC.js +0 -2
- package/dist/serve-OY6XYL7F.js +0 -12
- package/dist/server-2MNROHF6.js +0 -7
- package/dist/session-tracker-MWJAJA6Z.js +0 -2
- package/dist/show-BOAVWZPZ.js +0 -7
- package/dist/status-A37ECYNJ.js +0 -6
- package/dist/sync-DLUBV5HQ.js +0 -2
- package/dist/tools-5ITPEPSV.js +0 -2
- package/dist/university-content/courses/.purpose +0 -492
- package/dist/university-content/courses/para-001.json +0 -166
- package/dist/university-content/courses/para-101.json +0 -615
- package/dist/university-content/courses/para-201.json +0 -794
- package/dist/university-content/courses/para-301.json +0 -830
- package/dist/university-content/courses/para-401.json +0 -868
- package/dist/university-content/courses/para-501.json +0 -1166
- package/dist/university-content/courses/para-601.json +0 -719
- package/dist/university-content/courses/para-701.json +0 -807
- package/dist/university-content/plsat/.purpose +0 -162
- package/dist/university-content/plsat/v2.0.json +0 -760
- package/dist/university-content/plsat/v3.0.json +0 -3453
- package/dist/validate-C6SMKGYD.js +0 -9
- package/platform-ui/dist/assets/LoreSection-oO5dCe6O.js +0 -1
- /package/dist/{chunk-BV5PRPLB.js → chunk-IZSBGW6E.js} +0 -0
- /package/templates/paradigm/specs/{scan.md → probe.md} +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
id: Q-para-201-signal-patterns
|
|
2
|
+
title: 'PARA 201: Architecture — Signal Patterns'
|
|
3
|
+
description: 'Quiz for lesson: Signal Patterns'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-201
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-201.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: The order service needs to send a confirmation email after an order is placed. What is the correct architecture?
|
|
19
|
+
choices:
|
|
20
|
+
A: The order service directly calls the email service's sendEmail method
|
|
21
|
+
B: The order service emits !order-placed; the email service listens to that signal
|
|
22
|
+
C: The email service polls the order service every 5 seconds for new orders
|
|
23
|
+
D: A $send-email-flow orchestrates the interaction
|
|
24
|
+
E: The order service includes email logic internally
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: Signal-based communication decouples the order service from the email service. The order service emits !order-placed and does not know who listens. The email service independently listens for that signal. This means you can add more listeners (analytics, loyalty points) without touching the order service.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: Where are signal listeners documented in Paradigm?
|
|
29
|
+
choices:
|
|
30
|
+
A: On the signal definition in the 'listeners' field
|
|
31
|
+
B: On the listening component in a 'listens' field
|
|
32
|
+
C: In portal.yaml under a 'listeners' section
|
|
33
|
+
D: In .paradigm/config.yaml
|
|
34
|
+
E: They are not documented — only emitters are tracked
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: Listeners are documented on the component that listens, using a 'listens' field. This asymmetry is intentional — the emitter declares what it emits (on the signal), and each listener independently declares what it consumes (on the component). This maintains true decoupling.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: A failed login attempt from an unknown IP should emit what category of signal?
|
|
39
|
+
choices:
|
|
40
|
+
A: business — it affects the user's experience
|
|
41
|
+
B: system — it is an infrastructure event
|
|
42
|
+
C: security — it is an authentication event relevant to audit trails
|
|
43
|
+
D: error — it indicates a system failure
|
|
44
|
+
E: It should not emit a signal — failed logins are expected
|
|
45
|
+
correct: C
|
|
46
|
+
explanation: Failed login attempts are security events. They are critical for audit trails, intrusion detection, and monitoring suspicious activity. The signal (!login-failed) should include data like email, reason, and IP address to support security analysis.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: A system currently has !order-placed consumed by 3 listeners. A developer needs to add a Slack notification when orders are placed. What must change?
|
|
49
|
+
choices:
|
|
50
|
+
A: The !order-placed signal definition must be updated to list the Slack notifier as an emitter
|
|
51
|
+
B: The $order-flow must add a Slack notification step
|
|
52
|
+
C: 'Only the new #slack-notifier component needs a ''listens: ["!order-placed"]'' declaration — nothing else changes'
|
|
53
|
+
D: 'The #order-service must be modified to call the Slack API'
|
|
54
|
+
E: portal.yaml must add a ^slack-authorized gate
|
|
55
|
+
correct: C
|
|
56
|
+
explanation: This is the power of signal-based decoupling. Adding a new listener requires only defining the new component with its 'listens' field. The signal definition, the emitting component, and all existing listeners remain untouched.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-201-symbol-naming
|
|
2
|
+
title: 'PARA 201: Architecture — Symbol Naming Conventions'
|
|
3
|
+
description: 'Quiz for lesson: Symbol Naming Conventions'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-201
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-201.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: Which of these signal names follows Paradigm naming conventions?
|
|
19
|
+
choices:
|
|
20
|
+
A: '!processPayment'
|
|
21
|
+
B: '!payment-completed'
|
|
22
|
+
C: '!PaymentSignal'
|
|
23
|
+
D: '!creating-user'
|
|
24
|
+
E: '!payment_done'
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: 'Signals use kebab-case and past-tense naming: !payment-completed. Option A uses camelCase and imperative mood. C uses PascalCase. D uses progressive tense. E uses underscores instead of hyphens.'
|
|
27
|
+
- id: q2
|
|
28
|
+
question: 'A flow that handles user registration from form submission to welcome email should be named:'
|
|
29
|
+
choices:
|
|
30
|
+
A: $doRegistration
|
|
31
|
+
B: $registerUser
|
|
32
|
+
C: $user-registration-flow
|
|
33
|
+
D: $REGISTRATION
|
|
34
|
+
E: $flow_register
|
|
35
|
+
correct: C
|
|
36
|
+
explanation: Flows use kebab-case with a noun-flow pattern. $user-registration-flow is descriptive and follows the convention. Imperative names (doRegistration, registerUser), ALL CAPS, and underscores all violate the naming rules.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: What is wrong with the gate name `^check1`?
|
|
39
|
+
choices:
|
|
40
|
+
A: Nothing — it is valid kebab-case
|
|
41
|
+
B: Gates must start with a verb
|
|
42
|
+
C: The number 1 is not allowed in symbol names
|
|
43
|
+
D: It is non-descriptive — the name should describe what the gate verifies
|
|
44
|
+
E: Gates must end with '-gate'
|
|
45
|
+
correct: D
|
|
46
|
+
explanation: 'Gate names should describe what they verify: ^project-admin, ^email-verified, ^subscription-active. The name ^check1 tells you nothing about what condition is being checked. A developer or AI agent cannot infer the gate''s purpose from its name.'
|
|
47
|
+
- id: q4
|
|
48
|
+
question: A component wraps the Stripe API for payment processing. Its class is `StripePaymentClient`. What should its .purpose ID be?
|
|
49
|
+
choices:
|
|
50
|
+
A: '#StripePaymentClient'
|
|
51
|
+
B: '#stripe-payment-client'
|
|
52
|
+
C: '#stripe_payment_client'
|
|
53
|
+
D: '#stripePaymentClient'
|
|
54
|
+
E: '#STRIPE-CLIENT'
|
|
55
|
+
correct: B
|
|
56
|
+
explanation: 'All symbol IDs in .purpose files use kebab-case: #stripe-payment-client. The PascalCase class name (StripePaymentClient) is fine in code and descriptions, but the ID must be kebab-case.'
|
|
57
|
+
- id: q5
|
|
58
|
+
question: 'Which aspect name reads most naturally in the sentence: ''All financial services are ___''?'
|
|
59
|
+
choices:
|
|
60
|
+
A: ~doAudit
|
|
61
|
+
B: ~auditStuff
|
|
62
|
+
C: ~audit-required
|
|
63
|
+
D: ~auditService
|
|
64
|
+
E: ~the-audit-aspect
|
|
65
|
+
correct: C
|
|
66
|
+
explanation: 'Aspect names should read as adjectives or past-participles: ''All financial services are ~audit-required.'' Options A and B are informal/imperative, D sounds like a component name, and E is unnecessarily verbose.'
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
id: Q-para-301-context-management
|
|
2
|
+
title: 'PARA 301: Operations — Context Management'
|
|
3
|
+
description: 'Quiz for lesson: Context Management'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-301
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-301.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: How often should you call paradigm_session_health during a long session?
|
|
19
|
+
choices:
|
|
20
|
+
A: Only at the start of the session
|
|
21
|
+
B: Every 10-15 tool calls
|
|
22
|
+
C: Only when the AI starts forgetting things
|
|
23
|
+
D: Once per hour
|
|
24
|
+
E: Only before handoff
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: The recommended cadence for context checks is every 10-15 tool calls. This proactive monitoring lets you prepare for handoff before context is exhausted, rather than discovering the limit when it is too late.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: paradigm_session_health returns 'handoff-soon'. What should you do?
|
|
29
|
+
choices:
|
|
30
|
+
A: Ignore it and keep working
|
|
31
|
+
B: Immediately stop all work
|
|
32
|
+
C: Finish the current task, then call paradigm_handoff_prepare with summary and next steps
|
|
33
|
+
D: Delete old messages to free up context
|
|
34
|
+
E: Switch to a model with a larger context window
|
|
35
|
+
correct: C
|
|
36
|
+
explanation: When handoff is recommended, prioritize completing the current task (if close to done), then prepare a handoff summary. paradigm_handoff_prepare captures what was done, files modified, next steps, and open questions so the next session can continue seamlessly.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: What is the first thing a new AI agent session should do to continue work from a previous session?
|
|
39
|
+
choices:
|
|
40
|
+
A: Read every file that was modified
|
|
41
|
+
B: Call paradigm_session_recover to load breadcrumbs from the previous session
|
|
42
|
+
C: Start the task from scratch
|
|
43
|
+
D: Call paradigm_doctor to validate the project
|
|
44
|
+
E: Run paradigm scan to rebuild the index
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: paradigm_session_recover loads the breadcrumbs and handoff summary from the previous session. This tells the new agent what was done, what files were modified, what remains, and any open questions -- enabling seamless continuity.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: At what context usage threshold does Paradigm recommend preparing a handoff?
|
|
49
|
+
choices:
|
|
50
|
+
A: 50%
|
|
51
|
+
B: 65%
|
|
52
|
+
C: 75%
|
|
53
|
+
D: 85%
|
|
54
|
+
E: 95%
|
|
55
|
+
correct: D
|
|
56
|
+
explanation: When context usage exceeds 85%, Paradigm recommends preparing a handoff. This leaves enough room to complete the current task and create a proper handoff summary without running out of context.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
id: Q-para-301-decisions
|
|
2
|
+
title: 'PARA 301: Operations — The Decision Store'
|
|
3
|
+
description: 'Quiz for lesson: The Decision Store'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-18'
|
|
6
|
+
updated: '2026-04-18'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-301
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: authored
|
|
15
|
+
source: v6.0-content-fix
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: In Paradigm v6.0, where do architectural decisions live?
|
|
19
|
+
choices:
|
|
20
|
+
A: '`.paradigm/wisdom/decisions.yaml` — written via `paradigm_wisdom_record({ type: ''decision'', ... })`'
|
|
21
|
+
B: '`.paradigm/lore/entries/{date}/L-*.yaml` — written via `paradigm_lore_record({ type: ''decision'', ... })`'
|
|
22
|
+
C: '`.paradigm/decisions/TD-*.yaml` — written via `paradigm_decision_record`, with a companion lore `insight` auto-written for timeline coverage'
|
|
23
|
+
D: '`.paradigm/history/decisions.jsonl` — written via `paradigm_history_record({ type: ''decision'', ... })`'
|
|
24
|
+
E: They live in commit messages with the `decision:` trailer
|
|
25
|
+
correct: C
|
|
26
|
+
explanation: 'In v6.0 decisions moved to a dedicated topic-addressable store at `.paradigm/decisions/`. Each decision is one `TD-*.yaml` file recorded via `paradigm_decision_record`. A companion lore entry of `type: ''insight''` is auto-written so the timeline still surfaces when the decision was made. Both `paradigm_wisdom_record({type:''decision''})` (A) and `paradigm_lore_record({type:''decision''})` (B) reject with a structured envelope pointing at the new tool.'
|
|
27
|
+
- id: q2
|
|
28
|
+
question: You call `paradigm_decision_record` and it succeeds. What gets written to disk?
|
|
29
|
+
choices:
|
|
30
|
+
A: Only the `TD-*.yaml` decision file
|
|
31
|
+
B: The `TD-*.yaml` decision file AND a companion lore `insight` entry with `references.decision_id` back-pointing to the TD- id
|
|
32
|
+
C: Only the companion lore entry — decisions are stored as a special lore type
|
|
33
|
+
D: Three files — one in decisions, one in wisdom, one in lore (for backward compat)
|
|
34
|
+
E: Nothing on disk — decisions are kept in memory only
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: 'Two artifacts are written. (1) The canonical decision goes to `.paradigm/decisions/TD-*.yaml` — topic-addressable, with full ADR shape. (2) A companion lore entry of `type: ''insight''` goes to `.paradigm/lore/entries/{date}/L-*.yaml` with `references.decision_id` pointing back at the TD- id and the `companion-lore` + `decision-reference` tags. The lore entry keeps the project timeline complete; the TD- entry stays the source of truth. The companion write is best-effort — a failure to write the lore entry never blocks the decision record.'
|
|
37
|
+
- id: q3
|
|
38
|
+
question: 'A teammate has a v5 project with old `type: decision` lore entries in `.paradigm/lore/entries/`. They upgrade to v6.0 and run `paradigm_lore_search`. What happens to those old entries?'
|
|
39
|
+
choices:
|
|
40
|
+
A: They disappear — decisions are no longer a valid lore type
|
|
41
|
+
B: 'They are auto-deleted on the first read after upgrade'
|
|
42
|
+
C: 'They are remapped to `type: insight` on read and tagged `v6-migrated:from-decision`, so they remain searchable via the tag'
|
|
43
|
+
D: 'They throw errors and block lore-search until the user manually edits each one'
|
|
44
|
+
E: 'They are auto-converted into `paradigm_decision_record` entries in `.paradigm/decisions/`'
|
|
45
|
+
correct: C
|
|
46
|
+
explanation: 'v1/v2 entries with `type: decision` are remapped to `type: insight` on read with the `v6-migrated:from-decision` tag applied for forensic recovery. The old entries remain searchable (`paradigm_lore_search({ tag: ''v6-migrated:from-decision'' })`). There is no automatic conversion to canonical TD- records (E) — the v1/v2 entries lack the structured participant/alternative data the new shape requires, so promotion to the new store is deliberate, one-by-one.'
|
|
47
|
+
- id: q4
|
|
48
|
+
question: 'In v6.0, you call `paradigm_lore_record({ type: ''decision'', title: ''Use Redis'', ... })`. What is the response?'
|
|
49
|
+
choices:
|
|
50
|
+
A: 'The entry is recorded successfully — `decision` is still a valid lore type'
|
|
51
|
+
B: 'A structured rejection envelope (code: ''lore_type_decision_removed'', successor_tool: ''paradigm_decision_record'') so a calling agent can auto-retry against the right tool without human intervention'
|
|
52
|
+
C: A silent no-op — the call returns success but nothing is written
|
|
53
|
+
D: The entry is written but flagged as deprecated and hidden from search
|
|
54
|
+
E: The CLI prompts the user interactively to choose a different type
|
|
55
|
+
correct: B
|
|
56
|
+
explanation: 'The storage layer (in `packages/paradigm/src/core/lore/storage.ts`) hard-rejects `type: ''decision''` with a structured rejection envelope. The envelope includes `code: ''lore_type_decision_removed''`, `successor_tool: ''paradigm_decision_record''`, `removed_in: ''6.0.0''`, and `doc: ''docs/private/plans/v6.0-decisions-locked.md''`. Same shape applies if you call `paradigm_wisdom_record({type:''decision''})`. The structured shape lets a calling agent (LLM or script) auto-retry against the right tool — no human in the loop required.'
|
|
57
|
+
- id: q5
|
|
58
|
+
question: 'You finish a 40-minute work session that modified 5 files and decided to switch from PostgreSQL to CockroachDB. How should you record this in v6.0?'
|
|
59
|
+
choices:
|
|
60
|
+
A: 'Just `paradigm_decision_record` — it covers the choice; no lore needed'
|
|
61
|
+
B: 'Just `paradigm_lore_record({ type: ''agent-session'' })` with the choice in the `decisions` field'
|
|
62
|
+
C: 'Both: an `agent-session` lore entry covers the work session; if the DB choice also deserves canonical status (search by symbol, status lifecycle), call `paradigm_decision_record` separately. They are not mutually exclusive.'
|
|
63
|
+
D: 'Use `paradigm_wisdom_record({ type: ''decision'' })` — wisdom captures team choices'
|
|
64
|
+
E: 'Use `paradigm_history_record` — DB switches are implementation events'
|
|
65
|
+
correct: C
|
|
66
|
+
explanation: 'Lore and decisions are not mutually exclusive. The `agent-session` entry captures the work session (5 files modified, what was learned) — and its `decisions` field can hold a brief reference to the DB switch. If the DB choice also deserves canonical status (you want to search "what did we decide about the user-service database?" later), call `paradigm_decision_record` separately. The TD- entry is the canonical source; the agent-session lore covers "what happened that day." D is invalid in v6 (`paradigm_wisdom_record` rejects `type: ''decision''`).'
|
|
67
|
+
- id: q6
|
|
68
|
+
question: What does `paradigm_decision_record` give you that `paradigm_wisdom_record({type:''decision''})` (v5 style) did not?
|
|
69
|
+
choices:
|
|
70
|
+
A: Nothing — it is just a rename
|
|
71
|
+
B: Structured participants with stance enum (proposed/supported/dissented/abstained), structured alternatives_considered with rejected_because, status lifecycle (active/superseded/deprecated/rejected), bidirectional supersede tracking, and an automatic companion lore insight for timeline coverage
|
|
72
|
+
C: Faster writes — TD- files are smaller than wisdom entries
|
|
73
|
+
D: Encryption — decisions are encrypted at rest, wisdom was not
|
|
74
|
+
E: Public-key signing — every decision is cryptographically signed
|
|
75
|
+
correct: B
|
|
76
|
+
explanation: 'The new tool brings ADR-shape structure that the wisdom path never had: structured participants with a stance enum, structured alternatives_considered with `rejected_because`, a status lifecycle, bidirectional supersede tracking (`superseded_by` + `supersedes`), and the companion-lore pattern for automatic timeline coverage. None of A/C/D/E are real differences — the win is structured-data discipline plus the companion timeline write.'
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-301-doctor-and-validation
|
|
2
|
+
title: 'PARA 301: Operations — Doctor & Validation'
|
|
3
|
+
description: 'Quiz for lesson: Doctor & Validation'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-301
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-301.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: Which of the following is NOT checked by paradigm doctor?
|
|
19
|
+
choices:
|
|
20
|
+
A: Purpose file YAML validity
|
|
21
|
+
B: Aspect anchor existence
|
|
22
|
+
C: Portal.yaml gate usage
|
|
23
|
+
D: JavaScript syntax errors in source code
|
|
24
|
+
E: Orphaned symbol detection
|
|
25
|
+
correct: D
|
|
26
|
+
explanation: 'paradigm doctor validates Paradigm metadata: .purpose files, portal.yaml, aspect anchors, and cross-references. It does not check source code syntax -- that is the job of your language''s compiler or linter.'
|
|
27
|
+
- id: q2
|
|
28
|
+
question: An aspect ~rate-limited has an anchor pointing to src/middleware/rate-limit.ts:10-25, but that file was recently renamed. What will paradigm doctor report?
|
|
29
|
+
choices:
|
|
30
|
+
A: Nothing -- it only checks YAML syntax
|
|
31
|
+
B: A warning about unused gates
|
|
32
|
+
C: An error because the anchor points to a file that no longer exists
|
|
33
|
+
D: It will automatically update the anchor
|
|
34
|
+
E: A suggestion to create the file
|
|
35
|
+
correct: C
|
|
36
|
+
explanation: Paradigm doctor verifies that aspect anchors point to files and line ranges that actually exist. If the file was renamed, the anchor is broken and doctor will report an error, prompting you to update the anchor.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: When is the best time to run paradigm doctor?
|
|
39
|
+
choices:
|
|
40
|
+
A: Only during initial project setup
|
|
41
|
+
B: After major changes and before committing
|
|
42
|
+
C: Only when errors occur in production
|
|
43
|
+
D: Once per quarter
|
|
44
|
+
E: Only when adding new .purpose files
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: paradigm doctor should be run after major changes (adding features, refactoring, renaming symbols) and before committing. Many teams also integrate it into pre-commit hooks or CI pipelines to catch metadata drift early.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: What does paradigm_flow_check check when checkImplementation is set to true?
|
|
49
|
+
choices:
|
|
50
|
+
A: Only YAML syntax of the flow definition
|
|
51
|
+
B: That flow steps reference existing gates, actions are implemented in code, and signals are defined
|
|
52
|
+
C: Only that the flow has at least three steps
|
|
53
|
+
D: That the flow has been tested in production
|
|
54
|
+
E: Only that gate names match portal.yaml
|
|
55
|
+
correct: B
|
|
56
|
+
explanation: 'With checkImplementation enabled, paradigm_flow_check performs a deep check: verifying that gates exist in portal.yaml, that actions described in flow steps have corresponding implementations in the codebase, and that emitted signals are properly defined.'
|
|
57
|
+
- id: q5
|
|
58
|
+
question: 'A .purpose file contains: `description: "Handles order processing [NEEDS CLARIFICATION: should cancelled orders trigger refunds?]"`. How do `paradigm doctor` and `paradigm_purpose_validate` treat this marker?'
|
|
59
|
+
choices:
|
|
60
|
+
A: As an error that blocks validation and must be fixed immediately
|
|
61
|
+
B: As a warning that surfaces during checks but does not block validation
|
|
62
|
+
C: They ignore it completely -- it is just text in a description field
|
|
63
|
+
D: As an info message that only appears in verbose mode
|
|
64
|
+
E: As a fatal error that prevents the .purpose file from being parsed
|
|
65
|
+
correct: B
|
|
66
|
+
explanation: 'Clarification markers (`[NEEDS CLARIFICATION: ...]`) are treated as warnings, not errors. Both `paradigm doctor` and `paradigm_purpose_validate` scan description fields for this exact pattern and report matches as warnings. They surface during health checks to remind the team of unresolved design questions, but they do not block validation or break builds. Resolve them before shipping.'
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
id: Q-para-301-enforcement-levels
|
|
2
|
+
title: 'PARA 301: Operations — Enforcement Levels'
|
|
3
|
+
description: 'Quiz for lesson: Enforcement Levels'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-301
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-301.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: Your team is building a healthcare claims processing system that requires audit trails. A new developer joins and asks which enforcement level to use. What do you recommend?
|
|
19
|
+
choices:
|
|
20
|
+
A: Minimal — let the new developer learn without friction first
|
|
21
|
+
B: Balanced — it catches most issues without being too strict
|
|
22
|
+
C: Strict — healthcare is a regulated domain where every change must be documented and traceable
|
|
23
|
+
D: Minimal with lore-required overridden to block — just the audit trail matters
|
|
24
|
+
E: No enforcement — the team should self-police
|
|
25
|
+
correct: C
|
|
26
|
+
explanation: Healthcare is a regulated domain where compliance is not optional. Strict enforcement ensures every change has purpose files, portal gates, lore records, and passing drift checks — exactly the traceability an audit requires. The new developer should work within these constraints from day one rather than building habits that strict mode would later break.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: Your project uses balanced enforcement but your team never records lore entries, causing constant warnings. What is the best fix?
|
|
29
|
+
choices:
|
|
30
|
+
A: Switch to minimal enforcement to silence all warnings
|
|
31
|
+
B: Override lore-required to off in config.yaml — your team does not need lore yet
|
|
32
|
+
C: Override lore-required to block — force the team to comply
|
|
33
|
+
D: Delete the enforcement section from config.yaml entirely
|
|
34
|
+
E: Ignore the warnings — they are just advisory
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: Per-check overrides exist for exactly this situation. If your team is not ready for lore tracking, override lore-required to off rather than downgrading the entire enforcement level. This keeps all other balanced checks active while silencing the one that does not match your current workflow. You can re-enable it later when the team is ready.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: A stop hook blocks your commit with "missing .purpose file for src/payments/". You are on balanced enforcement. What happened?
|
|
39
|
+
choices:
|
|
40
|
+
A: purpose-exists check failed — the .purpose file has a syntax error
|
|
41
|
+
B: purpose-coverage check blocked — you modified files in src/payments/ but that directory has no .purpose file
|
|
42
|
+
C: portal-gates check failed — src/payments/ has unprotected routes
|
|
43
|
+
D: purpose-freshness check failed — the .purpose file exists but is stale
|
|
44
|
+
E: aspect-anchors check failed — aspects in src/payments/ have broken anchors
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: 'On balanced enforcement, purpose-coverage is the only check set to block (besides habits-blocking). The error message says "missing .purpose file" which means the directory lacks one entirely — that is purpose-coverage, not purpose-exists (which checks that referenced files exist) or purpose-freshness (which checks staleness). Fix: create a .purpose file in src/payments/ describing its components.'
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
id: Q-para-301-fragility-tracking
|
|
2
|
+
title: 'PARA 301: Operations — Fragility & Stability'
|
|
3
|
+
description: 'Quiz for lesson: Fragility & Stability'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-301
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-301.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: Which factors does Paradigm's fragility analysis consider when computing stability scores?
|
|
19
|
+
choices:
|
|
20
|
+
A: Only the number of lines of code
|
|
21
|
+
B: Change frequency, rollback count, fix-to-feature ratio, and recency of changes
|
|
22
|
+
C: Only how many rollbacks have occurred
|
|
23
|
+
D: The number of developers who have modified the symbol
|
|
24
|
+
E: Test coverage percentage
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: 'Fragility analysis considers multiple factors: how frequently the symbol changes, how many rollbacks occurred, the ratio of fixes to features (high fix ratio suggests instability), and how recently changes were made.'
|
|
27
|
+
- id: q2
|
|
28
|
+
question: 'You are about to modify #billing-engine, which paradigm_history_fragility reports as fragile. What should you do FIRST?'
|
|
29
|
+
choices:
|
|
30
|
+
A: Skip the change entirely
|
|
31
|
+
B: Refactor the symbol to improve stability
|
|
32
|
+
C: Read its full history and check team wisdom to understand why it is unstable
|
|
33
|
+
D: Delete the symbol and start fresh
|
|
34
|
+
E: Increase the stability score manually
|
|
35
|
+
correct: C
|
|
36
|
+
explanation: Before modifying a fragile symbol, you should first understand why it is fragile by reading its history (paradigm_history_context) and checking team wisdom (paradigm_wisdom_context). This context helps you avoid repeating past mistakes.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: A symbol has a high count of 'refactor' type events in its history. What might this indicate?
|
|
39
|
+
choices:
|
|
40
|
+
A: The symbol is well-maintained and actively improved
|
|
41
|
+
B: The symbol has excellent test coverage
|
|
42
|
+
C: Unclear requirements, poor initial design, or a component doing too much
|
|
43
|
+
D: The symbol is ready for production
|
|
44
|
+
E: The development team is very productive
|
|
45
|
+
correct: C
|
|
46
|
+
explanation: Frequent refactors often indicate underlying issues -- unclear requirements that keep changing, a poor initial design that needs constant adjustment, or a component that has grown beyond its original scope. The fragility system surfaces these patterns for root cause analysis.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
id: Q-para-301-history-system
|
|
2
|
+
title: 'PARA 301: Operations — The History System'
|
|
3
|
+
description: 'Quiz for lesson: The History System'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-301
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-301.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: Which tool do you use to log an implementation change in Paradigm's history system?
|
|
19
|
+
choices:
|
|
20
|
+
A: paradigm_history_context
|
|
21
|
+
B: paradigm_history_record
|
|
22
|
+
C: paradigm_wisdom_record
|
|
23
|
+
D: paradigm_history_fragility
|
|
24
|
+
E: paradigm_history_validate
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: paradigm_history_record is the tool for logging implementation events. paradigm_history_context retrieves existing history, paradigm_wisdom_record captures preferences and antipatterns (architectural decisions go through paradigm_decision_record), and paradigm_history_fragility checks stability scores.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: 'In one session you fixed a race condition in #checkout-flow, updated the $payment-flow to add retry logic, and added a new #refund-handler component. How would you record these three changes in the history system?'
|
|
29
|
+
choices:
|
|
30
|
+
A: One history_record call with all three changes combined
|
|
31
|
+
B: Three separate history_record calls — a "fix" for the race condition, a "change" for the flow update, and an "add" for the new component
|
|
32
|
+
C: Only record the new component — fixes and changes are tracked by git
|
|
33
|
+
D: Use paradigm_lore_record instead — history is deprecated
|
|
34
|
+
E: Record only the fix — it is the most important change
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: 'The history system supports three change types: "add" (new symbols), "change" (modifications), and "fix" (bug fixes). Each change should be recorded separately so that future history queries can filter by type. Using the right type matters — when someone asks "what broke recently?" they want fixes, not additions.'
|
|
37
|
+
- id: q3
|
|
38
|
+
question: Why is the history log append-only?
|
|
39
|
+
choices:
|
|
40
|
+
A: To save disk space by avoiding updates
|
|
41
|
+
B: To make the log faster to write
|
|
42
|
+
C: To maintain a complete, trustworthy timeline that supports fragility analysis
|
|
43
|
+
D: Because the file format does not support editing
|
|
44
|
+
E: To prevent unauthorized modifications
|
|
45
|
+
correct: C
|
|
46
|
+
explanation: The append-only design ensures a complete timeline of every change. Nothing is deleted or overwritten, which makes the log trustworthy for computing fragility scores and understanding how symbols evolved over time.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: 'Before modifying #user-service, which tool should you call to understand its recent changes?'
|
|
49
|
+
choices:
|
|
50
|
+
A: paradigm_history_record
|
|
51
|
+
B: paradigm_search
|
|
52
|
+
C: paradigm_history_context
|
|
53
|
+
D: paradigm_navigate
|
|
54
|
+
E: paradigm_ripple
|
|
55
|
+
correct: C
|
|
56
|
+
explanation: paradigm_history_context retrieves the implementation history for specified symbols. It tells you what changed recently, who worked on it, and how stable the symbol has been -- essential context before making modifications.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
id: Q-para-301-navigation-system
|
|
2
|
+
title: 'PARA 301: Operations — Codebase Navigation'
|
|
3
|
+
description: 'Quiz for lesson: Codebase Navigation'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-301
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-301.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: You need to understand all the components involved in the payment system. Which paradigm_navigate intent should you use?
|
|
19
|
+
choices:
|
|
20
|
+
A: find
|
|
21
|
+
B: explore
|
|
22
|
+
C: context
|
|
23
|
+
D: search
|
|
24
|
+
E: browse
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: The "explore" intent browses a functional area. Passing "payments" as the target returns all symbols, files, and structure in the payment domain. "find" is for specific symbol lookup, and "context" is for task-based discovery.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: Approximately how many tokens does a paradigm_navigate query cost compared to reading a file?
|
|
29
|
+
choices:
|
|
30
|
+
A: About the same -- both are ~2000 tokens
|
|
31
|
+
B: Navigate costs more -- ~5000 tokens vs ~500 for file reads
|
|
32
|
+
C: Navigate costs ~100-200 tokens vs ~500-2000 for file reads
|
|
33
|
+
D: Navigate is free and does not count against token limits
|
|
34
|
+
E: Navigate costs ~1000 tokens vs ~100 for file reads
|
|
35
|
+
correct: C
|
|
36
|
+
explanation: MCP navigation queries cost approximately 100-200 tokens, while reading files costs 500-2000+ tokens depending on file size. This 10x efficiency is why the rule is 'MCP for discovery, file reads for implementation.'
|
|
37
|
+
- id: q3
|
|
38
|
+
question: How is navigator.yaml generated?
|
|
39
|
+
choices:
|
|
40
|
+
A: You write it manually when setting up the project
|
|
41
|
+
B: It is generated by paradigm scan from .purpose files
|
|
42
|
+
C: It is downloaded from the Paradigm registry
|
|
43
|
+
D: It is created by paradigm doctor as a health check artifact
|
|
44
|
+
E: It is copied from a template during paradigm shift
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: navigator.yaml is generated by running paradigm scan, which reads all .purpose files, analyzes the directory structure, and produces a comprehensive structure map. You do not edit it manually -- it is always regenerated from the source .purpose files.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: You want to add a search feature to the dashboard and need to know which files to modify. Which navigate intent is most appropriate?
|
|
49
|
+
choices:
|
|
50
|
+
A: 'find -- to locate #dashboard'
|
|
51
|
+
B: explore -- to browse the dashboard area
|
|
52
|
+
C: context -- with the task description to get all relevant files and patterns
|
|
53
|
+
D: Any intent will return the same results
|
|
54
|
+
E: None -- you should read files directly
|
|
55
|
+
correct: C
|
|
56
|
+
explanation: The "context" intent is designed for task-based discovery. Describing your task ('add search feature to dashboard') returns all the relevant files, symbols, and patterns you need. This is more comprehensive than find (specific symbol) or explore (area browsing).
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-301-operations-review
|
|
2
|
+
title: 'PARA 301: Operations — Operational Excellence'
|
|
3
|
+
description: 'Quiz for lesson: Operational Excellence'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-301
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-301.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: What is the correct order for the Paradigm operational loop?
|
|
19
|
+
choices:
|
|
20
|
+
A: Implement, validate, discover, orient
|
|
21
|
+
B: Orient, discover, assess risk, implement, validate, capture knowledge, monitor context
|
|
22
|
+
C: Discover, implement, commit, deploy
|
|
23
|
+
D: Assess risk, implement, test, deploy
|
|
24
|
+
E: Orient, implement, validate
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: 'The full operational loop is: Orient (paradigm_status/session_recover), Discover (wisdom_context/navigate), Assess Risk (ripple/fragility), Implement (code + metadata), Validate (doctor/validate), Capture Knowledge (wisdom_record/history_record), Monitor Context (context_check).'
|
|
27
|
+
- id: q2
|
|
28
|
+
question: 'You are starting a new session to add a payment retry feature. #payment-service and $checkout-flow are involved. List the tools you should call in order BEFORE writing any code.'
|
|
29
|
+
choices:
|
|
30
|
+
A: paradigm_status, then paradigm_history_record
|
|
31
|
+
B: paradigm_status, paradigm_wisdom_context for both symbols, paradigm_ripple for both symbols, paradigm_history_fragility for flagged dependents
|
|
32
|
+
C: paradigm_search for 'payment', then start coding
|
|
33
|
+
D: paradigm_doctor, then start coding
|
|
34
|
+
E: paradigm_navigate with find intent, then start coding
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: 'Before writing code, you should: (1) orient with paradigm_status, (2) check wisdom for the symbols you will modify, (3) run ripple analysis to see the blast radius, and (4) check fragility of any flagged dependents. This is the orient-discover-assess sequence of the operational loop.'
|
|
37
|
+
- id: q3
|
|
38
|
+
question: Which of these is a common operational pitfall in Paradigm projects?
|
|
39
|
+
choices:
|
|
40
|
+
A: Running paradigm doctor too frequently
|
|
41
|
+
B: Recording too much history
|
|
42
|
+
C: Deferring .purpose file updates to 'later', causing metadata to go stale
|
|
43
|
+
D: Using paradigm_navigate instead of reading files
|
|
44
|
+
E: Calling paradigm_session_health every 10 tool calls
|
|
45
|
+
correct: C
|
|
46
|
+
explanation: 'Deferring metadata updates is one of the most common pitfalls. When .purpose files go stale, navigation becomes misleading, ripple analysis produces incorrect results, and doctor generates false positives. The rule is: update metadata as you code, not after.'
|
|
47
|
+
- id: q4
|
|
48
|
+
question: What are the signs of a well-operated Paradigm project?
|
|
49
|
+
choices:
|
|
50
|
+
A: Minimal use of Paradigm tools to keep things simple
|
|
51
|
+
B: Accurate .purpose files, portal.yaml reflecting all protected routes, wisdom entries, history records, and context handoffs
|
|
52
|
+
C: A large number of .purpose files regardless of accuracy
|
|
53
|
+
D: No wisdom entries because the team never makes mistakes
|
|
54
|
+
E: Running paradigm scan before every commit
|
|
55
|
+
correct: B
|
|
56
|
+
explanation: A well-operated project has accurate (not just numerous) .purpose files, a portal.yaml that reflects reality, wisdom entries that prevent repeated mistakes, history records that enable fragility analysis, and context handoffs that allow seamless multi-session work.
|
|
57
|
+
- id: q5
|
|
58
|
+
question: You finished implementing a feature and discovered that directly modifying shared state outside of the intended pattern causes subtle bugs. What should you do before moving to your next task?
|
|
59
|
+
choices:
|
|
60
|
+
A: Just fix the bug and move on
|
|
61
|
+
B: Record an antipattern with paradigm_wisdom_record, record the implementation with paradigm_history_record, and run paradigm doctor
|
|
62
|
+
C: Only run paradigm doctor
|
|
63
|
+
D: Only call paradigm_history_record
|
|
64
|
+
E: Add a comment in the code and move on
|
|
65
|
+
correct: B
|
|
66
|
+
explanation: The capture phase of the operational loop involves recording both the antipattern (so future sessions avoid the same mistake) and the implementation history (so fragility tracking stays current), followed by validation to ensure metadata is consistent.
|