@a-company/paradigm 5.37.11 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accept-orchestration-SBZVK3H4.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/{aggregate-W66DM3GA.js → aggregate-A5S5MTCC.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/{beacon-5QVYV5DF.js → beacon-QVUD3MGP.js} +1 -1
- package/dist/{calibration-OLJYB5HN.js → calibration-BDHGYJOK.js} +1 -1
- package/dist/{chunk-SI6SV76D.js → chunk-3DZK54RU.js} +72 -19
- package/dist/{chunk-CHVQNRRT.js → chunk-4PSD5R7N.js} +2 -2
- package/dist/chunk-6SKSV5B2.js +24 -0
- package/dist/{chunk-KFNHCQ4R.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-LPBCQM5Y.js +6 -0
- package/dist/{chunk-T6IDXUUA.js → chunk-LWAIVOSF.js} +1 -1
- 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-SUU6M4JH.js → chunk-TOYQ2QCB.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-LBQBWIEX.js → chunk-Y4P4SGZV.js} +1 -1
- package/dist/{chunk-DOCDDDTD.js → chunk-YNDPSWOE.js} +5 -5
- package/dist/chunk-Z5QW6USC.js +2 -0
- package/dist/chunk-ZJQY5PPP.js +7 -0
- package/dist/{commands-LMUD5L6R.js → commands-ANRJNG2W.js} +1 -1
- package/dist/compliance-BNFWQPKM.js +6 -0
- package/dist/config-schema-FLHRVZMI.js +2 -0
- package/dist/{constellation-CG7C4WFE.js → constellation-NWLXYATA.js} +1 -1
- package/dist/{context-audit-XRPT3OU2.js → context-audit-JVCA6GSV.js} +1 -1
- package/dist/{cost-IDNVMAEV.js → cost-24UZSS2P.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-JVEYCXUC.js → diff-MF55KQZH.js} +1 -1
- package/dist/{dist-KGRCLBJP-2QAPFYNF.js → dist-GQ42YS5N-4HIJZVBB.js} +10 -10
- package/dist/dist-JZZJLVMR.js +2 -0
- package/dist/{dist-3ZCH25SG.js → dist-OG6MM4VY.js} +1 -1
- package/dist/dist-SE67SOXB.js +2 -0
- 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-POQP27WA.js → flow-BGXOVE2V.js} +1 -1
- package/dist/{hooks-IG2GOAHP.js → hooks-TFMMMB2H.js} +1 -1
- package/dist/index.js +6 -6
- package/dist/init-M44SO65G.js +2 -0
- package/dist/init-V4KSEKPK.js +2 -0
- package/dist/{integrity-UYDOOJDP.js → integrity-ROO3G43N.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 +19 -11
- package/dist/metrics-UESGUHTA.js +2 -0
- package/dist/{migrate-IBDE7VK4.js → migrate-Z5UQN57G.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/{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-RCAMBOIB.js → orchestrate-RID7HHHH.js} +1 -1
- package/dist/{platform-server-DNAMH4YI.js → platform-server-UD45NTGV.js} +1 -1
- package/dist/portal-check-DV2VSJ5E.js +8 -0
- package/dist/{portal-compliance-4MG5F2GI.js → portal-compliance-JONQ4SOP.js} +1 -1
- package/dist/{probe-B22G2JKF.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/{review-6UAH6V3R.js → review-VMSX2PKI.js} +1 -1
- package/dist/{ripple-ZGDITCGB.js → ripple-FNZI47SH.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/sentinel.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-3F5IK7MO.js → setup-ZSEC72BS.js} +2 -2
- package/dist/{shift-FDADESC4.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/{snapshot-L2G56RPL.js → snapshot-3IYB67D4.js} +1 -1
- package/dist/{spawn-M5BAV252.js → spawn-UH5RENSE.js} +1 -1
- package/dist/{status-77M3SDIF.js → status-DB3KNLW3.js} +1 -1
- package/dist/status-S7Z5FVIE.js +6 -0
- package/dist/{summary-LXLHFRN7.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-MGT66HZQ.js +2 -0
- package/dist/{test-BQJMS4Y2.js → test-WLEPZQFC.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-VZXTJHGO.js → validate-BB6LRWIY.js} +1 -1
- package/dist/validate-XUQZTF3H.js +9 -0
- package/dist/{watch-YCODNIET.js → watch-25GJHQYT.js} +1 -1
- package/dist/workspace-VMSPYIBV.js +2 -0
- 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 +3 -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/templates/paradigm/specs/symbols.md +4 -2
- package/dist/add-P76GEMGF.js +0 -8
- package/dist/chunk-3TR6LLXP.js +0 -111
- package/dist/chunk-G7XFK2GI.js +0 -11
- package/dist/chunk-J6KWGCHN.js +0 -24
- package/dist/chunk-JQKKVAAN.js +0 -2
- package/dist/chunk-ODVKPZZ4.js +0 -2
- package/dist/chunk-Q2J542ST.js +0 -2
- package/dist/chunk-QT2LKB3P.js +0 -7
- package/dist/chunk-SHD27BQX.js +0 -6
- package/dist/chunk-WS2N27RX.js +0 -3
- package/dist/chunk-YT52WLBF.js +0 -521
- package/dist/compliance-WJINB5DM.js +0 -6
- package/dist/config-schema-GUQY2QN7.js +0 -2
- package/dist/decision-loader-2XPZE4EZ.js +0 -2
- package/dist/dist-R3RWD35F.js +0 -2
- package/dist/dist-VXCZWVVJ.js +0 -2
- package/dist/doctor-QJ47XAUP.js +0 -2
- package/dist/init-HIBRSVUB.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-check-Z3OCQEQR.js +0 -8
- package/dist/quiz-FE5UGAY2.js +0 -10
- package/dist/reindex-FO5VMZVQ.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/team-NSP6PMPS.js +0 -2
- package/dist/tools-CERDNVCG.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/dist/workspace-MKSQN7B2.js +0 -2
- 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,66 @@
|
|
|
1
|
+
id: Q-para-501-advanced-workflows
|
|
2
|
+
title: 'PARA 501: Advanced Systems — The Complete Workflow'
|
|
3
|
+
description: 'Quiz for lesson: The Complete Workflow'
|
|
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: In the complete workflow, why does `paradigm_habits_check(preflight)` run BEFORE `paradigm_ripple` and `paradigm_wisdom_context`?
|
|
19
|
+
choices:
|
|
20
|
+
A: To block the session if discovery habits were violated in the previous session
|
|
21
|
+
B: To verify that the agent intends to call discovery tools — the habit check reminds and tracks, while the actual tools provide the context
|
|
22
|
+
C: Because habits must always run first regardless of workflow position
|
|
23
|
+
D: To generate the list of symbols that ripple and wisdom should check
|
|
24
|
+
E: The order does not matter — they can run in any sequence
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: The preflight habits check evaluates whether discovery habits (ripple, navigate, wisdom) are being followed. It runs early to remind and track compliance. The actual MCP tools (ripple, wisdom_context) run after to provide the substantive context. The habit check is about behavioral discipline; the tools are about information gathering.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: An agent implements a feature, updates .purpose files, but forgets to record lore before committing. The session modified 5 source files. What sequence of events occurs?
|
|
29
|
+
choices:
|
|
30
|
+
A: Pre-commit hook blocks the commit until lore is recorded
|
|
31
|
+
B: Stop hook blocks, citing missing lore entry → agent records lore → re-attempts commit → stop hook passes
|
|
32
|
+
C: Commit succeeds but the next session receives a warning about missing lore
|
|
33
|
+
D: The post-write hook retroactively creates a lore entry from tracked files
|
|
34
|
+
E: The commit succeeds — lore is enforced by habits, not hooks
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: The stop hook checks for lore entries when 3+ source files were modified. With 5 files and no lore entry, it blocks. The agent must then call `paradigm_lore_record` with the session summary, and re-attempt the commit. The pre-commit hook only rebuilds the index — it doesn't check compliance. Lore enforcement lives in the stop hook.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: How does Sentinel benefit from the Habits system?
|
|
39
|
+
choices:
|
|
40
|
+
A: Sentinel directly calls habit checks during incident recording
|
|
41
|
+
B: Practice profiles show correlations between skipped habits and incident rates, providing evidence for severity upgrades
|
|
42
|
+
C: Habits automatically resolve Sentinel incidents when compliance is high
|
|
43
|
+
D: Sentinel and Habits are independent systems with no interaction
|
|
44
|
+
E: Habits disable Sentinel checks when compliance is above 90%
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: The feedback loop between Habits and Sentinel works through practice profiles. When an agent frequently skips `ripple-before-modify` and the symbols it touches have higher incident rates, the practice profile surfaces this correlation. This provides data-driven evidence to upgrade the habit's severity from advisory to warn or block — closing the loop between behavior and outcomes.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: What is the relationship between Lore entries and Session checkpoints?
|
|
49
|
+
choices:
|
|
50
|
+
A: They are the same thing — checkpoints are stored as lore entries
|
|
51
|
+
B: Checkpoints are ephemeral (7-day expiry) for crash recovery; lore entries are permanent for institutional memory
|
|
52
|
+
C: Lore entries are auto-generated from checkpoints at session end
|
|
53
|
+
D: Checkpoints replace lore entries in Paradigm v2
|
|
54
|
+
E: Lore entries expire after 30 days; checkpoints are permanent
|
|
55
|
+
correct: B
|
|
56
|
+
explanation: 'Checkpoints and lore serve different purposes with different lifespans. Checkpoints are ephemeral snapshots for crash recovery — they expire after 7 days because their value is immediate continuity. Lore entries are permanent project history — they capture decisions, learnings, and context that remain valuable months or years later. You need both: checkpoints for resilience, lore for memory.'
|
|
57
|
+
- id: q5
|
|
58
|
+
question: A team's practice profile shows high compliance across all categories, yet incidents keep occurring in `#payment-service`. What system should they investigate?
|
|
59
|
+
choices:
|
|
60
|
+
A: Habits — add more habits targeting the payment service
|
|
61
|
+
B: Hooks — the stop hook might not be running for payment-related changes
|
|
62
|
+
C: Sentinel — check `paradigm_sentinel_patterns` and `paradigm_sentinel_stats` for the symbol to identify recurring failure patterns and resolution gaps
|
|
63
|
+
D: Lore — the payment service lore entries might be inaccurate
|
|
64
|
+
E: Session Intelligence — breadcrumbs might be losing payment context
|
|
65
|
+
correct: C
|
|
66
|
+
explanation: High habit compliance means the behavioral discipline is fine — agents are doing the right things. If incidents persist despite good practices, the issue is likely in the code or architecture, not the process. Sentinel's pattern analysis (`paradigm_sentinel_patterns`) can reveal if the same failure keeps recurring despite resolutions, and `paradigm_sentinel_stats` can show the symbol's incident rate and resolution effectiveness. The answer lives in the incident data, not the compliance data.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-501-aspect-graph-advanced
|
|
2
|
+
title: 'PARA 501: Advanced Systems — The Aspect Graph at Scale'
|
|
3
|
+
description: 'Quiz for lesson: The Aspect Graph at Scale'
|
|
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: How many built-in detectors does paradigm_aspect_suggest_scan use, and which of these is NOT one of them?
|
|
19
|
+
choices:
|
|
20
|
+
A: 8 built-in detectors; 'database schema' is not one of them
|
|
21
|
+
B: 6 built-in detectors; 'magic numbers' is not one of them
|
|
22
|
+
C: 8 built-in detectors; 'rate limits' IS one of them (trick question)
|
|
23
|
+
D: 10 built-in detectors; 'feature flags' is not one of them
|
|
24
|
+
E: 5 built-in detectors; 'environment checks' is not one of them
|
|
25
|
+
correct: A
|
|
26
|
+
explanation: 'paradigm_aspect_suggest_scan uses 8 built-in detectors: magic numbers, hardcoded strings, rate limits, time values, environment checks, feature flags, regex patterns, and assertion guards. ''Database schema'' is not among them. Custom detectors can be added via .paradigm/aspect-detectors.yaml to extend the detection system.'
|
|
27
|
+
- id: q2
|
|
28
|
+
question: 'You want to find all rules that enforce constraints on #payment-service through the aspect graph. Which query approach is most effective?'
|
|
29
|
+
choices:
|
|
30
|
+
A: 'paradigm_aspect_search({ query: ''payment rules'' }) to find them by text'
|
|
31
|
+
B: 'paradigm_aspect_graph({ symbol: ''#payment-service'', hops: 1 }) filtered by ''enforced-by'' edge relation'
|
|
32
|
+
C: 'paradigm_aspect_heatmap({ limit: 100 }) and manually scan for payment-related aspects'
|
|
33
|
+
D: 'paradigm_aspect_drift({ aspectId: ''#payment-service'' }) to find stale rules'
|
|
34
|
+
E: 'paradigm_ripple({ symbol: ''#payment-service'' }) without any graph filtering'
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: An edge-filtered graph query at 1 hop with the 'enforced-by' relation is the most direct approach. It returns exactly the aspects that enforce rules on the target component. Search (A) finds by text, not by graph relationship. Heatmap (C) ranks by usage, not by target. Drift (D) checks anchor freshness, not relationships.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: Your CI pipeline should fail when aspect anchors have drifted. Which command configuration achieves this?
|
|
39
|
+
choices:
|
|
40
|
+
A: paradigm doctor with no flags — drift is always a blocking error
|
|
41
|
+
B: paradigm doctor --strict — treats drifted anchors as errors that cause a non-zero exit code
|
|
42
|
+
C: paradigm scan --fix — automatically fixes drifted anchors
|
|
43
|
+
D: paradigm_aspect_drift with no arguments — checks all aspects and exits non-zero on drift
|
|
44
|
+
E: paradigm lint --strict — lint checks include drift detection
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: paradigm doctor --strict treats warnings (including drifted anchors) as errors, producing a non-zero exit code that fails the CI step. Without --strict, drifted anchors are warnings that do not block. paradigm scan rebuilds the index but does not check drift. paradigm lint checks .purpose file structure, not anchor content hashes.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: A new project's aspect search always falls to Tier 3 (fuzzy matching). How do you warm the learning system so common queries use Tier 1?
|
|
49
|
+
choices:
|
|
50
|
+
A: Manually edit the search_weights SQLite table to insert mappings
|
|
51
|
+
B: Run paradigm_reindex with a --warm-search flag
|
|
52
|
+
C: Run common queries with paradigm_aspect_search, then confirm the best results with paradigm_aspect_confirm for each query
|
|
53
|
+
D: Wait for 100+ searches to accumulate — Tier 1 learns automatically without confirmation
|
|
54
|
+
E: Set limits.searchLearningRate to a higher value in config.yaml
|
|
55
|
+
correct: C
|
|
56
|
+
explanation: The learning system requires explicit confirmation via paradigm_aspect_confirm. When you search for a term and confirm the best result, the confirmed aspect gets +1.0 weight for that query. After 3-5 confirmations, the weight exceeds the Tier 1 threshold and future queries return instantly. There is no automatic learning without confirmation — the system relies on user feedback to improve.
|
|
57
|
+
- id: q5
|
|
58
|
+
question: During a quarterly governance review, the heatmap shows that 30 aspects out of 120 have zero access across all types (search, ripple, navigate, direct). What does this indicate and what should you do?
|
|
59
|
+
choices:
|
|
60
|
+
A: These aspects are well-documented and need no changes — zero access means no issues
|
|
61
|
+
B: Delete all 30 immediately — unused aspects are always stale
|
|
62
|
+
C: These aspects may be stale, poorly named, or irrelevant — evaluate each for removal, renaming, or consolidation as part of the governance review
|
|
63
|
+
D: Increase their severity to 'critical' to force agents to access them
|
|
64
|
+
E: Move them to a separate 'archive' section in the .purpose files
|
|
65
|
+
correct: C
|
|
66
|
+
explanation: Zero-access aspects are candidates for review, not automatic deletion. Some may be legitimate but poorly named (rename to improve discoverability). Some may be truly stale with drifted anchors (remove or update). Some may have been superseded by newer aspects (consolidate with supersedes edges). The governance review evaluates each case individually.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-501-aspect-graph-internals
|
|
2
|
+
title: 'PARA 501: Advanced Systems — Aspect Graph Internals'
|
|
3
|
+
description: 'Quiz for lesson: Aspect Graph Internals'
|
|
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: What is the default maxDepth for recursive ripple in the aspect graph?
|
|
19
|
+
choices:
|
|
20
|
+
A: 3 — to keep traversals fast and focused
|
|
21
|
+
B: 5 — balancing depth of discovery with performance
|
|
22
|
+
C: 10 — the maximum allowed value
|
|
23
|
+
D: Unlimited — ripple traverses until minWeight is reached
|
|
24
|
+
E: 1 — only direct connections are followed by default
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: The default maxDepth for recursive ripple is 5, with a maximum configurable value of 10. This default balances discovery depth with performance — at 5 hops, you see a meaningful neighborhood without traversing the entire graph. The minWeight threshold (default 0.1) provides additional pruning by cutting off low-confidence paths before they reach maxDepth.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: What happens to search weights when a result is confirmed via paradigm_aspect_confirm?
|
|
29
|
+
choices:
|
|
30
|
+
A: The confirmed result gets +0.5 weight and all others are deleted
|
|
31
|
+
B: The confirmed result gets +1.0 weight and all other results for the same query decay by *0.95
|
|
32
|
+
C: All results for the query get +1.0 weight to reinforce the entire set
|
|
33
|
+
D: The confirmed result is permanently pinned and decay is disabled
|
|
34
|
+
E: The confirmed result replaces all other entries for that query
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: The search learning system adds +1.0 to the confirmed result's weight for that query and multiplies all other existing results for the same query by 0.95 (a 5% decay). This self-correcting mechanism lets the best result rise to the top over time while alternatives gradually fade. The decay only applies to aspects that have existing search_weights entries for the query — it does not penalize unrelated aspects.
|
|
37
|
+
- id: q3
|
|
38
|
+
question: Which SQLite table stores aspect access frequency for the heatmap tool?
|
|
39
|
+
choices:
|
|
40
|
+
A: aspects — in an access_count column
|
|
41
|
+
B: edges — access frequency is tracked per edge
|
|
42
|
+
C: search_weights — all access types feed into search weights
|
|
43
|
+
D: heatmap — with columns for aspect_id, access_type, count, and last_accessed
|
|
44
|
+
E: anchors — access is tracked per anchor location
|
|
45
|
+
correct: D
|
|
46
|
+
explanation: The `heatmap` table stores aspect access frequency with columns for `aspect_id`, `access_type` (search, ripple, navigate, direct), `count`, and `last_accessed`. This dedicated table allows the `paradigm_aspect_heatmap` tool to rank aspects by usage frequency and break down how each aspect is typically discovered — whether through search, ripple analysis, navigation, or direct access.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: What is the queue limit for recursive ripple BFS traversal?
|
|
49
|
+
choices:
|
|
50
|
+
A: 100 nodes — to keep memory usage minimal
|
|
51
|
+
B: 500 nodes — a balance between coverage and performance
|
|
52
|
+
C: 1000 nodes — preventing runaway traversals in dense graphs
|
|
53
|
+
D: Unlimited — the queue grows until maxDepth is reached
|
|
54
|
+
E: 10000 nodes — large enough for enterprise-scale graphs
|
|
55
|
+
correct: C
|
|
56
|
+
explanation: The BFS queue limit is 1000 nodes. This prevents runaway traversals in densely connected aspect graphs where the number of reachable nodes could grow exponentially with depth. When the queue exceeds 1000 entries, the oldest entries are dropped, ensuring the algorithm completes in bounded time and memory regardless of graph density.
|
|
57
|
+
- id: q5
|
|
58
|
+
question: How are aspect edges inferred from existing data during materialization?
|
|
59
|
+
choices:
|
|
60
|
+
A: By analyzing import statements in source code files
|
|
61
|
+
B: From applies-to references with weight 0.5 and origin 'inferred', and from shared lore references with origin 'learned'
|
|
62
|
+
C: By running static analysis on anchor code blocks
|
|
63
|
+
D: From git commit history showing which aspects changed together
|
|
64
|
+
E: Only explicit edges are created — no inference occurs
|
|
65
|
+
correct: B
|
|
66
|
+
explanation: The materialization pipeline creates inferred edges in two ways. First, `materializeAspects` generates edges from `applies-to` references with weight 0.5 and origin 'inferred' — when an aspect applies to a component, a relationship edge is created. Second, `inferLoreEdges` scans for aspects sharing lore references and creates edges with origin 'learned' and weight proportional to the overlap. These supplement explicit YAML edges to build a richer graph.
|
|
@@ -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.
|