@a-company/paradigm 5.38.0 → 6.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accept-orchestration-OATWIRHP.js → accept-orchestration-TIXUQQGR.js} +1 -1
- package/dist/add-UOR4INIV.js +8 -0
- package/dist/agent-MB3H5EZA.js +33 -0
- package/dist/{agent-loader-RIVI6QPP.js → agent-loader-VGBPL3TH.js} +1 -1
- package/dist/{agent-loader-RJRVO5GQ.js → agent-loader-W3RQJVW7.js} +1 -1
- package/dist/{agents-suggest-HYTFMQD3.js → agents-suggest-IKY6VD2R.js} +1 -1
- package/dist/{ambient-WTLYUAQM.js → ambient-AI42BOM5.js} +12 -12
- package/dist/{ambient-76YMUA5Q.js → ambient-FNNFB4AP.js} +1 -1
- package/dist/{assess-UFPYEJKP.js → assess-63WXHWJV.js} +1 -1
- package/dist/authority-FA3HLEOA.js +2 -0
- package/dist/{calibration-OLJYB5HN.js → calibration-BDHGYJOK.js} +1 -1
- package/dist/chunk-23T6UG73.js +605 -0
- package/dist/{chunk-4L7665QV.js → chunk-2AU5L333.js} +1 -1
- package/dist/{chunk-BOYQAMGC.js → chunk-4N56FRNE.js} +1 -1
- package/dist/{chunk-5QOCKWK5.js → chunk-4PSD5R7N.js} +2 -2
- package/dist/{chunk-MQIG6SMF.js → chunk-6QXBXZF6.js} +1 -1
- package/dist/{chunk-ORDKEGII.js → chunk-AMLD7IYC.js} +1 -1
- package/dist/{chunk-3DZK54RU.js → chunk-DBEWOKD6.js} +32 -7
- package/dist/{chunk-AGFPVSX5.js → chunk-F6E3HW45.js} +1 -1
- package/dist/{chunk-X3U3IGYT.js → chunk-GD4F2HC6.js} +2 -2
- package/dist/chunk-GRZQIKST.js +2 -0
- package/dist/{chunk-HOBHJPTL.js → chunk-IOVHF4SR.js} +1 -1
- package/dist/{chunk-RLCH7DXQ.js → chunk-K7X3Z3GL.js} +1 -1
- package/dist/{chunk-74SGKSRQ.js → chunk-KAFQA7HV.js} +2 -2
- package/dist/{chunk-NEJ4ZLCY.js → chunk-LAYBUKMB.js} +1 -1
- package/dist/{chunk-4VKSEOXZ.js → chunk-LPBCQM5Y.js} +3 -3
- package/dist/chunk-Q527BPUF.js +2 -0
- package/dist/{chunk-AO7ZSRME.js → chunk-TQOT2LBO.js} +2 -2
- package/dist/{chunk-3XGNXXCT.js → chunk-UZ5H7K6Q.js} +1 -1
- package/dist/chunk-VIG5LSGZ.js +2 -0
- package/dist/chunk-VNIX5KBT.js +3 -0
- package/dist/chunk-WXF5VFB4.js +111 -0
- package/dist/chunk-XQLO5URP.js +11 -0
- package/dist/{chunk-DOCDDDTD.js → chunk-YNDPSWOE.js} +5 -5
- package/dist/chunk-Z5QW6USC.js +2 -0
- package/dist/{compliance-D7GD6ZYC.js → compliance-J3VOV445.js} +1 -1
- package/dist/config-schema-FLHRVZMI.js +2 -0
- package/dist/{context-audit-XRPT3OU2.js → context-audit-JVCA6GSV.js} +1 -1
- package/dist/{cursorrules-U5O4G5T4.js → cursorrules-ZXPXPZ3P.js} +1 -1
- package/dist/decision-loader-HELL2AMX.js +2 -0
- package/dist/{delete-P5VULXR4.js → delete-2C6ALLYY.js} +1 -1
- package/dist/{diff-YGHBIJY5.js → diff-75MABOSL.js} +1 -1
- package/dist/{dist-KGRCLBJP-2QAPFYNF.js → dist-GQ42YS5N-4HIJZVBB.js} +10 -10
- package/dist/{docs-USDAF26F.js → docs-TSAAS4W3.js} +1 -1
- package/dist/doctor-L5XZENCF.js +2 -0
- package/dist/{edit-GUU3HBVW.js → edit-P3MDAZLU.js} +1 -1
- package/dist/{flow-FVZR3YJ4.js → flow-BGXOVE2V.js} +1 -1
- package/dist/{hooks-TFMMMB2H.js → hooks-KUEE5KMM.js} +1 -1
- package/dist/index.js +6 -6
- package/dist/init-M44SO65G.js +2 -0
- package/dist/{init-XYB62Q3X.js → init-V4KSEKPK.js} +1 -1
- package/dist/{list-YKIQNKGB.js → list-2XIWUEMA.js} +1 -1
- package/dist/list-CFHINXIS.js +12 -0
- package/dist/lore-loader-D2ISOASW.js +2 -0
- package/dist/lore-loader-PXFKMKAN.js +2 -0
- package/dist/mcp.js +4 -4
- package/dist/metrics-UESGUHTA.js +2 -0
- package/dist/{migrate-Z5UQN57G.js → migrate-ZPNYDNM4.js} +1 -1
- package/dist/migrate-assessments-YSITX7KM.js +4 -0
- package/dist/migrate-decisions-NPLQOEEH.js +6 -0
- package/dist/migrate-plsat-EM2ACIQ3.js +6 -0
- package/dist/migration-notices-BHLEYC4T.js +4 -0
- package/dist/{nomination-engine-EALA5MGI.js → nomination-engine-NCLTGMAK.js} +1 -1
- package/dist/{notebook-loader-PXNRBBXD.js → notebook-loader-3J2OFMS3.js} +1 -1
- package/dist/{orchestrate-M5PBZBJQ.js → orchestrate-K4KBTBYK.js} +1 -1
- package/dist/{platform-server-DNAMH4YI.js → platform-server-ANOALDPL.js} +1 -1
- package/dist/{portal-check-ZMLVBIGW.js → portal-check-DV2VSJ5E.js} +1 -1
- package/dist/portal-compliance-JONQ4SOP.js +2 -0
- package/dist/{probe-3FTG6LYO.js → probe-5HAXULAD.js} +1 -1
- package/dist/{providers-AWA7WLLM.js → providers-TBPOE4DI.js} +1 -1
- package/dist/quiz-WYIZJG5K.js +10 -0
- package/dist/{record-YXPB34MY.js → record-N3VNYYKJ.js} +1 -1
- package/dist/registry-OUTA3DXW.js +20 -0
- package/dist/reindex-IZCD2JGD.js +2 -0
- package/dist/{retag-N5XF3KXP.js → retag-72R2OSZV.js} +1 -1
- package/dist/{review-77QI6VOC.js → review-2INNWLTW.js} +1 -1
- package/dist/{sentinel-HYAZ3CO5.js → sentinel-EFPEX246.js} +1 -1
- package/dist/{sentinel-bridge-VR357PKL.js → sentinel-bridge-UR2MKARY.js} +1 -1
- package/dist/{serve-U47GULB6.js → serve-3FMUWW5K.js} +1 -1
- package/dist/serve-OQYUO7CR.js +12 -0
- package/dist/{server-4YNUIK4W.js → server-4D77LCST.js} +1 -1
- package/dist/server-FGUL2FWQ.js +7 -0
- package/dist/session-tracker-HHNY6J4I.js +2 -0
- package/dist/{session-work-log-ZP45TREI.js → session-work-log-MEJ33TYD.js} +1 -1
- package/dist/{session-work-log-PAKXOFGL.js → session-work-log-ZVVJGO7X.js} +1 -1
- package/dist/{setup-FEWSYS3Y.js → setup-ZSEC72BS.js} +1 -1
- package/dist/shift-WGMZGWOC.js +60 -0
- package/dist/{show-PJ5LFLIL.js → show-JH7LJ5MT.js} +1 -1
- package/dist/show-WVHAL4VU.js +7 -0
- package/dist/{spawn-M5BAV252.js → spawn-KKDDR6UR.js} +1 -1
- package/dist/status-S7Z5FVIE.js +6 -0
- package/dist/{summary-PYTEIJ4U.js → summary-WLI3NF4G.js} +2 -2
- package/dist/{sweep-HU74OPVW.js → sweep-7TZFN5NS.js} +1 -1
- package/dist/sync-55U6QPIA.js +2 -0
- package/dist/{sync-llms-7CAI74QL.js → sync-llms-GF7DDQDI.js} +1 -1
- package/dist/{team-PDK64JXI.js → team-2LGZQRP4.js} +1 -1
- package/dist/{timeline-K3ZFKJ3R.js → timeline-RK7O2SCM.js} +1 -1
- package/dist/tools-4RRFTU5H.js +2 -0
- package/dist/university-content/notes/N-para-001-build-something.md +126 -0
- package/dist/university-content/notes/N-para-001-meet-the-team.md +85 -0
- package/dist/university-content/notes/N-para-001-shift-setup.md +74 -0
- package/dist/university-content/notes/N-para-101-component-types.md +99 -0
- package/dist/university-content/notes/N-para-101-first-steps.md +134 -0
- package/dist/university-content/notes/N-para-101-five-symbols.md +128 -0
- package/dist/university-content/notes/N-para-101-paradigm-logger.md +89 -0
- package/dist/university-content/notes/N-para-101-portal-yaml.md +112 -0
- package/dist/university-content/notes/N-para-101-project-structure.md +143 -0
- package/dist/university-content/notes/N-para-101-purpose-files.md +121 -0
- package/dist/university-content/notes/N-para-101-tags-and-classification.md +93 -0
- package/dist/university-content/notes/N-para-101-welcome.md +51 -0
- package/dist/university-content/notes/N-para-201-architecture-review.md +175 -0
- package/dist/university-content/notes/N-para-201-aspect-graph.md +79 -0
- package/dist/university-content/notes/N-para-201-aspects-and-anchors.md +112 -0
- package/dist/university-content/notes/N-para-201-component-patterns.md +138 -0
- package/dist/university-content/notes/N-para-201-cross-cutting-concerns.md +145 -0
- package/dist/university-content/notes/N-para-201-disciplines.md +187 -0
- package/dist/university-content/notes/N-para-201-flows-deep-dive.md +119 -0
- package/dist/university-content/notes/N-para-201-gates-deep-dive.md +165 -0
- package/dist/university-content/notes/N-para-201-portal-protocol.md +133 -0
- package/dist/university-content/notes/N-para-201-signal-patterns.md +159 -0
- package/dist/university-content/notes/N-para-201-symbol-naming.md +149 -0
- package/dist/university-content/notes/N-para-301-context-management.md +53 -0
- package/dist/university-content/notes/N-para-301-decisions.md +99 -0
- package/dist/university-content/notes/N-para-301-doctor-and-validation.md +70 -0
- package/dist/university-content/notes/N-para-301-enforcement-levels.md +102 -0
- package/dist/university-content/notes/N-para-301-fragility-tracking.md +50 -0
- package/dist/university-content/notes/N-para-301-history-system.md +42 -0
- package/dist/university-content/notes/N-para-301-navigation-system.md +55 -0
- package/dist/university-content/notes/N-para-301-operations-review.md +55 -0
- package/dist/university-content/notes/N-para-301-paradigm-shift.md +93 -0
- package/dist/university-content/notes/N-para-301-protocols.md +113 -0
- package/dist/university-content/notes/N-para-301-ripple-analysis.md +53 -0
- package/dist/university-content/notes/N-para-301-sentinel-observability.md +87 -0
- package/dist/university-content/notes/N-para-301-sync-and-maintenance.md +57 -0
- package/dist/university-content/notes/N-para-301-wisdom-system.md +89 -0
- package/dist/university-content/notes/N-para-401-agent-identity.md +99 -0
- package/dist/university-content/notes/N-para-401-agent-interop.md +87 -0
- package/dist/university-content/notes/N-para-401-agent-roles.md +107 -0
- package/dist/university-content/notes/N-para-401-commit-conventions.md +82 -0
- package/dist/university-content/notes/N-para-401-mastery-review.md +71 -0
- package/dist/university-content/notes/N-para-401-mcp-tools-overview.md +102 -0
- package/dist/university-content/notes/N-para-401-multi-agent-coordination.md +80 -0
- package/dist/university-content/notes/N-para-401-notebooks-permissions.md +66 -0
- package/dist/university-content/notes/N-para-401-orchestration-workflow.md +101 -0
- package/dist/university-content/notes/N-para-401-pm-governance.md +71 -0
- package/dist/university-content/notes/N-para-401-provider-cascade.md +75 -0
- package/dist/university-content/notes/N-para-401-quick-check.md +95 -0
- package/dist/university-content/notes/N-para-451-agent-routing.md +117 -0
- package/dist/university-content/notes/N-para-451-archetypes-vs-instances.md +82 -0
- package/dist/university-content/notes/N-para-451-identity-layers.md +76 -0
- package/dist/university-content/notes/N-para-451-orchestration-modes.md +85 -0
- package/dist/university-content/notes/N-para-451-paradigm-shift.md +95 -0
- package/dist/university-content/notes/N-para-451-partners-primitive.md +107 -0
- package/dist/university-content/notes/N-para-451-roster-management.md +132 -0
- package/dist/university-content/notes/N-para-451-roster-reference.md +106 -0
- package/dist/university-content/notes/N-para-451-the-team-pattern.md +87 -0
- package/dist/university-content/notes/N-para-451-tiers.md +81 -0
- package/dist/university-content/notes/N-para-451-welcome.md +55 -0
- package/dist/university-content/notes/N-para-451-what-is-an-agent.md +73 -0
- package/dist/university-content/notes/N-para-501-advanced-workflows.md +122 -0
- package/dist/university-content/notes/N-para-501-aspect-graph-advanced.md +195 -0
- package/dist/university-content/notes/N-para-501-aspect-graph-internals.md +97 -0
- package/dist/university-content/notes/N-para-501-assessment-loops.md +116 -0
- package/dist/university-content/notes/N-para-501-conductor-workspace.md +77 -0
- package/dist/university-content/notes/N-para-501-habits-practice.md +164 -0
- package/dist/university-content/notes/N-para-501-hook-enforcement.md +100 -0
- package/dist/university-content/notes/N-para-501-lore-system.md +155 -0
- package/dist/university-content/notes/N-para-501-platform-agent-ui.md +108 -0
- package/dist/university-content/notes/N-para-501-review-compliance.md +72 -0
- package/dist/university-content/notes/N-para-501-sentinel-deep-dive.md +173 -0
- package/dist/university-content/notes/N-para-501-session-intelligence.md +104 -0
- package/dist/university-content/notes/N-para-501-symphony-a-mail.md +120 -0
- package/dist/university-content/notes/N-para-501-symphony-networking.md +119 -0
- package/dist/university-content/notes/N-para-501-task-management.md +100 -0
- package/dist/university-content/notes/N-para-601-agent-renaissance.md +121 -0
- package/dist/university-content/notes/N-para-601-attention-scoring.md +129 -0
- package/dist/university-content/notes/N-para-601-context-composition.md +146 -0
- package/dist/university-content/notes/N-para-601-data-sovereignty.md +140 -0
- package/dist/university-content/notes/N-para-601-event-stream.md +126 -0
- package/dist/university-content/notes/N-para-601-knowledge-streams.md +144 -0
- package/dist/university-content/notes/N-para-601-learning-loop.md +68 -0
- package/dist/university-content/notes/N-para-601-maestro-team-collab.md +136 -0
- package/dist/university-content/notes/N-para-601-nominations-debates.md +115 -0
- package/dist/university-content/notes/N-para-701-agent-notebooks.md +131 -0
- package/dist/university-content/notes/N-para-701-agent-pods-nevrland.md +182 -0
- package/dist/university-content/notes/N-para-701-agent-profiles.md +197 -0
- package/dist/university-content/notes/N-para-701-agent-roster.md +82 -0
- package/dist/university-content/notes/N-para-701-agent-state.md +180 -0
- package/dist/university-content/notes/N-para-701-learning-feedback-loop.md +188 -0
- package/dist/university-content/notes/N-para-701-model-tier-resolution.md +204 -0
- package/dist/university-content/notes/N-para-701-orchestration-enforcement.md +169 -0
- package/dist/university-content/notes/N-para-701-per-project-rosters.md +198 -0
- package/dist/university-content/notes/N-para-701-symphony-visibility.md +142 -0
- package/dist/university-content/paths/LP-para-001.yaml +29 -0
- package/dist/university-content/paths/LP-para-101.yaml +59 -0
- package/dist/university-content/paths/LP-para-201.yaml +69 -0
- package/dist/university-content/paths/LP-para-301.yaml +84 -0
- package/dist/university-content/paths/LP-para-401.yaml +74 -0
- package/dist/university-content/paths/LP-para-451.yaml +69 -0
- package/dist/university-content/paths/LP-para-501.yaml +89 -0
- package/dist/university-content/paths/LP-para-601.yaml +59 -0
- package/dist/university-content/paths/LP-para-701.yaml +64 -0
- package/dist/university-content/quizzes/Q-para-001-build-something.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-001-meet-the-team.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-001-shift-setup.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-101-component-types.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-101-first-steps.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-five-symbols.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-101-paradigm-logger.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-portal-yaml.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-project-structure.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-101-purpose-files.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-tags-and-classification.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-welcome.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-architecture-review.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-aspect-graph.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-201-aspects-and-anchors.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-component-patterns.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-cross-cutting-concerns.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-disciplines.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-flows-deep-dive.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-gates-deep-dive.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-portal-protocol.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-signal-patterns.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-symbol-naming.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-301-context-management.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-decisions.yaml +76 -0
- package/dist/university-content/quizzes/Q-para-301-doctor-and-validation.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-301-enforcement-levels.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-fragility-tracking.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-history-system.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-navigation-system.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-operations-review.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-301-paradigm-shift.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-protocols.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-ripple-analysis.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-sentinel-observability.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-sync-and-maintenance.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-wisdom-system.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-agent-identity.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-agent-interop.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-401-agent-roles.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-commit-conventions.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-mastery-review.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-mcp-tools-overview.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-multi-agent-coordination.yaml +76 -0
- package/dist/university-content/quizzes/Q-para-401-notebooks-permissions.yaml +61 -0
- package/dist/university-content/quizzes/Q-para-401-orchestration-workflow.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-pm-governance.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-provider-cascade.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-quick-check.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-451-foundations.yaml +154 -0
- package/dist/university-content/quizzes/Q-para-451-when-to-invoke.yaml +182 -0
- package/dist/university-content/quizzes/Q-para-501-advanced-workflows.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-aspect-graph-advanced.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-aspect-graph-internals.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-assessment-loops.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-501-conductor-workspace.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-501-habits-practice.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-501-hook-enforcement.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-lore-system.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-platform-agent-ui.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-review-compliance.yaml +61 -0
- package/dist/university-content/quizzes/Q-para-501-sentinel-deep-dive.yaml +86 -0
- package/dist/university-content/quizzes/Q-para-501-session-intelligence.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-symphony-a-mail.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-symphony-networking.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-task-management.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-601-agent-renaissance.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-attention-scoring.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-601-context-composition.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-data-sovereignty.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-601-event-stream.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-knowledge-streams.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-learning-loop.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-601-maestro-team-collab.yaml +86 -0
- package/dist/university-content/quizzes/Q-para-601-nominations-debates.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-notebooks.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-pods-nevrland.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-profiles.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-roster.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-state.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-learning-feedback-loop.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-model-tier-resolution.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-orchestration-enforcement.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-per-project-rosters.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-symphony-visibility.yaml +66 -0
- package/dist/university-content/quizzes/Q-plsat-v2.yaml +904 -0
- package/dist/university-content/quizzes/Q-plsat-v3.yaml +2909 -0
- package/dist/university-content/reference.json +2 -2
- package/dist/university-ui/assets/{index-CecQrfSn.js → index-nNgzO1il.js} +2 -2
- package/dist/university-ui/assets/{index-CecQrfSn.js.map → index-nNgzO1il.js.map} +1 -1
- package/dist/university-ui/index.html +1 -1
- package/dist/{upgrade-GX56QE3C.js → upgrade-NKN63VTY.js} +2 -2
- package/dist/validate-XUQZTF3H.js +9 -0
- package/dist/{watch-YCODNIET.js → watch-25GJHQYT.js} +1 -1
- package/lore-ui/dist/assets/{index-Bk-K0qgN.js → index-DKhNxgtW.js} +10 -10
- package/lore-ui/dist/index.html +1 -1
- package/package.json +2 -2
- package/platform-ui/dist/assets/{AmbientSection-BYjt75R1.js → AmbientSection-CwatqcBD.js} +1 -1
- package/platform-ui/dist/assets/{CanvasSection-rKvA_vZj.js → CanvasSection-dFAthehN.js} +1 -1
- package/platform-ui/dist/assets/{DocsSection-CI9K73M-.js → DocsSection-BZ2SFJBZ.js} +1 -1
- package/platform-ui/dist/assets/{GitSection-DSGj_c6S.js → GitSection-MNNYU1tO.js} +1 -1
- package/platform-ui/dist/assets/{GraphSection-CawN7pC5.js → GraphSection-COYjb4Pt.js} +1 -1
- package/platform-ui/dist/assets/LoreSection-B0hUbfsJ.js +1 -0
- package/platform-ui/dist/assets/{SentinelSection-DNgoYMH0.js → SentinelSection-BCxW1DCp.js} +1 -1
- package/platform-ui/dist/assets/{SymphonySection-C0zfcqv3.js → SymphonySection-BsucZRqy.js} +1 -1
- package/platform-ui/dist/assets/{TeamSection-Bzd3Dt9Q.js → TeamSection-C0QNTudW.js} +1 -1
- package/platform-ui/dist/assets/{UniversitySection-tBr62R0S.js → UniversitySection-DN1-g9pw.js} +1 -1
- package/platform-ui/dist/assets/{index-BaOmyn11.js → index-DwUT8pju.js} +2 -2
- package/platform-ui/dist/index.html +1 -1
- package/dist/add-P76GEMGF.js +0 -8
- package/dist/agent-X6I2YWOB.js +0 -33
- package/dist/chunk-JQKKVAAN.js +0 -2
- package/dist/chunk-NQ47TA6C.js +0 -111
- package/dist/chunk-ODVKPZZ4.js +0 -2
- package/dist/chunk-Q2J542ST.js +0 -2
- package/dist/chunk-RBLK34IA.js +0 -11
- package/dist/chunk-RN4VE6P3.js +0 -521
- package/dist/chunk-WS2N27RX.js +0 -3
- package/dist/config-schema-GUQY2QN7.js +0 -2
- package/dist/decision-loader-2XPZE4EZ.js +0 -2
- package/dist/doctor-WMVULMQD.js +0 -2
- package/dist/list-5IUGP3ZB.js +0 -7
- package/dist/lore-loader-RVQI5GXL.js +0 -2
- package/dist/lore-loader-XY5MZRR2.js +0 -2
- package/dist/migrate-assessments-GEI5WMI2.js +0 -4
- package/dist/portal-compliance-6YR27IQU.js +0 -2
- package/dist/quiz-FE5UGAY2.js +0 -10
- package/dist/registry-KOOKFUWD.js +0 -20
- package/dist/reindex-I6LPAKCC.js +0 -2
- package/dist/serve-OY6XYL7F.js +0 -12
- package/dist/server-2MNROHF6.js +0 -7
- package/dist/session-tracker-MWJAJA6Z.js +0 -2
- package/dist/shift-PC6C7NUX.js +0 -60
- package/dist/show-BOAVWZPZ.js +0 -7
- package/dist/status-A37ECYNJ.js +0 -6
- package/dist/sync-DLUBV5HQ.js +0 -2
- package/dist/tools-5ITPEPSV.js +0 -2
- package/dist/university-content/courses/.purpose +0 -492
- package/dist/university-content/courses/para-001.json +0 -166
- package/dist/university-content/courses/para-101.json +0 -615
- package/dist/university-content/courses/para-201.json +0 -794
- package/dist/university-content/courses/para-301.json +0 -830
- package/dist/university-content/courses/para-401.json +0 -868
- package/dist/university-content/courses/para-501.json +0 -1166
- package/dist/university-content/courses/para-601.json +0 -719
- package/dist/university-content/courses/para-701.json +0 -807
- package/dist/university-content/plsat/.purpose +0 -162
- package/dist/university-content/plsat/v2.0.json +0 -760
- package/dist/university-content/plsat/v3.0.json +0 -3453
- package/dist/validate-C6SMKGYD.js +0 -9
- package/platform-ui/dist/assets/LoreSection-oO5dCe6O.js +0 -1
- /package/dist/{chunk-BV5PRPLB.js → chunk-HXGYVS2N.js} +0 -0
- /package/templates/paradigm/specs/{scan.md → probe.md} +0 -0
|
@@ -0,0 +1,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.'
|