@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,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-101-portal-yaml
|
|
3
|
+
title: Portal.yaml
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-101
|
|
11
|
+
- portalyaml-defines-gates
|
|
12
|
+
- lives-at-project
|
|
13
|
+
- gates-check-any
|
|
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 Gate Registry
|
|
24
|
+
|
|
25
|
+
`portal.yaml` is Paradigm's gate specification. It defines the gates (`^`) for your project — conditions that must be checked before actions proceed. Gates can check anything: authentication, feature flags, data prerequisites, system health, rate limits, or any other condition your project needs to verify.
|
|
26
|
+
|
|
27
|
+
This file lives at the **project root** — not inside `.paradigm/`. It is intentionally prominent because gate definitions should be easy to find, easy to audit, and impossible to overlook.
|
|
28
|
+
|
|
29
|
+
## Structure
|
|
30
|
+
|
|
31
|
+
A `portal.yaml` has two main sections: `gates` and `routes`.
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
version: "1.0"
|
|
35
|
+
|
|
36
|
+
gates:
|
|
37
|
+
^authenticated:
|
|
38
|
+
description: User must be logged in
|
|
39
|
+
check: req.user != null
|
|
40
|
+
type: auth
|
|
41
|
+
effects: []
|
|
42
|
+
|
|
43
|
+
^project-member:
|
|
44
|
+
description: User must be a member of the project
|
|
45
|
+
check: project.members.includes(req.user.id)
|
|
46
|
+
type: role
|
|
47
|
+
requires: [^authenticated]
|
|
48
|
+
effects: []
|
|
49
|
+
|
|
50
|
+
^project-admin:
|
|
51
|
+
description: User must be an admin of the project
|
|
52
|
+
check: project.admins.includes(req.user.id)
|
|
53
|
+
type: role
|
|
54
|
+
requires: [^authenticated]
|
|
55
|
+
effects: []
|
|
56
|
+
|
|
57
|
+
^comment-author:
|
|
58
|
+
description: User must be the author of the comment
|
|
59
|
+
check: comment.authorId === req.user.id
|
|
60
|
+
type: ownership
|
|
61
|
+
requires: [^authenticated]
|
|
62
|
+
effects: []
|
|
63
|
+
|
|
64
|
+
routes:
|
|
65
|
+
"GET /api/projects": [^authenticated]
|
|
66
|
+
"GET /api/projects/:id": [^authenticated, ^project-member]
|
|
67
|
+
"PUT /api/projects/:id": [^authenticated, ^project-admin]
|
|
68
|
+
"DELETE /api/projects/:id": [^authenticated, ^project-admin]
|
|
69
|
+
"POST /api/projects/:id/comments": [^authenticated, ^project-member]
|
|
70
|
+
"DELETE /api/comments/:id": [^authenticated, ^comment-author]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Gate Anatomy
|
|
74
|
+
|
|
75
|
+
Each gate definition includes:
|
|
76
|
+
|
|
77
|
+
- **description** — What the gate checks, in plain English.
|
|
78
|
+
- **check** — A pseudo-code expression describing the authorization logic. This is documentation, not executable code — but it should be precise enough that a developer or AI agent can implement it.
|
|
79
|
+
- **type** — The category of check: `auth`, `role`, `ownership`, `feature-flag`, `data-readiness`, `environment`, or any custom type that fits your domain.
|
|
80
|
+
- **requires** — Other gates that must pass first. `^project-admin` requires `^authenticated`, meaning you must be logged in before the admin check runs.
|
|
81
|
+
- **effects** — Side effects triggered when the gate passes. For example, passing `^first-login` might award an onboarding badge. Use `[]` if there are no effects.
|
|
82
|
+
|
|
83
|
+
## Gate Chains
|
|
84
|
+
|
|
85
|
+
Gates can chain via the `requires` field. The route `"PUT /api/projects/:id": [^authenticated, ^project-admin]` ensures that:
|
|
86
|
+
1. First, `^authenticated` verifies the user is logged in.
|
|
87
|
+
2. Then, `^project-admin` checks that the user is an admin of the specific project.
|
|
88
|
+
|
|
89
|
+
If any gate in the chain fails, the action is blocked. How the failure manifests depends on your discipline: an API returns `403 Forbidden`, a mobile app might disable a button, a CLI exits with an error code.
|
|
90
|
+
|
|
91
|
+
## When portal.yaml Is Required
|
|
92
|
+
|
|
93
|
+
Create `portal.yaml` whenever your project has conditions that must be checked before actions proceed:
|
|
94
|
+
- Authentication or session validation
|
|
95
|
+
- Role or permission checks
|
|
96
|
+
- Feature flags or environment checks
|
|
97
|
+
- Data prerequisites (cart not empty, profile complete)
|
|
98
|
+
- Rate limits or system health checks
|
|
99
|
+
- Any precondition that should be documented and auditable
|
|
100
|
+
|
|
101
|
+
If your project has no gates — no conditions that need to be verified before any action — then `portal.yaml` is not needed.
|
|
102
|
+
|
|
103
|
+
## The Gate-First Workflow
|
|
104
|
+
|
|
105
|
+
When adding functionality that requires preconditions, follow this workflow:
|
|
106
|
+
|
|
107
|
+
1. **Ask Paradigm** — Call `paradigm_gates_for_route` with the route and method (for web APIs), or identify the conditions that must be checked.
|
|
108
|
+
2. **Add to portal.yaml** — Define the gates and map them to the actions they protect.
|
|
109
|
+
3. **Implement** — Write the code that enforces each gate check.
|
|
110
|
+
4. **Test** — Verify that failing a gate blocks the action appropriately for your discipline.
|
|
111
|
+
|
|
112
|
+
This workflow ensures that conditions are defined *before* implementation, not bolted on after.
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-101-project-structure
|
|
3
|
+
title: Project Structure
|
|
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-holds-project-wide
|
|
12
|
+
- configyaml-defines-discipline
|
|
13
|
+
- navigatoryaml-is-generated
|
|
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 .paradigm/ Directory
|
|
24
|
+
|
|
25
|
+
Every Paradigm project has a `.paradigm/` directory at its root. This is the central nervous system of the framework — it holds project-wide configuration, specifications, documentation, and metadata that apply across the entire codebase. While `.purpose` files describe individual directories, the `.paradigm/` directory describes the project as a whole.
|
|
26
|
+
|
|
27
|
+
## Core Files
|
|
28
|
+
|
|
29
|
+
### config.yaml — Project Configuration
|
|
30
|
+
|
|
31
|
+
The most important file. It defines the project's discipline (web, backend, fullstack, etc.), naming conventions, and agent preferences:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
name: my-project
|
|
35
|
+
discipline: fullstack
|
|
36
|
+
version: "2.0"
|
|
37
|
+
|
|
38
|
+
conventions:
|
|
39
|
+
naming: kebab-case
|
|
40
|
+
components: PascalCase
|
|
41
|
+
files: kebab-case
|
|
42
|
+
|
|
43
|
+
agent-provider: claude-code
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
The `discipline` field tells Paradigm how to map directory patterns to symbol types. A `web` discipline treats `routes/` as components; a `backend` discipline treats `services/` as components. This affects the navigator, logger suggestions, and gate recommendations.
|
|
47
|
+
|
|
48
|
+
### tags.yaml — Tag Bank
|
|
49
|
+
|
|
50
|
+
Defines all valid tags in three sections: `core` (universal), `project` (team-specific), and `suggested` (AI-proposed). Covered in detail in the Tags lesson.
|
|
51
|
+
|
|
52
|
+
### agents.yaml — Agent Roles
|
|
53
|
+
|
|
54
|
+
Configures the AI agents that work on your project — their roles, model assignments, context includes/excludes, and token budgets:
|
|
55
|
+
|
|
56
|
+
```yaml
|
|
57
|
+
agents:
|
|
58
|
+
architect:
|
|
59
|
+
defaultModel: opus
|
|
60
|
+
context:
|
|
61
|
+
include: [".paradigm/**", "portal.yaml", "**/.purpose"]
|
|
62
|
+
builder:
|
|
63
|
+
defaultModel: haiku
|
|
64
|
+
context:
|
|
65
|
+
include: ["src/**", "**/.purpose"]
|
|
66
|
+
exclude: ["**/*.test.*"]
|
|
67
|
+
security:
|
|
68
|
+
defaultModel: opus
|
|
69
|
+
context:
|
|
70
|
+
include: ["portal.yaml", "**/auth/**", "**/middleware/**"]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### navigator.yaml — Generated Codebase Map
|
|
74
|
+
|
|
75
|
+
A machine-generated file that maps symbols to file paths, directories to categories, and provides a structural overview of the codebase. AI agents read this to quickly locate code without directory traversal. Generated by `paradigm scan`.
|
|
76
|
+
|
|
77
|
+
## Subdirectories
|
|
78
|
+
|
|
79
|
+
### specs/ — Detailed Specifications
|
|
80
|
+
|
|
81
|
+
Long-form documents that describe system behaviors, protocols, and standards. These are too detailed for `.purpose` files but essential for AI agents implementing features:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
.paradigm/specs/
|
|
85
|
+
logger.md ← Full logger specification
|
|
86
|
+
disciplines.md ← Symbol mapping by domain
|
|
87
|
+
portal-protocol.md ← Authorization workflow
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### docs/ — Commands and Patterns
|
|
91
|
+
|
|
92
|
+
Quick-reference documentation for CLI commands, coding patterns, and troubleshooting:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
.paradigm/docs/
|
|
96
|
+
commands.md ← CLI command reference
|
|
97
|
+
patterns.md ← Coding patterns and conventions
|
|
98
|
+
ai-maintenance-protocol.md ← When/how to update Paradigm files
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### wisdom/ — Team Knowledge
|
|
102
|
+
|
|
103
|
+
Captures the team's learned preferences, architectural decisions, and antipatterns:
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
.paradigm/wisdom/
|
|
107
|
+
preferences.yaml ← Coding style preferences
|
|
108
|
+
decisions.yaml ← Architectural Decision Records (ADRs)
|
|
109
|
+
antipatterns.yaml ← What NOT to do, and why
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
AI agents check wisdom before implementing changes by calling `paradigm_wisdom_context`.
|
|
113
|
+
|
|
114
|
+
### history/ — Implementation Timeline
|
|
115
|
+
|
|
116
|
+
Tracks what was implemented, when, and by whom. Used for fragility analysis and rollback tracking.
|
|
117
|
+
|
|
118
|
+
## The Big Picture
|
|
119
|
+
|
|
120
|
+
Here is the complete project layout showing both `.paradigm/` and `.purpose` files:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
my-project/
|
|
124
|
+
.paradigm/
|
|
125
|
+
config.yaml ← Project-wide settings
|
|
126
|
+
tags.yaml ← Tag definitions
|
|
127
|
+
agents.yaml ← Agent configurations
|
|
128
|
+
navigator.yaml ← Generated codebase map
|
|
129
|
+
specs/ ← Detailed specifications
|
|
130
|
+
docs/ ← Commands and patterns
|
|
131
|
+
wisdom/ ← Team knowledge
|
|
132
|
+
history/ ← Implementation timeline
|
|
133
|
+
portal.yaml ← Security gates and routes (project root)
|
|
134
|
+
src/
|
|
135
|
+
payments/
|
|
136
|
+
.purpose ← Directory-level documentation
|
|
137
|
+
payment-service.ts
|
|
138
|
+
auth/
|
|
139
|
+
.purpose
|
|
140
|
+
middleware.ts
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Notice that `portal.yaml` lives at the project root, not inside `.paradigm/`. This is intentional — it is a security-critical file that should be visible and easy to audit.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-101-purpose-files
|
|
3
|
+
title: Purpose Files
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-101
|
|
11
|
+
- purpose-files-are
|
|
12
|
+
- they-declare-components
|
|
13
|
+
- ai-agents-read
|
|
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 Map AI Agents Read First
|
|
24
|
+
|
|
25
|
+
A `.purpose` file is a YAML document that lives in a directory alongside your source code. It declares what that directory contains — its components, flows, gates, signals, and aspects. When an AI agent enters a directory, the first thing it should do is read the `.purpose` file. This single file gives the agent enough context to understand the directory without scanning every source file.
|
|
26
|
+
|
|
27
|
+
Think of `.purpose` files as the table of contents for a chapter in a book. You would not read every page to find out what topics are covered — you check the table of contents. Similarly, AI agents should not `grep` through every `.ts` or `.py` file to figure out what a directory does.
|
|
28
|
+
|
|
29
|
+
## Structure of a Purpose File
|
|
30
|
+
|
|
31
|
+
A `.purpose` file has a top-level metadata section and then named sections for each symbol type:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
name: Payment Module
|
|
35
|
+
description: Handles all payment processing and billing logic
|
|
36
|
+
version: "1.0.0"
|
|
37
|
+
context:
|
|
38
|
+
- Uses Stripe as the payment provider
|
|
39
|
+
- All amounts are in cents (integer)
|
|
40
|
+
- Webhooks are verified with Stripe signatures
|
|
41
|
+
|
|
42
|
+
components:
|
|
43
|
+
#payment-service:
|
|
44
|
+
description: Core payment processing logic
|
|
45
|
+
file: payment-service.ts
|
|
46
|
+
tags: [integration, stripe, critical]
|
|
47
|
+
signals: ["!payment-completed", "!payment-failed"]
|
|
48
|
+
gates: ["^authenticated"]
|
|
49
|
+
|
|
50
|
+
#billing-calculator:
|
|
51
|
+
description: Computes totals, taxes, and discounts
|
|
52
|
+
file: billing.ts
|
|
53
|
+
tags: [feature]
|
|
54
|
+
|
|
55
|
+
flows:
|
|
56
|
+
$checkout-flow:
|
|
57
|
+
description: End-to-end purchase sequence
|
|
58
|
+
steps:
|
|
59
|
+
- component: "#cart-service"
|
|
60
|
+
action: validate-items
|
|
61
|
+
- component: "#billing-calculator"
|
|
62
|
+
action: compute-total
|
|
63
|
+
- component: "#payment-service"
|
|
64
|
+
action: charge
|
|
65
|
+
|
|
66
|
+
signals:
|
|
67
|
+
!payment-completed:
|
|
68
|
+
description: Emitted after successful charge
|
|
69
|
+
emitters: ["#payment-service"]
|
|
70
|
+
category: business
|
|
71
|
+
|
|
72
|
+
gates:
|
|
73
|
+
^payment-authorized:
|
|
74
|
+
description: User has a valid payment method on file
|
|
75
|
+
check: user.paymentMethods.length > 0
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Key Rules for Purpose Files
|
|
79
|
+
|
|
80
|
+
**One per directory.** Each directory that contains meaningful code should have at most one `.purpose` file. Not every directory needs one — only directories that contain components worth documenting.
|
|
81
|
+
|
|
82
|
+
**Symbols must use the correct prefix.** Components use `#`, flows use `$`, gates use `^`, signals use `!`, aspects use `~`. The prefix is part of the identifier.
|
|
83
|
+
|
|
84
|
+
**Descriptions are required.** Every component, flow, gate, signal, and aspect must have a `description` field. Without it, the symbol is opaque to AI agents.
|
|
85
|
+
|
|
86
|
+
**References link symbols together.** A component can reference the gates it requires (`gates: ["^authenticated"]`), the signals it emits (`signals: ["!payment-completed"]`), and the flows it participates in (`flows: ["$checkout-flow"]`). These cross-references let tools like `paradigm_ripple` calculate impact.
|
|
87
|
+
|
|
88
|
+
**The `context` field is for AI.** The top-level `context` array contains free-text notes aimed at AI agents: conventions, gotchas, assumptions. This is where you write "all amounts are in cents" or "this module is deprecated, use v2 instead."
|
|
89
|
+
|
|
90
|
+
## Where Purpose Files Live
|
|
91
|
+
|
|
92
|
+
Purpose files are placed in source directories — wherever your code lives:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
src/
|
|
96
|
+
payments/
|
|
97
|
+
.purpose ← describes the payments module
|
|
98
|
+
payment-service.ts
|
|
99
|
+
billing.ts
|
|
100
|
+
auth/
|
|
101
|
+
.purpose ← describes the auth module
|
|
102
|
+
login.ts
|
|
103
|
+
middleware.ts
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
They are NOT placed in the `.paradigm/` directory. The `.paradigm/` directory holds project-wide configuration; `.purpose` files hold directory-level documentation.
|
|
107
|
+
|
|
108
|
+
## Creating Purpose Files with MCP Tools
|
|
109
|
+
|
|
110
|
+
You can create and update purpose files using the Paradigm MCP tools:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
paradigm_purpose_init → Create/update file-level metadata
|
|
114
|
+
paradigm_purpose_add_component → Add a #component
|
|
115
|
+
paradigm_purpose_add_flow → Add a $flow
|
|
116
|
+
paradigm_purpose_add_gate → Add a ^gate
|
|
117
|
+
paradigm_purpose_add_signal → Add a !signal
|
|
118
|
+
paradigm_purpose_add_aspect → Add a ~aspect (with required anchors)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
These tools handle YAML formatting and symbol quoting automatically. For example, YAML treats `!` as a tag indicator, so signal IDs need special quoting — the tools handle this for you.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-101-tags-and-classification
|
|
3
|
+
title: Tags & Classification
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-101
|
|
11
|
+
- tags-classify-components
|
|
12
|
+
- tags-are-defined
|
|
13
|
+
- three-sections-core
|
|
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
|
+
## Beyond Symbols: The Tag Bank
|
|
24
|
+
|
|
25
|
+
Paradigm's five symbols classify code by *role* — component, flow, gate, signal, aspect. But within each role, you often need finer distinctions. Is this component a user-facing feature or a third-party integration? Is it critical infrastructure or an experimental idea? Paradigm handles this with a unified **tag system**.
|
|
26
|
+
|
|
27
|
+
Tags are plain strings in brackets that you attach to any symbol. They live in the `tags` array on a symbol definition:
|
|
28
|
+
|
|
29
|
+
```yaml
|
|
30
|
+
components:
|
|
31
|
+
#checkout:
|
|
32
|
+
description: Shopping cart checkout experience
|
|
33
|
+
tags: [feature, critical, payments]
|
|
34
|
+
|
|
35
|
+
#stripe-service:
|
|
36
|
+
description: Stripe API client wrapper
|
|
37
|
+
tags: [integration, stripe, payments]
|
|
38
|
+
|
|
39
|
+
#cart-store:
|
|
40
|
+
description: In-memory shopping cart state
|
|
41
|
+
tags: [state, ephemeral]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## The Tag Bank File
|
|
45
|
+
|
|
46
|
+
Tags are not arbitrary strings — they are defined in `.paradigm/tags.yaml`, which serves as the project's tag bank. The tag bank has three sections:
|
|
47
|
+
|
|
48
|
+
```yaml
|
|
49
|
+
core: # Universal tags, defined by Paradigm itself
|
|
50
|
+
feature: { description: "User-facing functionality" }
|
|
51
|
+
integration: { description: "Third-party service connection" }
|
|
52
|
+
state: { description: "Data store or state container" }
|
|
53
|
+
critical: { description: "Failure causes major user impact" }
|
|
54
|
+
deprecated: { description: "Scheduled for removal" }
|
|
55
|
+
idea: { description: "Experimental, not yet approved" }
|
|
56
|
+
|
|
57
|
+
project: # Team-defined tags specific to this project
|
|
58
|
+
payments: { description: "Related to payment processing" }
|
|
59
|
+
onboarding: { description: "Part of the new-user experience" }
|
|
60
|
+
|
|
61
|
+
suggested: # AI-proposed tags awaiting human approval
|
|
62
|
+
webhook-handler: { description: "Processes incoming webhooks" }
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The **core** section contains tags that apply to any project. The **project** section contains tags your team has defined for this specific codebase. The **suggested** section is where AI agents can propose new tags using the `paradigm_tags_suggest` tool — a human reviews and promotes them to the project section.
|
|
66
|
+
|
|
67
|
+
## How Tags Work in Practice
|
|
68
|
+
|
|
69
|
+
Here is how tags differentiate components that serve different roles:
|
|
70
|
+
|
|
71
|
+
| Role | How to Tag |
|
|
72
|
+
|-----------|---------------|
|
|
73
|
+
| User-facing feature | `#checkout` with `tags: [feature]` |
|
|
74
|
+
| Third-party service | `#stripe-service` with `tags: [integration, stripe]` |
|
|
75
|
+
| Data store | `#cart-store` with `tags: [state]` |
|
|
76
|
+
| Experimental prototype | `#new-widget` with `tags: [idea]` |
|
|
77
|
+
| Scheduled for removal | `#legacy-handler` with `tags: [deprecated]` |
|
|
78
|
+
|
|
79
|
+
This means fewer concepts to remember and no ambiguity. A Stripe payment service is `#stripe-service` with `tags: [integration, stripe]` — clear, searchable, and consistent.
|
|
80
|
+
|
|
81
|
+
## Using Tags Effectively
|
|
82
|
+
|
|
83
|
+
Tags are most powerful when they are **consistent and searchable**. Follow these guidelines:
|
|
84
|
+
|
|
85
|
+
- **Use existing tags before inventing new ones.** Check `paradigm_tags({ action: "list" })` to see what is available.
|
|
86
|
+
- **Keep tags lowercase and kebab-case.** `webhook-handler`, not `WebhookHandler` or `WEBHOOK_HANDLER`.
|
|
87
|
+
- **Use 2-4 tags per symbol.** One tag is too vague; ten tags is noise.
|
|
88
|
+
- **Tag for discoverability.** Ask: "What would I search for to find this component?" Those search terms are your tags.
|
|
89
|
+
- **Let AI propose tags.** If you notice a pattern (e.g., five components all handle webhooks), use `paradigm_tags_suggest` to propose a `webhook-handler` tag.
|
|
90
|
+
|
|
91
|
+
## Querying by Tags
|
|
92
|
+
|
|
93
|
+
The Paradigm MCP tools support tag-based discovery. When you call `paradigm_search` with a tag name, it returns all symbols bearing that tag. This makes it easy to ask questions like "show me everything tagged `critical`" or "find all `integration` components."
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: N-para-101-welcome
|
|
3
|
+
title: Welcome to Paradigm
|
|
4
|
+
type: note
|
|
5
|
+
author: paradigm
|
|
6
|
+
created: '2026-04-22'
|
|
7
|
+
updated: '2026-04-22'
|
|
8
|
+
tags:
|
|
9
|
+
- course
|
|
10
|
+
- para-101
|
|
11
|
+
- meta-framework-for-ai-assisted
|
|
12
|
+
- structured-context-over
|
|
13
|
+
- five-operational-symbols
|
|
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
|
+
## What Is Paradigm?
|
|
24
|
+
|
|
25
|
+
Paradigm is a **meta-framework for structured AI-assisted development**. It is not a code framework like React or Express — it does not ship components, generate boilerplate, or impose a runtime. Instead, Paradigm organizes *how AI agents understand your code*. It provides a shared vocabulary of symbols, a directory-level documentation format, and a set of specifications that let any AI assistant — whether Claude, Cursor, or another tool — navigate even large codebases with precision and minimal token waste.
|
|
26
|
+
|
|
27
|
+
The core insight behind Paradigm is simple: AI agents are powerful, but they struggle when dropped into an undocumented codebase. They spend thousands of tokens exploring directories, guessing at relationships, and re-reading files they have already seen. Paradigm solves this by giving the codebase *structured context* — lightweight metadata files that describe what lives where, how pieces relate, and what rules apply.
|
|
28
|
+
|
|
29
|
+
## The Three Pillars
|
|
30
|
+
|
|
31
|
+
Paradigm rests on three pillars:
|
|
32
|
+
|
|
33
|
+
1. **Symbols** — A set of five prefixed identifiers (`#`, `$`, `^`, `!`, `~`) that classify every meaningful unit in your project. A payment service is `#PaymentService`. An authorization check is `^authenticated`. A business event is `!order-placed`. Symbols are the vocabulary AI agents use to talk about your code.
|
|
34
|
+
|
|
35
|
+
2. **Purpose Files** — YAML files named `.purpose` that live in directories alongside your source code. They declare which components, flows, gates, signals, and aspects exist in that directory. They are the map AI agents read before they touch any code.
|
|
36
|
+
|
|
37
|
+
3. **Specifications** — Files in the `.paradigm/` directory that define project-wide configuration, tag taxonomies, agent roles, navigation maps, and team wisdom. They are the rulebook that keeps every agent aligned with your team's conventions.
|
|
38
|
+
|
|
39
|
+
## Why It Matters
|
|
40
|
+
|
|
41
|
+
Without structured context, an AI agent working on a checkout feature might:
|
|
42
|
+
- Spend 2,000+ tokens reading irrelevant files looking for the payment service
|
|
43
|
+
- Miss an authorization gate that protects the endpoint
|
|
44
|
+
- Accidentally duplicate a signal that another component already emits
|
|
45
|
+
- Use `console.log` instead of the team's structured logger
|
|
46
|
+
|
|
47
|
+
With Paradigm, that same agent calls `paradigm_navigate` to find `#PaymentService` in ~100 tokens, checks `paradigm_ripple` to see what depends on it, reads the `.purpose` file to understand the directory, and follows the team's logging convention. The result is faster, safer, and more consistent code changes.
|
|
48
|
+
|
|
49
|
+
## What You Will Learn
|
|
50
|
+
|
|
51
|
+
In this course you will learn the five symbols and when to use each one, how to write and read `.purpose` files, how to classify symbols with tags, how to use the Paradigm logger, how the `.paradigm/` directory is organized, how `portal.yaml` secures your routes, and how to set up a new project from scratch.
|