@a-company/paradigm 5.38.0 → 6.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accept-orchestration-OATWIRHP.js → accept-orchestration-TIXUQQGR.js} +1 -1
- package/dist/add-UOR4INIV.js +8 -0
- package/dist/agent-MB3H5EZA.js +33 -0
- package/dist/{agent-loader-RIVI6QPP.js → agent-loader-VGBPL3TH.js} +1 -1
- package/dist/{agent-loader-RJRVO5GQ.js → agent-loader-W3RQJVW7.js} +1 -1
- package/dist/{agents-suggest-HYTFMQD3.js → agents-suggest-IKY6VD2R.js} +1 -1
- package/dist/{ambient-WTLYUAQM.js → ambient-AI42BOM5.js} +12 -12
- package/dist/{ambient-76YMUA5Q.js → ambient-FNNFB4AP.js} +1 -1
- package/dist/{assess-UFPYEJKP.js → assess-63WXHWJV.js} +1 -1
- package/dist/authority-FA3HLEOA.js +2 -0
- package/dist/{calibration-OLJYB5HN.js → calibration-BDHGYJOK.js} +1 -1
- package/dist/chunk-23T6UG73.js +605 -0
- package/dist/{chunk-4L7665QV.js → chunk-2AU5L333.js} +1 -1
- package/dist/{chunk-BOYQAMGC.js → chunk-4N56FRNE.js} +1 -1
- package/dist/{chunk-5QOCKWK5.js → chunk-4PSD5R7N.js} +2 -2
- package/dist/{chunk-MQIG6SMF.js → chunk-6QXBXZF6.js} +1 -1
- package/dist/{chunk-ORDKEGII.js → chunk-AMLD7IYC.js} +1 -1
- package/dist/{chunk-3DZK54RU.js → chunk-DBEWOKD6.js} +32 -7
- package/dist/{chunk-AGFPVSX5.js → chunk-F6E3HW45.js} +1 -1
- package/dist/{chunk-X3U3IGYT.js → chunk-GD4F2HC6.js} +2 -2
- package/dist/chunk-GRZQIKST.js +2 -0
- package/dist/{chunk-HOBHJPTL.js → chunk-IOVHF4SR.js} +1 -1
- package/dist/{chunk-RLCH7DXQ.js → chunk-K7X3Z3GL.js} +1 -1
- package/dist/{chunk-74SGKSRQ.js → chunk-KAFQA7HV.js} +2 -2
- package/dist/{chunk-NEJ4ZLCY.js → chunk-LAYBUKMB.js} +1 -1
- package/dist/{chunk-4VKSEOXZ.js → chunk-LPBCQM5Y.js} +3 -3
- package/dist/chunk-Q527BPUF.js +2 -0
- package/dist/{chunk-AO7ZSRME.js → chunk-TQOT2LBO.js} +2 -2
- 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-WXF5VFB4.js +111 -0
- package/dist/chunk-XQLO5URP.js +11 -0
- package/dist/{chunk-DOCDDDTD.js → chunk-YNDPSWOE.js} +5 -5
- package/dist/chunk-Z5QW6USC.js +2 -0
- package/dist/{compliance-D7GD6ZYC.js → compliance-J3VOV445.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-75MABOSL.js} +1 -1
- package/dist/{dist-KGRCLBJP-2QAPFYNF.js → dist-GQ42YS5N-4HIJZVBB.js} +10 -10
- package/dist/{docs-USDAF26F.js → docs-TSAAS4W3.js} +1 -1
- package/dist/doctor-L5XZENCF.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/{hooks-TFMMMB2H.js → hooks-KUEE5KMM.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-Z5UQN57G.js → migrate-ZPNYDNM4.js} +1 -1
- 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/migration-notices-BHLEYC4T.js +4 -0
- package/dist/{nomination-engine-EALA5MGI.js → nomination-engine-NCLTGMAK.js} +1 -1
- package/dist/{notebook-loader-PXNRBBXD.js → notebook-loader-3J2OFMS3.js} +1 -1
- package/dist/{orchestrate-M5PBZBJQ.js → orchestrate-K4KBTBYK.js} +1 -1
- package/dist/{platform-server-DNAMH4YI.js → platform-server-ANOALDPL.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-TBPOE4DI.js} +1 -1
- package/dist/quiz-WYIZJG5K.js +10 -0
- package/dist/{record-YXPB34MY.js → record-N3VNYYKJ.js} +1 -1
- package/dist/registry-OUTA3DXW.js +20 -0
- package/dist/reindex-IZCD2JGD.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-3FMUWW5K.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-HHNY6J4I.js +2 -0
- package/dist/{session-work-log-ZP45TREI.js → session-work-log-MEJ33TYD.js} +1 -1
- package/dist/{session-work-log-PAKXOFGL.js → session-work-log-ZVVJGO7X.js} +1 -1
- package/dist/{setup-FEWSYS3Y.js → setup-ZSEC72BS.js} +1 -1
- package/dist/shift-WGMZGWOC.js +60 -0
- package/dist/{show-PJ5LFLIL.js → show-JH7LJ5MT.js} +1 -1
- package/dist/show-WVHAL4VU.js +7 -0
- package/dist/{spawn-M5BAV252.js → spawn-KKDDR6UR.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-2LGZQRP4.js} +1 -1
- package/dist/{timeline-K3ZFKJ3R.js → timeline-RK7O2SCM.js} +1 -1
- package/dist/tools-4RRFTU5H.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-451-agent-routing.md +117 -0
- package/dist/university-content/notes/N-para-451-archetypes-vs-instances.md +82 -0
- package/dist/university-content/notes/N-para-451-identity-layers.md +76 -0
- package/dist/university-content/notes/N-para-451-orchestration-modes.md +85 -0
- package/dist/university-content/notes/N-para-451-paradigm-shift.md +95 -0
- package/dist/university-content/notes/N-para-451-partners-primitive.md +107 -0
- package/dist/university-content/notes/N-para-451-roster-management.md +132 -0
- package/dist/university-content/notes/N-para-451-roster-reference.md +106 -0
- package/dist/university-content/notes/N-para-451-the-team-pattern.md +87 -0
- package/dist/university-content/notes/N-para-451-tiers.md +81 -0
- package/dist/university-content/notes/N-para-451-welcome.md +55 -0
- package/dist/university-content/notes/N-para-451-what-is-an-agent.md +73 -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-451.yaml +69 -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-451-foundations.yaml +154 -0
- package/dist/university-content/quizzes/Q-para-451-when-to-invoke.yaml +182 -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/agent-X6I2YWOB.js +0 -33
- 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/registry-KOOKFUWD.js +0 -20
- 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/shift-PC6C7NUX.js +0 -60
- 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-HXGYVS2N.js} +0 -0
- /package/templates/paradigm/specs/{scan.md → probe.md} +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
id: Q-para-501-assessment-loops
|
|
2
|
+
title: 'PARA 501: Advanced Systems — Lore as Unified Project Memory'
|
|
3
|
+
description: 'Quiz for lesson: Lore as Unified Project Memory'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-501
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-501.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: You have completed a three-session effort to add rate limiting. You want to record a retrospective grouped with other rate-limiting work. What is the correct approach?
|
|
19
|
+
choices:
|
|
20
|
+
A: 'Call `paradigm_lore_record` with `type: "retro"`, a body with your reflection, and `tags: ["arc:rate-limiting"]`'
|
|
21
|
+
B: 'Call `paradigm_assessment_record` with `arc_id: "arc-rate-limiting"` and `type: "retro"`'
|
|
22
|
+
C: 'Call `paradigm_lore_record` with `type: "milestone"` — completing features is always a milestone'
|
|
23
|
+
D: Create a separate `.paradigm/assessments/` directory and write the entry manually
|
|
24
|
+
E: 'Call `paradigm_lore_record` with `type: "agent-session"` — all lore is session-level'
|
|
25
|
+
correct: A
|
|
26
|
+
explanation: 'Reflective entries are recorded via `paradigm_lore_record` with the appropriate type and arc tag. A retro with `tags: ["arc:rate-limiting"]` groups it with other entries in that arc. The body field holds the detailed reflection. The assessment tools (B) are deprecated wrappers. Milestones (C) mark significant project events, not feature completions. Agent-session (E) is for automated session records, not deliberate reflections.'
|
|
27
|
+
- id: q2
|
|
28
|
+
question: 'A lore entry has `linked_lore: [L-2026-02-10-003, L-2026-02-12-001]` and `linked_commits: [a1b2c3d]`. What does this cross-referencing enable?'
|
|
29
|
+
choices:
|
|
30
|
+
A: It automatically updates the linked entries with backlinks
|
|
31
|
+
B: It creates traceability — readers can drill from the synthesized insight down to the specific sessions and code changes
|
|
32
|
+
C: It prevents the referenced lore entries from being deleted
|
|
33
|
+
D: It triggers Sentinel to check those commits for incidents
|
|
34
|
+
E: It merges the linked entries into a single combined entry
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: Cross-references create a traceability chain. A reader encountering an insight entry can follow `linked_lore` to see the full session context, and `linked_commits` to see the exact code changes. This is the core value of linking — each entry adds interpretation to what it references, with links to drill down for evidence.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: You want to find every retrospective in the `arc:auth-hardening` arc that mentions `#payment-service`. Which approach is correct?
|
|
39
|
+
choices:
|
|
40
|
+
A: 'Call `paradigm_lore_search` with `tag: "arc:auth-hardening"`, `type: "retro"`, and `symbol: "#payment-service"`'
|
|
41
|
+
B: 'Call `paradigm_assessment_search` with `symbol: "#payment-service"` — it searches the old assessment system'
|
|
42
|
+
C: 'Call `paradigm_lore_search` with `tags: ["arc:auth-hardening", "retro"]`'
|
|
43
|
+
D: 'Call `paradigm_search` with `query: "payment retro auth"` — general search covers lore'
|
|
44
|
+
E: Read every file in `.paradigm/lore/entries/` and filter manually
|
|
45
|
+
correct: A
|
|
46
|
+
explanation: '`paradigm_lore_search` supports combining filters: `tag` for arc prefix matching, `type` for entry type, and `symbol` for symbol references. These filters combine (AND logic), so you get only retro entries in the auth-hardening arc that touch the payment service. The assessment tools (B) are deprecated. Using `tags` array (C) uses OR logic, not AND. General search (D) searches the symbol index, not lore content.'
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
id: Q-para-501-conductor-workspace
|
|
2
|
+
title: 'PARA 501: Advanced Systems — Conductor: Visual Mission Control'
|
|
3
|
+
description: 'Quiz for lesson: Conductor: Visual Mission Control'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-501
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-501.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: During orchestration, the security agent sends an approval-request via Symphony asking to modify portal.yaml. Where would you see and respond to this in Conductor?
|
|
19
|
+
choices:
|
|
20
|
+
A: In the terminal session where the agent is running
|
|
21
|
+
B: In the Symphony thread view — approval-request is a task protocol intent that appears as a message you can approve or reject
|
|
22
|
+
C: In the agent health dashboard under the security agent's metrics
|
|
23
|
+
D: In the Sentinel event feed as a security incident
|
|
24
|
+
E: You cannot — approval requests only work via CLI
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: Symphony messages, including task protocol intents like approval-request, appear in Conductor's thread view in real time. The task protocol is designed for human-agent coordination — you see the request, read the context, and respond with approval-response directly in the thread view. This is one of Conductor's key advantages over CLI-only workflows.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: You want to work on the frontend and backend of a feature simultaneously with two Claude Code sessions. How would you set this up in Conductor?
|
|
29
|
+
choices:
|
|
30
|
+
A: Launch two separate Conductor apps
|
|
31
|
+
B: Use workspace mode with a split-h or split-v layout preset, launching one terminal session per pane
|
|
32
|
+
C: Conductor only supports one session at a time
|
|
33
|
+
D: Use the agent health dashboard to assign work to two agents
|
|
34
|
+
E: Use Symphony to relay messages between two CLI sessions instead
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: Conductor's workspace mode is a tiling window manager for Claude Code sessions. Choose a split layout preset (horizontal or vertical), and each pane gets its own terminal session. Both sessions connect to Symphony, so they can coordinate via inter-agent messaging while you watch both in a single window.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: Conductor's ML features (gaze tracking, gesture recognition, voice commands) all run locally via CoreML. Why is this significant?
|
|
39
|
+
choices:
|
|
40
|
+
A: CoreML is faster than cloud APIs for all tasks
|
|
41
|
+
B: It means zero cloud cost, zero data leaving your machine, and zero network latency — critical for a developer tool that sees your code and screen
|
|
42
|
+
C: Apple requires all macOS apps to use CoreML
|
|
43
|
+
D: Cloud ML services do not support gaze tracking
|
|
44
|
+
E: It is not significant — it is just an implementation detail
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: For a developer tool that has access to your codebase, screen content, and camera feed, privacy is paramount. Local-only ML means your data never leaves your machine — no cloud processing, no storage, no costs. The zero-latency benefit is a bonus, but the privacy guarantee is the real reason this design choice matters.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
id: Q-para-501-habits-practice
|
|
2
|
+
title: 'PARA 501: Advanced Systems — Habits & Practice'
|
|
3
|
+
description: 'Quiz for lesson: Habits & Practice'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-501
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-501.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: A project wants the `ripple-before-modify` habit to block session completion instead of just advising. How should they configure this?
|
|
19
|
+
choices:
|
|
20
|
+
A: 'Delete the seed habit and create a new one with `severity: block`'
|
|
21
|
+
B: 'Add an override in `.paradigm/habits.yaml` setting `severity: block` for `ripple-before-modify`'
|
|
22
|
+
C: Edit the seed-habits.json file directly in node_modules
|
|
23
|
+
D: Create a global override in `~/.paradigm/habits.yaml` — project-level overrides cannot change severity
|
|
24
|
+
E: Set `PARADIGM_HABIT_SEVERITY=block` environment variable
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: Project-level overrides in `.paradigm/habits.yaml` can change any field of a seed habit, including severity. The three-layer merge means project settings override global settings, which override seed defaults. You never edit seed habits directly.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: 'An agent''s practice profile shows: discovery compliance 95%, verification 40%, testing 30%. The agent frequently skips `verify-before-done` and `test-new-components`. What does this pattern reveal?'
|
|
29
|
+
choices:
|
|
30
|
+
A: The agent is good at exploring but poor at following through — it rushes to finish without validating
|
|
31
|
+
B: The discovery habits are too easy and should be made harder
|
|
32
|
+
C: The agent needs more seed habits in the testing category
|
|
33
|
+
D: This is a healthy pattern — discovery is the most important category
|
|
34
|
+
E: The verification and testing habits should be disabled since the agent skips them
|
|
35
|
+
correct: A
|
|
36
|
+
explanation: High discovery compliance with low verification and testing shows an agent that does good pre-work but doesn't follow through with validation. This is the 'explore well, ship hastily' antipattern. The fix is to upgrade verification and testing habits to `warn` or `block` severity, not to disable them.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: The `record-lore-for-significant` habit fires on which trigger and at what threshold?
|
|
39
|
+
choices:
|
|
40
|
+
A: '`preflight` — checks if lore was recorded in the previous session'
|
|
41
|
+
B: '`on-stop` — checks if lore was recorded when 3+ source files were modified'
|
|
42
|
+
C: '`postflight` — always checks for lore regardless of file count'
|
|
43
|
+
D: '`on-commit` — requires lore for every commit'
|
|
44
|
+
E: '`on-stop` — checks if lore was recorded when any files were modified'
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: The `record-lore-for-significant` habit triggers `on-stop` (before session end) and uses the `lore-recorded` check type, which fires when 3 or more source files were modified. This threshold captures significant sessions while ignoring trivial edits.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: Practice profiles show that skipping `wisdom-before-implement` correlates with a 3x incident rate. What action should the team take?
|
|
49
|
+
choices:
|
|
50
|
+
A: Disable the habit since it is not preventing incidents anyway
|
|
51
|
+
B: Upgrade its severity from `advisory` to `warn` or `block` based on the evidence
|
|
52
|
+
C: Add more discovery habits to compensate
|
|
53
|
+
D: The correlation is coincidental — ignore it
|
|
54
|
+
E: Move the habit from `preflight` to `on-stop` trigger
|
|
55
|
+
correct: B
|
|
56
|
+
explanation: Incident correlations provide concrete evidence for severity decisions. A 3x incident rate when skipping wisdom checks is strong evidence that the check prevents real problems. Upgrading to `warn` makes it visible; upgrading to `block` enforces it. This is the feedback loop in action — practice data drives policy changes.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-501-hook-enforcement
|
|
2
|
+
title: 'PARA 501: Advanced Systems — Hook Enforcement & Automation'
|
|
3
|
+
description: 'Quiz for lesson: Hook Enforcement & Automation'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-501
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-501.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: You modified 4 source files and updated one .purpose file but did not record a lore entry. The stop hook runs. What happens?
|
|
19
|
+
choices:
|
|
20
|
+
A: It passes — the .purpose update satisfies all requirements
|
|
21
|
+
B: 'It blocks on two violations: .purpose freshness for the other 3 files, and missing lore entry for a 4-file session'
|
|
22
|
+
C: It blocks only on the missing lore entry — 4 files exceeds the 3-file threshold
|
|
23
|
+
D: It passes — .purpose coverage is sufficient, lore is optional
|
|
24
|
+
E: It blocks only on .purpose freshness — the other 3 files need coverage
|
|
25
|
+
correct: C
|
|
26
|
+
explanation: The stop hook checks multiple conditions independently. The '.purpose freshness' check passes because you did update a .purpose file (the '2+ source files with 0 paradigm updates' check fails only when zero paradigm files were touched). However, 4 modified source files exceeds the 3-file lore recording threshold, so the missing lore entry causes a block. Whether the other files need .purpose coverage depends on whether they have covering .purpose files in ancestor directories.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: The post-write hook just fired after you edited `src/services/payment.ts`. Which of these files would it skip tracking?
|
|
29
|
+
choices:
|
|
30
|
+
A: '`src/services/payment.ts` — it tracks this file'
|
|
31
|
+
B: '`.paradigm/config.yaml` — it skips paradigm directory files'
|
|
32
|
+
C: '`src/middleware/auth.ts` — it would track this too'
|
|
33
|
+
D: '`package.json` — it skips .json files'
|
|
34
|
+
E: Both B and D are skipped
|
|
35
|
+
correct: E
|
|
36
|
+
explanation: The post-write hook skips non-source files (.json, .yaml, .md, .lock, .env, .gitignore) and paradigm directories (.paradigm/, .claude/, .cursor/). Both `.paradigm/config.yaml` (paradigm directory) and `package.json` (.json extension) are skipped. Only actual source code files like .ts, .js, .rs, .py are tracked in .pending-review.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: What does the pre-commit hook do, and can it block a commit?
|
|
39
|
+
choices:
|
|
40
|
+
A: Runs all habit checks and blocks if any severity=block habits are violated
|
|
41
|
+
B: Validates portal.yaml and blocks if gates are undefined
|
|
42
|
+
C: Rebuilds the symbol index and stages the updated files — never blocks
|
|
43
|
+
D: Checks .purpose freshness and blocks if files are stale
|
|
44
|
+
E: Records a lore entry for the commit — never blocks
|
|
45
|
+
correct: C
|
|
46
|
+
explanation: 'The pre-commit hook has a single job: rebuild the symbol index (`paradigm index --quiet`) and stage the rebuilt files (scan-index.json, navigator.yaml, flow-index.json) so they are included in the commit. It always exits 0 — it never blocks. This ensures every commit has a fresh index without manual intervention.'
|
|
47
|
+
- id: q4
|
|
48
|
+
question: The stop hook detects that `src/routes/api.ts` contains Express `.post()` calls but `portal.yaml` does not exist. What happens?
|
|
49
|
+
choices:
|
|
50
|
+
A: Advisory warning — portal.yaml is recommended but not required
|
|
51
|
+
B: The hook blocks — route patterns detected without portal.yaml is a violation
|
|
52
|
+
C: The hook skips this check — portal.yaml is only required for projects that already have one
|
|
53
|
+
D: The hook creates a minimal portal.yaml automatically
|
|
54
|
+
E: The hook blocks only if the route handles user data
|
|
55
|
+
correct: B
|
|
56
|
+
explanation: The stop hook scans modified files for route declaration patterns (`.get()`, `.post()`, etc.). If route patterns are found and portal.yaml was neither present in the project nor modified during the session, the hook blocks. This enforces the rule that all protected routes must be declared in portal.yaml.
|
|
57
|
+
- id: q5
|
|
58
|
+
question: 'You are blocked by the stop hook. The violations list shows: ''stale aspect anchor: src/old/audit.ts no longer exists''. How do you fix this?'
|
|
59
|
+
choices:
|
|
60
|
+
A: Delete the aspect from the .purpose file — aspects with stale anchors are invalid
|
|
61
|
+
B: Create an empty file at `src/old/audit.ts` to satisfy the anchor check
|
|
62
|
+
C: Update the anchor path in the .purpose file to point to the new location of the audit code
|
|
63
|
+
D: Run `paradigm_aspect_check` — it auto-fixes stale anchors
|
|
64
|
+
E: Ignore it — stale anchors are advisory only
|
|
65
|
+
correct: C
|
|
66
|
+
explanation: Aspects require valid code anchors. If the file was moved or renamed, update the anchor path in the .purpose file to point to the new location. If the code was deleted entirely, you may need to remove the aspect or create new enforcement code. Creating an empty file (B) is a hack that defeats the purpose. `paradigm_aspect_check` validates but doesn't auto-fix.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-501-lore-system
|
|
2
|
+
title: 'PARA 501: Advanced Systems — The Lore System'
|
|
3
|
+
description: 'Quiz for lesson: The Lore System'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-501
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-501.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: You just finished a 40-minute session where you added caching to the API, modifying 5 files and creating 2 new ones. You also decided to use Redis over in-memory caching. Which lore entry type is most appropriate?
|
|
19
|
+
choices:
|
|
20
|
+
A: '`paradigm_decision_record` for the Redis choice and skip the lore entry — the implementation rides along'
|
|
21
|
+
B: '`agent-session` — because this captures the full work session including the decision'
|
|
22
|
+
C: '`milestone` — because adding caching is a significant achievement'
|
|
23
|
+
D: '`review` — because you reviewed caching options before choosing'
|
|
24
|
+
E: '`human-note` — because you want to record the Redis rationale'
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: 'When you have both implementation work AND an architectural choice, record an `agent-session` lore entry whose `decisions` field captures the Redis-vs-in-memory rationale; for a *standalone* decision without implementation, use `paradigm_decision_record` (the v6.0 dedicated decision store — the `decision` lore type was removed). Choice A would be correct for a standalone decision, but here you also have 5 modified files and 2 created — that''s session work that needs an `agent-session` entry.'
|
|
27
|
+
- id: q2
|
|
28
|
+
question: Where does a lore entry created on February 21, 2026 (the third entry that day) get stored?
|
|
29
|
+
choices:
|
|
30
|
+
A: '`.paradigm/lore/L-2026-02-21-003.yaml`'
|
|
31
|
+
B: '`.paradigm/lore/entries/2026-02-21/L-2026-02-21-003.yaml`'
|
|
32
|
+
C: '`.paradigm/lore/entries/L-2026-02-21-003.yaml`'
|
|
33
|
+
D: '`.paradigm/lore/2026/02/21/003.yaml`'
|
|
34
|
+
E: '`.paradigm/history/lore/2026-02-21-003.yaml`'
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: 'Lore uses date-partitioned storage: `.paradigm/lore/entries/{YYYY-MM-DD}/L-{date}-{NNN}.yaml`. The date directory groups entries by day, and the sequence number (003) auto-increments within each day.'
|
|
37
|
+
- id: q3
|
|
38
|
+
question: You want to find all lore entries related to the payment system from the last month. Which MCP tool and approach is correct?
|
|
39
|
+
choices:
|
|
40
|
+
A: '`paradigm_lore_timeline` with a symbol filter'
|
|
41
|
+
B: '`paradigm_lore_search` with `symbol: ''#payment-service''` and `dateFrom` set to 30 days ago'
|
|
42
|
+
C: '`paradigm_search` with `query: ''payment''` and `type: ''lore''`'
|
|
43
|
+
D: Read all files in `.paradigm/lore/entries/` and grep for 'payment'
|
|
44
|
+
E: '`paradigm_lore_record` with a search query parameter'
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: '`paradigm_lore_search` accepts filters including `symbol` (to match entries that touched a specific symbol) and `dateFrom`/`dateTo` for time ranges. `paradigm_lore_timeline` gives a high-level overview but doesn''t support detailed filtering. `paradigm_search` searches the symbol index, not lore entries.'
|
|
47
|
+
- id: q4
|
|
48
|
+
question: An agent modified 2 source files and did not record a lore entry. What happens at session end?
|
|
49
|
+
choices:
|
|
50
|
+
A: The stop hook blocks the session — all modifications require lore entries
|
|
51
|
+
B: Nothing — the 2-file threshold is below the recording trigger
|
|
52
|
+
C: A warning is issued but the session completes normally
|
|
53
|
+
D: The system auto-generates a lore entry from the git diff
|
|
54
|
+
E: The post-write hook retroactively creates a minimal entry
|
|
55
|
+
correct: B
|
|
56
|
+
explanation: The lore recording threshold is 3+ modified source files. With only 2 files modified, the session is not considered significant enough to require a lore entry. The stop hook only enforces lore recording when 3 or more source files were modified.
|
|
57
|
+
- id: q5
|
|
58
|
+
question: 'A team lead reviews a lore entry and gives it completeness: 3, quality: 5. What does this tell you?'
|
|
59
|
+
choices:
|
|
60
|
+
A: The entry is high quality but missing some information about what was done
|
|
61
|
+
B: The entry is poorly written but covers everything
|
|
62
|
+
C: The review scores are contradictory and invalid
|
|
63
|
+
D: The entry should be deleted and re-recorded
|
|
64
|
+
E: Both scores must be the same for a valid review
|
|
65
|
+
correct: A
|
|
66
|
+
explanation: Completeness and quality are independent scores. A completeness of 3 means the entry is missing some details (perhaps decisions weren't documented or files weren't fully listed). A quality of 5 means what IS there is excellent — well-written, accurate, and useful. The review suggests the entry should be enriched with more detail while preserving its good writing.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-501-platform-agent-ui
|
|
2
|
+
title: 'PARA 501: Advanced Systems — Platform & Agent-Driven UI'
|
|
3
|
+
description: 'Quiz for lesson: Platform & Agent-Driven UI'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-501
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-501.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: 'An AI agent calls `paradigm_platform_navigate({ section: ''graph'', symbol: ''#payment-service'' })` while the user is actively typing in the lore section. What happens in the browser?'
|
|
19
|
+
choices:
|
|
20
|
+
A: The browser immediately switches to the graph section and selects the node
|
|
21
|
+
B: The command fails with an error because the user is in a different section
|
|
22
|
+
C: 'A prompt appears: ''Agent wants to show you #payment-service — [Go there] [Dismiss]'' — the user decides'
|
|
23
|
+
D: The agent's command is queued and executes when the user next switches sections
|
|
24
|
+
E: The browser switches to graph but keeps the lore section visible in a split view
|
|
25
|
+
correct: C
|
|
26
|
+
explanation: 'When the user is active (last interaction <5s ago), the agent''s navigation creates a pending navigation prompt instead of auto-navigating. The user sees ''Agent wants to show you #payment-service — [Go there] [Dismiss]'' and chooses whether to follow. This is the conflict resolution model: user always wins.'
|
|
27
|
+
- id: q2
|
|
28
|
+
question: What is the communication pipeline when an MCP tool like `paradigm_platform_highlight` sends a command to the browser?
|
|
29
|
+
choices:
|
|
30
|
+
A: MCP tool → direct WebSocket connection to browser → UI update
|
|
31
|
+
B: MCP tool → writes to file → browser polls file every 500ms → UI update
|
|
32
|
+
C: MCP tool → HTTP POST to Platform server → server broadcasts via WebSocket → browser Zustand store → UI update
|
|
33
|
+
D: MCP tool → writes to scan-index.json → browser watches index file → UI update
|
|
34
|
+
E: MCP tool → sends message via Symphony mailbox → browser reads mailbox → UI update
|
|
35
|
+
correct: C
|
|
36
|
+
explanation: The pipeline is MCP → HTTP POST → WebSocket broadcast → browser. The MCP tool calls the platform-bridge helper which POSTs to /api/platform/agent-command. The server validates the command, updates server-side state (presence, highlights), and broadcasts a typed WebSocket message (e.g., agent:highlight) to all connected browsers. The browser's useAgentEffects hook receives the message and dispatches to the Zustand agentStore.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: 'The user clicks the ''Mute'' button in the Platform header. An agent then calls `paradigm_platform_annotate({ type: ''toast'', message: ''Found a bug in #auth'' })`. What happens?'
|
|
39
|
+
choices:
|
|
40
|
+
A: The toast appears but with reduced opacity
|
|
41
|
+
B: 'The command returns `{ annotated: false, reason: ''Agent actions are muted by user'' }` and no toast appears'
|
|
42
|
+
C: The toast is queued and shown when the user unmutes
|
|
43
|
+
D: The command throws an error that the agent must handle
|
|
44
|
+
E: The toast appears regardless — mute only affects navigation, not annotations
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: 'When the user mutes agent actions, ALL agent effects are silently discarded — navigate, highlight, annotate, and clear commands all return a response with `reason: ''Agent actions are muted by user''`. The server checks UserStateTracker.isMuted() before broadcasting. The agent can detect this via `paradigm_platform_observe` which returns `{ muted: true }`.'
|
|
47
|
+
- id: q4
|
|
48
|
+
question: How does the Platform determine an agent's display color in the header presence indicator?
|
|
49
|
+
choices:
|
|
50
|
+
A: Each agent chooses its color when connecting via WebSocket
|
|
51
|
+
B: Colors are assigned sequentially from a fixed palette (first agent = blue, second = green, etc.)
|
|
52
|
+
C: The color is deterministically computed from a hash of the agent's Symphony identity string ({project}/{role})
|
|
53
|
+
D: Colors are stored in .paradigm/config.yaml under platform.agentColors
|
|
54
|
+
E: All agents share the same color — they're distinguished by name only
|
|
55
|
+
correct: C
|
|
56
|
+
explanation: 'Agent colors are deterministic: the AgentPresenceManager computes a hash of the agentId string (e.g., ''a-paradigm/core'') and maps it to one of 8 predefined colors. This means the same agent always gets the same color across sessions, making it recognizable. The identity reuses Symphony''s {project}/{role} pattern.'
|
|
57
|
+
- id: q5
|
|
58
|
+
question: An agent wants to understand what the user is currently looking at before deciding what to highlight. Which approach is correct?
|
|
59
|
+
choices:
|
|
60
|
+
A: Read the platformStore.ts file to check the activeSection variable
|
|
61
|
+
B: Call `paradigm_platform_observe()` which returns the current section, selected symbol, theme, mute state, and connected agents
|
|
62
|
+
C: Call `paradigm_status` which includes the Platform UI state in its output
|
|
63
|
+
D: Check the browser's localStorage via a Bash command
|
|
64
|
+
E: 'Call `paradigm_navigate({ intent: ''context'' })` which includes Platform UI state'
|
|
65
|
+
correct: B
|
|
66
|
+
explanation: 'paradigm_platform_observe is the dedicated tool for reading UI state. It sends an ''observe'' command to the Platform server, which returns the UserStateTracker''s accumulated state: current section, selected symbol, theme, mute status, connected agents, and optionally active highlights/annotations. This is real-time data from the server, not a file read.'
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
id: Q-para-501-review-compliance
|
|
2
|
+
title: 'PARA 501: Advanced Systems — Automated Review Pipeline & Compliance Checking'
|
|
3
|
+
description: 'Quiz for lesson: Automated Review Pipeline & Compliance Checking'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-501
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-501.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: Q-501-RC-001
|
|
18
|
+
question: paradigm review --ci finds 2 blocking and 3 improvement findings. What's the exit code?
|
|
19
|
+
options:
|
|
20
|
+
- Exit code 0 — improvements are non-blocking
|
|
21
|
+
- Exit code 1 — any blocking findings cause non-zero exit in CI mode
|
|
22
|
+
- Exit code 2 — one per blocking finding
|
|
23
|
+
- Exit code 5 — total findings count
|
|
24
|
+
correct: 1
|
|
25
|
+
explanation: In CI mode, any blocking findings cause exit code 1. Improvements and notes do not affect the exit code.
|
|
26
|
+
- id: Q-501-RC-002
|
|
27
|
+
question: 'A project has no features: section in config.yaml. How many MCP tools are loaded?'
|
|
28
|
+
options:
|
|
29
|
+
- Only core tools (~15)
|
|
30
|
+
- Core + explicitly enabled features
|
|
31
|
+
- All of them — auto-detection is generous, defaulting to current behavior
|
|
32
|
+
- None — features must be explicitly configured
|
|
33
|
+
correct: 2
|
|
34
|
+
explanation: No features config + generous auto-detection = all tools loaded, matching pre-4.0 behavior for backward compat.
|
|
35
|
+
- id: Q-501-RC-003
|
|
36
|
+
question: 'You call paradigm_search with response_format: ''concise''. What fields are returned?'
|
|
37
|
+
options:
|
|
38
|
+
- Full results with descriptions, paths, and fuzzy matches
|
|
39
|
+
- Only { symbol, type } per result — descriptions and secondary data stripped
|
|
40
|
+
- Only symbol names as a flat array
|
|
41
|
+
- Compressed binary format
|
|
42
|
+
correct: 1
|
|
43
|
+
explanation: Concise mode strips results to { symbol, type } per entry and removes fuzzyMatched, fuzzyNote, suggestions, workspace data.
|
|
44
|
+
- id: Q-501-RC-004
|
|
45
|
+
question: An agent needs the graph generation tool but it's in the advanced tier. What does it do?
|
|
46
|
+
options:
|
|
47
|
+
- Request an admin to enable it in config.yaml
|
|
48
|
+
- 'Call paradigm_tool_activate with feature: ''graph'''
|
|
49
|
+
- Modify the agent's permissions to include graph tools
|
|
50
|
+
- Restart the session with --enable-graph flag
|
|
51
|
+
correct: 1
|
|
52
|
+
explanation: paradigm_tool_activate enables advanced-tier modules for the current session. The tools become available immediately.
|
|
53
|
+
- id: Q-501-RC-005
|
|
54
|
+
question: What's the relationship between paradigm review Stage 1 and paradigm_pm_postflight?
|
|
55
|
+
options:
|
|
56
|
+
- They are completely independent with different checks
|
|
57
|
+
- paradigm review calls paradigm_pm_postflight internally
|
|
58
|
+
- They share the same compliance logic extracted into compliance-checker.ts
|
|
59
|
+
- paradigm_pm_postflight is deprecated in favor of paradigm review
|
|
60
|
+
correct: 2
|
|
61
|
+
explanation: Both use compliance-checker.ts for shared compliance logic — purpose coverage, portal gates, aspect anchors, and broken refs.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
id: Q-para-501-sentinel-deep-dive
|
|
2
|
+
title: 'PARA 501: Advanced Systems — Sentinel Deep Dive'
|
|
3
|
+
description: 'Quiz for lesson: Sentinel Deep Dive'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-501
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-501.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: An incident record shows `flowPosition.actual` has 3 entries and `flowPosition.expected` has 5. The `failedAt` field points to the third step. What does this tell you?
|
|
19
|
+
choices:
|
|
20
|
+
A: Three out of five flow steps completed successfully before the failure
|
|
21
|
+
B: The flow is missing 2 step definitions and needs to be updated
|
|
22
|
+
C: The third step failed, preventing the last 2 steps (including their signals) from executing
|
|
23
|
+
D: Only the last 2 steps need to be investigated
|
|
24
|
+
E: The flow validation is broken and should be re-run
|
|
25
|
+
correct: C
|
|
26
|
+
explanation: The `actual` array shows what actually executed, `expected` shows what should have. Three steps executed, meaning the first two succeeded and the third (`failedAt`) is where the failure occurred. The remaining 2 expected steps (in `missing`) never ran because execution stopped at the failure point.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: 'A failure pattern has confidence scores: timesMatched=20, timesResolved=15, timesRecurred=5. What does a recurrence rate of 25% suggest?'
|
|
29
|
+
choices:
|
|
30
|
+
A: The pattern is highly effective and should be trusted
|
|
31
|
+
B: The resolution strategy may not fully address the root cause — the fix works sometimes but the issue returns
|
|
32
|
+
C: The pattern's matching criteria are too broad and catching unrelated incidents
|
|
33
|
+
D: 25% is normal and healthy for any pattern
|
|
34
|
+
E: The pattern should be deleted and replaced
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: timesRecurred (5) out of timesResolved (15) gives a 33% recurrence rate after resolution. This suggests the resolution strategy addresses symptoms but not the root cause. The pattern still has value (it resolves 67% permanently), but the resolution description should be updated with a more thorough fix, or a second pattern created for the recurring variant.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: You receive a 2 AM production alert. What is the correct Sentinel-powered response sequence?
|
|
39
|
+
choices:
|
|
40
|
+
A: '`paradigm_sentinel_triage` → `paradigm_sentinel_record` → fix → `paradigm_sentinel_resolve`'
|
|
41
|
+
B: '`paradigm_sentinel_record` → `paradigm_sentinel_patterns` → `paradigm_wisdom_context` → fix → `paradigm_sentinel_resolve`'
|
|
42
|
+
C: '`paradigm_status` → read all files → find bug → `paradigm_sentinel_record`'
|
|
43
|
+
D: '`paradigm_sentinel_stats` → identify hotspot → fix → `paradigm_sentinel_resolve`'
|
|
44
|
+
E: '`paradigm_sentinel_record` → `paradigm_orchestrate_inline` → deploy agents → wait'
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: First, record the incident with `paradigm_sentinel_record` to start the clock and capture the error. Then check `paradigm_sentinel_patterns` for known fixes — this could save hours if the failure matches an existing pattern. Then check `paradigm_wisdom_context` for antipatterns on the failing component. Fix with full context, then resolve. Recording first is critical — you can't triage what you haven't recorded.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: Sentinel ships with 26 seed patterns. Which pattern source would a team-created pattern from a post-mortem use?
|
|
49
|
+
choices:
|
|
50
|
+
A: '`community`'
|
|
51
|
+
B: '`imported`'
|
|
52
|
+
C: '`manual`'
|
|
53
|
+
D: '`suggested`'
|
|
54
|
+
E: '`seed`'
|
|
55
|
+
correct: C
|
|
56
|
+
explanation: 'Patterns have four sources: `manual` (team-created), `suggested` (auto-generated by Sentinel from incident groups), `imported` (from another project), and `community` (shared open-source patterns). A pattern created by the team during a post-mortem is `manual`. The seed patterns that ship with Paradigm use `manual` source as well.'
|
|
57
|
+
- id: q5
|
|
58
|
+
question: Two incidents share the same component (#auth-service) and error type (TypeError) but different flows. Sentinel's similarity threshold is 0.6. Will they be grouped?
|
|
59
|
+
choices:
|
|
60
|
+
A: Yes — sharing a component and error type exceeds the 0.6 threshold
|
|
61
|
+
B: No — different flows always prevent grouping
|
|
62
|
+
C: It depends on what other symbolic context they share — 0.6 means 60% overlap required
|
|
63
|
+
D: Only if they occurred within the same hour
|
|
64
|
+
E: Only if a human manually groups them
|
|
65
|
+
correct: C
|
|
66
|
+
explanation: The 0.6 similarity threshold means 60% of symbolic context must overlap. Sharing a component and error type provides some overlap, but different flows reduce it. Whether they cross 0.6 depends on other shared context — same gate, same environment, similar error message. Grouping is automatic but similarity-driven, not based on any single field.
|
|
67
|
+
- id: q6
|
|
68
|
+
question: How do you connect the Paradigm logger to Sentinel's observability pipeline?
|
|
69
|
+
choices:
|
|
70
|
+
A: Replace all `log.component()` calls with `sentinel.log()` calls throughout your codebase
|
|
71
|
+
B: 'Call `enableSentinel({ endpoint: ''...'' })` once — it registers a SentinelTransport via addTransport with zero changes to existing logging code'
|
|
72
|
+
C: Configure a `sentinel` key in `.paradigm/config.yaml` and restart the application
|
|
73
|
+
D: Import SentinelTransport in every file that uses the logger
|
|
74
|
+
E: Set the `SENTINEL_ENDPOINT` environment variable — the logger auto-detects it
|
|
75
|
+
correct: B
|
|
76
|
+
explanation: The SentinelTransport bridge is designed for zero-code-change adoption. Calling `enableSentinel()` once creates a SentinelTransport and registers it with the logger via `addTransport`. From that point, all existing `log.component()`, `log.gate()`, and `log.signal()` calls are automatically forwarded to Sentinel. No changes to individual logging calls are needed.
|
|
77
|
+
- id: q7
|
|
78
|
+
question: You want to track API response latency in Sentinel. Which metric type should you use?
|
|
79
|
+
choices:
|
|
80
|
+
A: '`counter` — increment it by the latency value on each request'
|
|
81
|
+
B: '`gauge` — set it to the current response time'
|
|
82
|
+
C: '`histogram` — record each response time to build a distribution over time'
|
|
83
|
+
D: '`timer` — Sentinel has a dedicated timer metric type for latency'
|
|
84
|
+
E: '`counter` with a `latency` label containing the value'
|
|
85
|
+
correct: C
|
|
86
|
+
explanation: Histogram is the correct metric type for distributions like response latency. A histogram records individual values and lets you compute percentiles (p50, p95, p99), averages, and distributions over time. A counter only tracks cumulative totals, a gauge only captures point-in-time snapshots, and there is no dedicated timer type — histograms serve that purpose.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-501-session-intelligence
|
|
2
|
+
title: 'PARA 501: Advanced Systems — Session Intelligence'
|
|
3
|
+
description: 'Quiz for lesson: Session Intelligence'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-501
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-501.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: You have finished implementing a feature and are about to write tests. Which checkpoint phase should you save?
|
|
19
|
+
choices:
|
|
20
|
+
A: '`implementing` — you just finished implementing'
|
|
21
|
+
B: '`validating` — you are transitioning from implementation to validation'
|
|
22
|
+
C: '`complete` — the feature code is done'
|
|
23
|
+
D: '`testing` — you are about to test'
|
|
24
|
+
E: '`planning` — you need to plan the tests first'
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: Checkpoint at the phase you are entering, not the one you are leaving. The `validating` phase captures the state after implementation is complete but before tests/review. If the session crashes now, recovery knows implementation is done and testing is the next step. `complete` is only for when everything (including tests) is finished.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: What is the maximum number of breadcrumbs stored, and what happens when the limit is reached?
|
|
29
|
+
choices:
|
|
30
|
+
A: 100 breadcrumbs, then the file is archived and a new one starts
|
|
31
|
+
B: 50 breadcrumbs, then the oldest are dropped as new ones are added
|
|
32
|
+
C: Unlimited — breadcrumbs grow until the session ends
|
|
33
|
+
D: 50 breadcrumbs, then tracking stops until the next session
|
|
34
|
+
E: 25 breadcrumbs per phase, resetting at each checkpoint
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: Breadcrumbs have a hard cap of 50 entries with auto-rotation — when the 51st breadcrumb is recorded, the oldest one is dropped. This keeps the file small and focused on recent activity while still providing enough trail for meaningful recovery.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: A team discovers that 'always validate JWT expiry before refresh' prevents bugs across 4 different projects. What should they do?
|
|
39
|
+
choices:
|
|
40
|
+
A: Add the wisdom to each project's `.paradigm/wisdom/` individually
|
|
41
|
+
B: Use `paradigm_wisdom_promote` to move it to `~/.paradigm/wisdom/` for global scope
|
|
42
|
+
C: Create a new seed habit for JWT validation
|
|
43
|
+
D: Add it to the CLAUDE.md file in each project
|
|
44
|
+
E: Record it as a lore entry in the most recent project
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: When wisdom proves valuable across multiple projects, `paradigm_wisdom_promote` copies it from project scope (`.paradigm/wisdom/`) to global scope (`~/.paradigm/wisdom/`). This makes it available automatically in every future session across all projects. Adding it individually (A) or to CLAUDE.md (D) works but doesn't leverage the Global Brain.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: Your session is at 82% context usage. What should you do?
|
|
49
|
+
choices:
|
|
50
|
+
A: Continue working — 82% is still plenty of room
|
|
51
|
+
B: Immediately stop and call `paradigm_handoff_prepare` with summary and next steps
|
|
52
|
+
C: Call `paradigm_session_health` to confirm, then proactively prepare a handoff while finishing current work
|
|
53
|
+
D: Delete old messages to free up context space
|
|
54
|
+
E: Save a checkpoint and keep working until 95%
|
|
55
|
+
correct: C
|
|
56
|
+
explanation: At 80-85%, the recommendation is proactive handoff preparation. Call `paradigm_session_health` to confirm the recommendation, then prepare the handoff with `paradigm_handoff_prepare` while completing your current task. Waiting until 95% (E) risks running out of context mid-task. The sweet spot is preparing the handoff while you still have room to finish current work cleanly.
|
|
57
|
+
- id: q5
|
|
58
|
+
question: A new session starts and the agent calls `paradigm_status`. What happens with session recovery?
|
|
59
|
+
choices:
|
|
60
|
+
A: The agent must explicitly call `paradigm_session_recover` — recovery is never automatic
|
|
61
|
+
B: Recovery data is automatically surfaced on the first Paradigm tool call
|
|
62
|
+
C: Recovery only works if the previous session saved a checkpoint
|
|
63
|
+
D: The agent must read `.paradigm/session-checkpoint.json` manually
|
|
64
|
+
E: Recovery data is shown only if the previous session crashed
|
|
65
|
+
correct: B
|
|
66
|
+
explanation: Auto-recovery is triggered on the first Paradigm MCP tool call in a new session — whether that is `paradigm_status`, `paradigm_navigate`, or any other tool. The system surfaces the last checkpoint and recent breadcrumbs without the agent needing to explicitly request recovery. This ensures continuity even if the agent doesn't know to ask.
|