@a-company/paradigm 5.37.11 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accept-orchestration-SBZVK3H4.js → accept-orchestration-QQISPINV.js} +1 -1
- package/dist/add-UOR4INIV.js +8 -0
- package/dist/{agent-loader-RIVI6QPP.js → agent-loader-2WJHD46U.js} +1 -1
- package/dist/{agent-loader-RJRVO5GQ.js → agent-loader-YKS2PQWO.js} +1 -1
- package/dist/{aggregate-W66DM3GA.js → aggregate-A5S5MTCC.js} +1 -1
- package/dist/{ambient-76YMUA5Q.js → ambient-BE3SQXNN.js} +1 -1
- package/dist/{ambient-WTLYUAQM.js → ambient-NVKQCW2A.js} +12 -12
- package/dist/{assess-UFPYEJKP.js → assess-63WXHWJV.js} +1 -1
- package/dist/{beacon-5QVYV5DF.js → beacon-QVUD3MGP.js} +1 -1
- package/dist/{calibration-OLJYB5HN.js → calibration-BDHGYJOK.js} +1 -1
- package/dist/{chunk-SI6SV76D.js → chunk-3DZK54RU.js} +72 -19
- package/dist/{chunk-CHVQNRRT.js → chunk-4PSD5R7N.js} +2 -2
- package/dist/chunk-6SKSV5B2.js +24 -0
- package/dist/{chunk-KFNHCQ4R.js → chunk-FEYOQMZ5.js} +1 -1
- package/dist/{chunk-NEJ4ZLCY.js → chunk-GAFKOFAV.js} +1 -1
- package/dist/chunk-GRZQIKST.js +2 -0
- package/dist/{chunk-RLCH7DXQ.js → chunk-K7X3Z3GL.js} +1 -1
- package/dist/chunk-LPBCQM5Y.js +6 -0
- package/dist/{chunk-T6IDXUUA.js → chunk-LWAIVOSF.js} +1 -1
- package/dist/{chunk-74SGKSRQ.js → chunk-M2HKWR25.js} +1 -1
- package/dist/{chunk-BOYQAMGC.js → chunk-M3PPXJU4.js} +1 -1
- package/dist/chunk-PHEX6LU4.js +111 -0
- package/dist/chunk-Q527BPUF.js +2 -0
- package/dist/chunk-R5ECMBIV.js +11 -0
- package/dist/{chunk-X3U3IGYT.js → chunk-TBWWFRL5.js} +1 -1
- package/dist/{chunk-MQIG6SMF.js → chunk-TNVWGPCE.js} +1 -1
- package/dist/{chunk-SUU6M4JH.js → chunk-TOYQ2QCB.js} +1 -1
- package/dist/chunk-TZDYIPVU.js +521 -0
- package/dist/{chunk-3XGNXXCT.js → chunk-UZ5H7K6Q.js} +1 -1
- package/dist/chunk-VIG5LSGZ.js +2 -0
- package/dist/chunk-VNIX5KBT.js +3 -0
- package/dist/{chunk-AGFPVSX5.js → chunk-VXIIVMTM.js} +1 -1
- package/dist/{chunk-ORDKEGII.js → chunk-WESTEMIM.js} +1 -1
- package/dist/{chunk-LBQBWIEX.js → chunk-Y4P4SGZV.js} +1 -1
- package/dist/{chunk-DOCDDDTD.js → chunk-YNDPSWOE.js} +5 -5
- package/dist/chunk-Z5QW6USC.js +2 -0
- package/dist/chunk-ZJQY5PPP.js +7 -0
- package/dist/{commands-LMUD5L6R.js → commands-ANRJNG2W.js} +1 -1
- package/dist/compliance-BNFWQPKM.js +6 -0
- package/dist/config-schema-FLHRVZMI.js +2 -0
- package/dist/{constellation-CG7C4WFE.js → constellation-NWLXYATA.js} +1 -1
- package/dist/{context-audit-XRPT3OU2.js → context-audit-JVCA6GSV.js} +1 -1
- package/dist/{cost-IDNVMAEV.js → cost-24UZSS2P.js} +1 -1
- package/dist/{cursorrules-U5O4G5T4.js → cursorrules-ZXPXPZ3P.js} +1 -1
- package/dist/decision-loader-HELL2AMX.js +2 -0
- package/dist/{delete-P5VULXR4.js → delete-2C6ALLYY.js} +1 -1
- package/dist/{diff-JVEYCXUC.js → diff-MF55KQZH.js} +1 -1
- package/dist/{dist-KGRCLBJP-2QAPFYNF.js → dist-GQ42YS5N-4HIJZVBB.js} +10 -10
- package/dist/dist-JZZJLVMR.js +2 -0
- package/dist/{dist-3ZCH25SG.js → dist-OG6MM4VY.js} +1 -1
- package/dist/dist-SE67SOXB.js +2 -0
- package/dist/{docs-USDAF26F.js → docs-O37YLLRN.js} +1 -1
- package/dist/doctor-IG5XM4C4.js +2 -0
- package/dist/{edit-GUU3HBVW.js → edit-P3MDAZLU.js} +1 -1
- package/dist/{flow-POQP27WA.js → flow-BGXOVE2V.js} +1 -1
- package/dist/{hooks-IG2GOAHP.js → hooks-TFMMMB2H.js} +1 -1
- package/dist/index.js +6 -6
- package/dist/init-M44SO65G.js +2 -0
- package/dist/init-V4KSEKPK.js +2 -0
- package/dist/{integrity-UYDOOJDP.js → integrity-ROO3G43N.js} +1 -1
- package/dist/{list-YKIQNKGB.js → list-2XIWUEMA.js} +1 -1
- package/dist/list-CFHINXIS.js +12 -0
- package/dist/lore-loader-D2ISOASW.js +2 -0
- package/dist/lore-loader-PXFKMKAN.js +2 -0
- package/dist/mcp.js +19 -11
- package/dist/metrics-UESGUHTA.js +2 -0
- package/dist/{migrate-IBDE7VK4.js → migrate-Z5UQN57G.js} +1 -1
- package/dist/migrate-assessments-YSITX7KM.js +4 -0
- package/dist/migrate-decisions-NPLQOEEH.js +6 -0
- package/dist/migrate-plsat-EM2ACIQ3.js +6 -0
- package/dist/{nomination-engine-EALA5MGI.js → nomination-engine-QPZJH6XO.js} +1 -1
- package/dist/{notebook-loader-PXNRBBXD.js → notebook-loader-3J2OFMS3.js} +1 -1
- package/dist/{orchestrate-RCAMBOIB.js → orchestrate-RID7HHHH.js} +1 -1
- package/dist/{platform-server-DNAMH4YI.js → platform-server-UD45NTGV.js} +1 -1
- package/dist/portal-check-DV2VSJ5E.js +8 -0
- package/dist/{portal-compliance-4MG5F2GI.js → portal-compliance-JONQ4SOP.js} +1 -1
- package/dist/{probe-B22G2JKF.js → probe-5HAXULAD.js} +1 -1
- package/dist/{providers-AWA7WLLM.js → providers-4PXMWA7V.js} +1 -1
- package/dist/quiz-WYIZJG5K.js +10 -0
- package/dist/{record-YXPB34MY.js → record-N3VNYYKJ.js} +1 -1
- package/dist/reindex-FWPD2VGM.js +2 -0
- package/dist/{retag-N5XF3KXP.js → retag-72R2OSZV.js} +1 -1
- package/dist/{review-77QI6VOC.js → review-2INNWLTW.js} +1 -1
- package/dist/{review-6UAH6V3R.js → review-VMSX2PKI.js} +1 -1
- package/dist/{ripple-ZGDITCGB.js → ripple-FNZI47SH.js} +1 -1
- package/dist/{sentinel-HYAZ3CO5.js → sentinel-EFPEX246.js} +1 -1
- package/dist/{sentinel-bridge-VR357PKL.js → sentinel-bridge-UR2MKARY.js} +1 -1
- package/dist/sentinel.js +1 -1
- package/dist/{serve-U47GULB6.js → serve-MO35XIZE.js} +1 -1
- package/dist/serve-OQYUO7CR.js +12 -0
- package/dist/{server-4YNUIK4W.js → server-4D77LCST.js} +1 -1
- package/dist/server-FGUL2FWQ.js +7 -0
- package/dist/session-tracker-KGORN6B5.js +2 -0
- package/dist/{session-work-log-PAKXOFGL.js → session-work-log-4IEVE4KK.js} +1 -1
- package/dist/{session-work-log-ZP45TREI.js → session-work-log-EE4UIZ33.js} +1 -1
- package/dist/{setup-3F5IK7MO.js → setup-ZSEC72BS.js} +2 -2
- package/dist/{shift-FDADESC4.js → shift-TVNY2CQF.js} +6 -6
- package/dist/{show-PJ5LFLIL.js → show-JH7LJ5MT.js} +1 -1
- package/dist/show-WVHAL4VU.js +7 -0
- package/dist/{snapshot-L2G56RPL.js → snapshot-3IYB67D4.js} +1 -1
- package/dist/{spawn-M5BAV252.js → spawn-UH5RENSE.js} +1 -1
- package/dist/{status-77M3SDIF.js → status-DB3KNLW3.js} +1 -1
- package/dist/status-S7Z5FVIE.js +6 -0
- package/dist/{summary-LXLHFRN7.js → summary-WLI3NF4G.js} +2 -2
- package/dist/{sweep-HU74OPVW.js → sweep-7TZFN5NS.js} +1 -1
- package/dist/sync-55U6QPIA.js +2 -0
- package/dist/{sync-llms-7CAI74QL.js → sync-llms-GF7DDQDI.js} +1 -1
- package/dist/team-MGT66HZQ.js +2 -0
- package/dist/{test-BQJMS4Y2.js → test-WLEPZQFC.js} +1 -1
- package/dist/{timeline-K3ZFKJ3R.js → timeline-RK7O2SCM.js} +1 -1
- package/dist/tools-QJHAVYI6.js +2 -0
- package/dist/university-content/notes/N-para-001-build-something.md +126 -0
- package/dist/university-content/notes/N-para-001-meet-the-team.md +85 -0
- package/dist/university-content/notes/N-para-001-shift-setup.md +74 -0
- package/dist/university-content/notes/N-para-101-component-types.md +99 -0
- package/dist/university-content/notes/N-para-101-first-steps.md +134 -0
- package/dist/university-content/notes/N-para-101-five-symbols.md +128 -0
- package/dist/university-content/notes/N-para-101-paradigm-logger.md +89 -0
- package/dist/university-content/notes/N-para-101-portal-yaml.md +112 -0
- package/dist/university-content/notes/N-para-101-project-structure.md +143 -0
- package/dist/university-content/notes/N-para-101-purpose-files.md +121 -0
- package/dist/university-content/notes/N-para-101-tags-and-classification.md +93 -0
- package/dist/university-content/notes/N-para-101-welcome.md +51 -0
- package/dist/university-content/notes/N-para-201-architecture-review.md +175 -0
- package/dist/university-content/notes/N-para-201-aspect-graph.md +79 -0
- package/dist/university-content/notes/N-para-201-aspects-and-anchors.md +112 -0
- package/dist/university-content/notes/N-para-201-component-patterns.md +138 -0
- package/dist/university-content/notes/N-para-201-cross-cutting-concerns.md +145 -0
- package/dist/university-content/notes/N-para-201-disciplines.md +187 -0
- package/dist/university-content/notes/N-para-201-flows-deep-dive.md +119 -0
- package/dist/university-content/notes/N-para-201-gates-deep-dive.md +165 -0
- package/dist/university-content/notes/N-para-201-portal-protocol.md +133 -0
- package/dist/university-content/notes/N-para-201-signal-patterns.md +159 -0
- package/dist/university-content/notes/N-para-201-symbol-naming.md +149 -0
- package/dist/university-content/notes/N-para-301-context-management.md +53 -0
- package/dist/university-content/notes/N-para-301-decisions.md +99 -0
- package/dist/university-content/notes/N-para-301-doctor-and-validation.md +70 -0
- package/dist/university-content/notes/N-para-301-enforcement-levels.md +102 -0
- package/dist/university-content/notes/N-para-301-fragility-tracking.md +50 -0
- package/dist/university-content/notes/N-para-301-history-system.md +42 -0
- package/dist/university-content/notes/N-para-301-navigation-system.md +55 -0
- package/dist/university-content/notes/N-para-301-operations-review.md +55 -0
- package/dist/university-content/notes/N-para-301-paradigm-shift.md +93 -0
- package/dist/university-content/notes/N-para-301-protocols.md +113 -0
- package/dist/university-content/notes/N-para-301-ripple-analysis.md +53 -0
- package/dist/university-content/notes/N-para-301-sentinel-observability.md +87 -0
- package/dist/university-content/notes/N-para-301-sync-and-maintenance.md +57 -0
- package/dist/university-content/notes/N-para-301-wisdom-system.md +89 -0
- package/dist/university-content/notes/N-para-401-agent-identity.md +99 -0
- package/dist/university-content/notes/N-para-401-agent-interop.md +87 -0
- package/dist/university-content/notes/N-para-401-agent-roles.md +107 -0
- package/dist/university-content/notes/N-para-401-commit-conventions.md +82 -0
- package/dist/university-content/notes/N-para-401-mastery-review.md +71 -0
- package/dist/university-content/notes/N-para-401-mcp-tools-overview.md +102 -0
- package/dist/university-content/notes/N-para-401-multi-agent-coordination.md +80 -0
- package/dist/university-content/notes/N-para-401-notebooks-permissions.md +66 -0
- package/dist/university-content/notes/N-para-401-orchestration-workflow.md +101 -0
- package/dist/university-content/notes/N-para-401-pm-governance.md +71 -0
- package/dist/university-content/notes/N-para-401-provider-cascade.md +75 -0
- package/dist/university-content/notes/N-para-401-quick-check.md +95 -0
- package/dist/university-content/notes/N-para-501-advanced-workflows.md +122 -0
- package/dist/university-content/notes/N-para-501-aspect-graph-advanced.md +195 -0
- package/dist/university-content/notes/N-para-501-aspect-graph-internals.md +97 -0
- package/dist/university-content/notes/N-para-501-assessment-loops.md +116 -0
- package/dist/university-content/notes/N-para-501-conductor-workspace.md +77 -0
- package/dist/university-content/notes/N-para-501-habits-practice.md +164 -0
- package/dist/university-content/notes/N-para-501-hook-enforcement.md +100 -0
- package/dist/university-content/notes/N-para-501-lore-system.md +155 -0
- package/dist/university-content/notes/N-para-501-platform-agent-ui.md +108 -0
- package/dist/university-content/notes/N-para-501-review-compliance.md +72 -0
- package/dist/university-content/notes/N-para-501-sentinel-deep-dive.md +173 -0
- package/dist/university-content/notes/N-para-501-session-intelligence.md +104 -0
- package/dist/university-content/notes/N-para-501-symphony-a-mail.md +120 -0
- package/dist/university-content/notes/N-para-501-symphony-networking.md +119 -0
- package/dist/university-content/notes/N-para-501-task-management.md +100 -0
- package/dist/university-content/notes/N-para-601-agent-renaissance.md +121 -0
- package/dist/university-content/notes/N-para-601-attention-scoring.md +129 -0
- package/dist/university-content/notes/N-para-601-context-composition.md +146 -0
- package/dist/university-content/notes/N-para-601-data-sovereignty.md +140 -0
- package/dist/university-content/notes/N-para-601-event-stream.md +126 -0
- package/dist/university-content/notes/N-para-601-knowledge-streams.md +144 -0
- package/dist/university-content/notes/N-para-601-learning-loop.md +68 -0
- package/dist/university-content/notes/N-para-601-maestro-team-collab.md +136 -0
- package/dist/university-content/notes/N-para-601-nominations-debates.md +115 -0
- package/dist/university-content/notes/N-para-701-agent-notebooks.md +131 -0
- package/dist/university-content/notes/N-para-701-agent-pods-nevrland.md +182 -0
- package/dist/university-content/notes/N-para-701-agent-profiles.md +197 -0
- package/dist/university-content/notes/N-para-701-agent-roster.md +82 -0
- package/dist/university-content/notes/N-para-701-agent-state.md +180 -0
- package/dist/university-content/notes/N-para-701-learning-feedback-loop.md +188 -0
- package/dist/university-content/notes/N-para-701-model-tier-resolution.md +204 -0
- package/dist/university-content/notes/N-para-701-orchestration-enforcement.md +169 -0
- package/dist/university-content/notes/N-para-701-per-project-rosters.md +198 -0
- package/dist/university-content/notes/N-para-701-symphony-visibility.md +142 -0
- package/dist/university-content/paths/LP-para-001.yaml +29 -0
- package/dist/university-content/paths/LP-para-101.yaml +59 -0
- package/dist/university-content/paths/LP-para-201.yaml +69 -0
- package/dist/university-content/paths/LP-para-301.yaml +84 -0
- package/dist/university-content/paths/LP-para-401.yaml +74 -0
- package/dist/university-content/paths/LP-para-501.yaml +89 -0
- package/dist/university-content/paths/LP-para-601.yaml +59 -0
- package/dist/university-content/paths/LP-para-701.yaml +64 -0
- package/dist/university-content/quizzes/Q-para-001-build-something.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-001-meet-the-team.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-001-shift-setup.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-101-component-types.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-101-first-steps.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-five-symbols.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-101-paradigm-logger.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-portal-yaml.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-project-structure.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-101-purpose-files.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-tags-and-classification.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-101-welcome.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-architecture-review.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-aspect-graph.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-201-aspects-and-anchors.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-component-patterns.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-cross-cutting-concerns.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-disciplines.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-flows-deep-dive.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-gates-deep-dive.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-201-portal-protocol.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-signal-patterns.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-201-symbol-naming.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-301-context-management.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-decisions.yaml +76 -0
- package/dist/university-content/quizzes/Q-para-301-doctor-and-validation.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-301-enforcement-levels.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-fragility-tracking.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-history-system.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-navigation-system.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-operations-review.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-301-paradigm-shift.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-protocols.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-ripple-analysis.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-301-sentinel-observability.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-sync-and-maintenance.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-301-wisdom-system.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-agent-identity.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-agent-interop.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-401-agent-roles.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-commit-conventions.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-mastery-review.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-mcp-tools-overview.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-multi-agent-coordination.yaml +76 -0
- package/dist/university-content/quizzes/Q-para-401-notebooks-permissions.yaml +61 -0
- package/dist/university-content/quizzes/Q-para-401-orchestration-workflow.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-pm-governance.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-401-provider-cascade.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-401-quick-check.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-501-advanced-workflows.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-aspect-graph-advanced.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-aspect-graph-internals.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-assessment-loops.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-501-conductor-workspace.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-501-habits-practice.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-501-hook-enforcement.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-lore-system.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-platform-agent-ui.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-review-compliance.yaml +61 -0
- package/dist/university-content/quizzes/Q-para-501-sentinel-deep-dive.yaml +86 -0
- package/dist/university-content/quizzes/Q-para-501-session-intelligence.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-symphony-a-mail.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-symphony-networking.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-501-task-management.yaml +46 -0
- package/dist/university-content/quizzes/Q-para-601-agent-renaissance.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-attention-scoring.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-601-context-composition.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-data-sovereignty.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-601-event-stream.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-knowledge-streams.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-601-learning-loop.yaml +56 -0
- package/dist/university-content/quizzes/Q-para-601-maestro-team-collab.yaml +86 -0
- package/dist/university-content/quizzes/Q-para-601-nominations-debates.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-notebooks.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-pods-nevrland.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-profiles.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-roster.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-agent-state.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-learning-feedback-loop.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-model-tier-resolution.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-orchestration-enforcement.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-per-project-rosters.yaml +66 -0
- package/dist/university-content/quizzes/Q-para-701-symphony-visibility.yaml +66 -0
- package/dist/university-content/quizzes/Q-plsat-v2.yaml +904 -0
- package/dist/university-content/quizzes/Q-plsat-v3.yaml +2909 -0
- package/dist/university-content/reference.json +2 -2
- package/dist/university-ui/assets/{index-CecQrfSn.js → index-nNgzO1il.js} +2 -2
- package/dist/university-ui/assets/{index-CecQrfSn.js.map → index-nNgzO1il.js.map} +1 -1
- package/dist/university-ui/index.html +1 -1
- package/dist/{upgrade-GX56QE3C.js → upgrade-NKN63VTY.js} +2 -2
- package/dist/{validate-VZXTJHGO.js → validate-BB6LRWIY.js} +1 -1
- package/dist/validate-XUQZTF3H.js +9 -0
- package/dist/{watch-YCODNIET.js → watch-25GJHQYT.js} +1 -1
- package/dist/workspace-VMSPYIBV.js +2 -0
- package/lore-ui/dist/assets/{index-Bk-K0qgN.js → index-DKhNxgtW.js} +10 -10
- package/lore-ui/dist/index.html +1 -1
- package/package.json +3 -2
- package/platform-ui/dist/assets/{AmbientSection-BYjt75R1.js → AmbientSection-CwatqcBD.js} +1 -1
- package/platform-ui/dist/assets/{CanvasSection-rKvA_vZj.js → CanvasSection-dFAthehN.js} +1 -1
- package/platform-ui/dist/assets/{DocsSection-CI9K73M-.js → DocsSection-BZ2SFJBZ.js} +1 -1
- package/platform-ui/dist/assets/{GitSection-DSGj_c6S.js → GitSection-MNNYU1tO.js} +1 -1
- package/platform-ui/dist/assets/{GraphSection-CawN7pC5.js → GraphSection-COYjb4Pt.js} +1 -1
- package/platform-ui/dist/assets/LoreSection-B0hUbfsJ.js +1 -0
- package/platform-ui/dist/assets/{SentinelSection-DNgoYMH0.js → SentinelSection-BCxW1DCp.js} +1 -1
- package/platform-ui/dist/assets/{SymphonySection-C0zfcqv3.js → SymphonySection-BsucZRqy.js} +1 -1
- package/platform-ui/dist/assets/{TeamSection-Bzd3Dt9Q.js → TeamSection-C0QNTudW.js} +1 -1
- package/platform-ui/dist/assets/{UniversitySection-tBr62R0S.js → UniversitySection-DN1-g9pw.js} +1 -1
- package/platform-ui/dist/assets/{index-BaOmyn11.js → index-DwUT8pju.js} +2 -2
- package/platform-ui/dist/index.html +1 -1
- package/templates/paradigm/specs/symbols.md +4 -2
- package/dist/add-P76GEMGF.js +0 -8
- package/dist/chunk-3TR6LLXP.js +0 -111
- package/dist/chunk-G7XFK2GI.js +0 -11
- package/dist/chunk-J6KWGCHN.js +0 -24
- package/dist/chunk-JQKKVAAN.js +0 -2
- package/dist/chunk-ODVKPZZ4.js +0 -2
- package/dist/chunk-Q2J542ST.js +0 -2
- package/dist/chunk-QT2LKB3P.js +0 -7
- package/dist/chunk-SHD27BQX.js +0 -6
- package/dist/chunk-WS2N27RX.js +0 -3
- package/dist/chunk-YT52WLBF.js +0 -521
- package/dist/compliance-WJINB5DM.js +0 -6
- package/dist/config-schema-GUQY2QN7.js +0 -2
- package/dist/decision-loader-2XPZE4EZ.js +0 -2
- package/dist/dist-R3RWD35F.js +0 -2
- package/dist/dist-VXCZWVVJ.js +0 -2
- package/dist/doctor-QJ47XAUP.js +0 -2
- package/dist/init-HIBRSVUB.js +0 -2
- package/dist/list-5IUGP3ZB.js +0 -7
- package/dist/lore-loader-RVQI5GXL.js +0 -2
- package/dist/lore-loader-XY5MZRR2.js +0 -2
- package/dist/migrate-assessments-GEI5WMI2.js +0 -4
- package/dist/portal-check-Z3OCQEQR.js +0 -8
- package/dist/quiz-FE5UGAY2.js +0 -10
- package/dist/reindex-FO5VMZVQ.js +0 -2
- package/dist/serve-OY6XYL7F.js +0 -12
- package/dist/server-2MNROHF6.js +0 -7
- package/dist/session-tracker-MWJAJA6Z.js +0 -2
- package/dist/show-BOAVWZPZ.js +0 -7
- package/dist/status-A37ECYNJ.js +0 -6
- package/dist/sync-DLUBV5HQ.js +0 -2
- package/dist/team-NSP6PMPS.js +0 -2
- package/dist/tools-CERDNVCG.js +0 -2
- package/dist/university-content/courses/.purpose +0 -492
- package/dist/university-content/courses/para-001.json +0 -166
- package/dist/university-content/courses/para-101.json +0 -615
- package/dist/university-content/courses/para-201.json +0 -794
- package/dist/university-content/courses/para-301.json +0 -830
- package/dist/university-content/courses/para-401.json +0 -868
- package/dist/university-content/courses/para-501.json +0 -1166
- package/dist/university-content/courses/para-601.json +0 -719
- package/dist/university-content/courses/para-701.json +0 -807
- package/dist/university-content/plsat/.purpose +0 -162
- package/dist/university-content/plsat/v2.0.json +0 -760
- package/dist/university-content/plsat/v3.0.json +0 -3453
- package/dist/validate-C6SMKGYD.js +0 -9
- package/dist/workspace-MKSQN7B2.js +0 -2
- package/platform-ui/dist/assets/LoreSection-oO5dCe6O.js +0 -1
- /package/dist/{chunk-BV5PRPLB.js → chunk-IZSBGW6E.js} +0 -0
- /package/templates/paradigm/specs/{scan.md → probe.md} +0 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-001-meet-the-team
|
|
3
|
+
title: Meet Your Agent Team
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-18'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-001
|
|
11
|
+
- core-team
|
|
12
|
+
- roster
|
|
13
|
+
- model-tiers-match
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 3
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-001.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Your AI Team
|
|
24
|
+
|
|
25
|
+
Open `.paradigm/roster.yaml`. You will see a list of agents — your project's AI team. Each agent has a specific role, and the orchestrator assigns them to tasks based on what the task needs.
|
|
26
|
+
|
|
27
|
+
### The Core Agent Team
|
|
28
|
+
|
|
29
|
+
Every project gets a small team of role-named core agents. They are the backbone of Paradigm's orchestration:
|
|
30
|
+
|
|
31
|
+
| Role | Model Tier | What They Do |
|
|
32
|
+
|------|-----------|-------------|
|
|
33
|
+
| **architect** | tier-1 (opus) | Plans multi-file changes, defines structure |
|
|
34
|
+
| **builder** | tier-3 (haiku) | Writes the code |
|
|
35
|
+
| **reviewer** | tier-2 (sonnet) | Two-stage review: spec compliance → code quality |
|
|
36
|
+
| **security** | tier-1 (opus) | Threat analysis, auth review, vulnerability scanning |
|
|
37
|
+
| **tester** | tier-3 (haiku) | Writes tests, checks coverage, validates edge cases |
|
|
38
|
+
| **documentor** | tier-2 (sonnet) | Maintains .purpose files and portal.yaml |
|
|
39
|
+
| **ftux** (Nora) | tier-1 (opus) | First-time-user simulation, friction reports |
|
|
40
|
+
|
|
41
|
+
These seven roles ship in every project's roster. Additional core-tier specialists like **advocate** (devil's-advocate review, historically nicknamed Jinx), **compliance** (symbol coverage, historically nicknamed Rune), and **debugger** (incident triage) activate based on the project profile detected by `paradigm shift`.
|
|
42
|
+
|
|
43
|
+
Roles are addressed by their canonical role name (e.g. `architect`). Some roles also have nicknames (the ftux agent is named **Nora**) — nicknames are cosmetic and may evolve; the role name is the stable contract.
|
|
44
|
+
|
|
45
|
+
### Model Tiers
|
|
46
|
+
|
|
47
|
+
Not every agent needs the most powerful (and expensive) model. Paradigm assigns agents to tiers:
|
|
48
|
+
|
|
49
|
+
- **Tier 1 (opus)** — architect, security, ftux. Complex reasoning, design decisions, threat analysis, simulation.
|
|
50
|
+
- **Tier 2 (sonnet)** — reviewer, documentor, advocate, compliance. Balanced depth and speed.
|
|
51
|
+
- **Tier 3 (haiku)** — builder, tester. Fast, cost-effective for implementation and testing.
|
|
52
|
+
|
|
53
|
+
This is not a quality ranking — it is a complexity match. Building code is well-defined work that a fast model handles efficiently. Designing architecture requires deeper reasoning that benefits from a more capable model.
|
|
54
|
+
|
|
55
|
+
### Specialized and Ecosystem Agents
|
|
56
|
+
|
|
57
|
+
Beyond the core team, Paradigm ships with **50+ agents** total (the exact count evolves; see PARA 701):
|
|
58
|
+
|
|
59
|
+
- **Specialized agents** (~20) cover domains like mobile, database, DevOps, accessibility, performance, and internationalization. They are added to your roster when your project type matches.
|
|
60
|
+
|
|
61
|
+
- **Ecosystem agents** (~26+) are language/platform-specific: Swift, TypeScript, Rust, Python ML, iOS, Android, etc. They accumulate knowledge through notebooks that transfer across projects.
|
|
62
|
+
|
|
63
|
+
You do not need to manage these manually. `paradigm shift` detected your project type and selected the right mix. You can view and customize your roster with:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
paradigm agent list # See your full roster
|
|
67
|
+
paradigm agent activate <id> # Add an agent
|
|
68
|
+
paradigm agent bench <id> # Remove an agent
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### The Maestro Model
|
|
72
|
+
|
|
73
|
+
You are **Maestro** — the orchestrator. When you give a task to Paradigm, you are not talking to one AI. You are conducting a team:
|
|
74
|
+
|
|
75
|
+
1. **architect** designs the approach (for complex tasks)
|
|
76
|
+
2. **security** reviews security implications (when auth or data is involved)
|
|
77
|
+
3. **builder** writes the code
|
|
78
|
+
4. **reviewer** checks spec compliance and code quality
|
|
79
|
+
5. **ftux** (Nora) simulates a first-time user when the change touches a user-visible surface
|
|
80
|
+
6. **documentor** updates .purpose files and Paradigm metadata
|
|
81
|
+
7. **compliance** validates that planned symbols match the implementation
|
|
82
|
+
|
|
83
|
+
Not every task uses every agent. A simple CSS fix might only need builder. A new API endpoint might need architect → security → builder → reviewer → documentor. The orchestrator decides based on the task.
|
|
84
|
+
|
|
85
|
+
> **Going deeper:** PARA 401 covers orchestration mechanics (facets, handoffs, trigger patterns). PARA 701 covers the full agent roster, profiles, notebooks, and learning loops.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-001-shift-setup
|
|
3
|
+
title: Your First paradigm shift
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-001
|
|
11
|
+
- paradigm-shift-is
|
|
12
|
+
- paradigm-directory-holds
|
|
13
|
+
- claudemd-and-agentsmd
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 2
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-001.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Hands On in 60 Seconds
|
|
24
|
+
|
|
25
|
+
Open a terminal in any project directory and run:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
paradigm shift
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
That is it. One command, and your project is Paradigm-aware.
|
|
32
|
+
|
|
33
|
+
### What Just Happened?
|
|
34
|
+
|
|
35
|
+
Look at your directory. Several new files and a new folder appeared:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
.paradigm/ ← Configuration, roster, tags, indexes
|
|
39
|
+
config.yaml ← Project settings (name, discipline, enforcement)
|
|
40
|
+
roster.yaml ← Your agent team
|
|
41
|
+
agents.yaml ← Model tier assignments
|
|
42
|
+
tags.yaml ← Tag taxonomy
|
|
43
|
+
CLAUDE.md ← Instructions for Claude Code
|
|
44
|
+
AGENTS.md ← Instructions for any AI agent
|
|
45
|
+
.purpose ← Root-level purpose file (describes your project)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Each file has a specific job:
|
|
49
|
+
|
|
50
|
+
- **`.paradigm/config.yaml`** is the brain — it stores your project name, discipline (web, backend, mobile, etc.), enforcement level, and feature flags. Paradigm auto-detected your discipline from project markers like `package.json`, `Cargo.toml`, or `go.mod`.
|
|
51
|
+
|
|
52
|
+
- **`CLAUDE.md`** and **`AGENTS.md`** are instruction files that AI tools read automatically. They are generated from your Paradigm configuration — you do not edit them by hand. When you change config, re-running `paradigm shift` regenerates them.
|
|
53
|
+
|
|
54
|
+
- **`.purpose`** is the most important file type in Paradigm. It describes what code in a directory does using a structured format with **symbols** — you will learn all five symbol types in PARA 101. For now, just know that `.purpose` files are how AI agents understand your codebase.
|
|
55
|
+
|
|
56
|
+
- **`roster.yaml`** lists which agents are on your team. More on this in the next lesson.
|
|
57
|
+
|
|
58
|
+
### Hooks Are Installed
|
|
59
|
+
|
|
60
|
+
`paradigm shift` also installed Git hooks and Claude Code hooks. These run automatically when you commit or finish a task, checking that your Paradigm metadata stays in sync with your code.
|
|
61
|
+
|
|
62
|
+
By default, hooks use **minimal enforcement** — they warn but never block. You will not lose work or get stuck. As you get comfortable, you can upgrade to balanced or strict enforcement (covered in PARA 301).
|
|
63
|
+
|
|
64
|
+
### Try It: Explore What Was Created
|
|
65
|
+
|
|
66
|
+
Run these commands to see what Paradigm set up:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
cat .paradigm/config.yaml # Your project configuration
|
|
70
|
+
cat .paradigm/roster.yaml # Your agent team
|
|
71
|
+
cat .purpose # Root purpose file
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Notice how `config.yaml` already knows your project type, and `roster.yaml` has agents selected for that type. This is the auto-detection at work — no manual configuration needed.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-101-component-types
|
|
3
|
+
title: Component Types & Hierarchy
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-101
|
|
11
|
+
- component-type-describes
|
|
12
|
+
- types-are-open
|
|
13
|
+
- parent-field-establishes
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 2
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-101.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Why Component Types?
|
|
24
|
+
|
|
25
|
+
Components (`#`) are the most common symbol in any Paradigm project. A large project might have hundreds of components — services, views, utilities, routers, filters, models, and more. Without further classification, an AI agent triaging 'where is access control handled?' has to read every component to understand what kind of thing it is.
|
|
26
|
+
|
|
27
|
+
Component types solve this by adding an optional `type` field that describes a component's **structural role** — what the code IS, not what domain it belongs to.
|
|
28
|
+
|
|
29
|
+
## The `type` Field
|
|
30
|
+
|
|
31
|
+
Add `type` to any component in a `.purpose` file:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
components:
|
|
35
|
+
PaymentService:
|
|
36
|
+
description: Coordinates payment processing
|
|
37
|
+
type: service
|
|
38
|
+
PaymentForm:
|
|
39
|
+
description: Credit card input form
|
|
40
|
+
type: view
|
|
41
|
+
format-currency:
|
|
42
|
+
description: Formats numbers as currency strings
|
|
43
|
+
type: utility
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Types are **open strings** — each project defines its own vocabulary in the `component_types` glossary in `.paradigm/config.yaml`. There is no fixed enum. Common types include: `view`, `service`, `model`, `tool`, `utility`, `engine`, `loader`, `provider`, `manager`, `router`, `filter`, `handler`, `config`.
|
|
47
|
+
|
|
48
|
+
## The `parent` Field
|
|
49
|
+
|
|
50
|
+
Components can declare a parent to establish hierarchy:
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
components:
|
|
54
|
+
InputOrchestrator:
|
|
55
|
+
description: Coordinates all input sources
|
|
56
|
+
type: manager
|
|
57
|
+
GazeRouter:
|
|
58
|
+
description: Maps gaze coordinates to dispatch targets
|
|
59
|
+
type: router
|
|
60
|
+
parent: "#InputOrchestrator"
|
|
61
|
+
KalmanFilter2D:
|
|
62
|
+
description: Smooths noisy gaze signal
|
|
63
|
+
type: filter
|
|
64
|
+
parent: "#GazeRouter"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Parent is declared on the **child**, not maintained as a roster on the parent. This keeps `.purpose` files decentralized.
|
|
68
|
+
|
|
69
|
+
## Type vs Tag
|
|
70
|
+
|
|
71
|
+
This is a common source of confusion:
|
|
72
|
+
|
|
73
|
+
- **`type`** = structural role (what the code IS). One per component. Examples: `service`, `view`, `router`
|
|
74
|
+
- **`tags`** = behavioral or domain classification. Many per component. Examples: `[feature]`, `[security]`, `[integration]`
|
|
75
|
+
|
|
76
|
+
A component can be `type: service` with `tags: [feature, security]`. Type tells you the architecture; tags tell you the domain.
|
|
77
|
+
|
|
78
|
+
## Config Glossary
|
|
79
|
+
|
|
80
|
+
Projects define their vocabulary in `.paradigm/config.yaml`:
|
|
81
|
+
|
|
82
|
+
```yaml
|
|
83
|
+
component_types:
|
|
84
|
+
service: "Business logic coordinator — orchestrates tools, loaders, writers"
|
|
85
|
+
view: "UI rendering unit — SwiftUI view, React component"
|
|
86
|
+
utility: "Shared helper function or module — no side effects, pure logic"
|
|
87
|
+
router: "Maps input signals to targets based on rules"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
The glossary is **descriptive only** — it helps agents understand types but does not enforce them.
|
|
91
|
+
|
|
92
|
+
## MCP Integration
|
|
93
|
+
|
|
94
|
+
Component types integrate with MCP tools:
|
|
95
|
+
|
|
96
|
+
- `paradigm_search` with `componentType: "service"` finds all services
|
|
97
|
+
- `paradigm_status` shows a component type breakdown
|
|
98
|
+
- `paradigm_purpose_add_component` accepts `type` and `parent` parameters
|
|
99
|
+
- `paradigm_reindex` aggregates type counts into `$meta.componentTypes`
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-101-first-steps
|
|
3
|
+
title: Your First Steps
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-101
|
|
11
|
+
- paradigm-shift-creates
|
|
12
|
+
- start-with-one
|
|
13
|
+
- create-portalyaml-if
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 4
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-101.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Getting Started with Paradigm
|
|
24
|
+
|
|
25
|
+
Before diving into theory, let's get your hands dirty. This lesson walks through the concrete steps to set up Paradigm in a real project. You will encounter terms like *symbols*, *purpose files*, and *gates* — each gets its own deep-dive lesson later in this course. For now, focus on the workflow: initialize, document, scan, go.
|
|
26
|
+
|
|
27
|
+
## Step 1: Initialize the Project
|
|
28
|
+
|
|
29
|
+
Run `paradigm shift` in your project root. This creates the `.paradigm/` directory with a starter `config.yaml`:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
paradigm shift
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`paradigm shift` runs non-interactively by default — it auto-detects your discipline from project markers (`package.json`, `Cargo.toml`, `go.mod`, etc.), selects an appropriate agent roster, configures model tiers, installs hooks, and generates AI instruction files (CLAUDE.md, AGENTS.md). One command, full setup.
|
|
36
|
+
|
|
37
|
+
You can customize later with flags like `--verify` (health check) or `--workspace <name>` (multi-project workspace).
|
|
38
|
+
|
|
39
|
+
After init, you will have:
|
|
40
|
+
```
|
|
41
|
+
.paradigm/
|
|
42
|
+
config.yaml # Includes detected discipline and stack
|
|
43
|
+
tags.yaml
|
|
44
|
+
agents.yaml
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Step 2: Create Your First Purpose File
|
|
48
|
+
|
|
49
|
+
Pick a source directory that contains meaningful code — perhaps your main feature module or your API routes. Create a `.purpose` file:
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
name: User Authentication
|
|
53
|
+
description: Handles user login, registration, and session management
|
|
54
|
+
context:
|
|
55
|
+
- Uses bcrypt for password hashing
|
|
56
|
+
- Sessions stored in Redis with 24h TTL
|
|
57
|
+
- Rate limited to 5 login attempts per minute
|
|
58
|
+
|
|
59
|
+
components:
|
|
60
|
+
#auth-handler:
|
|
61
|
+
description: POST /auth/login and POST /auth/register endpoints
|
|
62
|
+
file: auth.ts
|
|
63
|
+
tags: [feature, auth]
|
|
64
|
+
signals: ["!login-success", "!login-failed"]
|
|
65
|
+
gates: ["^authenticated"]
|
|
66
|
+
|
|
67
|
+
#session-manager:
|
|
68
|
+
description: Creates and validates user sessions in Redis
|
|
69
|
+
file: session.ts
|
|
70
|
+
tags: [state, auth]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Start small. You do not need to document every file on day one. Begin with the most important module and expand over time.
|
|
74
|
+
|
|
75
|
+
## Step 3: Set Up portal.yaml (If Needed)
|
|
76
|
+
|
|
77
|
+
If your application has any protected endpoints, create `portal.yaml` at the project root:
|
|
78
|
+
|
|
79
|
+
```yaml
|
|
80
|
+
version: "1.0"
|
|
81
|
+
|
|
82
|
+
gates:
|
|
83
|
+
^authenticated:
|
|
84
|
+
description: User must have a valid session
|
|
85
|
+
check: req.session.userId != null
|
|
86
|
+
type: auth
|
|
87
|
+
effects: []
|
|
88
|
+
|
|
89
|
+
routes:
|
|
90
|
+
"POST /auth/login": []
|
|
91
|
+
"POST /auth/register": []
|
|
92
|
+
"GET /api/profile": [^authenticated]
|
|
93
|
+
"PUT /api/profile": [^authenticated]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Note that public routes like login and register have empty gate arrays `[]` — they are listed to document that they are intentionally unprotected.
|
|
97
|
+
|
|
98
|
+
## Step 4: Run Your First Scan
|
|
99
|
+
|
|
100
|
+
Generate the navigator map so AI agents can find symbols quickly:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
paradigm scan
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
This reads all `.purpose` files and `portal.yaml`, builds a symbol index, and writes `navigator.yaml`.
|
|
107
|
+
|
|
108
|
+
## Step 5: The Orientation Protocol
|
|
109
|
+
|
|
110
|
+
When starting a new AI session (or when an AI agent first encounters your project), the agent should follow this protocol:
|
|
111
|
+
|
|
112
|
+
1. **Call `paradigm_status`** — Gets a project overview: symbol counts, health, available features.
|
|
113
|
+
2. **Read `config.yaml`** — Understands the discipline, conventions, and preferences.
|
|
114
|
+
3. **Check `portal.yaml`** — Knows about security gates if they exist.
|
|
115
|
+
4. **Use `paradigm_navigate`** — Finds the relevant code area for the current task.
|
|
116
|
+
|
|
117
|
+
This four-step orientation takes ~500 tokens total and gives the agent everything it needs to work effectively.
|
|
118
|
+
|
|
119
|
+
## Step 6: Iterate
|
|
120
|
+
|
|
121
|
+
Paradigm grows with your project. As you add features:
|
|
122
|
+
- Create `.purpose` files for new directories
|
|
123
|
+
- Add gates to `portal.yaml` for new protected routes
|
|
124
|
+
- Record team decisions in `.paradigm/wisdom/decisions.yaml`
|
|
125
|
+
- Log antipatterns in `.paradigm/wisdom/antipatterns.yaml`
|
|
126
|
+
- Run `paradigm scan` periodically to rebuild the navigator
|
|
127
|
+
|
|
128
|
+
## Common Pitfalls
|
|
129
|
+
|
|
130
|
+
- **Do not document everything on day one.** Start with the most critical module and expand.
|
|
131
|
+
- **Do not skip portal.yaml.** If you have any gates or preconditions, you need it.
|
|
132
|
+
- **Do not forget to re-scan.** After adding new `.purpose` files, run `paradigm scan` to update the navigator.
|
|
133
|
+
- **Do not put .purpose files in .paradigm/.** They live alongside source code.
|
|
134
|
+
- **Do not use raw console.log.** Use the Paradigm logger from the start to build good habits.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-101-five-symbols
|
|
3
|
+
title: The Five Symbols
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-101
|
|
11
|
+
- '-component-'
|
|
12
|
+
- '-flow-'
|
|
13
|
+
- '-gate-'
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 3
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-101.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## The Heart of Paradigm
|
|
24
|
+
|
|
25
|
+
Everything in Paradigm revolves around five symbols. Each symbol is a single-character prefix that classifies a code unit by its *role* in the system. When you see `#PaymentService`, you immediately know it is a component. When you see `^authenticated`, you know it is a security gate. The symbols are not decorative — they are a shared vocabulary that lets humans, AI agents, and tooling speak the same language about your codebase.
|
|
26
|
+
|
|
27
|
+
## `#` Component — The Universal Building Block
|
|
28
|
+
|
|
29
|
+
The `#` symbol marks **any documented code unit**. Services, handlers, React components, utility modules, database models, configuration loaders — if it is a meaningful piece of code that you want AI to know about, it is a `#component`.
|
|
30
|
+
|
|
31
|
+
```yaml
|
|
32
|
+
# In a .purpose file
|
|
33
|
+
components:
|
|
34
|
+
#PaymentService:
|
|
35
|
+
description: Handles payment processing via Stripe
|
|
36
|
+
file: payment-service.ts
|
|
37
|
+
tags: [integration, stripe, critical]
|
|
38
|
+
|
|
39
|
+
#login-handler:
|
|
40
|
+
description: POST /auth/login endpoint handler
|
|
41
|
+
file: login.ts
|
|
42
|
+
gates: [^authenticated]
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Component is intentionally broad. You never have to debate whether something is a "feature" or a "service" — it is a component. Finer distinctions are handled by the tag system: `#checkout` with `tags: [feature]`, `#stripe-service` with `tags: [integration, stripe]`.
|
|
46
|
+
|
|
47
|
+
## `$` Flow — Multi-Step Processes
|
|
48
|
+
|
|
49
|
+
The `$` symbol marks **ordered sequences of steps that span multiple components**. Use a flow when logic touches three or more components in a specific order.
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
flows:
|
|
53
|
+
$checkout-flow:
|
|
54
|
+
description: Complete purchase from cart to confirmation
|
|
55
|
+
steps:
|
|
56
|
+
- component: "#cart-service"
|
|
57
|
+
action: validate-cart
|
|
58
|
+
- component: "#payment-service"
|
|
59
|
+
action: charge-card
|
|
60
|
+
- component: "#order-service"
|
|
61
|
+
action: create-order
|
|
62
|
+
- component: "#notification-service"
|
|
63
|
+
action: send-confirmation
|
|
64
|
+
signals: ["!order-placed", "!payment-completed"]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Flows are documentation, not orchestration code. They tell AI agents *the sequence of operations* so the agent can understand what happens end-to-end without reading every file.
|
|
68
|
+
|
|
69
|
+
## `^` Gate — Condition Checkpoints
|
|
70
|
+
|
|
71
|
+
The `^` symbol marks **conditions that must be satisfied before an action can proceed**. Gates are the gatekeepers of Paradigm — they check a defined state and either allow or block.
|
|
72
|
+
|
|
73
|
+
```yaml
|
|
74
|
+
gates:
|
|
75
|
+
^authenticated:
|
|
76
|
+
description: User must be logged in
|
|
77
|
+
check: req.user != null
|
|
78
|
+
^project-admin:
|
|
79
|
+
description: User must be an admin of the project
|
|
80
|
+
check: project.admins.includes(req.user.id)
|
|
81
|
+
requires: [^authenticated]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Gates can chain — `^project-admin` requires `^authenticated` first. They map to routes in `portal.yaml`, which we will cover later.
|
|
85
|
+
|
|
86
|
+
## `!` Signal — Events for Side Effects
|
|
87
|
+
|
|
88
|
+
The `!` symbol marks **events that trigger decoupled side effects**. When a payment completes, the payment service does not directly call the notification service — it emits `!payment-completed`, and any listener can react.
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
signals:
|
|
92
|
+
!payment-completed:
|
|
93
|
+
description: Fired after successful payment processing
|
|
94
|
+
emitters: ["#payment-service"]
|
|
95
|
+
category: business
|
|
96
|
+
!login-failed:
|
|
97
|
+
description: Fired on failed authentication attempt
|
|
98
|
+
emitters: ["#auth-handler"]
|
|
99
|
+
category: security
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Signals promote loose coupling. The emitter does not need to know who listens.
|
|
103
|
+
|
|
104
|
+
## `~` Aspect — Cross-Cutting Rules
|
|
105
|
+
|
|
106
|
+
The `~` symbol marks **rules that apply across multiple components and MUST point to enforcement code**. This is the only symbol that *requires* code anchors.
|
|
107
|
+
|
|
108
|
+
```yaml
|
|
109
|
+
aspects:
|
|
110
|
+
~audit-required:
|
|
111
|
+
description: All financial operations must be logged to audit trail
|
|
112
|
+
anchors:
|
|
113
|
+
- src/middleware/audit.ts:15-35
|
|
114
|
+
- src/decorators/auditable.ts:1-20
|
|
115
|
+
applies-to: ["#*Service"]
|
|
116
|
+
tags: [compliance, security]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
The `anchors` field is mandatory. An aspect without anchors is invalid — it would be a rule with no enforcement. The anchor format is `file:line`, `file:start-end`, or `file:line1,line2,line3`.
|
|
120
|
+
|
|
121
|
+
## Choosing the Right Symbol
|
|
122
|
+
|
|
123
|
+
Ask yourself:
|
|
124
|
+
- Is it a piece of code I want documented? → `#` Component
|
|
125
|
+
- Does it describe a multi-step sequence? → `$` Flow
|
|
126
|
+
- Does it guard access to a resource? → `^` Gate
|
|
127
|
+
- Does it represent an event with side effects? → `!` Signal
|
|
128
|
+
- Does it enforce a rule across many components? → `~` Aspect
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-101-paradigm-logger
|
|
3
|
+
title: The Paradigm Logger
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-101
|
|
11
|
+
- structured-logging-ties
|
|
12
|
+
- log-entries-should
|
|
13
|
+
- four-log-levels
|
|
14
|
+
symbols: []
|
|
15
|
+
difficulty: beginner
|
|
16
|
+
estimatedMinutes: 3
|
|
17
|
+
prerequisites: []
|
|
18
|
+
category: paradigm-core
|
|
19
|
+
origin: imported
|
|
20
|
+
source: courses/para-101.json
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Structured Logging with Symbols
|
|
24
|
+
|
|
25
|
+
Raw `console.log` calls are the bane of production debugging. They have no structure, no categorization, and no connection to the system architecture. Paradigm replaces them with a **structured logger** that ties every log line to a symbol. When you see a log entry from `#payment-service`, you know exactly which component produced it. When you see a warning from `^authenticated`, you know a gate check failed.
|
|
26
|
+
|
|
27
|
+
The Paradigm logger uses a two-step chaining API: first you specify the symbol type and name, then you call a log level method.
|
|
28
|
+
|
|
29
|
+
## The Logger API
|
|
30
|
+
|
|
31
|
+
There are five logger methods, one for each symbol type:
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
// Components — any code unit
|
|
35
|
+
log.component('#payment-service').info('Payment processed', { amount: 4999 });
|
|
36
|
+
log.component('#user-store').debug('Cache hit', { userId: 'u_123' });
|
|
37
|
+
|
|
38
|
+
// Gates — authorization checks
|
|
39
|
+
log.gate('^authenticated').warn('Access denied — no session', { path: '/api/admin' });
|
|
40
|
+
log.gate('^project-admin').info('Gate passed', { userId: 'u_456' });
|
|
41
|
+
|
|
42
|
+
// Signals — events
|
|
43
|
+
log.signal('!payment-completed').info('Payment signal emitted', { orderId: 'ord_789' });
|
|
44
|
+
log.signal('!login-failed').warn('Failed login attempt', { email: 'user@example.com' });
|
|
45
|
+
|
|
46
|
+
// Flows — multi-step processes
|
|
47
|
+
log.flow('$checkout-flow').debug('Step 2/4: billing calculated', { total: 5999 });
|
|
48
|
+
log.flow('$onboarding').info('Flow completed', { userId: 'u_123' });
|
|
49
|
+
|
|
50
|
+
// Aspects — cross-cutting concerns
|
|
51
|
+
log.aspect('~audit-required').debug('Audit entry recorded', { operation: 'delete-user' });
|
|
52
|
+
log.aspect('~rate-limited').warn('Rate limit approaching', { remaining: 5 });
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Log Levels
|
|
56
|
+
|
|
57
|
+
Each symbol method returns an object with four log level methods:
|
|
58
|
+
|
|
59
|
+
| Level | Use When |
|
|
60
|
+
|-------|----------|
|
|
61
|
+
| `debug` | Development-only details, verbose tracing |
|
|
62
|
+
| `info` | Normal operations — a process completed, a step succeeded |
|
|
63
|
+
| `warn` | Something unexpected but recoverable — a gate denial, a rate limit approaching |
|
|
64
|
+
| `error` | Something failed — a payment declined, a database connection lost |
|
|
65
|
+
|
|
66
|
+
Choose the level based on operational severity, not on how important the code is. A critical payment service logging a successful charge uses `.info()`, not `.error()`.
|
|
67
|
+
|
|
68
|
+
## Symbol-to-Directory Mapping
|
|
69
|
+
|
|
70
|
+
Paradigm defines a convention for which logger method to use based on which directory the code lives in:
|
|
71
|
+
|
|
72
|
+
| Directory Pattern | Logger Method |
|
|
73
|
+
|-------------------|---------------|
|
|
74
|
+
| `features/`, `routes/`, `api/`, `services/`, `lib/`, `components/` | `log.component()` |
|
|
75
|
+
| `middleware/`, `auth/`, `guards/`, `policies/` | `log.gate()` |
|
|
76
|
+
| `events/`, `handlers/`, `listeners/`, `hooks/` | `log.signal()` |
|
|
77
|
+
| `flows/`, `sagas/`, `workflows/`, `pipelines/` | `log.flow()` |
|
|
78
|
+
| `aspects/`, `rules/` | `log.aspect()` |
|
|
79
|
+
|
|
80
|
+
This is a convention, not enforcement. If a service in `lib/` emits a signal, it can call `log.signal()`. But when in doubt, follow the directory mapping.
|
|
81
|
+
|
|
82
|
+
## Why Not console.log?
|
|
83
|
+
|
|
84
|
+
Structured logging with symbols gives you:
|
|
85
|
+
|
|
86
|
+
1. **Filterability** — In production, you can filter logs by symbol type (`gate`), symbol name (`^authenticated`), or log level (`warn`). Raw console.log gives you none of this.
|
|
87
|
+
2. **Traceability** — Every log line connects back to the Paradigm symbol map. You can trace a log entry to its `.purpose` definition, see what flows involve it, and check what gates protect it.
|
|
88
|
+
3. **Consistency** — AI agents generating code will use the correct logger if the convention exists. Without it, each agent invents its own logging pattern.
|
|
89
|
+
4. **Incident correlation** — Paradigm Sentinel (the incident tracking system) matches log patterns to symbols, enabling automatic triage based on which components are failing.
|