@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-701-agent-state
|
|
2
|
+
title: 'PARA 701: Agent Mastery — Lesson 4: Agent State & Continuity'
|
|
3
|
+
description: 'Quiz for lesson: Lesson 4: Agent State & Continuity'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-701
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-701.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: The security agent reviewed 5 files in session A, deferred 2 items, then in session B completed 1 of those items and deferred 1 new item. How many pending items does the agent see at the start of session C?
|
|
19
|
+
choices:
|
|
20
|
+
A: 0 — pending work resets each session
|
|
21
|
+
B: 1 — only the item deferred in session B
|
|
22
|
+
C: 2 — the 1 remaining from session A plus the 1 new from session B
|
|
23
|
+
D: 3 — all items ever deferred
|
|
24
|
+
E: It depends on the project roster configuration
|
|
25
|
+
correct: C
|
|
26
|
+
explanation: 'Pending work accumulates across sessions and persists until explicitly completed via `completePendingWork()`. Session A deferred 2 items. Session B completed 1 (leaving 1 from A) and added 1 new item. At the start of session C, the agent sees 2 pending items: the 1 remaining from session A and the 1 added in session B. This is the key value of pending work tracking — nothing falls through the cracks across session boundaries.'
|
|
27
|
+
- id: q2
|
|
28
|
+
question: What is the difference between `recentPatterns` in project state and `transferable` patterns in the .agent file?
|
|
29
|
+
choices:
|
|
30
|
+
A: They are the same thing stored in different locations
|
|
31
|
+
B: recentPatterns are project-specific and do not travel; transferable patterns apply across all projects and are included in prompt enrichment when successRate >= 0.7
|
|
32
|
+
C: recentPatterns are more important and always override transferable patterns
|
|
33
|
+
D: transferable patterns are deprecated in favor of recentPatterns
|
|
34
|
+
E: recentPatterns are automatically promoted to transferable after 10 sessions
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: 'recentPatterns live in the project state file and capture knowledge specific to one project (e.g., ''This project uses sliding-window JWT rotation''). They are injected as ''**Project patterns you''ve learned:**'' in the prompt, but only for that project. Transferable patterns live in the .agent file and apply everywhere (e.g., ''always check RLS policies''). They travel across projects and are included in prompt enrichment when successRate >= 0.7. The distinction is scope: project vs universal.'
|
|
37
|
+
- id: q3
|
|
38
|
+
question: 'An agent''s global state shows `totalSessions: 47` with 30 sessions on project A and 2 on project B. The agent is now starting work on project B. How does the orchestrator use this information?'
|
|
39
|
+
choices:
|
|
40
|
+
A: It rejects the agent — 2 sessions is insufficient expertise
|
|
41
|
+
B: It ignores global state — only project state matters
|
|
42
|
+
C: The low session count on project B (relative to the agent's 47 total sessions) may trigger a fresh onboarding pass, and the project state's lastSession age indicates how much context refresh is needed
|
|
43
|
+
D: It assigns the agent to project A instead, where it has more experience
|
|
44
|
+
E: Global state is only used for dashboard display, not orchestration decisions
|
|
45
|
+
correct: C
|
|
46
|
+
explanation: Global state provides experience context. An agent with 47 total sessions is experienced overall, but only 2 sessions on project B means limited project-specific knowledge. The orchestrator can use this to trigger the agent's `onboarding` procedure (defined in the collaboration block), ensuring the agent re-reads the project's .purpose files, config, and portal.yaml before making recommendations. The project state's `lastSession.date` shows how stale the context is — if the 2 sessions were 3 months ago, a full onboarding is warranted.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: Where does project state live and why is it committed to the repository?
|
|
49
|
+
choices:
|
|
50
|
+
A: ~/.paradigm/agent-state/ — it is user-scoped, not committed
|
|
51
|
+
B: .paradigm/agent-state/{id}.yaml — it is committed so that when another team member works on the project, agents remember what was done, not just what one person's agents did
|
|
52
|
+
C: In memory only — state is ephemeral and reconstructed from lore
|
|
53
|
+
D: .paradigm/config.yaml — state is a config value
|
|
54
|
+
E: node_modules/.paradigm/ — it is a build artifact
|
|
55
|
+
correct: B
|
|
56
|
+
explanation: 'Project state at `.paradigm/agent-state/{id}.yaml` is committed to the repository. This is important for team continuity: if developer A''s security agent reviews files and defers items, developer B''s security agent should see those deferred items in the next session. The state is project-scoped (different from global state at ~/.paradigm/agents/ which is user-scoped), so it captures the collective agent experience on the project, not just one user''s sessions.'
|
|
57
|
+
- id: q5
|
|
58
|
+
question: The recentPatterns array in project state has a maximum of 10 entries. An agent learns an 11th pattern. What happens?
|
|
59
|
+
choices:
|
|
60
|
+
A: The 11th pattern is rejected — the agent must manually remove an old one
|
|
61
|
+
B: All patterns are cleared and replaced with the 11th
|
|
62
|
+
C: The oldest pattern is dropped and the new one is added — `recentPatterns.slice(-10)` keeps only the most recent 10
|
|
63
|
+
D: The array expands to 11 — the limit is advisory
|
|
64
|
+
E: The pattern is added to the agent's transferable array instead
|
|
65
|
+
correct: C
|
|
66
|
+
explanation: 'The `addProjectPattern()` function enforces a hard limit of 10 recent patterns: `if (state.recentPatterns.length > 10) { state.recentPatterns = state.recentPatterns.slice(-10); }`. The oldest pattern is dropped and the newest is kept. This bounded window ensures the prompt enrichment section stays within token budgets while always showing the most recent project-specific knowledge. Patterns that prove universally useful should be promoted to the agent''s `transferable` array in the .agent file, which has no such limit.'
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-701-learning-feedback-loop
|
|
2
|
+
title: 'PARA 701: Agent Mastery — Lesson 9: The Learning Feedback Loop'
|
|
3
|
+
description: 'Quiz for lesson: Lesson 9: The Learning Feedback Loop'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-701
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-701.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: The security agent's contribution is revised by the human (partially correct). What happens to its expertise confidence on the relevant symbols?
|
|
19
|
+
choices:
|
|
20
|
+
A: No change — revised contributions have no effect
|
|
21
|
+
B: Confidence decreases by 0.02 (same as dismissed)
|
|
22
|
+
C: Confidence decreases by 0.01 — the revised verdict means the agent was partially right, so the penalty is smaller than dismissed (-0.02)
|
|
23
|
+
D: Confidence increases by 0.01 (partially correct is still partially positive)
|
|
24
|
+
E: Confidence is reset to 0.5 (neutral)
|
|
25
|
+
correct: C
|
|
26
|
+
explanation: Revised verdicts trigger a -0.01 adjustment. This is smaller than dismissed (-0.02) because the agent was in the right direction — the human modified the contribution rather than rejecting it entirely. The asymmetric reinforcement scheme (+0.03 accept / -0.02 dismiss / -0.01 revise) is designed so that a mix of mostly-accepted with occasional revisions still trends upward, while consistent dismissals trend downward.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: The Teacher Model runs at postflight and reads the session work log. What is it looking for?
|
|
29
|
+
choices:
|
|
30
|
+
A: Code syntax errors in agent contributions
|
|
31
|
+
B: Patterns in user verdicts — which agents were accepted, dismissed, or revised, and what insights can be extracted for journal entries
|
|
32
|
+
C: Missing .purpose file updates
|
|
33
|
+
D: Whether the orchestrator was called
|
|
34
|
+
E: Token usage metrics for cost optimization
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: 'The Teacher Model''s postflight learning pass reads agent-contribution and user-verdict entries from the session work log. It looks for patterns: which agents were consistently accepted (confirming their expertise), which were revised (indicating partial knowledge gaps), and what specific corrections the human made (revisionDelta). It synthesizes these patterns into journal entries with extracted LearningPatterns that describe when to apply the corrected approach. The Teacher Model does not check code quality or Paradigm compliance — those are the reviewer''s and stop hook''s jobs.'
|
|
37
|
+
- id: q3
|
|
38
|
+
question: 'A journal entry about JWT refresh token rotation has appeared in 4 different sessions with `transferable: true`. Sensei is evaluating whether to promote it to a notebook entry. What criteria does Sensei use?'
|
|
39
|
+
choices:
|
|
40
|
+
A: Only the transferable flag — if true, it is automatically promoted
|
|
41
|
+
B: The number of sessions (4 is enough) — promotion is count-based
|
|
42
|
+
C: Whether the insight is transferable, actionable, confirmed by multiple sessions, and high enough confidence to be reliable
|
|
43
|
+
D: Whether the human explicitly requests promotion
|
|
44
|
+
E: Whether the agent's overall acceptance rate is above 80%
|
|
45
|
+
correct: C
|
|
46
|
+
explanation: 'Sensei evaluates multiple criteria: (1) Is it transferable to other projects? (`transferable: true` confirms this). (2) Is it actionable — specific enough to apply, not just a vague observation? (3) Has it appeared across multiple sessions — 4 appearances confirms the pattern. (4) Is the confidence high enough? A pattern discovered through `correction_received` with `confidence_after: 0.9` is more reliable than one from `self_reflection` with `confidence_after: 0.6`. The promotion is a quality gate, not automatic.'
|
|
47
|
+
- id: q4
|
|
48
|
+
question: Why is the expertise adjustment +0.03 for accepted but only -0.02 for dismissed (asymmetric rather than symmetric)?
|
|
49
|
+
choices:
|
|
50
|
+
A: Positive reinforcement is always stronger than negative in learning theory
|
|
51
|
+
B: The asymmetry prevents a single bad session from collapsing an otherwise reliable agent's confidence — it takes more dismissals than acceptances to significantly change confidence
|
|
52
|
+
C: Symmetric adjustments would cause confidence to oscillate unstably
|
|
53
|
+
D: The specific values are arbitrary and have no design rationale
|
|
54
|
+
E: Accepted contributions are more common, so they need a larger weight
|
|
55
|
+
correct: B
|
|
56
|
+
explanation: The asymmetry is deliberate. If an agent has been consistently good (confidence 0.9) and has one bad session where a contribution is dismissed, symmetric -0.03 would drop it to 0.87. With asymmetric -0.02, it drops to 0.88. This matters because a single bad session should not outweigh multiple good ones. The agent needs more dismissals than acceptances to trend downward, which matches the expectation that occasionally wrong agents are still net-positive contributors.
|
|
57
|
+
- id: q5
|
|
58
|
+
question: An agent's nomination was deferred (not accepted, not dismissed). How does this affect the learning loop?
|
|
59
|
+
choices:
|
|
60
|
+
A: The expertise confidence decreases slightly
|
|
61
|
+
B: The nomination is marked for re-evaluation in the next session
|
|
62
|
+
C: No expertise change occurs — deferred says nothing about correctness, only timing. The journal entry (if written) would use trigger `self_reflection` rather than `human_feedback`.
|
|
63
|
+
D: The agent is temporarily benched until the deferred item is resolved
|
|
64
|
+
E: The Teacher Model treats deferred as a weaker form of dismissal
|
|
65
|
+
correct: C
|
|
66
|
+
explanation: A deferred verdict means the contribution is not relevant right now, but may be valid. The expertise adjustment for deferred is 0 (no change) because deferral carries no signal about whether the agent was right or wrong. The agent's confidence remains unchanged. If the Teacher Model writes a journal entry about the deferred contribution, it would use `self_reflection` as the trigger rather than `human_feedback`, since the human did not evaluate correctness.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-701-model-tier-resolution
|
|
2
|
+
title: 'PARA 701: Agent Mastery — Lesson 6: Model Tier Resolution'
|
|
3
|
+
description: 'Quiz for lesson: Lesson 6: Model Tier Resolution'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-701
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-701.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: A team wants to reduce costs by running all agents on the same model. What is the simplest configuration change?
|
|
19
|
+
choices:
|
|
20
|
+
A: Edit every .agent file to change modelTier to tier-3
|
|
21
|
+
B: 'Map all three tiers to the same model in the model-resolution config block: `tier-1: claude-sonnet-4-6`, `tier-2: claude-sonnet-4-6`, `tier-3: claude-sonnet-4-6`'
|
|
22
|
+
C: Remove the model-resolution block entirely
|
|
23
|
+
D: 'Set a global `maxTier: tier-3` flag in config.yaml'
|
|
24
|
+
E: Deactivate all tier-1 agents from the roster
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: The model-resolution block is the single control point. Mapping all three tiers to `claude-sonnet-4-6` means every agent — regardless of what tier they request — runs on Sonnet. This is a 3-line change in `.paradigm/config.yaml`. The agents still have different personalities, expertise, and behaviors; only the underlying model changes. Option A would work but requires editing dozens of files. Option E would lose important agents like architect and security.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: 'An agent profile has `modelTier: tier-1`. The project config maps `tier-1: claude-sonnet-4-6`. The global config maps `tier-1: claude-opus-4-6`. Which model is used?'
|
|
29
|
+
choices:
|
|
30
|
+
A: claude-opus-4-6 — global config takes precedence
|
|
31
|
+
B: claude-sonnet-4-6 — project config overrides global config in the resolution cascade
|
|
32
|
+
C: The agent's defaultModel field is used instead
|
|
33
|
+
D: An error is thrown because of conflicting configurations
|
|
34
|
+
E: The IDE detection result is used
|
|
35
|
+
correct: B
|
|
36
|
+
explanation: 'The resolution cascade is: agent profile (determines tier) > project config > global config > IDE detection > fallback. The agent requests tier-1. The project config maps tier-1 to `claude-sonnet-4-6`. The project config has higher priority than global config, so Sonnet is used. This allows a project to override the user''s global preference — useful when a project has a budget constraint that the user''s default does not account for.'
|
|
37
|
+
- id: q3
|
|
38
|
+
question: Why does the security agent default to tier-1 (reasoning) while the builder defaults to tier-3 (fast)?
|
|
39
|
+
choices:
|
|
40
|
+
A: The security agent costs more to run
|
|
41
|
+
B: The builder handles more requests and needs to be faster
|
|
42
|
+
C: Security work requires deep reasoning (vulnerability analysis, threat modeling) that benefits from the most capable model, while builder work is more mechanical (implement a spec, write code to match a design) where speed matters more than reasoning depth
|
|
43
|
+
D: Tier-1 agents have access to more MCP tools
|
|
44
|
+
E: It is an arbitrary default with no rationale
|
|
45
|
+
correct: C
|
|
46
|
+
explanation: 'Tier assignments reflect the cognitive demands of each role. Security analysis involves complex reasoning: evaluating attack surfaces, identifying subtle vulnerabilities, understanding interaction effects between auth mechanisms. This benefits from a model with stronger reasoning capabilities (tier-1). Builder work is typically more structured: implement this API endpoint per the spec, add this component per the design. The spec defines what to build; the model executes. Speed and cost efficiency (tier-3) matter more than reasoning depth.'
|
|
47
|
+
- id: q4
|
|
48
|
+
question: A user is running Paradigm in Cursor (detected via CURSOR_SESSION environment variable). What tier-1 model does auto-detection assign, and why?
|
|
49
|
+
choices:
|
|
50
|
+
A: claude-opus-4-6 — always use the best available model
|
|
51
|
+
B: claude-sonnet-4-6 — because Opus may not be available in Cursor's model selection, so the detection gracefully degrades tier-1 to the best confirmed-available model
|
|
52
|
+
C: gpt-4o — Cursor defaults to OpenAI
|
|
53
|
+
D: The user must manually configure it — Cursor is not auto-detected
|
|
54
|
+
E: claude-haiku-4-5 — Cursor uses cheaper models by default
|
|
55
|
+
correct: B
|
|
56
|
+
explanation: 'The `detectEnvironment()` function checks for `process.env.CURSOR_SESSION`. When detected, it assigns `claude-sonnet-4-6` for tier-1 because Cursor may not expose Opus in its model selection. Assigning Opus would cause orchestration failures if the model is unavailable. The detection gracefully degrades: Claude Code gets the full tier spread, Cursor gets Sonnet as the ceiling. The user can override this in their config if they do have Opus access.'
|
|
57
|
+
- id: q5
|
|
58
|
+
question: 'An old agent profile has `defaultModel: opus` but no `modelTier` field. How does the system handle this?'
|
|
59
|
+
choices:
|
|
60
|
+
A: An error is thrown — modelTier is required
|
|
61
|
+
B: The agent runs with no model preference (fallback to tier-2)
|
|
62
|
+
C: 'The system maps defaultModel to a tier: opus maps to tier-1, which is then resolved through the model-resolution config like any other tier request'
|
|
63
|
+
D: The agent is excluded from orchestration until its profile is updated
|
|
64
|
+
E: The defaultModel value is passed directly to the API as the model name
|
|
65
|
+
correct: C
|
|
66
|
+
explanation: 'Backward compatibility is handled by mapping old model names to tiers: `opus` to `tier-1`, `sonnet` to `tier-2`, `haiku` to `tier-3`. The resolution logic checks `modelTier` first; if absent, it reads `defaultModel` and maps it. The resulting tier is then resolved through the normal cascade (project config > global config > IDE detection > fallback). This means existing agent profiles continue working without any modification.'
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-701-orchestration-enforcement
|
|
2
|
+
title: 'PARA 701: Agent Mastery — Lesson 7: Orchestration Enforcement'
|
|
3
|
+
description: 'Quiz for lesson: Lesson 7: Orchestration Enforcement'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-701
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-701.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: A developer implements a 5-file feature without calling paradigm_orchestrate_inline. What happens?
|
|
19
|
+
choices:
|
|
20
|
+
A: The session is blocked and the developer must orchestrate before proceeding
|
|
21
|
+
B: At preflight, the `orchestration-required` habit emits a warning suggesting orchestration. At postflight, `agent-coverage-validated` advises reviewing paradigm_ambient_nominations for any self-nominated contributions.
|
|
22
|
+
C: Nothing — orchestration is entirely optional with no enforcement
|
|
23
|
+
D: The commit is rejected by the pre-commit hook
|
|
24
|
+
E: All modified files are automatically reverted
|
|
25
|
+
correct: B
|
|
26
|
+
explanation: Orchestration enforcement uses `warn` and `advisory` severities, not `block`. The developer receives a warning at preflight ("Consider calling paradigm_orchestrate_inline") and an advisory at postflight ("Check paradigm_ambient_nominations for pending contributions"). The work is not blocked because the severity is `warn`, not `block`. However, the developer is informed that agents may have had relevant contributions, and the security agent may have self-nominated a gate review that was never seen.
|
|
27
|
+
- id: q2
|
|
28
|
+
question: Why is orchestration enforcement implemented as habits rather than hardcoded into the orchestrator?
|
|
29
|
+
choices:
|
|
30
|
+
A: Habits are faster to evaluate than hardcoded checks
|
|
31
|
+
B: The orchestrator cannot access the habit system
|
|
32
|
+
C: Habits are configurable (enable/disable), tunable (warn/block/advisory), extensible (custom habits), and transparent (declared in YAML) — hardcoded enforcement would be rigid and impossible to customize per project
|
|
33
|
+
D: Hardcoded enforcement would require a database connection
|
|
34
|
+
E: Habits are only evaluated once per day, reducing overhead
|
|
35
|
+
correct: C
|
|
36
|
+
explanation: 'The habit system provides four advantages over hardcoded enforcement: (1) Configurable — a project can disable `orchestration-required` by setting `enabled: false`. (2) Tunable — severity can be changed from `warn` to `block` for strict enforcement or `advisory` for a softer touch. (3) Extensible — teams can add custom habits (e.g., require security review for any `auth/**` changes). (4) Transparent — habits are declared in YAML and evaluated at predictable trigger points. Hardcoded logic would be a black box that every project lives with regardless of their needs.'
|
|
37
|
+
- id: q3
|
|
38
|
+
question: Production is down. A developer needs to push a hot fix immediately. How does orchestration enforcement handle this?
|
|
39
|
+
choices:
|
|
40
|
+
A: The developer must still orchestrate — there are no exceptions
|
|
41
|
+
B: The `hot-mode-incident` habit acknowledges incidents by waiving orchestration enforcement and only requiring a post-incident lore entry
|
|
42
|
+
C: The developer must manually disable all three habits before proceeding
|
|
43
|
+
D: The system detects production incidents automatically and suspends all enforcement
|
|
44
|
+
E: Orchestration enforcement does not apply to hot fixes by default because all severities are `warn` or `advisory`
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: 'The `hot-mode-incident` habit is designed for this exact scenario. It fires at on-stop (session end) with `advisory` severity and only checks that a lore entry was recorded (`check: { type: ''lore-recorded'' }`). The rationale: during incidents, you fix first and document later. The lore entry requirement ensures the learning loop captures the incident for future prevention. The other two habits (`orchestration-required` at `warn`, `agent-coverage-validated` at `advisory`) do not block, so the hot fix proceeds with only advisories.'
|
|
47
|
+
- id: q4
|
|
48
|
+
question: A team wants to strictly require orchestration for all tasks. How do they configure this?
|
|
49
|
+
choices:
|
|
50
|
+
A: Edit the orchestrator source code to block unorchestrated tasks
|
|
51
|
+
B: Change the `orchestration-required` habit's severity from `warn` to `block` in their project's habit overrides
|
|
52
|
+
C: Add a pre-commit hook that checks for orchestration
|
|
53
|
+
D: 'Set `orchestration: mandatory` in config.yaml'
|
|
54
|
+
E: Remove all agents from the roster except the orchestrator
|
|
55
|
+
correct: B
|
|
56
|
+
explanation: 'Habit severity is tunable per project. Changing `orchestration-required` from `warn` to `block` in the project''s habits override means the habit will block session completion if `paradigm_orchestrate_inline` was not called. This is the designed customization path: the seed habit provides a sensible default (`warn`), and projects can upgrade to `block` if they need strict enforcement. No source code modification is needed.'
|
|
57
|
+
- id: q5
|
|
58
|
+
question: The `agent-coverage-validated` habit checks for which tools in its evaluation?
|
|
59
|
+
choices:
|
|
60
|
+
A: paradigm_orchestrate_inline only
|
|
61
|
+
B: paradigm_ambient_nominations and paradigm_agent_list — it verifies that agent contributions were reviewed, not just that orchestration was invoked
|
|
62
|
+
C: paradigm_reindex and paradigm_purpose_validate
|
|
63
|
+
D: paradigm_ripple and paradigm_search
|
|
64
|
+
E: All MCP tools — it checks that at least one was called
|
|
65
|
+
correct: B
|
|
66
|
+
explanation: 'The `agent-coverage-validated` habit''s check is `{ type: ''tool-called'', params: { tools: [''paradigm_ambient_nominations'', ''paradigm_agent_list''] } }`. It verifies that agent contributions were reviewed — either by checking ambient nominations or listing agents. This is distinct from `orchestration-required` which checks for `paradigm_orchestrate_inline`. The two habits complement each other: one ensures orchestration was considered (preflight), the other ensures agent contributions were reviewed (postflight).'
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-701-per-project-rosters
|
|
2
|
+
title: 'PARA 701: Agent Mastery — Lesson 5: Per-Project Rosters'
|
|
3
|
+
description: 'Quiz for lesson: Lesson 5: Per-Project Rosters'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-701
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-701.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: A developer runs `paradigm agents deactivate gamedev 3d audio` on their SaaS project. What happens to these agents globally?
|
|
19
|
+
choices:
|
|
20
|
+
A: Their .agent files are deleted from ~/.paradigm/agents/
|
|
21
|
+
B: 'Their .agent files get `benched: true` added'
|
|
22
|
+
C: Nothing — the command only removes them from this project's roster.yaml. They remain fully available globally and on other projects.
|
|
23
|
+
D: Their expertise scores are reset to 0
|
|
24
|
+
E: They are moved to a .paradigm/deactivated/ directory
|
|
25
|
+
correct: C
|
|
26
|
+
explanation: 'Roster commands modify `.paradigm/roster.yaml` and nothing else. The global .agent files at `~/.paradigm/agents/` are never touched by roster operations. Deactivating gamedev on a SaaS project removes it from that project''s `active` list. The gamedev agent remains fully intact globally and would appear in the roster of a game project. This is the key architectural decision: rosters are project-level filters over global agents.'
|
|
27
|
+
- id: q2
|
|
28
|
+
question: A project has no roster.yaml file. A developer runs `paradigm_orchestrate_inline` on a task. How many agents does the orchestrator consider?
|
|
29
|
+
choices:
|
|
30
|
+
A: None — a roster is required for orchestration
|
|
31
|
+
B: 8 — the generic default roster
|
|
32
|
+
C: All global agents — no roster means no filtering (backward compatibility)
|
|
33
|
+
D: Only the architect and builder — the minimum required
|
|
34
|
+
E: The orchestrator prompts for roster creation before proceeding
|
|
35
|
+
correct: C
|
|
36
|
+
explanation: '`loadProjectRoster()` returns `null` if no roster.yaml exists. `isAgentActive()` returns `true` for all agents when the roster is null. The orchestrator''s `getActiveAgents()` function falls back to listing all global agents. This is the backward compatibility guarantee: projects that predate the roster feature continue working exactly as before. All 54 agents are considered during planning.'
|
|
37
|
+
- id: q3
|
|
38
|
+
question: The project type detection finds both `supabase/` and `next.config.ts` in the project root. What project type is detected and what does the suggested roster include?
|
|
39
|
+
choices:
|
|
40
|
+
A: backend-api — Supabase indicates a database-heavy project
|
|
41
|
+
B: web-app — Next.js indicates a web application
|
|
42
|
+
C: saas-web-app — the combination of Supabase + Next.js triggers this type, which suggests ~24 agents including designer, dba, seo, sales, and legal
|
|
43
|
+
D: generic — mixed signals default to generic
|
|
44
|
+
E: fullstack-app — a dedicated type for Supabase + Next.js
|
|
45
|
+
correct: C
|
|
46
|
+
explanation: 'The detection logic checks `signals.hasSupabase && signals.hasNextConfig` early in the chain and returns `saas-web-app`. This type gets the largest suggested roster (~24 agents) because a SaaS web app typically needs the full spectrum: frontend (designer, a11y), backend (dba, devops), content (copywriter, seo), quality (tester, e2e, qa), business (pm, product, sales), and compliance (legal, security). The Supabase + Next.js combination is a strong signal for this project type.'
|
|
47
|
+
- id: q4
|
|
48
|
+
question: Why does the `generic` project type suggest only 8 agents instead of 20+?
|
|
49
|
+
choices:
|
|
50
|
+
A: Generic projects are considered less important
|
|
51
|
+
B: 8 agents is the minimum the orchestrator can work with
|
|
52
|
+
C: When the project type is ambiguous, a minimal roster avoids activating specialists that may be irrelevant — the developer can add more as needed
|
|
53
|
+
D: Generic projects cannot use more than 8 agents due to a technical limitation
|
|
54
|
+
E: The 8 agents are free tier; additional agents require a paid plan
|
|
55
|
+
correct: C
|
|
56
|
+
explanation: 'The generic roster includes architect, builder, reviewer, tester, security, documentor, debugger, and qa — the universal quality baseline. When the system cannot detect the project type, it avoids false positives: activating a designer on a CLI tool or a DBA on a static site would add noise. The developer knows their project better than the detection heuristic, so a minimal starting point with easy expansion (`paradigm agents activate designer`) is better than an over-eager default.'
|
|
57
|
+
- id: q5
|
|
58
|
+
question: A developer activates the designer on a project, does some UI work with Mika, then deactivates the designer. Later, they reactivate the designer. Does Mika remember the previous UI work on this project?
|
|
59
|
+
choices:
|
|
60
|
+
A: No — deactivating an agent deletes its state
|
|
61
|
+
B: Yes — roster changes only affect the active list in roster.yaml. The agent's project state (.paradigm/agent-state/designer.yaml), notebooks, and expertise are untouched by deactivation.
|
|
62
|
+
C: Partially — state is preserved but expertise resets
|
|
63
|
+
D: Only if the deactivation was less than 24 hours ago
|
|
64
|
+
E: The developer must run paradigm_session_recover to restore state
|
|
65
|
+
correct: B
|
|
66
|
+
explanation: Roster deactivation removes the agent from the `active` list in roster.yaml — that is all it does. The agent's project state at `.paradigm/agent-state/designer.yaml` remains on disk. Its notebooks at `.paradigm/notebooks/designer/` remain. Its expertise in the `.agent` file remains. When reactivated, `buildProfileEnrichment()` loads the existing project state and the agent sees its last session summary, pending work, and learned patterns. Rosters are a visibility filter, not a state manager.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
id: Q-para-701-symphony-visibility
|
|
2
|
+
title: 'PARA 701: Agent Mastery — Lesson 8: Live Visibility via Symphony'
|
|
3
|
+
description: 'Quiz for lesson: Lesson 8: Live Visibility via Symphony'
|
|
4
|
+
author: paradigm
|
|
5
|
+
created: '2026-04-22'
|
|
6
|
+
updated: '2026-04-22'
|
|
7
|
+
tags:
|
|
8
|
+
- course
|
|
9
|
+
- para-701
|
|
10
|
+
symbols: []
|
|
11
|
+
difficulty: beginner
|
|
12
|
+
passThreshold: 0.7
|
|
13
|
+
category: paradigm-core
|
|
14
|
+
origin: imported
|
|
15
|
+
source: courses/para-701.json
|
|
16
|
+
questions:
|
|
17
|
+
- id: q1
|
|
18
|
+
question: An orchestration plan includes architect, security, builder, and documentor. The human watches the Conductor overlay. In what order do notes typically appear?
|
|
19
|
+
choices:
|
|
20
|
+
A: Alphabetically by agent name
|
|
21
|
+
B: Randomly — agents run in parallel with no ordering
|
|
22
|
+
C: 'Chronologically based on orchestration stages: architect plans first, builder implements, security reviews, documentor updates last — matching the staged execution order'
|
|
23
|
+
D: All notes appear simultaneously when orchestration completes
|
|
24
|
+
E: Fastest agent first, slowest last
|
|
25
|
+
correct: C
|
|
26
|
+
explanation: 'The orchestrator executes agents in staged dependency order: the architect plans first (stage 1), the builder implements based on the plan (stage 2), the security agent reviews the implementation (stage 3), and the documentor updates .purpose files last (final stage). Notes are posted chronologically as each stage completes, so the Conductor shows a natural progression of planning, implementation, review, and documentation.'
|
|
27
|
+
- id: q2
|
|
28
|
+
question: NoteRelay polls at 5-second intervals and SymphonyThreadWatcher at 3-second intervals. What is the worst-case latency from an agent posting a note to it appearing in the Conductor?
|
|
29
|
+
choices:
|
|
30
|
+
A: Exactly 5 seconds — NoteRelay is the bottleneck
|
|
31
|
+
B: Exactly 3 seconds — ThreadWatcher is the bottleneck
|
|
32
|
+
C: Up to ~8 seconds in the worst case (5s NoteRelay + 3s ThreadWatcher if both polls just missed the change)
|
|
33
|
+
D: Instant — filesystem events trigger immediate updates
|
|
34
|
+
E: 30 seconds — there is a buffer delay
|
|
35
|
+
correct: C
|
|
36
|
+
explanation: 'In the worst case, NoteRelay just polled (misses the new file by 1ms) and polls again in 5 seconds. Then SymphonyThreadWatcher just polled (misses the state update by 1ms) and polls again in 3 seconds. Total worst case: ~8 seconds. In practice, the two polls are offset and the average latency is 3-5 seconds. This is acceptable for human observation — you are watching orchestration progress, not debugging a real-time system.'
|
|
37
|
+
- id: q3
|
|
38
|
+
question: Why does the orchestrator use the `thr-orch-` prefix on thread names?
|
|
39
|
+
choices:
|
|
40
|
+
A: It is a naming convention with no functional purpose
|
|
41
|
+
B: It allows SymphonyThreadWatcher to distinguish orchestration threads from regular Symphony threads (team chat, notes) using a simple prefix filter
|
|
42
|
+
C: It enables encryption of orchestration data
|
|
43
|
+
D: It prevents other agents from reading the thread
|
|
44
|
+
E: It is required by the Symphony API
|
|
45
|
+
correct: B
|
|
46
|
+
explanation: SymphonyThreadWatcher filters threads by the `thr-orch-` prefix to separate orchestration threads from regular communication threads. Without this prefix, the Team view in Conductor would mix orchestration progress with team chat, personal notes, and other thread types. The prefix is a simple, reliable discrimination mechanism that avoids complex content parsing.
|
|
47
|
+
- id: q4
|
|
48
|
+
question: Why was polling chosen over filesystem watching (FSEvents) for the NoteRelay architecture?
|
|
49
|
+
choices:
|
|
50
|
+
A: Polling is faster than filesystem events
|
|
51
|
+
B: macOS does not support filesystem watching
|
|
52
|
+
C: FSEvents is brittle across sandboxed processes and does not work reliably when the MCP server writes files from a different process tree — polling a directory is simpler and more reliable
|
|
53
|
+
D: Filesystem watching requires root permissions
|
|
54
|
+
E: Polling uses less memory than filesystem watching
|
|
55
|
+
correct: C
|
|
56
|
+
explanation: The MCP server and the Conductor run as separate processes, potentially in different sandbox contexts. FSEvents (macOS filesystem watching) has known reliability issues when watching files written by a different process tree, especially across sandbox boundaries. Polling the `~/.paradigm/score/threads/` directory at a known interval is architecturally simpler, reliably cross-process, and introduces only 3-8 seconds of latency — an acceptable tradeoff for avoiding process-coupling complexity.
|
|
57
|
+
- id: q5
|
|
58
|
+
question: The security agent emits a finding note ('Found gate coverage gap on POST /api/payments') during orchestration. How does this note reach the TeamThreadView in Conductor?
|
|
59
|
+
choices:
|
|
60
|
+
A: The security agent sends the note directly to the Conductor via a WebSocket connection
|
|
61
|
+
B: The orchestrator posts the note to the thr-orch-{id} thread file in ~/.paradigm/score/threads/, NoteRelay detects the file change within 5 seconds, SymphonyThreadWatcher filters it as an orchestration thread within 3 seconds, and TeamThreadView renders it with the security agent's colored role badge
|
|
62
|
+
C: The note is stored in the event stream and Conductor reads events directly
|
|
63
|
+
D: The note is emailed to the developer and they manually check Conductor
|
|
64
|
+
E: The note is only visible after orchestration completes, not during execution
|
|
65
|
+
correct: B
|
|
66
|
+
explanation: 'The full pipeline is: (1) The orchestrator posts the security agent''s finding as a note in the `thr-orch-{id}` Symphony thread file. (2) NoteRelay polls `~/.paradigm/score/threads/` every 5 seconds and detects the updated thread file. (3) SymphonyThreadWatcher filters the thread by its `thr-orch-` prefix and routes it to the Team view. (4) TeamThreadView renders the note with the security agent''s colored role badge, intent indicator, and nickname. The maximum latency is ~8 seconds (5s + 3s worst case), providing near-real-time visibility during orchestration.'
|