@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,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-401-orchestration-workflow
|
|
3
|
+
title: Orchestration Workflow
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-401
|
|
11
|
+
- five-step-workflow-describe
|
|
12
|
+
- paradigmorchestrateinline-plan-then
|
|
13
|
+
- parallel-stage-launching
|
|
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
|
+
## Orchestration Workflow
|
|
24
|
+
|
|
25
|
+
This lesson walks through the complete end-to-end orchestration workflow, from task description to final result. Understanding this workflow is essential for effectively coordinating multi-agent tasks in Paradigm.
|
|
26
|
+
|
|
27
|
+
### Step 1: Describe the Task
|
|
28
|
+
|
|
29
|
+
Start with a clear, specific task description. Good task descriptions include what you want to build, which areas are involved, and any constraints:
|
|
30
|
+
|
|
31
|
+
- Good: "Add Apple Pay to the checkout flow with amount validation and ^authenticated gate"
|
|
32
|
+
- Bad: "Fix payments"
|
|
33
|
+
|
|
34
|
+
The quality of the task description directly affects the quality of the orchestration plan.
|
|
35
|
+
|
|
36
|
+
### Step 2: Plan with paradigm_orchestrate_inline
|
|
37
|
+
|
|
38
|
+
Call `paradigm_orchestrate_inline` with `mode="plan"` to get the orchestrator's analysis:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
paradigm_orchestrate_inline({
|
|
42
|
+
task: "Add Apple Pay to the checkout flow with amount validation and ^authenticated gate",
|
|
43
|
+
mode: "plan"
|
|
44
|
+
})
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The plan returns: suggested agents, estimated token cost, and a stage breakdown with dependency information. Review this carefully. If you disagree with the agent selection, you can override it with the `agents` parameter.
|
|
48
|
+
|
|
49
|
+
### Step 3: Execute to Get Prompts
|
|
50
|
+
|
|
51
|
+
Once satisfied with the plan, call with `mode="execute"`:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
paradigm_orchestrate_inline({
|
|
55
|
+
task: "Add Apple Pay to the checkout flow with amount validation and ^authenticated gate",
|
|
56
|
+
mode: "execute"
|
|
57
|
+
})
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
This returns full prompts for each agent, complete with relevant file paths, symbol context, and stage-specific instructions.
|
|
61
|
+
|
|
62
|
+
### Step 4: Launch Agents
|
|
63
|
+
|
|
64
|
+
Launch agents according to the stage plan. Stages marked `canRunParallel: true` can be launched simultaneously:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
// Stages 1 and 2 can run in parallel:
|
|
68
|
+
Task: [architect prompt from execute output]
|
|
69
|
+
Task: [security prompt from execute output]
|
|
70
|
+
|
|
71
|
+
// Stage 3 depends on 1 and 2, must wait:
|
|
72
|
+
Task: [builder prompt with handoff context from architect and security]
|
|
73
|
+
|
|
74
|
+
// Stage 4 depends on 3:
|
|
75
|
+
Task: [tester prompt with handoff context from builder]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Step 5: Collect and Integrate Results
|
|
79
|
+
|
|
80
|
+
Each agent returns results in its configured relay format. Review each output, verify it makes sense, and integrate the changes. The orchestrator does not auto-merge -- you are the final integrator.
|
|
81
|
+
|
|
82
|
+
### CLI Alternative
|
|
83
|
+
|
|
84
|
+
For command-line orchestration, the `paradigm team orchestrate` command handles the full workflow:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Multi-agent (default)
|
|
88
|
+
paradigm team orchestrate "Add Apple Pay to checkout"
|
|
89
|
+
|
|
90
|
+
# Single agent mode -- one agent does everything
|
|
91
|
+
paradigm team orchestrate "Add Apple Pay to checkout" --solo
|
|
92
|
+
|
|
93
|
+
# A/B test -- compare solo vs multi-agent
|
|
94
|
+
paradigm team orchestrate "Add Apple Pay to checkout" --compare
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The `--solo` flag is useful when a task does not genuinely need multiple agents. The `--compare` flag runs both solo and faceted modes and lets you compare the results, which is valuable for learning when orchestration adds value versus overhead.
|
|
98
|
+
|
|
99
|
+
### When NOT to Orchestrate
|
|
100
|
+
|
|
101
|
+
Orchestration has overhead. For simple tasks (single file change, no security implications, clear implementation), a single builder agent is faster and cheaper. Use orchestration when the task involves 3+ files, has security implications, requires design decisions, or spans multiple feature areas.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-401-pm-governance
|
|
3
|
+
title: PM Governance
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-401
|
|
11
|
+
- pre-flight-checks-symbols
|
|
12
|
+
- post-flight-checks-registration
|
|
13
|
+
- errorwarningsuggestion-severity-levels
|
|
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
|
+
## PM Governance
|
|
24
|
+
|
|
25
|
+
The PM (Project Manager) layer is Paradigm's enforcement mechanism that ensures orchestrated tasks follow project discipline. Without governance, agents might implement features without updating `.purpose` files, add endpoints without portal.yaml gates, or ignore team wisdom. The PM layer adds automated pre-flight and post-flight checks that catch these oversights.
|
|
26
|
+
|
|
27
|
+
### Pre-Flight Checks
|
|
28
|
+
|
|
29
|
+
Before any implementation begins, the PM runs pre-flight checks to set up the task correctly:
|
|
30
|
+
|
|
31
|
+
1. **Symbol identification** -- What symbols will this task create or modify? The PM uses `paradigm_search` and `paradigm_navigate` to identify all affected symbols.
|
|
32
|
+
2. **Ripple analysis** -- For each affected symbol, run `paradigm_ripple` to map the blast radius. Flag any fragile dependents.
|
|
33
|
+
3. **Portal requirements** -- If the task adds endpoints, run `paradigm_gates_for_route` to determine required gates. Flag if portal.yaml is missing or needs updates.
|
|
34
|
+
4. **Wisdom check** -- Pull relevant wisdom with `paradigm_wisdom_context` to surface antipatterns and decisions that agents should know about.
|
|
35
|
+
5. **Orchestration recommendation** -- Based on task complexity, recommend whether to use single-agent or multi-agent orchestration.
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
// Pre-flight output example:
|
|
39
|
+
{
|
|
40
|
+
affectedSymbols: ["#payment-service", "$checkout-flow"],
|
|
41
|
+
rippleImpact: { direct: 3, indirect: 7, fragile: ["#notification-handler"] },
|
|
42
|
+
portalRequired: true,
|
|
43
|
+
requiredGates: ["^authenticated", "^payment-authorized"],
|
|
44
|
+
relevantWisdom: ["antipattern: api-001 (direct API calls from UI)"],
|
|
45
|
+
recommendation: "multi-agent: architect + security + builder"
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Post-Flight Checks
|
|
50
|
+
|
|
51
|
+
After implementation completes, the PM verifies compliance:
|
|
52
|
+
|
|
53
|
+
1. **Purpose registration** -- Are all new components registered in `.purpose` files? Did renamed symbols get updated across all references?
|
|
54
|
+
2. **Portal compliance** -- Are all new endpoints listed in portal.yaml with appropriate gates? Are there unprotected routes that should be protected?
|
|
55
|
+
3. **Aspect anchors** -- If aspects were modified, do their anchors still point to valid code?
|
|
56
|
+
4. **Wisdom capture** -- Were any decisions made during implementation that should be recorded? Did any antipatterns surface?
|
|
57
|
+
5. **History recording** -- Was the implementation logged with `paradigm_history_record`?
|
|
58
|
+
|
|
59
|
+
The PM reports issues in categories: **errors** (must fix before proceeding), **warnings** (should fix), and **suggestions** (good practice). A clean post-flight means full compliance.
|
|
60
|
+
|
|
61
|
+
### Enabling PM Governance
|
|
62
|
+
|
|
63
|
+
In the CLI, add the `--pm` flag to orchestrate commands:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
paradigm team orchestrate "Add refund endpoint" --pm
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
This wraps the orchestration with pre-flight checks before the first agent runs and post-flight checks after the last agent completes. The PM does not modify code itself -- it reviews and reports, leaving fixes to you or the agents.
|
|
70
|
+
|
|
71
|
+
PM governance is especially valuable for teams onboarding new developers or working with AI agents that do not yet have deep project familiarity. It is the safety net that ensures Paradigm metadata stays consistent with the code, regardless of who (or what) is writing that code.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-401-provider-cascade
|
|
3
|
+
title: Provider Cascade
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-401
|
|
11
|
+
- six-providers-claude
|
|
12
|
+
- cascade-tries-providers
|
|
13
|
+
- three-configuration-methods
|
|
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
|
+
## Provider Cascade
|
|
24
|
+
|
|
25
|
+
Orchestrated agents need somewhere to run. Paradigm supports multiple **execution providers** -- the systems that actually run the agent prompts and return results. Since not every environment has the same providers available (some teams use the Anthropic API directly, others use Claude Code, others use Cursor), Paradigm implements a **cascade** that tries providers in priority order until one works.
|
|
26
|
+
|
|
27
|
+
The default cascade order is:
|
|
28
|
+
|
|
29
|
+
### Anthropic / Claude Ecosystem
|
|
30
|
+
|
|
31
|
+
1. **`claude`** -- Direct Anthropic API. Requires `ANTHROPIC_API_KEY` environment variable. The most flexible option with full control over model selection and parameters.
|
|
32
|
+
|
|
33
|
+
2. **`claude-code-teams`** -- Claude Code Agent Teams (experimental). Supports parallel agent execution natively. Only available with Claude Code Teams subscription.
|
|
34
|
+
|
|
35
|
+
3. **`claude-code`** -- Claude Code Task tool. Uses the Task tool within a Claude Code session. Requires a Max subscription. Runs agents as sub-tasks within the current session.
|
|
36
|
+
|
|
37
|
+
5. **`claude-cli`** -- Spawns separate `claude` CLI processes. Each agent runs as an independent CLI invocation. Available when the Claude CLI is installed.
|
|
38
|
+
|
|
39
|
+
### Cursor Ecosystem
|
|
40
|
+
|
|
41
|
+
4. **`cursor-cli`** -- Cursor's agent CLI. Auto-detected when running inside the Cursor IDE. Spawns agents through Cursor's built-in agent system.
|
|
42
|
+
|
|
43
|
+
### Universal
|
|
44
|
+
|
|
45
|
+
6. **`manual`** -- File-based handoffs. Always available as a fallback. Writes agent prompts to files that a human (or another tool) can execute. This is the universal fallback that works in every environment.
|
|
46
|
+
|
|
47
|
+
### Configuration
|
|
48
|
+
|
|
49
|
+
You can set the preferred provider in three ways (listed in priority order):
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Environment variable (highest priority)
|
|
53
|
+
export PARADIGM_AGENT_PROVIDER=claude-code
|
|
54
|
+
|
|
55
|
+
# Config file (.paradigm/config.yaml)
|
|
56
|
+
agent-provider: claude-code
|
|
57
|
+
|
|
58
|
+
# CLI command
|
|
59
|
+
paradigm team providers --set claude-code
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Setting a preferred provider does not disable the cascade -- it just changes the starting point. If your preferred provider is unavailable (e.g., API key expired), the cascade continues to the next available option.
|
|
63
|
+
|
|
64
|
+
To see which providers are currently available in your environment, run:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
paradigm team providers
|
|
68
|
+
# Shows: claude (available), claude-code (available), cursor-cli (not detected), ...
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Model Discovery
|
|
72
|
+
|
|
73
|
+
Different providers expose different models. `paradigm team models` shows the current model assignments per agent role and which provider serves them. If you add a new API key or install a new tool, run `paradigm team models --refresh` to re-discover available models.
|
|
74
|
+
|
|
75
|
+
The cascade design means Paradigm orchestration works everywhere -- from a fully-equipped development machine with API keys and IDE integrations, down to a bare terminal where only manual file-based handoffs are possible. The fallback is always there.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-401-quick-check
|
|
3
|
+
title: 'Quick-Check: Ask Before You Build'
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-401
|
|
11
|
+
- quick-check-is-a
|
|
12
|
+
- two-agents-jinx
|
|
13
|
+
- two-outcomes-greenlight
|
|
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
|
+
## The Lightweight Pre-Check
|
|
24
|
+
|
|
25
|
+
Not every task needs full orchestration with architect, security, builder, tester, and reviewer stages. Sometimes you just want to know: *is this task ready to build, or does it need more planning?*
|
|
26
|
+
|
|
27
|
+
That is what **quick-check mode** does. It runs a lightweight risk assessment (~3–4k tokens) and returns one of two verdicts:
|
|
28
|
+
|
|
29
|
+
- **GREENLIGHT** — proceed to implementation. The task is well-scoped, low-risk, and does not need multi-agent planning.
|
|
30
|
+
- **ESCALATE** — this needs full orchestration. The task has unaddressed risks, ambiguous requirements, or cross-cutting concerns.
|
|
31
|
+
|
|
32
|
+
### How It Works
|
|
33
|
+
|
|
34
|
+
Quick-check uses two agents:
|
|
35
|
+
|
|
36
|
+
**Jinx (advocate)** stress-tests your assumptions:
|
|
37
|
+
- "What if the user loses their second factor?"
|
|
38
|
+
- "What happens when the payment provider is down?"
|
|
39
|
+
- "Did you consider rate limiting on this endpoint?"
|
|
40
|
+
|
|
41
|
+
**Reviewer** checks feasibility:
|
|
42
|
+
- Does this touch auth, security, or shared state?
|
|
43
|
+
- How many files will this change?
|
|
44
|
+
- Are there dependencies that need updating?
|
|
45
|
+
|
|
46
|
+
Their combined assessment produces the verdict. If either agent raises concerns that cannot be resolved in a quick check, the verdict is ESCALATE.
|
|
47
|
+
|
|
48
|
+
### Usage
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
paradigm_orchestrate_inline({
|
|
52
|
+
task: "Add a 'last seen' timestamp to user profiles",
|
|
53
|
+
mode: "quick"
|
|
54
|
+
})
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Compare with full orchestration:
|
|
58
|
+
```
|
|
59
|
+
paradigm_orchestrate_inline({
|
|
60
|
+
task: "Add two-factor authentication to the login flow",
|
|
61
|
+
mode: "plan"
|
|
62
|
+
})
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### When to Use Quick-Check vs Full Orchestration
|
|
66
|
+
|
|
67
|
+
| Signal | Quick-Check | Full Orchestration |
|
|
68
|
+
|--------|-------------|-------------------|
|
|
69
|
+
| Single file change | Yes | Overkill |
|
|
70
|
+
| UI-only change (styling, layout) | Yes | Overkill |
|
|
71
|
+
| Touches auth or security | Depends on scope | Usually yes |
|
|
72
|
+
| 3+ files affected | Depends on complexity | Yes |
|
|
73
|
+
| New API endpoint | Depends on gates needed | Usually yes |
|
|
74
|
+
| Infrastructure change | No | Yes |
|
|
75
|
+
| Unknown scope ("make it faster") | No | Yes |
|
|
76
|
+
|
|
77
|
+
**Rule of thumb:** If you can describe the complete change in one sentence and it touches ≤2 files, quick-check is appropriate. If you find yourself saying "and also..." or "but we need to consider...", go straight to full orchestration.
|
|
78
|
+
|
|
79
|
+
### Quick-Check and Enforcement
|
|
80
|
+
|
|
81
|
+
Quick-check satisfies the `orchestration-required` enforcement check. On balanced or strict enforcement, the stop hook requires that complex tasks go through orchestration before building. A GREENLIGHT from quick-check counts — you do not need to run full orchestration after a greenlight.
|
|
82
|
+
|
|
83
|
+
However, if you get an ESCALATE verdict and proceed to build anyway, the stop hook will flag that you bypassed the recommendation. The verdict is recorded and traceable.
|
|
84
|
+
|
|
85
|
+
### Example Walkthrough
|
|
86
|
+
|
|
87
|
+
**Task:** "Add a 'forgot password' link to the login page"
|
|
88
|
+
|
|
89
|
+
**Jinx:** "Where does the reset email get sent from? Is there rate limiting on reset requests? What happens if the email is not in the system — do you reveal that?"
|
|
90
|
+
|
|
91
|
+
**Reviewer:** "This touches auth (password reset flow), requires a new API endpoint (/reset-password), involves email sending infrastructure, and needs rate limiting. Estimated: 4+ files."
|
|
92
|
+
|
|
93
|
+
**Verdict: ESCALATE** — the task looks simple but involves auth, a new endpoint, email, and rate limiting. Full orchestration with security and architect (multi-file design) is recommended.
|
|
94
|
+
|
|
95
|
+
Compare: "Change the login button color from blue to green" → **GREENLIGHT** (single CSS change, no logic, no auth).
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-501-advanced-workflows
|
|
3
|
+
title: The Complete Workflow
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-501
|
|
11
|
+
- five-phase-workflow-preflight
|
|
12
|
+
- session-recovery-provides
|
|
13
|
+
- post-write-hook-tracks
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 5
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-501.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Putting It All Together
|
|
24
|
+
|
|
25
|
+
You have learned the five advanced systems individually. Now let's see how they work together in a complete development workflow. Every system has a role, and the handoffs between them create a feedback loop that gets smarter with every session.
|
|
26
|
+
|
|
27
|
+
## The Full Cycle
|
|
28
|
+
|
|
29
|
+
Here is the complete Paradigm workflow for a non-trivial task:
|
|
30
|
+
|
|
31
|
+
### Phase 1: Preflight
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
1. paradigm_session_recover → Load previous session context
|
|
35
|
+
2. paradigm_pm_preflight → Get compliance plan for the task
|
|
36
|
+
3. paradigm_habits_check(preflight) → Verify discovery habits are followed
|
|
37
|
+
4. paradigm_ripple → Check impact of planned changes
|
|
38
|
+
5. paradigm_wisdom_context → Get team knowledge for affected symbols
|
|
39
|
+
6. paradigm_practice_context → Get habit-aware warnings for symbols
|
|
40
|
+
7. paradigm_session_checkpoint(planning) → Save plan before coding
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Notice the layering: session recovery provides continuity, preflight ensures preparation, habits check enforces discovery discipline, ripple and wisdom provide context, practice context adds behavioral awareness, and the checkpoint enables crash recovery.
|
|
44
|
+
|
|
45
|
+
### Phase 2: Implementation
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
8. Write code → Implement the feature
|
|
49
|
+
→ Post-write hook fires → Tracks edited files in .pending-review
|
|
50
|
+
→ Post-write advisory → Reminds about .purpose coverage
|
|
51
|
+
9. Update .purpose files → Document new/changed symbols
|
|
52
|
+
10. Update portal.yaml → Add routes and gates (if applicable)
|
|
53
|
+
11. paradigm_session_checkpoint(implementing) → Save progress
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
The post-write hook acts as a running tally. Every source file edit is tracked, and periodic reminders keep documentation top of mind. Updating .purpose and portal.yaml during implementation (not after) prevents the stop hook from blocking at the end.
|
|
57
|
+
|
|
58
|
+
### Phase 3: Validation
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
12. paradigm_flow_check → Verify flows are complete
|
|
62
|
+
13. paradigm_aspect_check → Verify aspect anchors are valid
|
|
63
|
+
14. paradigm_pm_postflight → Run post-implementation governance
|
|
64
|
+
15. paradigm_habits_check(postflight) → Verify documentation/testing habits
|
|
65
|
+
16. paradigm_session_checkpoint(validating) → Save pre-test state
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Validation catches issues before they become stop hook violations. Flow validation ensures multi-step processes are complete. Aspect checks confirm anchors point to real code. Postflight governance catches missing .purpose files and undefined gates.
|
|
69
|
+
|
|
70
|
+
### Phase 4: Recording
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
17. paradigm_lore_record → Record the session's work
|
|
74
|
+
18. paradigm_history_record → Log implementation to symbol history
|
|
75
|
+
19. paradigm_reindex → Rebuild the symbol index
|
|
76
|
+
20. paradigm_session_checkpoint(complete) → Mark task complete
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Recording preserves institutional knowledge. The lore entry captures what was done and why. History record logs implementation details to individual symbol timelines. Reindexing ensures the symbol index reflects all changes.
|
|
80
|
+
|
|
81
|
+
### Phase 5: Commit
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
21. git commit → Commit changes
|
|
85
|
+
→ Pre-commit hook fires → Auto-rebuilds index, stages updated files
|
|
86
|
+
→ Stop hook fires → Validates all compliance checks
|
|
87
|
+
22. If stop hook blocks → Fix violations, re-attempt
|
|
88
|
+
23. If stop hook passes → Session complete
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
The commit phase is where enforcement happens. The pre-commit hook ensures the index is fresh. The stop hook validates everything: .purpose coverage, portal.yaml compliance, aspect anchors, lore recording, and pending review freshness.
|
|
92
|
+
|
|
93
|
+
## How Systems Reinforce Each Other
|
|
94
|
+
|
|
95
|
+
The power of the complete workflow is in the feedback loops:
|
|
96
|
+
|
|
97
|
+
**Sentinel catches what Habits miss.** If an agent skips the `ripple-before-modify` habit and introduces a breaking change, Sentinel records the incident. The practice profile then shows that skipping ripple correlates with incidents — evidence to upgrade the habit severity.
|
|
98
|
+
|
|
99
|
+
**Lore preserves what Sessions forget.** Session breadcrumbs and checkpoints are ephemeral — they expire after 7 days. Lore entries are permanent. The checkpoint gets you through a crash; the lore entry gets the team through the next 6 months.
|
|
100
|
+
|
|
101
|
+
**Wisdom surfaces what Lore accumulates.** Lore entries record individual sessions. Wisdom distills patterns across sessions: "every time we modify #payment-service, check for null references on the refund object." Wisdom is lore, refined.
|
|
102
|
+
|
|
103
|
+
**Hooks enforce what Habits recommend.** Habits at `advisory` severity are suggestions. The stop hook at `block` severity is enforcement. The workflow starts with advice (habits check) and ends with enforcement (stop hook). This graduated approach teaches good behavior before punishing bad behavior.
|
|
104
|
+
|
|
105
|
+
## Capstone Scenario
|
|
106
|
+
|
|
107
|
+
Imagine you are adding a refund endpoint to a payment system. Here is how the complete workflow plays out:
|
|
108
|
+
|
|
109
|
+
1. **Session recover** reveals the previous session added the payment processor but did not add refunds
|
|
110
|
+
2. **Preflight** shows you need to check `#payment-service`, `$checkout-flow`, and `^authenticated`
|
|
111
|
+
3. **Habits check** confirms you called ripple and wisdom — discovery habits followed
|
|
112
|
+
4. **Ripple** shows `#payment-service` has 4 downstream dependents
|
|
113
|
+
5. **Wisdom** warns: "always null-check refund objects — see incident INC-042"
|
|
114
|
+
6. You implement the refund endpoint with proper null checks
|
|
115
|
+
7. **Post-write hook** tracks 5 edited files in `.pending-review`
|
|
116
|
+
8. You update .purpose with `#refund-handler` and portal.yaml with `^refund-eligible` gate
|
|
117
|
+
9. **Postflight** confirms all gates are declared and flows are valid
|
|
118
|
+
10. **Lore record** captures the session with the decision to require `^refund-eligible`
|
|
119
|
+
11. **Commit** triggers pre-commit (index rebuild) and stop hook (all checks pass)
|
|
120
|
+
12. Three weeks later, a similar null reference hits — **Sentinel** matches pattern `payment-null-ref-001` and resolves it in 5 minutes using the recorded fix
|
|
121
|
+
|
|
122
|
+
This is Paradigm at full power: every system contributing, every session building on the last, every incident making the next resolution faster.
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-501-aspect-graph-advanced
|
|
3
|
+
title: The Aspect Graph at Scale
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-501
|
|
11
|
+
- 8-built-in-detectors
|
|
12
|
+
- custom-detectors-defined
|
|
13
|
+
- bfs-traversal-with
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 8
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-501.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Beyond the Basics
|
|
24
|
+
|
|
25
|
+
PARA 201 introduced the Aspect Graph's internals — the SQLite schema, materialization pipeline, and recursive ripple. This lesson takes you deeper: building custom detectors, advanced graph queries, drift detection in CI/CD, search learning optimization, and governing aspects at enterprise scale.
|
|
26
|
+
|
|
27
|
+
## Building Custom Aspect Detection Patterns
|
|
28
|
+
|
|
29
|
+
Paradigm ships with 8 built-in detectors that `paradigm_aspect_suggest_scan` uses to find undocumented aspects in source code:
|
|
30
|
+
|
|
31
|
+
1. **Magic numbers** — Numeric literals that aren't 0 or 1 (e.g., `timeout: 30000`, `maxRetries: 3`)
|
|
32
|
+
2. **Hardcoded strings** — String literals used in conditionals or assignments that smell like configuration (e.g., `'production'`, `'us-east-1'`)
|
|
33
|
+
3. **Rate limits** — Patterns like `rateLimit(100)`, `throttle(1000)`, or variable names containing `limit`, `throttle`, `quota`
|
|
34
|
+
4. **Time values** — Durations, timeouts, TTLs, and expiry values (e.g., `86400`, `24 * 60 * 60`)
|
|
35
|
+
5. **Environment checks** — `process.env`, `std::env`, `os.environ` patterns that branch on environment variables
|
|
36
|
+
6. **Feature flags** — Conditional logic gated on feature names (e.g., `isEnabled('new-checkout')`, `featureFlags.get()`)
|
|
37
|
+
7. **Regex patterns** — Regular expressions used for validation (e.g., email patterns, URL matchers)
|
|
38
|
+
8. **Assertion guards** — Invariant checks using `assert`, `invariant()`, `expect()` that enforce guarantees
|
|
39
|
+
|
|
40
|
+
To extend the detection system, you define custom detectors in `.paradigm/aspect-detectors.yaml`:
|
|
41
|
+
|
|
42
|
+
```yaml
|
|
43
|
+
detectors:
|
|
44
|
+
- id: compliance-annotation
|
|
45
|
+
name: Compliance Annotations
|
|
46
|
+
description: Detects SOC2/GDPR compliance annotations in code
|
|
47
|
+
patterns:
|
|
48
|
+
- regex: "@(SOC2|GDPR|PCI|HIPAA)"
|
|
49
|
+
languages: [typescript, javascript, java]
|
|
50
|
+
- regex: "#\[compliance\("
|
|
51
|
+
languages: [rust]
|
|
52
|
+
suggestedCategory: rule
|
|
53
|
+
suggestedSeverity: critical
|
|
54
|
+
suggestedTags: [compliance, security]
|
|
55
|
+
|
|
56
|
+
- id: retry-policy
|
|
57
|
+
name: Retry Policies
|
|
58
|
+
description: Detects retry/backoff configurations
|
|
59
|
+
patterns:
|
|
60
|
+
- regex: "(retryPolicy|backoff|maxAttempts|retryCount)"
|
|
61
|
+
languages: [typescript, javascript, python]
|
|
62
|
+
suggestedCategory: configuration
|
|
63
|
+
suggestedSeverity: medium
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Custom detectors are loaded alongside the built-in 8 during `paradigm_aspect_suggest_scan`. They follow the same interface: match source code patterns, suggest a category and severity, and let the user decide whether to formalize the finding as a `~aspect`.
|
|
67
|
+
|
|
68
|
+
## Graph Querying Strategies
|
|
69
|
+
|
|
70
|
+
The aspect graph supports three primary querying patterns, each suited to different use cases:
|
|
71
|
+
|
|
72
|
+
### BFS Traversal (Neighborhood Analysis)
|
|
73
|
+
|
|
74
|
+
`paradigm_aspect_graph` uses breadth-first search to explore the neighborhood of a symbol. The `hops` parameter controls how far to traverse:
|
|
75
|
+
|
|
76
|
+
- **1 hop** — Direct connections only. Use this when you need to know what a single aspect directly relates to. Fast, focused, minimal noise.
|
|
77
|
+
- **2 hops** — Friends-of-friends. Reveals indirect relationships: "this aspect relates to that aspect, which relates to that component." The sweet spot for most queries.
|
|
78
|
+
- **3+ hops** — Extended neighborhood. Useful for understanding how distant parts of the codebase connect through aspects. Gets noisy in dense graphs.
|
|
79
|
+
|
|
80
|
+
The multiplicative weight decay means that each hop reduces confidence. An explicit edge (weight 1.0) followed by an inferred edge (weight 0.5) produces a path weight of 0.5. Two inferred edges produce 0.25. The `minWeight` threshold (default 0.1) prunes low-confidence paths automatically.
|
|
81
|
+
|
|
82
|
+
### Heatmap-Driven Exploration
|
|
83
|
+
|
|
84
|
+
`paradigm_aspect_heatmap` ranks aspects by access frequency. This is not about what aspects ARE important — it is about what aspects are USED most. The distinction matters:
|
|
85
|
+
|
|
86
|
+
- An aspect accessed 50 times via search but never via ripple might have a discoverability problem — people search for it because it is hard to find through the graph.
|
|
87
|
+
- An aspect accessed primarily via ripple has good graph connectivity — it naturally surfaces during impact analysis.
|
|
88
|
+
- An aspect with zero access across all types may be stale, poorly named, or irrelevant.
|
|
89
|
+
|
|
90
|
+
Heatmap data is the starting point for governance reviews. Aspects that nobody accesses should be evaluated for removal or renaming.
|
|
91
|
+
|
|
92
|
+
### Edge-Filtered Queries
|
|
93
|
+
|
|
94
|
+
When calling `paradigm_aspect_graph`, you can filter by edge relation to narrow results:
|
|
95
|
+
|
|
96
|
+
- `enforced-by` — Find all aspects that enforce a given component. Useful when changing a component to know what rules apply.
|
|
97
|
+
- `depends-on` — Find dependency chains. If `~token-expiry-24h` depends-on `~jwt-signing-rs256`, changing JWT signing affects token expiry.
|
|
98
|
+
- `contradicts` — Find conflicting aspects. Two aspects that contradict each other signal an architectural tension that needs resolution.
|
|
99
|
+
- `supersedes` — Find deprecated-but-still-referenced aspects. The superseding aspect should be the authoritative one.
|
|
100
|
+
- `related-to` — The weakest relation. Useful for discovery but not for impact analysis.
|
|
101
|
+
|
|
102
|
+
## Drift Detection in CI/CD
|
|
103
|
+
|
|
104
|
+
Aspect drift occurs when the code at an anchor location changes without updating the aspect definition. The `paradigm_aspect_drift` tool detects this using SHA-256 content hashes.
|
|
105
|
+
|
|
106
|
+
During materialization, the pipeline computes a SHA-256 hash of the code at each anchor's line range and stores it in the `anchors.content_hash` column. When `paradigm_aspect_drift` runs later, it re-reads the code at those line ranges, computes a new hash, and compares. A mismatch means the code changed — the anchor is drifted.
|
|
107
|
+
|
|
108
|
+
For CI/CD integration, add drift detection as a pipeline step:
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
# .github/workflows/paradigm.yml
|
|
112
|
+
steps:
|
|
113
|
+
- name: Check aspect drift
|
|
114
|
+
run: |
|
|
115
|
+
paradigm scan --quiet
|
|
116
|
+
paradigm doctor --strict --json | jq '.aspects.drifted'
|
|
117
|
+
if [ $(paradigm doctor --json | jq '.aspects.drifted | length') -gt 0 ]; then
|
|
118
|
+
echo "::error::Aspect anchors have drifted"
|
|
119
|
+
exit 1
|
|
120
|
+
fi
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
The `--strict` flag treats drifted anchors as errors rather than warnings. In a mature project, you want drift detection to block merges — it ensures that aspect documentation stays synchronized with code changes.
|
|
124
|
+
|
|
125
|
+
Drift detection is also available per-aspect via the MCP tool:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
paradigm_aspect_drift({ aspectId: 'token-expiry-24h' })
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
This returns: the aspect ID, each anchor with its stored hash vs current hash, whether each anchor has drifted, and the specific lines that changed. Use this during code review to verify that refactors updated their aspect anchors.
|
|
132
|
+
|
|
133
|
+
## Search Learning Loop Optimization
|
|
134
|
+
|
|
135
|
+
The three-tier search system improves over time through the confirm-and-decay mechanism. Here is how to optimize it:
|
|
136
|
+
|
|
137
|
+
### Tier Priority
|
|
138
|
+
|
|
139
|
+
1. **Tier 1: Learned mappings** — Query-to-aspect weights in the `search_weights` table. If a query matches a stored mapping with weight >= 1.0, the result is returned immediately. This is instant because it is a simple key-value lookup.
|
|
140
|
+
2. **Tier 2: FTS5 full-text search** — SQLite's FTS5 engine searches aspect descriptions, values, and categories. Returns results ranked by BM25 relevance. Accurate but slower than Tier 1.
|
|
141
|
+
3. **Tier 3: Fuzzy matching** — Levenshtein distance-based matching with a configurable threshold. Catches typos and partial matches. Slowest but most forgiving.
|
|
142
|
+
|
|
143
|
+
### Warming the Learning System
|
|
144
|
+
|
|
145
|
+
A new project's search starts cold — no learned mappings exist. Every search falls through to Tier 2 or 3. To warm the system:
|
|
146
|
+
|
|
147
|
+
1. Run common queries for your project's domain (e.g., search for 'expiry', 'rate limit', 'auth')
|
|
148
|
+
2. Confirm the best result with `paradigm_aspect_confirm` for each query
|
|
149
|
+
3. After 3-5 confirmations per query, the learned weight exceeds the Tier 1 threshold
|
|
150
|
+
|
|
151
|
+
The decay mechanism (confirmed +1.0, others *0.95) means that a single confirmation is enough to create a Tier 1 entry. But multiple confirmations build a stronger mapping that resists displacement.
|
|
152
|
+
|
|
153
|
+
### Diagnosing Search Issues
|
|
154
|
+
|
|
155
|
+
When search returns unexpected results:
|
|
156
|
+
|
|
157
|
+
- Check `search_weights` table entries for the query — are stale mappings dominating?
|
|
158
|
+
- Verify aspect descriptions contain the keywords you are searching for (FTS5 searches descriptions)
|
|
159
|
+
- Check for typos in the query that might prevent Tier 2 matches but trigger Tier 3 fuzzy results
|
|
160
|
+
- Use `paradigm_aspect_heatmap` to see if the expected aspect is ever accessed — a zero-access aspect might have a discovery problem
|
|
161
|
+
|
|
162
|
+
## Aspect Governance at Scale
|
|
163
|
+
|
|
164
|
+
When a project exceeds 100 aspects, governance becomes critical. Without it, aspects accumulate as stale documentation, anchor drift goes undetected, and the graph becomes noisy rather than useful.
|
|
165
|
+
|
|
166
|
+
### The Governance Review Cycle
|
|
167
|
+
|
|
168
|
+
Run quarterly aspect reviews using this process:
|
|
169
|
+
|
|
170
|
+
1. **Heatmap analysis** — `paradigm_aspect_heatmap({ limit: 0 })` returns ALL aspects ranked by access. The bottom 20% are candidates for removal or consolidation.
|
|
171
|
+
2. **Drift audit** — `paradigm doctor --strict` catches all drifted anchors. Drifted aspects either need anchor updates or should be marked stale.
|
|
172
|
+
3. **Category distribution** — Check that aspect categories are balanced. A project with 80 rules and 2 decisions might be over-documenting constraints while missing strategic choices.
|
|
173
|
+
4. **Edge health** — Check for orphaned aspects (no edges to any other symbol). An aspect with zero edges is either standalone (legitimate but rare) or poorly connected.
|
|
174
|
+
5. **Search weight review** — Check the `search_weights` table for queries with multiple high-weight mappings, which indicate ambiguous terminology.
|
|
175
|
+
|
|
176
|
+
### Naming Conventions at Scale
|
|
177
|
+
|
|
178
|
+
With 100+ aspects, naming collisions and ambiguity become real problems. Establish conventions:
|
|
179
|
+
|
|
180
|
+
- **Category prefix** — Prefix aspects with their category: `~rule-no-console-log`, `~decision-use-redis`, `~constraint-max-upload-10mb`
|
|
181
|
+
- **Domain grouping** — Group related aspects by domain: `~auth-token-expiry`, `~auth-session-timeout`, `~auth-refresh-rotation`
|
|
182
|
+
- **Version suffix** — When aspects evolve: `~rate-limit-v2` supersedes `~rate-limit-v1` with an explicit `supersedes` edge
|
|
183
|
+
|
|
184
|
+
### Delegation and Ownership
|
|
185
|
+
|
|
186
|
+
For large teams, assign aspect ownership:
|
|
187
|
+
|
|
188
|
+
```yaml
|
|
189
|
+
~payment-idempotency:
|
|
190
|
+
description: Payment operations must be idempotent
|
|
191
|
+
owner: payments-team
|
|
192
|
+
reviewers: [platform-team, security-team]
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
The `owner` field indicates who maintains the aspect, and `reviewers` lists teams that should be consulted when the aspect changes. This is purely metadata — Paradigm does not enforce it — but it guides humans and AI agents when modifications are needed.
|