@a-company/paradigm 5.38.0 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accept-orchestration-OATWIRHP.js → accept-orchestration-QQISPINV.js} +1 -1
- package/dist/add-UOR4INIV.js +8 -0
- package/dist/{agent-loader-RIVI6QPP.js → agent-loader-2WJHD46U.js} +1 -1
- package/dist/{agent-loader-RJRVO5GQ.js → agent-loader-YKS2PQWO.js} +1 -1
- package/dist/{ambient-76YMUA5Q.js → ambient-BE3SQXNN.js} +1 -1
- package/dist/{ambient-WTLYUAQM.js → ambient-NVKQCW2A.js} +12 -12
- package/dist/{assess-UFPYEJKP.js → assess-63WXHWJV.js} +1 -1
- package/dist/{calibration-OLJYB5HN.js → calibration-BDHGYJOK.js} +1 -1
- package/dist/{chunk-5QOCKWK5.js → chunk-4PSD5R7N.js} +2 -2
- package/dist/{chunk-HOBHJPTL.js → chunk-6SKSV5B2.js} +1 -1
- package/dist/{chunk-4L7665QV.js → chunk-FEYOQMZ5.js} +1 -1
- package/dist/{chunk-NEJ4ZLCY.js → chunk-GAFKOFAV.js} +1 -1
- package/dist/chunk-GRZQIKST.js +2 -0
- package/dist/{chunk-RLCH7DXQ.js → chunk-K7X3Z3GL.js} +1 -1
- package/dist/{chunk-4VKSEOXZ.js → chunk-LPBCQM5Y.js} +3 -3
- package/dist/{chunk-74SGKSRQ.js → chunk-M2HKWR25.js} +1 -1
- package/dist/{chunk-BOYQAMGC.js → chunk-M3PPXJU4.js} +1 -1
- package/dist/chunk-PHEX6LU4.js +111 -0
- package/dist/chunk-Q527BPUF.js +2 -0
- package/dist/chunk-R5ECMBIV.js +11 -0
- package/dist/{chunk-X3U3IGYT.js → chunk-TBWWFRL5.js} +1 -1
- package/dist/{chunk-MQIG6SMF.js → chunk-TNVWGPCE.js} +1 -1
- package/dist/chunk-TZDYIPVU.js +521 -0
- package/dist/{chunk-3XGNXXCT.js → chunk-UZ5H7K6Q.js} +1 -1
- package/dist/chunk-VIG5LSGZ.js +2 -0
- package/dist/chunk-VNIX5KBT.js +3 -0
- package/dist/{chunk-AGFPVSX5.js → chunk-VXIIVMTM.js} +1 -1
- package/dist/{chunk-ORDKEGII.js → chunk-WESTEMIM.js} +1 -1
- package/dist/{chunk-DOCDDDTD.js → chunk-YNDPSWOE.js} +5 -5
- package/dist/chunk-Z5QW6USC.js +2 -0
- package/dist/{compliance-D7GD6ZYC.js → compliance-BNFWQPKM.js} +1 -1
- package/dist/config-schema-FLHRVZMI.js +2 -0
- package/dist/{context-audit-XRPT3OU2.js → context-audit-JVCA6GSV.js} +1 -1
- package/dist/{cursorrules-U5O4G5T4.js → cursorrules-ZXPXPZ3P.js} +1 -1
- package/dist/decision-loader-HELL2AMX.js +2 -0
- package/dist/{delete-P5VULXR4.js → delete-2C6ALLYY.js} +1 -1
- package/dist/{diff-YGHBIJY5.js → diff-MF55KQZH.js} +1 -1
- package/dist/{dist-KGRCLBJP-2QAPFYNF.js → dist-GQ42YS5N-4HIJZVBB.js} +10 -10
- package/dist/{docs-USDAF26F.js → docs-O37YLLRN.js} +1 -1
- package/dist/doctor-IG5XM4C4.js +2 -0
- package/dist/{edit-GUU3HBVW.js → edit-P3MDAZLU.js} +1 -1
- package/dist/{flow-FVZR3YJ4.js → flow-BGXOVE2V.js} +1 -1
- package/dist/index.js +6 -6
- package/dist/init-M44SO65G.js +2 -0
- package/dist/{init-XYB62Q3X.js → init-V4KSEKPK.js} +1 -1
- package/dist/{list-YKIQNKGB.js → list-2XIWUEMA.js} +1 -1
- package/dist/list-CFHINXIS.js +12 -0
- package/dist/lore-loader-D2ISOASW.js +2 -0
- package/dist/lore-loader-PXFKMKAN.js +2 -0
- package/dist/mcp.js +4 -4
- package/dist/metrics-UESGUHTA.js +2 -0
- package/dist/migrate-assessments-YSITX7KM.js +4 -0
- package/dist/migrate-decisions-NPLQOEEH.js +6 -0
- package/dist/migrate-plsat-EM2ACIQ3.js +6 -0
- package/dist/{nomination-engine-EALA5MGI.js → nomination-engine-QPZJH6XO.js} +1 -1
- package/dist/{notebook-loader-PXNRBBXD.js → notebook-loader-3J2OFMS3.js} +1 -1
- package/dist/{orchestrate-M5PBZBJQ.js → orchestrate-RID7HHHH.js} +1 -1
- package/dist/{platform-server-DNAMH4YI.js → platform-server-UD45NTGV.js} +1 -1
- package/dist/{portal-check-ZMLVBIGW.js → portal-check-DV2VSJ5E.js} +1 -1
- package/dist/portal-compliance-JONQ4SOP.js +2 -0
- package/dist/{probe-3FTG6LYO.js → probe-5HAXULAD.js} +1 -1
- package/dist/{providers-AWA7WLLM.js → providers-4PXMWA7V.js} +1 -1
- package/dist/quiz-WYIZJG5K.js +10 -0
- package/dist/{record-YXPB34MY.js → record-N3VNYYKJ.js} +1 -1
- package/dist/reindex-FWPD2VGM.js +2 -0
- package/dist/{retag-N5XF3KXP.js → retag-72R2OSZV.js} +1 -1
- package/dist/{review-77QI6VOC.js → review-2INNWLTW.js} +1 -1
- package/dist/{sentinel-HYAZ3CO5.js → sentinel-EFPEX246.js} +1 -1
- package/dist/{sentinel-bridge-VR357PKL.js → sentinel-bridge-UR2MKARY.js} +1 -1
- package/dist/{serve-U47GULB6.js → serve-MO35XIZE.js} +1 -1
- package/dist/serve-OQYUO7CR.js +12 -0
- package/dist/{server-4YNUIK4W.js → server-4D77LCST.js} +1 -1
- package/dist/server-FGUL2FWQ.js +7 -0
- package/dist/session-tracker-KGORN6B5.js +2 -0
- package/dist/{session-work-log-PAKXOFGL.js → session-work-log-4IEVE4KK.js} +1 -1
- package/dist/{session-work-log-ZP45TREI.js → session-work-log-EE4UIZ33.js} +1 -1
- package/dist/{setup-FEWSYS3Y.js → setup-ZSEC72BS.js} +1 -1
- package/dist/{shift-PC6C7NUX.js → shift-TVNY2CQF.js} +6 -6
- package/dist/{show-PJ5LFLIL.js → show-JH7LJ5MT.js} +1 -1
- package/dist/show-WVHAL4VU.js +7 -0
- package/dist/{spawn-M5BAV252.js → spawn-UH5RENSE.js} +1 -1
- package/dist/status-S7Z5FVIE.js +6 -0
- package/dist/{summary-PYTEIJ4U.js → summary-WLI3NF4G.js} +2 -2
- package/dist/{sweep-HU74OPVW.js → sweep-7TZFN5NS.js} +1 -1
- package/dist/sync-55U6QPIA.js +2 -0
- package/dist/{sync-llms-7CAI74QL.js → sync-llms-GF7DDQDI.js} +1 -1
- package/dist/{team-PDK64JXI.js → team-MGT66HZQ.js} +1 -1
- package/dist/{timeline-K3ZFKJ3R.js → timeline-RK7O2SCM.js} +1 -1
- package/dist/tools-QJHAVYI6.js +2 -0
- package/dist/university-content/notes/N-para-001-build-something.md +126 -0
- package/dist/university-content/notes/N-para-001-meet-the-team.md +85 -0
- package/dist/university-content/notes/N-para-001-shift-setup.md +74 -0
- package/dist/university-content/notes/N-para-101-component-types.md +99 -0
- package/dist/university-content/notes/N-para-101-first-steps.md +134 -0
- package/dist/university-content/notes/N-para-101-five-symbols.md +128 -0
- package/dist/university-content/notes/N-para-101-paradigm-logger.md +89 -0
- package/dist/university-content/notes/N-para-101-portal-yaml.md +112 -0
- package/dist/university-content/notes/N-para-101-project-structure.md +143 -0
- package/dist/university-content/notes/N-para-101-purpose-files.md +121 -0
- package/dist/university-content/notes/N-para-101-tags-and-classification.md +93 -0
- package/dist/university-content/notes/N-para-101-welcome.md +51 -0
- package/dist/university-content/notes/N-para-201-architecture-review.md +175 -0
- package/dist/university-content/notes/N-para-201-aspect-graph.md +79 -0
- package/dist/university-content/notes/N-para-201-aspects-and-anchors.md +112 -0
- package/dist/university-content/notes/N-para-201-component-patterns.md +138 -0
- package/dist/university-content/notes/N-para-201-cross-cutting-concerns.md +145 -0
- package/dist/university-content/notes/N-para-201-disciplines.md +187 -0
- package/dist/university-content/notes/N-para-201-flows-deep-dive.md +119 -0
- package/dist/university-content/notes/N-para-201-gates-deep-dive.md +165 -0
- package/dist/university-content/notes/N-para-201-portal-protocol.md +133 -0
- package/dist/university-content/notes/N-para-201-signal-patterns.md +159 -0
- package/dist/university-content/notes/N-para-201-symbol-naming.md +149 -0
- package/dist/university-content/notes/N-para-301-context-management.md +53 -0
- package/dist/university-content/notes/N-para-301-decisions.md +99 -0
- package/dist/university-content/notes/N-para-301-doctor-and-validation.md +70 -0
- package/dist/university-content/notes/N-para-301-enforcement-levels.md +102 -0
- package/dist/university-content/notes/N-para-301-fragility-tracking.md +50 -0
- package/dist/university-content/notes/N-para-301-history-system.md +42 -0
- package/dist/university-content/notes/N-para-301-navigation-system.md +55 -0
- package/dist/university-content/notes/N-para-301-operations-review.md +55 -0
- package/dist/university-content/notes/N-para-301-paradigm-shift.md +93 -0
- package/dist/university-content/notes/N-para-301-protocols.md +113 -0
- package/dist/university-content/notes/N-para-301-ripple-analysis.md +53 -0
- package/dist/university-content/notes/N-para-301-sentinel-observability.md +87 -0
- package/dist/university-content/notes/N-para-301-sync-and-maintenance.md +57 -0
- package/dist/university-content/notes/N-para-301-wisdom-system.md +89 -0
- package/dist/university-content/notes/N-para-401-agent-identity.md +99 -0
- package/dist/university-content/notes/N-para-401-agent-interop.md +87 -0
- package/dist/university-content/notes/N-para-401-agent-roles.md +107 -0
- package/dist/university-content/notes/N-para-401-commit-conventions.md +82 -0
- package/dist/university-content/notes/N-para-401-mastery-review.md +71 -0
- package/dist/university-content/notes/N-para-401-mcp-tools-overview.md +102 -0
- package/dist/university-content/notes/N-para-401-multi-agent-coordination.md +80 -0
- package/dist/university-content/notes/N-para-401-notebooks-permissions.md +66 -0
- package/dist/university-content/notes/N-para-401-orchestration-workflow.md +101 -0
- package/dist/university-content/notes/N-para-401-pm-governance.md +71 -0
- package/dist/university-content/notes/N-para-401-provider-cascade.md +75 -0
- package/dist/university-content/notes/N-para-401-quick-check.md +95 -0
- package/dist/university-content/notes/N-para-501-advanced-workflows.md +122 -0
- package/dist/university-content/notes/N-para-501-aspect-graph-advanced.md +195 -0
- package/dist/university-content/notes/N-para-501-aspect-graph-internals.md +97 -0
- package/dist/university-content/notes/N-para-501-assessment-loops.md +116 -0
- package/dist/university-content/notes/N-para-501-conductor-workspace.md +77 -0
- package/dist/university-content/notes/N-para-501-habits-practice.md +164 -0
- package/dist/university-content/notes/N-para-501-hook-enforcement.md +100 -0
- package/dist/university-content/notes/N-para-501-lore-system.md +155 -0
- package/dist/university-content/notes/N-para-501-platform-agent-ui.md +108 -0
- package/dist/university-content/notes/N-para-501-review-compliance.md +72 -0
- package/dist/university-content/notes/N-para-501-sentinel-deep-dive.md +173 -0
- package/dist/university-content/notes/N-para-501-session-intelligence.md +104 -0
- package/dist/university-content/notes/N-para-501-symphony-a-mail.md +120 -0
- package/dist/university-content/notes/N-para-501-symphony-networking.md +119 -0
- package/dist/university-content/notes/N-para-501-task-management.md +100 -0
- package/dist/university-content/notes/N-para-601-agent-renaissance.md +121 -0
- package/dist/university-content/notes/N-para-601-attention-scoring.md +129 -0
- package/dist/university-content/notes/N-para-601-context-composition.md +146 -0
- package/dist/university-content/notes/N-para-601-data-sovereignty.md +140 -0
- package/dist/university-content/notes/N-para-601-event-stream.md +126 -0
- package/dist/university-content/notes/N-para-601-knowledge-streams.md +144 -0
- package/dist/university-content/notes/N-para-601-learning-loop.md +68 -0
- package/dist/university-content/notes/N-para-601-maestro-team-collab.md +136 -0
- package/dist/university-content/notes/N-para-601-nominations-debates.md +115 -0
- package/dist/university-content/notes/N-para-701-agent-notebooks.md +131 -0
- package/dist/university-content/notes/N-para-701-agent-pods-nevrland.md +182 -0
- package/dist/university-content/notes/N-para-701-agent-profiles.md +197 -0
- package/dist/university-content/notes/N-para-701-agent-roster.md +82 -0
- package/dist/university-content/notes/N-para-701-agent-state.md +180 -0
- package/dist/university-content/notes/N-para-701-learning-feedback-loop.md +188 -0
- package/dist/university-content/notes/N-para-701-model-tier-resolution.md +204 -0
- package/dist/university-content/notes/N-para-701-orchestration-enforcement.md +169 -0
- package/dist/university-content/notes/N-para-701-per-project-rosters.md +198 -0
- package/dist/university-content/notes/N-para-701-symphony-visibility.md +142 -0
- package/dist/university-content/paths/LP-para-001.yaml +29 -0
- package/dist/university-content/paths/LP-para-101.yaml +59 -0
- package/dist/university-content/paths/LP-para-201.yaml +69 -0
- package/dist/university-content/paths/LP-para-301.yaml +84 -0
- package/dist/university-content/paths/LP-para-401.yaml +74 -0
- package/dist/university-content/paths/LP-para-501.yaml +89 -0
- package/dist/university-content/paths/LP-para-601.yaml +59 -0
- package/dist/university-content/paths/LP-para-701.yaml +64 -0
- package/dist/university-content/quizzes/Q-para-001-build-something.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-001-meet-the-team.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-001-shift-setup.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-101-component-types.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-101-first-steps.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-five-symbols.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-101-paradigm-logger.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-portal-yaml.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-project-structure.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-101-purpose-files.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-tags-and-classification.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-welcome.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-architecture-review.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-aspect-graph.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-201-aspects-and-anchors.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-component-patterns.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-cross-cutting-concerns.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-disciplines.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-flows-deep-dive.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-gates-deep-dive.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-portal-protocol.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-signal-patterns.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-symbol-naming.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-301-context-management.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-decisions.yaml +76 -0
- package/dist/university-content/quizzes/Q-para-301-doctor-and-validation.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-301-enforcement-levels.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-fragility-tracking.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-history-system.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-navigation-system.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-operations-review.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-301-paradigm-shift.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-protocols.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-ripple-analysis.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-sentinel-observability.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-sync-and-maintenance.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-wisdom-system.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-agent-identity.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-agent-interop.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-401-agent-roles.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-commit-conventions.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-mastery-review.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-mcp-tools-overview.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-multi-agent-coordination.yaml +76 -0
- package/dist/university-content/quizzes/Q-para-401-notebooks-permissions.yaml +61 -0
- package/dist/university-content/quizzes/Q-para-401-orchestration-workflow.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-pm-governance.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-provider-cascade.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-quick-check.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-501-advanced-workflows.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-aspect-graph-advanced.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-aspect-graph-internals.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-assessment-loops.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-501-conductor-workspace.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-501-habits-practice.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-501-hook-enforcement.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-lore-system.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-platform-agent-ui.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-review-compliance.yaml +61 -0
- package/dist/university-content/quizzes/Q-para-501-sentinel-deep-dive.yaml +86 -0
- package/dist/university-content/quizzes/Q-para-501-session-intelligence.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-symphony-a-mail.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-symphony-networking.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-task-management.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-601-agent-renaissance.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-attention-scoring.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-601-context-composition.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-data-sovereignty.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-601-event-stream.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-knowledge-streams.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-learning-loop.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-601-maestro-team-collab.yaml +86 -0
- package/dist/university-content/quizzes/Q-para-601-nominations-debates.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-notebooks.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-pods-nevrland.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-profiles.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-roster.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-state.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-learning-feedback-loop.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-model-tier-resolution.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-orchestration-enforcement.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-per-project-rosters.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-symphony-visibility.yaml +66 -0
- package/dist/university-content/quizzes/Q-plsat-v2.yaml +904 -0
- package/dist/university-content/quizzes/Q-plsat-v3.yaml +2909 -0
- package/dist/university-content/reference.json +2 -2
- package/dist/university-ui/assets/{index-CecQrfSn.js → index-nNgzO1il.js} +2 -2
- package/dist/university-ui/assets/{index-CecQrfSn.js.map → index-nNgzO1il.js.map} +1 -1
- package/dist/university-ui/index.html +1 -1
- package/dist/{upgrade-GX56QE3C.js → upgrade-NKN63VTY.js} +2 -2
- package/dist/validate-XUQZTF3H.js +9 -0
- package/dist/{watch-YCODNIET.js → watch-25GJHQYT.js} +1 -1
- package/lore-ui/dist/assets/{index-Bk-K0qgN.js → index-DKhNxgtW.js} +10 -10
- package/lore-ui/dist/index.html +1 -1
- package/package.json +2 -2
- package/platform-ui/dist/assets/{AmbientSection-BYjt75R1.js → AmbientSection-CwatqcBD.js} +1 -1
- package/platform-ui/dist/assets/{CanvasSection-rKvA_vZj.js → CanvasSection-dFAthehN.js} +1 -1
- package/platform-ui/dist/assets/{DocsSection-CI9K73M-.js → DocsSection-BZ2SFJBZ.js} +1 -1
- package/platform-ui/dist/assets/{GitSection-DSGj_c6S.js → GitSection-MNNYU1tO.js} +1 -1
- package/platform-ui/dist/assets/{GraphSection-CawN7pC5.js → GraphSection-COYjb4Pt.js} +1 -1
- package/platform-ui/dist/assets/LoreSection-B0hUbfsJ.js +1 -0
- package/platform-ui/dist/assets/{SentinelSection-DNgoYMH0.js → SentinelSection-BCxW1DCp.js} +1 -1
- package/platform-ui/dist/assets/{SymphonySection-C0zfcqv3.js → SymphonySection-BsucZRqy.js} +1 -1
- package/platform-ui/dist/assets/{TeamSection-Bzd3Dt9Q.js → TeamSection-C0QNTudW.js} +1 -1
- package/platform-ui/dist/assets/{UniversitySection-tBr62R0S.js → UniversitySection-DN1-g9pw.js} +1 -1
- package/platform-ui/dist/assets/{index-BaOmyn11.js → index-DwUT8pju.js} +2 -2
- package/platform-ui/dist/index.html +1 -1
- package/dist/add-P76GEMGF.js +0 -8
- package/dist/chunk-JQKKVAAN.js +0 -2
- package/dist/chunk-NQ47TA6C.js +0 -111
- package/dist/chunk-ODVKPZZ4.js +0 -2
- package/dist/chunk-Q2J542ST.js +0 -2
- package/dist/chunk-RBLK34IA.js +0 -11
- package/dist/chunk-RN4VE6P3.js +0 -521
- package/dist/chunk-WS2N27RX.js +0 -3
- package/dist/config-schema-GUQY2QN7.js +0 -2
- package/dist/decision-loader-2XPZE4EZ.js +0 -2
- package/dist/doctor-WMVULMQD.js +0 -2
- package/dist/list-5IUGP3ZB.js +0 -7
- package/dist/lore-loader-RVQI5GXL.js +0 -2
- package/dist/lore-loader-XY5MZRR2.js +0 -2
- package/dist/migrate-assessments-GEI5WMI2.js +0 -4
- package/dist/portal-compliance-6YR27IQU.js +0 -2
- package/dist/quiz-FE5UGAY2.js +0 -10
- package/dist/reindex-I6LPAKCC.js +0 -2
- package/dist/serve-OY6XYL7F.js +0 -12
- package/dist/server-2MNROHF6.js +0 -7
- package/dist/session-tracker-MWJAJA6Z.js +0 -2
- package/dist/show-BOAVWZPZ.js +0 -7
- package/dist/status-A37ECYNJ.js +0 -6
- package/dist/sync-DLUBV5HQ.js +0 -2
- package/dist/tools-5ITPEPSV.js +0 -2
- package/dist/university-content/courses/.purpose +0 -492
- package/dist/university-content/courses/para-001.json +0 -166
- package/dist/university-content/courses/para-101.json +0 -615
- package/dist/university-content/courses/para-201.json +0 -794
- package/dist/university-content/courses/para-301.json +0 -830
- package/dist/university-content/courses/para-401.json +0 -868
- package/dist/university-content/courses/para-501.json +0 -1166
- package/dist/university-content/courses/para-601.json +0 -719
- package/dist/university-content/courses/para-701.json +0 -807
- package/dist/university-content/plsat/.purpose +0 -162
- package/dist/university-content/plsat/v2.0.json +0 -760
- package/dist/university-content/plsat/v3.0.json +0 -3453
- package/dist/validate-C6SMKGYD.js +0 -9
- package/platform-ui/dist/assets/LoreSection-oO5dCe6O.js +0 -1
- /package/dist/{chunk-BV5PRPLB.js → chunk-IZSBGW6E.js} +0 -0
- /package/templates/paradigm/specs/{scan.md → probe.md} +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-301-operations-review
|
|
3
|
+
title: Operational Excellence
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-301
|
|
11
|
+
- the-operational-loop
|
|
12
|
+
- combining-tools-for
|
|
13
|
+
- metadata-maintenance-as
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 3
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-301.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Operational Excellence
|
|
24
|
+
|
|
25
|
+
This lesson brings together everything from PARA 301 into a cohesive daily workflow. Operational excellence in Paradigm is not about memorizing individual tools -- it is about building habits that keep your project healthy, your metadata accurate, and your development sessions productive.
|
|
26
|
+
|
|
27
|
+
### The Operational Loop
|
|
28
|
+
|
|
29
|
+
Every development session follows a predictable pattern:
|
|
30
|
+
|
|
31
|
+
**1. Orient** -- Start by calling `paradigm_status` to see the project overview: how many symbols are defined, recent changes, any outstanding issues. If this is a continuation session, call `paradigm_session_recover` to load context from the previous session.
|
|
32
|
+
|
|
33
|
+
**2. Discover** -- Before touching code, check for existing protocols: call `paradigm_protocol_search` with your task description. If a match exists, follow its steps and skip exploration. Otherwise, call `paradigm_wisdom_context` with the symbols you plan to modify to learn team conventions and avoid known pitfalls. Use `paradigm_navigate` with the "context" intent to find all relevant files for your task.
|
|
34
|
+
|
|
35
|
+
**3. Assess Risk** -- Run `paradigm_ripple` on every symbol you plan to modify to understand the blast radius. Check `paradigm_history_fragility` on anything flagged as a dependency. If the task is complex (3+ files, security + implementation), call `paradigm_orchestrate_inline` with mode="plan" to get the right agent team.
|
|
36
|
+
|
|
37
|
+
**4. Implement** -- Write code, updating `.purpose` files as you go. If you add routes, update `portal.yaml`. If you add signals, register them. Do not defer metadata updates to "later" -- later never comes.
|
|
38
|
+
|
|
39
|
+
**5. Validate** -- Run `paradigm doctor` or `paradigm_purpose_validate` to catch any drift. Use `paradigm_flow_check` if you modified flows. Record the implementation with `paradigm_history_record`.
|
|
40
|
+
|
|
41
|
+
**6. Capture Knowledge** -- Did you discover an antipattern? Record it with `paradigm_wisdom_record`. Did you make an architectural decision? Record it with `paradigm_decision_record` (which auto-writes a companion lore `insight` for timeline coverage). Did the implementation follow a repeatable pattern? Record a protocol with `paradigm_protocol_record`. Did the implementation reveal a fragile area? Note it for the team.
|
|
42
|
+
|
|
43
|
+
**7. Monitor Context** -- Check `paradigm_session_health` periodically. If approaching limits, prepare a handoff.
|
|
44
|
+
|
|
45
|
+
### Common Pitfalls
|
|
46
|
+
|
|
47
|
+
- **Skipping wisdom checks**: Leads to repeating mistakes the team already knows about
|
|
48
|
+
- **Skipping ripple analysis**: Leads to breaking downstream dependencies
|
|
49
|
+
- **Deferring metadata updates**: Leads to stale `.purpose` files and misleading navigation
|
|
50
|
+
- **Ignoring fragility warnings**: Leads to cascading failures in unstable areas
|
|
51
|
+
- **Not recording history**: Loses the trail that fragility analysis depends on
|
|
52
|
+
|
|
53
|
+
### The Measure of Excellence
|
|
54
|
+
|
|
55
|
+
A well-operated Paradigm project has: accurate `.purpose` files that match the code, a `portal.yaml` that reflects all protected routes, wisdom entries that prevent repeated mistakes, history records that enable fragility analysis, and context handoffs that allow seamless multi-session work. When all of these are in place, every AI agent session starts with full context and every change is informed by the project's complete institutional knowledge.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-301-paradigm-shift
|
|
3
|
+
title: The paradigm shift Command
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-301
|
|
11
|
+
- paradigm-shift-is
|
|
12
|
+
- six-steps-init
|
|
13
|
+
- non-interactive-by-default
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 3
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-301.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## One Command, Full Setup
|
|
24
|
+
|
|
25
|
+
`paradigm shift` is the universal onboarding command. It transforms any project directory into a Paradigm-aware workspace in a single run. Whether you are starting a new project or adopting Paradigm in an existing codebase, this is where you begin.
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
paradigm shift
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## What It Does (6 Steps)
|
|
32
|
+
|
|
33
|
+
The command runs six steps in sequence:
|
|
34
|
+
|
|
35
|
+
### Step 1: Initialize
|
|
36
|
+
Creates the `.paradigm/` directory with `config.yaml`, `tags.yaml`, and starter files. If the directory already exists, it updates configuration without overwriting your customizations.
|
|
37
|
+
|
|
38
|
+
### Step 2: Auto-Migrate
|
|
39
|
+
Detects if your project uses an older Paradigm version and applies breaking-change migrations automatically. This keeps projects up to date without manual migration effort.
|
|
40
|
+
|
|
41
|
+
### Step 3: Scan & Index
|
|
42
|
+
Discovers all symbols in your codebase by reading `.purpose` files and `portal.yaml`. Builds the navigator index for fast symbol lookup. Skip this step with `--quick` for faster initialization.
|
|
43
|
+
|
|
44
|
+
### Step 4: Sync IDEs
|
|
45
|
+
Generates instruction files for your AI tools:
|
|
46
|
+
- `CLAUDE.md` — Claude Code instructions
|
|
47
|
+
- `AGENTS.md` — Universal agent instructions
|
|
48
|
+
- `.cursor/rules/` — Cursor IDE rules
|
|
49
|
+
|
|
50
|
+
These files are regenerated from your Paradigm configuration every time you run shift or sync.
|
|
51
|
+
|
|
52
|
+
### Step 5: Install Hooks
|
|
53
|
+
Sets up Git hooks (pre-commit, post-commit) and Claude Code/Cursor hooks for automated enforcement. The hooks run compliance checks based on your enforcement level.
|
|
54
|
+
|
|
55
|
+
### Step 6: Roster & Model Tiers
|
|
56
|
+
Suggests an agent roster based on your detected project type (web, backend, mobile, etc.) and configures model tiers (tier-1/tier-2/tier-3) based on your environment.
|
|
57
|
+
|
|
58
|
+
## Key Flags
|
|
59
|
+
|
|
60
|
+
| Flag | Effect |
|
|
61
|
+
|------|--------|
|
|
62
|
+
| `--quick` | Skip symbol scanning (fast init) |
|
|
63
|
+
| `--verify` | Run `paradigm doctor` health checks at the end |
|
|
64
|
+
| `--workspace <name>` | Create or join a multi-project workspace |
|
|
65
|
+
| `--force` | Reinitialize (overwrite existing config) |
|
|
66
|
+
|
|
67
|
+
## When to Re-Run
|
|
68
|
+
|
|
69
|
+
Run `paradigm shift` again when:
|
|
70
|
+
- You upgrade Paradigm to a new version (auto-migrates)
|
|
71
|
+
- You want to refresh IDE instruction files after config changes
|
|
72
|
+
- You add the project to a workspace
|
|
73
|
+
- After major restructuring that changes project type
|
|
74
|
+
|
|
75
|
+
The command is idempotent — running it multiple times is safe. It updates what changed and leaves the rest alone.
|
|
76
|
+
|
|
77
|
+
## What Comes Out
|
|
78
|
+
|
|
79
|
+
After `paradigm shift`, your project has:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
.paradigm/
|
|
83
|
+
config.yaml # Project configuration
|
|
84
|
+
tags.yaml # Tag taxonomy
|
|
85
|
+
roster.yaml # Agent team roster
|
|
86
|
+
agents.yaml # Agent tier assignments
|
|
87
|
+
CLAUDE.md # Claude Code instructions
|
|
88
|
+
AGENTS.md # Universal agent instructions
|
|
89
|
+
.purpose # Root purpose file (if new project)
|
|
90
|
+
portal.yaml # Auth topology (if gates detected)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Plus Git hooks and IDE-specific instruction files, all derived from your Paradigm configuration.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-301-protocols
|
|
3
|
+
title: Protocols — Repeatable Patterns
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-301
|
|
11
|
+
- protocols-as-repeatable
|
|
12
|
+
- paradigmprotocolsearch--find
|
|
13
|
+
- paradigmprotocolrecord--capture
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 4
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-301.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Protocols — Repeatable Patterns
|
|
24
|
+
|
|
25
|
+
AI agents routinely spend tens of thousands of tokens exploring codebases to reverse-engineer implementation patterns before they can start working. In a well-structured project, the answer to "how do I add a new view?" is the same every time: create a component file, create a store, register a route, add CSS. But this knowledge lives nowhere explicit, so every agent re-discovers it from scratch.
|
|
26
|
+
|
|
27
|
+
Protocols solve this problem. They are procedural, step-by-step instructions with exact file references, learned from actual completed work. When an agent receives a task like "add a Settings page," it first calls `paradigm_protocol_search` with the task description. If a matching protocol exists, the agent gets back ordered steps, an exemplar file to study, and freshness information -- all within a few hundred tokens instead of exploring for thousands.
|
|
28
|
+
|
|
29
|
+
### Storage and Format
|
|
30
|
+
|
|
31
|
+
Protocols are stored as `.protocol` files (YAML syntax, semantic extension) in `.paradigm/protocols/`. Each protocol has an ID, a name, a description, trigger phrases for fuzzy matching, tags for classification, an exemplar file (the canonical example to follow), and an ordered list of steps.
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
.paradigm/protocols/
|
|
35
|
+
index.yaml # Auto-generated by reindex
|
|
36
|
+
add-view.protocol # One file per protocol
|
|
37
|
+
add-api-route.protocol
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Step Types
|
|
41
|
+
|
|
42
|
+
Protocol steps use four action types:
|
|
43
|
+
|
|
44
|
+
- **create** -- Create a new file. Specifies `target` (the file to create, with placeholders) and `template_from` (an existing file to follow as a model).
|
|
45
|
+
- **modify** -- Edit an existing file. Specifies `target`, `reference` (where in the file to make changes), and `notes` explaining what to add.
|
|
46
|
+
- **run** -- Execute a command. Specifies `command` and `notes`.
|
|
47
|
+
- **verify** -- Confirm something works. Specifies `notes` with what to check.
|
|
48
|
+
|
|
49
|
+
Steps support placeholders: `{Name}` for PascalCase and `{name}` for kebab-case. When following the protocol, the agent substitutes the actual name.
|
|
50
|
+
|
|
51
|
+
### Searching for Protocols
|
|
52
|
+
|
|
53
|
+
The primary entry point is `paradigm_protocol_search`. Pass a natural language task description and it returns matching protocols ranked by relevance.
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
paradigm_protocol_search({ task: "add a new settings page" })
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
The search uses weighted fuzzy matching: trigger phrases (weight 3), tags (weight 2), name and description (weight 1), and step notes (weight 0.5). The protocol set per project is small (5-30 entries), so a full scan is efficient.
|
|
60
|
+
|
|
61
|
+
To get full details for a specific protocol, use `paradigm_protocol_get`:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
paradigm_protocol_get({ id: "P-add-view" })
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Recording Protocols
|
|
68
|
+
|
|
69
|
+
Protocols are captured *after* completing work, not before. Two paths lead to a new protocol:
|
|
70
|
+
|
|
71
|
+
1. **Agent-initiated** -- After implementing a repeatable task, the agent calls `paradigm_protocol_record` with the steps it followed:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
paradigm_protocol_record({
|
|
75
|
+
name: "Add a new view",
|
|
76
|
+
description: "Create a new page with store, route, and CSS",
|
|
77
|
+
trigger: ["add view", "new page", "create view"],
|
|
78
|
+
tags: ["ui", "frontend"],
|
|
79
|
+
exemplar: "ui/src/views/LogsView.tsx",
|
|
80
|
+
steps: [
|
|
81
|
+
{ action: "create", target: "ui/src/views/{Name}View.tsx", template_from: "ui/src/views/LogsView.tsx" },
|
|
82
|
+
{ action: "modify", target: "ui/src/App.tsx", reference: "Route elements", notes: "Add Route" },
|
|
83
|
+
{ action: "verify", notes: "Run build, check route loads" }
|
|
84
|
+
],
|
|
85
|
+
recorded_from: "L-2026-03-01-001"
|
|
86
|
+
})
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
2. **Lore-prompted** -- When `paradigm_lore_record` is called, the response includes a `protocol_suggestion` if the session created new files following existing patterns. This nudges agents to capture repeatable work without manual intervention.
|
|
90
|
+
|
|
91
|
+
### Freshness and Maintenance
|
|
92
|
+
|
|
93
|
+
Protocols go stale as code evolves. Three mechanisms keep them fresh:
|
|
94
|
+
|
|
95
|
+
- **Reindex validation** -- During `paradigm_reindex`, all protocol references are checked. Missing files mark the protocol as `broken`. An exemplar modified since `last_verified` marks it `stale`. All references valid means `current`.
|
|
96
|
+
- **On-use refresh** -- After successfully following a protocol, the agent calls `paradigm_protocol_update` with `refresh: true` to bump `last_verified` and fix outdated references.
|
|
97
|
+
- **Status visibility** -- `paradigm_status` includes protocol health (X current, Y stale, Z broken). Stale protocols surface naturally during normal workflow.
|
|
98
|
+
|
|
99
|
+
You can also explicitly validate protocols:
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
paradigm_protocol_validate({ id: "P-add-view" })
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### The Workflow
|
|
106
|
+
|
|
107
|
+
The protocol workflow integrates into the Paradigm operational loop:
|
|
108
|
+
|
|
109
|
+
1. **Before implementing**: Call `paradigm_protocol_search` with your task description. If a match exists, follow the steps -- skip codebase exploration.
|
|
110
|
+
2. **During implementation**: Use the protocol's exemplar as a reference. Follow each step in order.
|
|
111
|
+
3. **After completion**: If no protocol existed and the work was repeatable, record one. If a protocol existed and you followed it successfully, call `paradigm_protocol_update` to refresh its timestamp.
|
|
112
|
+
|
|
113
|
+
This creates a virtuous cycle: each agent session that follows a protocol validates it, and each session that does repeatable work without a protocol can create one for future agents.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-301-ripple-analysis
|
|
3
|
+
title: Ripple Analysis
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-301
|
|
11
|
+
- paradigmripple
|
|
12
|
+
- direct-and-indirect
|
|
13
|
+
- depth-parameter-1-5
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 2
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-301.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Ripple Analysis
|
|
24
|
+
|
|
25
|
+
When you change a symbol, the effects can ripple outward through the codebase like a stone dropped in water. A modification to `#payment-service` might affect `$checkout-flow`, which depends on it. That flow might be used by `#checkout-form`, which is consumed by `#order-page`. Ripple analysis maps these dependency chains before you make changes, so you can understand the full blast radius of your modification.
|
|
26
|
+
|
|
27
|
+
The tool `paradigm_ripple` takes a symbol and an optional depth parameter (1-5, default 2) and returns everything that depends on it, both directly and indirectly. This is not just a list of imports -- it is a semantic dependency graph built from Paradigm's symbol relationships: which components reference this symbol, which flows include it as a step, which gates protect endpoints that use it, and which signals it emits that other components listen to.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
paradigm_ripple({
|
|
31
|
+
symbol: "#payment-service",
|
|
32
|
+
depth: 3
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
// Returns:
|
|
36
|
+
// Direct dependents (depth 1):
|
|
37
|
+
// $checkout-flow - uses #payment-service in step 3
|
|
38
|
+
// #refund-handler - calls #payment-service.refund()
|
|
39
|
+
// !payment-completed - emitted by #payment-service
|
|
40
|
+
//
|
|
41
|
+
// Indirect dependents (depth 2):
|
|
42
|
+
// #checkout-form - triggers $checkout-flow
|
|
43
|
+
// #order-history - listens to !payment-completed
|
|
44
|
+
//
|
|
45
|
+
// Indirect dependents (depth 3):
|
|
46
|
+
// #account-dashboard - renders #order-history
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Ripple analysis is **essential before any refactor**. The most common cause of unintended breakage is not understanding the full dependency tree. A developer renames a method on `#payment-service` thinking only `$checkout-flow` uses it, not realizing that `#refund-handler` also calls that method. Ripple analysis catches this.
|
|
50
|
+
|
|
51
|
+
The depth parameter controls how far out to look. Depth 1 shows only direct dependents. Depth 2 (the default) shows dependents of dependents. For large refactors, depth 3 or higher may be warranted. Keep in mind that higher depth values return more results and cost more tokens, so start at the default and increase only if needed.
|
|
52
|
+
|
|
53
|
+
A good practice is to run ripple analysis, review the affected symbols, then check the fragility of any flagged dependents before proceeding. If your modification would ripple into a fragile area, you may want to add extra safeguards or break the change into smaller increments. The combination of ripple analysis and fragility checking forms the core of Paradigm's change safety net.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-301-sentinel-observability
|
|
3
|
+
title: Sentinel & Observability
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-301
|
|
11
|
+
- incidents-map-errors
|
|
12
|
+
- failure-pattern-matching
|
|
13
|
+
- paradigmsentineltriage-for-filtering
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 3
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-301.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Sentinel & Observability
|
|
24
|
+
|
|
25
|
+
Paradigm Sentinel is the error tracking and observability system that maps runtime errors back to Paradigm symbols. When something breaks in production, Sentinel does not just show you a stack trace -- it tells you which `#component` failed, which `$flow` was interrupted, which `^gate` was involved, and whether there is a known failure pattern that matches.
|
|
26
|
+
|
|
27
|
+
Incidents are the core unit of Sentinel. Each incident records the error message, stack trace, environment, affected symbols, and the flow position (where in a multi-step flow the failure occurred). Incidents can be created automatically by instrumented code or manually via `paradigm_sentinel_record`.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
paradigm_sentinel_record({
|
|
31
|
+
error: {
|
|
32
|
+
message: "Stripe API returned 429: rate limited",
|
|
33
|
+
type: "RateLimitError",
|
|
34
|
+
code: "STRIPE_429"
|
|
35
|
+
},
|
|
36
|
+
symbols: {
|
|
37
|
+
component: "#payment-service",
|
|
38
|
+
flow: "$checkout-flow",
|
|
39
|
+
gate: "^authenticated"
|
|
40
|
+
},
|
|
41
|
+
environment: "production",
|
|
42
|
+
service: "api-server"
|
|
43
|
+
})
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Pattern matching** is what makes Sentinel more than a log aggregator. You define failure patterns that describe known error signatures -- which error messages to look for, which symbols are typically involved, and what the resolution strategy is. When an incident is recorded, Sentinel matches it against known patterns and suggests resolutions.
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
paradigm_sentinel_add_pattern({
|
|
50
|
+
id: "stripe-rate-limit",
|
|
51
|
+
name: "Stripe Rate Limit",
|
|
52
|
+
pattern: {
|
|
53
|
+
errorContains: ["429", "rate limit"],
|
|
54
|
+
symbols: { component: "#payment-service" }
|
|
55
|
+
},
|
|
56
|
+
resolution: {
|
|
57
|
+
description: "Implement exponential backoff retry",
|
|
58
|
+
strategy: "retry",
|
|
59
|
+
priority: "high"
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The triage workflow uses `paradigm_sentinel_triage` to filter and view incidents. You can filter by status (open, investigating, resolved), by symbol, by environment, or by search text in error messages. Once an incident is understood and fixed, mark it resolved with `paradigm_sentinel_resolve`, optionally linking the fix commit and matched pattern.
|
|
65
|
+
|
|
66
|
+
Sentinel also provides health metrics via `paradigm_sentinel_stats`. You can see incident counts over time periods (1d, 7d, 30d, 90d) and get health scores for specific symbols. A symbol with many recent incidents and low resolution rates has poor health -- another signal that pairs with fragility tracking to identify problem areas. The web UI, launched with `paradigm sentinel`, provides a visual dashboard for all of this.
|
|
67
|
+
|
|
68
|
+
## Incident Grouping
|
|
69
|
+
|
|
70
|
+
When incidents pile up, grouping helps identify systemic issues. Sentinel's incident grouper clusters similar incidents using three signals: **symbol context similarity** (which components, flows, and gates are involved), **error message similarity** (Levenshtein distance between messages), and **stack trace fingerprinting** (normalizing stack frames by stripping line numbers and paths to capture structural similarity). A time-decay factor ensures recent incidents weigh more heavily in similarity calculations -- incidents from two weeks ago contribute half as much as fresh ones. The grouper's similarity threshold is configurable to tune sensitivity for your project.
|
|
71
|
+
|
|
72
|
+
## Resolution Strategy Inference
|
|
73
|
+
|
|
74
|
+
When Sentinel suggests a failure pattern from grouped incidents, it infers the most likely resolution strategy from error message keywords:
|
|
75
|
+
|
|
76
|
+
| Strategy | Triggered By | Action |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| `retry` | timeout, network, ECONNREFUSED | Retry with backoff |
|
|
79
|
+
| `fallback` | unavailable, service down, 503 | Use alternative path |
|
|
80
|
+
| `fix-data` | validation, invalid, required, 404 | Correct the data |
|
|
81
|
+
| `fix-code` | General code errors | Change the code |
|
|
82
|
+
| `rollback` | regression, revert, broke after deploy | Roll back deployment |
|
|
83
|
+
| `config-change` | config, environment variable, missing key | Update configuration |
|
|
84
|
+
| `scale-up` | out of memory, OOM, capacity | Add resources |
|
|
85
|
+
| `investigate` | Mixed error types, unclear pattern | Needs human triage |
|
|
86
|
+
| `ignore` | Known non-issues | Suppress notifications |
|
|
87
|
+
| `escalate` | permission, 403, unauthorized | Needs authorization change |
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-301-sync-and-maintenance
|
|
3
|
+
title: Sync & Maintenance
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-301
|
|
11
|
+
- paradigm-sync-for
|
|
12
|
+
- paradigm-scan-for
|
|
13
|
+
- ai-maintenance-protocol
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 3
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-301.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Sync & Maintenance
|
|
24
|
+
|
|
25
|
+
Paradigm metadata needs to stay synchronized with the actual code. As developers add features, rename files, and refactor modules, the `.purpose` files, `portal.yaml`, and `navigator.yaml` can drift out of date. Paradigm provides two key maintenance commands to keep everything aligned.
|
|
26
|
+
|
|
27
|
+
**`paradigm sync`** synchronizes metadata with the codebase. It detects when source files have moved, when new files appear that should be registered, and when existing registrations point to files that no longer exist. Think of it as a reconciliation between what Paradigm knows about and what actually exists on disk.
|
|
28
|
+
|
|
29
|
+
**`paradigm scan`** performs a full rebuild of the index and regenerates `navigator.yaml`. This is a heavier operation that re-reads every `.purpose` file, rebuilds the symbol graph, and produces a fresh structure map. Run scan when the index feels stale, when navigator.yaml is missing, or after bulk operations like branch merges that may have changed many files at once.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Light sync -- detect drift and reconcile
|
|
33
|
+
$ paradigm sync
|
|
34
|
+
|
|
35
|
+
# Full rebuild -- regenerate everything from .purpose files
|
|
36
|
+
$ paradigm scan
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Beyond these commands, the **AI Maintenance Protocol** defines when and how to update Paradigm files during development:
|
|
40
|
+
|
|
41
|
+
| Change Type | Required Paradigm Update |
|
|
42
|
+
|---|---|
|
|
43
|
+
| Add a feature | Create or update the nearest `.purpose` file with `#component` |
|
|
44
|
+
| Add a protected route | Update `portal.yaml` with the new route and its `^gates` |
|
|
45
|
+
| Add an event or signal | Add `!signal` to the emitting component's `.purpose` file |
|
|
46
|
+
| Add a multi-step process | Document as `$flow` with ordered steps |
|
|
47
|
+
| Rename or delete a symbol | Update all `.purpose` files that reference it |
|
|
48
|
+
| Discover a pattern or antipattern | Capture with `paradigm_wisdom_record` |
|
|
49
|
+
| Add a cross-cutting rule | Create `~aspect` with required code anchors |
|
|
50
|
+
|
|
51
|
+
The maintenance protocol is not optional -- it is how the metadata stays valuable. Stale metadata is worse than no metadata because it actively misleads. When `.purpose` files accurately reflect the code, AI agents can navigate efficiently, ripple analysis produces correct results, and the doctor finds real issues instead of false positives.
|
|
52
|
+
|
|
53
|
+
A practical rhythm for maintenance:
|
|
54
|
+
1. **Before work**: `paradigm_wisdom_context` and `paradigm_ripple` on symbols you will touch
|
|
55
|
+
2. **During work**: Update `.purpose` files as you go, not after
|
|
56
|
+
3. **After work**: Run `paradigm doctor` to catch any drift, record wisdom if applicable
|
|
57
|
+
4. **Periodically**: Run `paradigm scan` to rebuild the full index
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-301-wisdom-system
|
|
3
|
+
title: Team Wisdom
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-18'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-301
|
|
11
|
+
- two-wisdom-types
|
|
12
|
+
- paradigmwisdomcontext
|
|
13
|
+
- paradigmwisdomrecord
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 2
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-301.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Team Wisdom
|
|
24
|
+
|
|
25
|
+
Every development team accumulates knowledge over time: patterns that work, mistakes that keep recurring. Paradigm's wisdom system captures this institutional knowledge in a structured, queryable format so it is available to both human developers and AI agents.
|
|
26
|
+
|
|
27
|
+
There are two types of wisdom in Paradigm — preferences and antipatterns. Architectural decisions used to live here too, but in v6.0 they moved to a dedicated decision store; see "Where Decisions Went" below.
|
|
28
|
+
|
|
29
|
+
**Preferences** define "how we do things." These are team conventions, coding standards, and stylistic choices that go beyond what a linter can enforce. For example: "We always use optimistic UI updates for payment flows" or "Error messages must include the operation that failed, not just the error code."
|
|
30
|
+
|
|
31
|
+
**Antipatterns** record "what NOT to do" along with "what to do instead." Each antipattern has an ID, a description of the bad practice, a reason explaining why it is problematic, and an alternative showing the correct approach. For example: "Do not call the payment API directly from React components -- use the #payment-service abstraction layer instead."
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
# Example antipattern
|
|
35
|
+
api-001:
|
|
36
|
+
description: Calling external APIs directly from UI components
|
|
37
|
+
reason: Tight coupling, no error handling, no retry logic
|
|
38
|
+
alternative: Route all API calls through service components (#*-service)
|
|
39
|
+
symbols: ["#checkout-form", "#payment-service"]
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Where Decisions Went
|
|
43
|
+
|
|
44
|
+
Through v5, "decisions" were a third type of wisdom recorded via `paradigm_wisdom_record({ type: 'decision', ... })`. v6.0 split decisions out into their own store:
|
|
45
|
+
|
|
46
|
+
- **Tool:** `paradigm_decision_record` (CLI: `paradigm decision record`)
|
|
47
|
+
- **Storage:** `.paradigm/decisions/TD-*.yaml` — topic-addressable, not date-partitioned
|
|
48
|
+
- **Companion:** Each recorded decision auto-writes a lore `insight` entry so the project timeline still shows the moment the decision was made
|
|
49
|
+
- **Search:** `paradigm_decision_search` (filter by status, participant, symbol, tag, date range)
|
|
50
|
+
|
|
51
|
+
Calling `paradigm_wisdom_record({ type: 'decision' })` is no longer supported — `paradigm_wisdom_record` now accepts only `preference` and `antipattern`. The decision store carries the full ADR shape (proposed/supported/dissented participants, alternatives_considered, status lifecycle).
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
// Capture a v6.0 architectural decision (not via wisdom_record):
|
|
55
|
+
paradigm_decision_record({
|
|
56
|
+
title: "Use Redis over in-memory cache for sessions",
|
|
57
|
+
decision: "Adopt Redis as the session backing store",
|
|
58
|
+
rationale: "Survives restarts, supports horizontal scale, observable via existing tooling",
|
|
59
|
+
participants: [
|
|
60
|
+
{ id: "human/matt", role: "human", stance: "proposed" },
|
|
61
|
+
{ id: "a-paradigm/architect", role: "agent", stance: "supported" },
|
|
62
|
+
{ id: "a-paradigm/security", role: "agent", stance: "dissented" }
|
|
63
|
+
],
|
|
64
|
+
alternatives_considered: [
|
|
65
|
+
{ option: "in-memory Map", rejected_because: "lost on restart, not horizontally scalable" }
|
|
66
|
+
],
|
|
67
|
+
symbols_affected: ["#session-store"],
|
|
68
|
+
status: "active"
|
|
69
|
+
})
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
To retrieve wisdom before making changes, call `paradigm_wisdom_context` with the symbols you plan to modify. This returns all relevant preferences and antipatterns for those symbols. For decisions affecting those symbols, call `paradigm_decision_search({ symbol: '#x' })`. To capture new wisdom, use `paradigm_wisdom_record` to add antipatterns. For decisions, use `paradigm_decision_record`. The expertise tracking system also identifies who on the team knows the most about specific symbols, accessible via `paradigm_wisdom_expert`.
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
// Before modifying checkout:
|
|
76
|
+
paradigm_wisdom_context({ symbols: ["#checkout-form", "$checkout-flow"] })
|
|
77
|
+
|
|
78
|
+
// After discovering a recurring mistake:
|
|
79
|
+
paradigm_wisdom_record({
|
|
80
|
+
type: "antipattern",
|
|
81
|
+
id: "checkout-003",
|
|
82
|
+
symbols: ["#checkout-form"],
|
|
83
|
+
description: "Using setTimeout for payment polling",
|
|
84
|
+
reason: "Unreliable, races with redirects, misses webhook events",
|
|
85
|
+
alternative: "Use the !payment-completed signal with a listener"
|
|
86
|
+
})
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
The wisdom system is most valuable when it becomes a habit. After every debugging session, ask: "Is there an antipattern here we should record?" After every architectural discussion, ask: "Should this be a decision record?" — and if so, use `paradigm_decision_record`, not the wisdom system. The cost of capturing wisdom is minutes; the cost of not capturing it is repeating the same mistakes across sessions and team members.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-401-agent-identity
|
|
3
|
+
title: Agent Identity & Expertise Profiles
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-401
|
|
11
|
+
- agent-files-are
|
|
12
|
+
- two-storage-scopes
|
|
13
|
+
- expertise-auto-updates-via
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 3
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-401.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Agent Identity & Expertise Profiles
|
|
24
|
+
|
|
25
|
+
Every Claude session starts blank. The project remembers — via lore, protocols, aspects — but the agent doesn't. An architect that has successfully designed auth systems 14 times has no memory of that expertise. The orchestrator cannot route tasks to the most qualified agent because qualification is not tracked.
|
|
26
|
+
|
|
27
|
+
Agent identity files (`.agent`) solve this with persistent YAML profiles that track expertise, personality, and cross-project patterns. They **overlay** the existing `agents.yaml` system and are fully backward compatible — when no `.agent` files exist, everything works exactly as before.
|
|
28
|
+
|
|
29
|
+
### Storage & Merge Priority
|
|
30
|
+
|
|
31
|
+
Profiles live in two locations:
|
|
32
|
+
|
|
33
|
+
- **Global** (`~/.paradigm/agents/architect.agent`) — travels across projects
|
|
34
|
+
- **Project** (`.paradigm/agents/builder.agent`) — project-level overrides
|
|
35
|
+
|
|
36
|
+
Merge priority: **project `.agent` > global `.agent` > `agents.yaml`**. This means a project can override a global agent's default model or focus areas without modifying the shared identity.
|
|
37
|
+
|
|
38
|
+
### Profile Structure
|
|
39
|
+
|
|
40
|
+
Each `.agent` file contains:
|
|
41
|
+
|
|
42
|
+
- **`id`** — Agent identifier (e.g., "architect")
|
|
43
|
+
- **`personality`** — Style (deliberate/rapid/exploratory/methodical), risk tolerance (conservative/balanced/aggressive), and verbosity (minimal/concise/detailed)
|
|
44
|
+
- **`expertise`** — Per-symbol entries with confidence (0.0-1.0), session count, and last touch date
|
|
45
|
+
- **`transferable`** — Cross-project patterns with success rates and linked protocols/lore
|
|
46
|
+
- **`contexts`** — Per-project adaptations: focus areas, preferred model, session count
|
|
47
|
+
|
|
48
|
+
### Expertise Auto-Population
|
|
49
|
+
|
|
50
|
+
When lore is recorded with `paradigm_lore_record`, the relevant agent's expertise scores update automatically via exponential moving average:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
For each symbol in symbols_touched:
|
|
54
|
+
if existing entry:
|
|
55
|
+
sessions++
|
|
56
|
+
confidence = 0.7 * old_confidence + 0.3 * lore_confidence
|
|
57
|
+
else:
|
|
58
|
+
create entry with confidence = lore_confidence (or 0.5 default)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Assessment verdicts from `paradigm_lore_assess` also feed into expertise. A verdict of `correct` nudges confidence up, `incorrect` nudges it down.
|
|
62
|
+
|
|
63
|
+
### Querying Expertise
|
|
64
|
+
|
|
65
|
+
`paradigm_agent_expertise` takes a symbol and returns agents ranked by confidence:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
paradigm_agent_expertise({ symbol: "#payment-service" })
|
|
69
|
+
// Returns: [{ agentId: "architect", confidence: 0.92, sessions: 14 }, ...]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
This enables **symbol-to-agent routing** — the orchestrator can prefer the agent most experienced with the symbols a task touches.
|
|
73
|
+
|
|
74
|
+
### Orchestration Enrichment
|
|
75
|
+
|
|
76
|
+
When `paradigm_orchestrate_inline` builds agent prompts, agents with `.agent` profiles receive a preamble:
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
## Agent Identity: architect
|
|
80
|
+
**Style:** deliberate | **Risk:** conservative | **Verbosity:** concise
|
|
81
|
+
|
|
82
|
+
## Your Expertise on Relevant Symbols
|
|
83
|
+
- #auth-middleware: confidence 0.92 (14 sessions)
|
|
84
|
+
- $checkout-flow: confidence 0.88 (8 sessions)
|
|
85
|
+
|
|
86
|
+
## Transferable Patterns
|
|
87
|
+
- portal-gate-pattern: 95% success (learned in a-paradigm, applied in 2 projects)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
This goes BEFORE the role-specific prompt, giving the agent self-awareness about its strengths.
|
|
91
|
+
|
|
92
|
+
### CLI Commands
|
|
93
|
+
|
|
94
|
+
- `paradigm agent list` — Show all profiles with top expertise
|
|
95
|
+
- `paradigm agent show <id>` — Full profile with expertise table
|
|
96
|
+
- `paradigm agent create <id> --global` — Create new identity file
|
|
97
|
+
- `paradigm agent sync <id>` — Bootstrap expertise from existing project lore
|
|
98
|
+
|
|
99
|
+
Agent identities are a foundation for future capabilities: curated notebooks, model cascading, and knowledge graduation across projects.
|