rhachet-roles-ehmpathy 1.13.0 → 1.13.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.
Files changed (547) hide show
  1. package/dist/_topublish/rhachet-roles-bhrain/src/domain/objects/Focus.d.ts +2 -2
  2. package/dist/contract/sdk/index.d.ts +1 -1
  3. package/dist/contract/sdk/index.js +3 -3
  4. package/dist/contract/sdk/index.js.map +1 -1
  5. package/dist/data/sdk/sdkOpenAi.d.ts +2 -2
  6. package/dist/domain/constants.d.ts +3 -0
  7. package/dist/domain/constants.js +5 -0
  8. package/dist/domain/constants.js.map +1 -0
  9. package/dist/logic/artifact/genLoopFeedback.d.ts +3 -3
  10. package/dist/logic/artifact/genStepArtDel.d.ts +4 -4
  11. package/dist/logic/artifact/genStepArtDel.js.map +1 -1
  12. package/dist/logic/artifact/genStepArtSet.d.ts +4 -4
  13. package/dist/logic/artifact/genStepArtSet.js.map +1 -1
  14. package/dist/logic/artifact/genStepGrabCallerFeedbackToArtifact.d.ts +4 -4
  15. package/dist/logic/artifact/genStepResetFeedback.d.ts +4 -4
  16. package/dist/logic/artifact/genStepResetFeedback.js.map +1 -1
  17. package/dist/logic/artifact/genStepSwapArtifact.d.ts +3 -3
  18. package/dist/logic/artifact/setSkillOutputSrc.d.ts +1 -1
  19. package/dist/logic/context/genStitchStreamToDisk.d.ts +1 -1
  20. package/dist/logic/context/genStitchStreamToDisk.js +1 -0
  21. package/dist/logic/context/genStitchStreamToDisk.js.map +1 -1
  22. package/dist/logic/hooks/execTranslateDocOutputPath.d.ts +2 -2
  23. package/dist/logic/hooks/getInvokeHooks.d.ts +1 -1
  24. package/dist/logic/roles/architect/getArchitectRole.d.ts +1 -1
  25. package/dist/logic/roles/architect/getArchitectRole.js.map +1 -1
  26. package/dist/logic/roles/bhrain/brief.articulate/stepArticulate.d.ts +6 -6
  27. package/dist/logic/roles/bhrain/brief.articulate/stepArticulate.js.map +1 -1
  28. package/dist/logic/roles/bhrain/brief.articulate/stepArticulate.skill.d.ts +1 -1
  29. package/dist/logic/roles/bhrain/brief.catalogize/stepCatalogize.d.ts +6 -6
  30. package/dist/logic/roles/bhrain/brief.catalogize/stepCatalogize.skill.d.ts +1 -1
  31. package/dist/logic/roles/bhrain/brief.demonstrate/stepDemonstrate.d.ts +6 -6
  32. package/dist/logic/roles/bhrain/brief.demonstrate/stepDemonstrate.js.map +1 -1
  33. package/dist/logic/roles/bhrain/brief.demonstrate/stepDemonstrate.skill.d.ts +1 -1
  34. package/dist/logic/roles/bhrain/getBhrainBrief.Options.codegen.d.ts +1 -1
  35. package/dist/logic/roles/bhrain/getBhrainBrief.d.ts +3 -3
  36. package/dist/logic/roles/bhrain/getBhrainBrief.js.map +1 -1
  37. package/dist/logic/roles/bhrain/getBhrainRole.d.ts +1 -1
  38. package/dist/logic/roles/bhrain/getBhrainRole.js.map +1 -1
  39. package/dist/logic/roles/bhrain/khue.cluster/stepCluster.d.ts +6 -6
  40. package/dist/logic/roles/bhrain/khue.cluster/stepCluster.js.map +1 -1
  41. package/dist/logic/roles/bhrain/khue.cluster/stepCluster.skill.d.ts +1 -1
  42. package/dist/logic/roles/bhrain/khue.diverge/stepDiverge.d.ts +6 -6
  43. package/dist/logic/roles/bhrain/khue.diverge/stepDiverge.js.map +1 -1
  44. package/dist/logic/roles/bhrain/khue.diverge/stepDiverge.skill.d.ts +1 -1
  45. package/dist/logic/roles/bhrain/khue.instantiate/stepInstantiate.d.ts +6 -6
  46. package/dist/logic/roles/bhrain/khue.instantiate/stepInstantiate.js.map +1 -1
  47. package/dist/logic/roles/bhrain/khue.instantiate/stepInstantiate.skill.d.ts +1 -1
  48. package/dist/logic/roles/bhrain/khue.instantiate/stepInstantiate.skill.js.map +1 -1
  49. package/dist/logic/roles/bhrain/khue.triage/stepTriage.d.ts +6 -6
  50. package/dist/logic/roles/bhrain/khue.triage/stepTriage.js.map +1 -1
  51. package/dist/logic/roles/bhrain/khue.triage/stepTriage.skill.d.ts +1 -1
  52. package/dist/logic/roles/designer/getDesignerBrief.Options.codegen.d.ts +1 -1
  53. package/dist/logic/roles/designer/getDesignerBrief.d.ts +3 -3
  54. package/dist/logic/roles/designer/getDesignerBrief.js.map +1 -1
  55. package/dist/logic/roles/designer/outlineDistilisys/loopOutlineDistilisys.d.ts +4 -4
  56. package/dist/logic/roles/designer/outlineDistilisys/stepOutlineDistilisys.d.ts +4 -4
  57. package/dist/logic/roles/designer/outlineDistilisys/stepOutlineDistilisys.js.map +1 -1
  58. package/dist/logic/roles/designer/outlineRoadmap/loopOutlineRoadmap.d.ts +4 -4
  59. package/dist/logic/roles/designer/outlineRoadmap/stepOutlineRoadmap.d.ts +4 -4
  60. package/dist/logic/roles/designer/outlineRoadmap/stepOutlineRoadmap.js.map +1 -1
  61. package/dist/logic/roles/ecologist/getEcologistBrief.Options.codegen.d.ts +1 -1
  62. package/dist/logic/roles/ecologist/getEcologistBrief.d.ts +3 -3
  63. package/dist/logic/roles/ecologist/getEcologistBrief.js.map +1 -1
  64. package/dist/logic/roles/ecologist/getEcologistRole.d.ts +1 -1
  65. package/dist/logic/roles/ecologist/getEcologistRole.js.map +1 -1
  66. package/dist/logic/roles/mechanic/codediff/getRefOrgPatterns.d.ts +2 -2
  67. package/dist/logic/roles/mechanic/codediff/routeArtistCodeDiff.d.ts +4 -4
  68. package/dist/logic/roles/mechanic/codediff/routeArtistCodeDiff.js.map +1 -1
  69. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReview.d.ts +4 -4
  70. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewArchitecture.d.ts +4 -4
  71. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewArchitecture.js.map +1 -1
  72. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewBehavior.d.ts +4 -4
  73. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewBehavior.js.map +1 -1
  74. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewCodestyle.d.ts +4 -4
  75. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewCodestyle.js.map +1 -1
  76. package/dist/logic/roles/mechanic/codediff/routeJudgeReleasable.d.ts +4 -4
  77. package/dist/logic/roles/mechanic/codediff/routeJudgeReleasable.js.map +1 -1
  78. package/dist/logic/roles/mechanic/codediff/routeMechanicCodeIterate.d.ts +4 -4
  79. package/dist/logic/roles/mechanic/codediff/routeMechanicCodePropose.d.ts +5 -5
  80. package/dist/logic/roles/mechanic/getMechanicBrief.Options.codegen.d.ts +1 -1
  81. package/dist/logic/roles/mechanic/getMechanicBrief.d.ts +3 -3
  82. package/dist/logic/roles/mechanic/getMechanicBrief.js.map +1 -1
  83. package/dist/logic/roles/mechanic/getMechanicRole.d.ts +1 -1
  84. package/dist/logic/roles/mechanic/getMechanicRole.js.map +1 -1
  85. package/dist/logic/roles/mechanic/skills/getSkillCodePropose.d.ts +3 -2
  86. package/dist/logic/roles/mechanic/skills/getSkillCodePropose.js.map +1 -1
  87. package/dist/logic/roles/mechanic/study/routeStudyAsk.d.ts +4 -4
  88. package/dist/logic/roles/mechanic/study/routeStudyAsk.js.map +1 -1
  89. package/dist/logic/roles/mechanic/write/loopWrite.d.ts +1 -1
  90. package/dist/logic/roles/mechanic/write/loopWrite.skill.d.ts +1 -1
  91. package/dist/logic/roles/mechanic/write/loopWrite.skill.js.map +1 -1
  92. package/dist/logic/roles/mechanic/write/stepWrite.d.ts +4 -4
  93. package/dist/logic/roles/mechanic/write/stepWrite.js.map +1 -1
  94. package/dist/logic/roles/terminal.commander/command.exec/stepExecCommand.d.ts +4 -4
  95. package/dist/logic/roles/terminal.commander/command.exec/stepExecCommand.js.map +1 -1
  96. package/dist/logic/roles/terminal.commander/command.exec/stepExecCommand.skill.d.ts +1 -1
  97. package/dist/logic/roles/terminal.commander/command.plan/stepPlanCommand.d.ts +6 -6
  98. package/dist/logic/roles/terminal.commander/command.plan/stepPlanCommand.skill.d.ts +1 -1
  99. package/dist/logic/roles/terminal.commander/getCommanderRole.d.ts +1 -1
  100. package/dist/logic/roles/terminal.commander/getCommanderRole.js.map +1 -1
  101. package/license.md +21 -0
  102. package/package.json +38 -38
  103. package/dist/contract/cases/mechanicGoalStubout.integration.test.d.ts +0 -0
  104. package/dist/contract/cases/mechanicGoalStubout.integration.test.js +0 -2
  105. package/dist/contract/cases/mechanicGoalStubout.integration.test.js.map +0 -1
  106. package/dist/contract/cases/mechanicStubFillout.integration.test.d.ts +0 -0
  107. package/dist/contract/cases/mechanicStubFillout.integration.test.js +0 -2
  108. package/dist/contract/cases/mechanicStubFillout.integration.test.js.map +0 -1
  109. package/dist/logic/artifact/genStepArtSet.integration.test.d.ts +0 -1
  110. package/dist/logic/artifact/genStepArtSet.integration.test.js +0 -142
  111. package/dist/logic/artifact/genStepArtSet.integration.test.js.map +0 -1
  112. package/dist/logic/artifact/genStepGrabCallerFeedbackToArtifact.integration.test.d.ts +0 -1
  113. package/dist/logic/artifact/genStepGrabCallerFeedbackToArtifact.integration.test.js +0 -97
  114. package/dist/logic/artifact/genStepGrabCallerFeedbackToArtifact.integration.test.js.map +0 -1
  115. package/dist/logic/artifact/genStepSwapArtifact.test.d.ts +0 -1
  116. package/dist/logic/artifact/genStepSwapArtifact.test.js +0 -131
  117. package/dist/logic/artifact/genStepSwapArtifact.test.js.map +0 -1
  118. package/dist/logic/hooks/decodeDocOutputPath.test.d.ts +0 -1
  119. package/dist/logic/hooks/decodeDocOutputPath.test.js +0 -146
  120. package/dist/logic/hooks/decodeDocOutputPath.test.js.map +0 -1
  121. package/dist/logic/hooks/execTranslateDocOutputPath.test.d.ts +0 -1
  122. package/dist/logic/hooks/execTranslateDocOutputPath.test.js +0 -528
  123. package/dist/logic/hooks/execTranslateDocOutputPath.test.js.map +0 -1
  124. package/dist/logic/hooks/relateDocOutputPath.test.d.ts +0 -1
  125. package/dist/logic/hooks/relateDocOutputPath.test.js +0 -111
  126. package/dist/logic/hooks/relateDocOutputPath.test.js.map +0 -1
  127. package/dist/logic/roles/architect/.briefs/criteria.given_when_then.[seed].v3.md +0 -87
  128. package/dist/logic/roles/architect/.briefs/practices/prefer.env_access.prep_over_dev.md +0 -12
  129. package/dist/logic/roles/architect/.briefs/ubiqlang.ambiguous-from-overload.md +0 -1
  130. package/dist/logic/roles/bhrain/.briefs/cognition/cog000.overview.and.premise.md +0 -115
  131. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.coordinates.spherical.md +0 -69
  132. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.metaphor.cauliflorous.md +0 -44
  133. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.metaphor.galactic_spacetravel.[article].md +0 -42
  134. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.metaphor.galactic_spacetravel.[lesson].md +0 -60
  135. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.structs.catalog.md +0 -51
  136. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.structs.treestruct.md +0 -85
  137. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.structs.vector.md +0 -112
  138. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.definition.md +0 -115
  139. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct._.md +0 -112
  140. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.coords.1.spherical.md +0 -80
  141. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.coords.2.abstractive.md +0 -59
  142. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.coords.3.descriptive.md +0 -64
  143. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.persp.1.perspectives.md +0 -88
  144. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.persp.2.universal.md +0 -82
  145. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.persp.3.relative.md +0 -106
  146. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.persp.4.fractal.md +0 -83
  147. package/dist/logic/roles/bhrain/.briefs/cognition/cog151.concept.treestruct.gravity.md +0 -89
  148. package/dist/logic/roles/bhrain/.briefs/cognition/cog201.cortal.focus.p1.definition.md +0 -231
  149. package/dist/logic/roles/bhrain/.briefs/cognition/cog201.cortal.focus.p1.examples.cont.md +0 -82
  150. package/dist/logic/roles/bhrain/.briefs/cognition/cog201.cortal.focus.p2.acuity.md +0 -134
  151. package/dist/logic/roles/bhrain/.briefs/cognition/cog201.cortal.focus.p2.breadth.md +0 -151
  152. package/dist/logic/roles/bhrain/.briefs/cognition/cog201.cortal.focus.p2.depth.md +0 -147
  153. package/dist/logic/roles/bhrain/.briefs/cognition/cog251.cortal.focus.p3.fabric.md +0 -96
  154. package/dist/logic/roles/bhrain/.briefs/cognition/cog251.cortal.focus.p3.mode.md +0 -68
  155. package/dist/logic/roles/bhrain/.briefs/cognition/cog251.cortal.focus.p3.rythm.md +0 -56
  156. package/dist/logic/roles/bhrain/.briefs/cognition/cog251.cortal.focus.p3.usecases.md +0 -76
  157. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.1.motion.primitives._.md +0 -155
  158. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.1.motion.primitives.acuity.md +0 -94
  159. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.1.motion.primitives.breadth.md +0 -114
  160. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.1.motion.primitives.breadth.vary.md +0 -105
  161. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.1.motion.primitives.depth.md +0 -132
  162. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.2.motion.composites._.md +0 -106
  163. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.2.motion.composites.grammar.md +0 -105
  164. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.._.md +0 -209
  165. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.1.persp.as.berries.md +0 -168
  166. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.1.persp.as.vectors.md +0 -74
  167. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.1.persp.has.precision.tunable.md +0 -80
  168. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.2.1.primitives.rough._.md +0 -99
  169. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.2.1.primitives.rough.interrogative.md +0 -108
  170. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.2.1.primitives.rough.why.[article].md +0 -55
  171. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.2.2.composite.smooth._.md +0 -83
  172. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.2.2.composite.smooth.examples.md +0 -101
  173. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.1.primitives._.md +0 -134
  174. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.1.primitives.recall.md +0 -149
  175. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.1.primitives.steer.md +0 -146
  176. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.1.primitives.think.md +0 -141
  177. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.2.composites.zoom.md +0 -127
  178. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.3.catalogs.md +0 -107
  179. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.3.grammar.md +0 -124
  180. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang_.md +0 -0
  181. package/dist/logic/roles/bhrain/.briefs/cognition/inflight/concept.vs.idea.md +0 -70
  182. package/dist/logic/roles/bhrain/.briefs/cognition/inflight/core.concept.adjectives.md +0 -8
  183. package/dist/logic/roles/bhrain/.briefs/distilisys.grammar.compressed.md +0 -19
  184. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.1.why.common.[article].md +0 -32
  185. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.1.why.term_smells.[article].md +0 -36
  186. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.1.why.term_smells.detection.[lesson].md +0 -73
  187. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.2.tactic.eliminate.[article].md +0 -55
  188. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.2.tactic.eliminate.[lesson].md +0 -41
  189. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.3.eliminator.[trait]._.md +0 -66
  190. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.3.eliminator.[trait].balance.md +0 -36
  191. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.3.eliminator.[trait].bane.md +0 -34
  192. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.3.eliminator.[trait].boon.md +0 -35
  193. package/dist/logic/roles/bhrain/.briefs/knowledge/kno101.primitives.1.ontology.[article].frame.docs_as_materializations.md +0 -63
  194. package/dist/logic/roles/bhrain/.briefs/knowledge/kno101.primitives.1.ontology.[article].frame.docs_as_references.md +0 -45
  195. package/dist/logic/roles/bhrain/.briefs/knowledge/kno101.primitives.2.rel.many_to_many.[article].md +0 -37
  196. package/dist/logic/roles/bhrain/.briefs/knowledge/kno101.primitives.3.instances.[article].md +0 -39
  197. package/dist/logic/roles/bhrain/.briefs/knowledge/kno101.primitives.4.documents.[article].md +0 -37
  198. package/dist/logic/roles/bhrain/.briefs/knowledge/kno101.primitives.5.concepts.[article].md +0 -39
  199. package/dist/logic/roles/bhrain/.briefs/knowledge/kno201.documents._.[article].md +0 -48
  200. package/dist/logic/roles/bhrain/.briefs/knowledge/kno201.documents._.[catalog].md +0 -52
  201. package/dist/logic/roles/bhrain/.briefs/knowledge/kno201.documents.articles.[article].md +0 -40
  202. package/dist/logic/roles/bhrain/.briefs/knowledge/kno201.documents.catalogs.[article].md +0 -41
  203. package/dist/logic/roles/bhrain/.briefs/knowledge/kno201.documents.demos.[article].md +0 -42
  204. package/dist/logic/roles/bhrain/.briefs/knowledge/kno201.documents.lessons.[article].md +0 -42
  205. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.compression.1.refs._.[article].md +0 -41
  206. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.compression.2.kernels._.[article].i1.md +0 -50
  207. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.compression.3.briefs._.[article].md +0 -40
  208. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.compression._.[article].md +0 -90
  209. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.compression._.[catalog].persp.garden.md +0 -64
  210. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[article].md +0 -45
  211. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].algorithm.md +0 -54
  212. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].color.md +0 -56
  213. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].empathy.md +0 -54
  214. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].entropy.md +0 -54
  215. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].gravity.md +0 -54
  216. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].joke.md +0 -56
  217. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].value.md +0 -54
  218. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2._.[catalog].md +0 -43
  219. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.articulate.[article].md +0 -27
  220. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.articulate.[lesson].md +0 -49
  221. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.catalogize.[article].md +0 -27
  222. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.catalogize.[lesson].md +0 -54
  223. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.demonstrate.[article].md +0 -26
  224. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.demonstrate.[lesson].md +0 -49
  225. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.lessonize.[article].md +0 -26
  226. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.lessonize.[lesson].md +0 -54
  227. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.kernelize._.[article].md +0 -58
  228. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.kernelize._.[lesson].md +0 -88
  229. package/dist/logic/roles/bhrain/.briefs/knowledge/kno351.docs.are_instances.[article].md +0 -34
  230. package/dist/logic/roles/bhrain/.briefs/knowledge/kno351.docs.recursion.[catalog].md +0 -44
  231. package/dist/logic/roles/bhrain/.briefs/knowledge/kno401.actors.1.role.author.[article].md +0 -36
  232. package/dist/logic/roles/bhrain/.briefs/knowledge/kno401.actors.1.role.librarian.[article].md +0 -40
  233. package/dist/logic/roles/bhrain/.briefs/knowledge/kno401.actors.2.interdependence.[article].md +0 -52
  234. package/dist/logic/roles/bhrain/.briefs/knowledge/kno501.doc.enbrief.catalog.structure1.[article].md +0 -53
  235. package/dist/logic/roles/bhrain/.briefs/knowledge/kno501.doc.enbrief.catalog.structure1.[lesson].template.md +0 -101
  236. package/dist/logic/roles/bhrain/.briefs/librarian.context/article.variant.vision.[article].md +0 -60
  237. package/dist/logic/roles/bhrain/.briefs/librarian.context/term.expectation.vs_assumption._.md +0 -60
  238. package/dist/logic/roles/bhrain/.briefs/librarian.context/term.frame.vs_perspective.[article].md +0 -96
  239. package/dist/logic/roles/bhrain/.briefs/librarian.context/term.invariant.[article].md +0 -29
  240. package/dist/logic/roles/bhrain/.briefs/librarian.context/term.lesson._vs_article.[article].md +0 -36
  241. package/dist/logic/roles/bhrain/.briefs/librarian.context/term.ref._vs_brief.md +0 -90
  242. package/dist/logic/roles/bhrain/.briefs/librarian.context/term.referent.[article].md +0 -43
  243. package/dist/logic/roles/bhrain/.briefs/librarian.context/usage.lesson_vs_article.[lesson].md +0 -31
  244. package/dist/logic/roles/bhrain/.briefs/librarian.context/usage.lesson_vs_article_vs_demo.[lesson].md +0 -37
  245. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/.readme.md +0 -12
  246. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>._.[article].frame.cognitive.md +0 -33
  247. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>._.[article].frame.tactical.md +0 -45
  248. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.[catalog].md +0 -83
  249. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.concept_dimension.examples.[article][seed].md +0 -4
  250. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.concept_dimension.invariants.[article].md +0 -36
  251. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.from.examples.md +0 -44
  252. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.from.seed.md +0 -48
  253. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.with.templates.[article].md +0 -57
  254. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.with.templates.[gallery][review].effective.md +0 -1
  255. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tone.bluecollar.[article][seed].md +0 -5
  256. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<catalogize>._.[article][seed].md +0 -3
  257. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<catalogize>.observation.via_clusterage_over_via_imagination.[seed].md +0 -6
  258. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<catalogize>.vs_diverge.[article].persp.save_compute.md +0 -46
  259. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>._.[article].frame.colloquial.i2.by_grok.md +0 -64
  260. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.[catalog].md +0 -106
  261. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.contrast.[demo].usecase.vs_userjourney.by_chatgpt.md +0 -45
  262. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.counter.[demo].usecase.flyer.by_chargpt.md +0 -38
  263. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.counter.[demo].walkability.phoenix.by_chargpt.md +0 -41
  264. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[demo].shear_force.scissors.by_grok.md +0 -52
  265. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[demo].tea.darjeeling.by_grok.md +0 -50
  266. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[demo].usecase.book_flight.by_grok.md +0 -54
  267. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[demo].usecase.order_food.by_chatgpt.md +0 -40
  268. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[demo].walkability.portland.by_chatgpt.i3.md +0 -42
  269. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[demo].walkability.portland.by_grok.i2.md +0 -49
  270. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[lesson].howto.md +0 -28
  271. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.structure.[article].i2.md +0 -73
  272. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.narrative.[demo].usecase.order_online.by_chatgpt.md +0 -34
  273. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.walkthrough.[demo].usecase.book_online.by_chatgpt.md +0 -47
  274. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/[brief].verbiage.outline.over.narrative.md +0 -55
  275. package/dist/logic/roles/bhrain/.briefs/logistics/term.logistics.[article].md +0 -21
  276. package/dist/logic/roles/bhrain/.briefs/logistics/term.logistics.of_information.[article].md +0 -22
  277. package/dist/logic/roles/bhrain/.briefs/logistics/term.logistics.of_knowledge.[article].md +0 -29
  278. package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.acuity.md +0 -77
  279. package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.breadth.md +0 -74
  280. package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.depth.md +0 -77
  281. package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.distance.md +0 -92
  282. package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.tradeoffs.md +0 -107
  283. package/dist/logic/roles/bhrain/.briefs/tactician/tactics.compose.traits_and_skills.[article].md +0 -76
  284. package/dist/logic/roles/bhrain/.briefs/tactician/trait.articulation.[article].md +0 -67
  285. package/dist/logic/roles/bhrain/.briefs/tactician/trait.purpose.[article].md +0 -56
  286. package/dist/logic/roles/bhrain/.briefs/tactician/trait.vs_skill.[article].md +0 -55
  287. package/dist/logic/roles/bhrain/.briefs/tactician/trait.vs_tactic.[article].md +0 -70
  288. package/dist/logic/roles/bhrain/.briefs/terms.motive.intent.goal.md +0 -46
  289. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<cluster>._.[article].frame.tactical._.md +0 -85
  290. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<cluster>.vs_<diverge>.duality.[article].md +0 -43
  291. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<diverge>._.[article].frame.cognitive.[seed].md +0 -4
  292. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<diverge>._.[article].frame.tactical.md +0 -89
  293. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<elaborate>_vs_<elucidate>.[seed].md +0 -1
  294. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<enquestion>._.[article].md +0 -113
  295. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<enquestion>._.[gallery].plumber.diagnose.md +0 -130
  296. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<enquestion>._.[gallery].thinker.enquestion.md +0 -125
  297. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<enquestion>.tactic.perspectives.[article].md +0 -36
  298. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<triage>._.[article].frame.tactical.md +0 -85
  299. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<triage>.persp.grades_from_context.[article].md +0 -48
  300. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<triage>.persp.implicit_question.[article].md +0 -65
  301. package/dist/logic/roles/bhrain/.briefs/trait.chillnature.md +0 -14
  302. package/dist/logic/roles/bhrain/.briefs/trait.ocd.md +0 -5
  303. package/dist/logic/roles/bhrain/.briefs/worders/core.matmuls_vecmuls_elemuls.md +0 -93
  304. package/dist/logic/roles/bhrain/.briefs/worders/core.transformers.as_origin.md +0 -62
  305. package/dist/logic/roles/bhrain/.briefs/worders/core.transformers.self_attention.[article].md +0 -93
  306. package/dist/logic/roles/bhrain/.briefs/worders/core.transformers.self_attention.[demo].ambig.bank.md +0 -80
  307. package/dist/logic/roles/bhrain/.briefs/worders/core.transformers.self_attention.[demo].cat_sat.md +0 -67
  308. package/dist/logic/roles/bhrain/.briefs/worders/force.repeat_input_structures.md +0 -48
  309. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.interdependence.[article].md +0 -37
  310. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.interdependence.[demo].domain.physics.md +0 -30
  311. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internal_vs_external.[article].artist_vs_librarian.md +0 -44
  312. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internal_vs_external.[demo].artist_vs_librarian.md +0 -37
  313. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internal_vs_external.[demo].domain.physics.md +0 -39
  314. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internalized.[article].md +0 -35
  315. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internalized.[demo].artist.md +0 -36
  316. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internalized.[demo].neural.md +0 -37
  317. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internalized.[demo].pianist.md +0 -34
  318. package/dist/logic/roles/bhrain/.briefs/worders/limits.rhyme.md +0 -46
  319. package/dist/logic/roles/bhrain/.briefs/worders/limits.spell.md +0 -49
  320. package/dist/logic/roles/bhrain/.briefs/worders/teach.via.library.examples.md +0 -28
  321. package/dist/logic/roles/bhrain/.briefs/worders/teach.via.library.explanations_vs_examples.md +0 -40
  322. package/dist/logic/roles/bhrain/.briefs/worders/trend.prefer_reuse.[seed].md +0 -10
  323. package/dist/logic/roles/bhrain/brief.articulate/stepArticulate.integration.test.d.ts +0 -1
  324. package/dist/logic/roles/bhrain/brief.articulate/stepArticulate.integration.test.js +0 -92
  325. package/dist/logic/roles/bhrain/brief.articulate/stepArticulate.integration.test.js.map +0 -1
  326. package/dist/logic/roles/bhrain/brief.articulate/stepArticulate.template.md +0 -120
  327. package/dist/logic/roles/bhrain/brief.catalogize/stepCatalogize.integration.test.d.ts +0 -1
  328. package/dist/logic/roles/bhrain/brief.catalogize/stepCatalogize.integration.test.js +0 -118
  329. package/dist/logic/roles/bhrain/brief.catalogize/stepCatalogize.integration.test.js.map +0 -1
  330. package/dist/logic/roles/bhrain/brief.demonstrate/stepDemonstrate.integration.test.d.ts +0 -1
  331. package/dist/logic/roles/bhrain/brief.demonstrate/stepDemonstrate.integration.test.js +0 -119
  332. package/dist/logic/roles/bhrain/brief.demonstrate/stepDemonstrate.integration.test.js.map +0 -1
  333. package/dist/logic/roles/bhrain/brief.demonstrate/stepDemonstrate.template.md +0 -135
  334. package/dist/logic/roles/bhrain/khue.cluster/stepCluster.integration.test.d.ts +0 -1
  335. package/dist/logic/roles/bhrain/khue.cluster/stepCluster.integration.test.js +0 -140
  336. package/dist/logic/roles/bhrain/khue.cluster/stepCluster.integration.test.js.map +0 -1
  337. package/dist/logic/roles/bhrain/khue.cluster/stepCluster.template.md +0 -134
  338. package/dist/logic/roles/bhrain/khue.diverge/stepDiverge.integration.test.d.ts +0 -1
  339. package/dist/logic/roles/bhrain/khue.diverge/stepDiverge.integration.test.js +0 -115
  340. package/dist/logic/roles/bhrain/khue.diverge/stepDiverge.integration.test.js.map +0 -1
  341. package/dist/logic/roles/bhrain/khue.diverge/stepDiverge.template.md +0 -110
  342. package/dist/logic/roles/bhrain/khue.instantiate/stepInstantiate.integration.test.d.ts +0 -1
  343. package/dist/logic/roles/bhrain/khue.instantiate/stepInstantiate.integration.test.js +0 -119
  344. package/dist/logic/roles/bhrain/khue.instantiate/stepInstantiate.integration.test.js.map +0 -1
  345. package/dist/logic/roles/bhrain/khue.instantiate/stepInstantiate.template.md +0 -73
  346. package/dist/logic/roles/bhrain/khue.triage/stepTriage.integration.test.d.ts +0 -1
  347. package/dist/logic/roles/bhrain/khue.triage/stepTriage.integration.test.js +0 -143
  348. package/dist/logic/roles/bhrain/khue.triage/stepTriage.integration.test.js.map +0 -1
  349. package/dist/logic/roles/bhrain/khue.triage/stepTriage.template.md +0 -128
  350. package/dist/logic/roles/coach/.briefs/claude.context-caching.md +0 -76
  351. package/dist/logic/roles/designer/.briefs/declarative-over-imperative.md +0 -79
  352. package/dist/logic/roles/designer/.briefs/declarative-over-imperative.stub.md +0 -14
  353. package/dist/logic/roles/designer/.briefs/pit-of-success.md +0 -70
  354. package/dist/logic/roles/designer/.briefs/pit-of-success.stub.md +0 -3
  355. package/dist/logic/roles/designer/outlineDistilisys/loopOutlineDistilisys.integration.test.d.ts +0 -1
  356. package/dist/logic/roles/designer/outlineDistilisys/loopOutlineDistilisys.integration.test.js +0 -77
  357. package/dist/logic/roles/designer/outlineDistilisys/loopOutlineDistilisys.integration.test.js.map +0 -1
  358. package/dist/logic/roles/designer/outlineDistilisys/stepOutlineDistilisys.integration.test.d.ts +0 -1
  359. package/dist/logic/roles/designer/outlineDistilisys/stepOutlineDistilisys.integration.test.js +0 -142
  360. package/dist/logic/roles/designer/outlineDistilisys/stepOutlineDistilisys.integration.test.js.map +0 -1
  361. package/dist/logic/roles/designer/outlineDistilisys/stepOutlineDistilisys.template.md +0 -173
  362. package/dist/logic/roles/designer/outlineRoadmap/loopOutlineRoadmap.integration.test.d.ts +0 -1
  363. package/dist/logic/roles/designer/outlineRoadmap/loopOutlineRoadmap.integration.test.js +0 -71
  364. package/dist/logic/roles/designer/outlineRoadmap/loopOutlineRoadmap.integration.test.js.map +0 -1
  365. package/dist/logic/roles/designer/outlineRoadmap/stepOutlineRoadmap.integration.test.d.ts +0 -1
  366. package/dist/logic/roles/designer/outlineRoadmap/stepOutlineRoadmap.integration.test.js +0 -130
  367. package/dist/logic/roles/designer/outlineRoadmap/stepOutlineRoadmap.integration.test.js.map +0 -1
  368. package/dist/logic/roles/designer/outlineRoadmap/stepOutlineRoadmap.template.md +0 -88
  369. package/dist/logic/roles/designer/outlineVision/stepOutlineVision.template.md +0 -47
  370. package/dist/logic/roles/ecologist/.briefs/.readme.md +0 -17
  371. package/dist/logic/roles/ecologist/.briefs/distilisys/sys101.distilisys.grammar.md +0 -221
  372. package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive._.summary.md +0 -82
  373. package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p1.reversibility.entropy.md +0 -39
  374. package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p2.option.chance.choice.md +0 -140
  375. package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p3.chance.motive.polarity.threat.md +0 -72
  376. package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p4.motive.horizon.md +0 -101
  377. package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p5.motive.grammar.md +0 -131
  378. package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources._.primitives.summary.md +0 -108
  379. package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt1.primitive.time.md +0 -56
  380. package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt2.primitive.energy.md +0 -69
  381. package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt3.primitive.space.md +0 -85
  382. package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt4.primitive.claim.md +0 -113
  383. package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt5.composites.md +0 -146
  384. package/dist/logic/roles/ecologist/.briefs/distilisys/sys231.actor.claims.p1.primitive.exchange.md +0 -130
  385. package/dist/logic/roles/ecologist/.briefs/ecology/.eco001.origin.prompt.md +0 -11
  386. package/dist/logic/roles/ecologist/.briefs/ecology/eco001.overview.md +0 -44
  387. package/dist/logic/roles/ecologist/.briefs/ecology/eco101.core-system-understanding.md +0 -70
  388. package/dist/logic/roles/ecologist/.briefs/ecology/eco101.p1.ecosystem-structure.md +0 -62
  389. package/dist/logic/roles/ecologist/.briefs/ecology/eco101.p2.trophic-dynamics.md +0 -59
  390. package/dist/logic/roles/ecologist/.briefs/ecology/eco101.p3.population-ecology.md +0 -71
  391. package/dist/logic/roles/ecologist/.briefs/ecology/eco101.p4.community-interactions.md +0 -78
  392. package/dist/logic/roles/ecologist/.briefs/ecology/eco505.systems-thinking.md +0 -62
  393. package/dist/logic/roles/ecologist/.briefs/economy/econ001.overview.md +0 -65
  394. package/dist/logic/roles/ecologist/.briefs/economy/econ101.core-mechanics.md +0 -65
  395. package/dist/logic/roles/ecologist/.briefs/economy/econ101.p1.supply-and-demand.md +0 -76
  396. package/dist/logic/roles/ecologist/.briefs/economy/econ101.p2.opportunity-cost.md +0 -106
  397. package/dist/logic/roles/ecologist/.briefs/economy/econ101.p3.marginal-analysis.md +0 -79
  398. package/dist/logic/roles/ecologist/.briefs/economy/econ101.p4.rational-choice.md +0 -81
  399. package/dist/logic/roles/ecologist/.briefs/economy/econ201.market-structures-and-failures.md +0 -81
  400. package/dist/logic/roles/ecologist/.briefs/economy/econ301.production-and-growth.md +0 -71
  401. package/dist/logic/roles/ecologist/.briefs/economy/econ401.macro-systems.md +0 -92
  402. package/dist/logic/roles/ecologist/.briefs/economy/econ501.global-and-institutional.md +0 -85
  403. package/dist/logic/roles/ecologist/.briefs/economy/econ501.p1.game-theory.md +0 -142
  404. package/dist/logic/roles/ecologist/.briefs/economy/econ501.p4.behavioral-economics.md +0 -146
  405. package/dist/logic/roles/ecologist/.briefs/product/user.journey._.[article].i1.md +0 -68
  406. package/dist/logic/roles/ecologist/.briefs/product/user.journey._.[article].md +0 -0
  407. package/dist/logic/roles/ecologist/.briefs/product/user.journey.purpose.[article].i1.md +0 -52
  408. package/dist/logic/roles/ecologist/.briefs/product/user.journey.purpose.[article].md +0 -52
  409. package/dist/logic/roles/ecologist/.briefs/term.distillation.md +0 -93
  410. package/dist/logic/roles/mechanic/.briefs/architecture/bounded-contexts.md +0 -61
  411. package/dist/logic/roles/mechanic/.briefs/architecture/directional-dependencies.md +0 -82
  412. package/dist/logic/roles/mechanic/.briefs/architecture/domain-driven-design.md +0 -61
  413. package/dist/logic/roles/mechanic/.briefs/architecture/ubiqlang.md +0 -37
  414. package/dist/logic/roles/mechanic/.briefs/codestyle/_mech.compressed.md +0 -57
  415. package/dist/logic/roles/mechanic/.briefs/codestyle/_mech.compressed.prompt.md +0 -5
  416. package/dist/logic/roles/mechanic/.briefs/codestyle/flow.failfast.md +0 -37
  417. package/dist/logic/roles/mechanic/.briefs/codestyle/flow.idempotency.md +0 -63
  418. package/dist/logic/roles/mechanic/.briefs/codestyle/flow.immutability.md +0 -48
  419. package/dist/logic/roles/mechanic/.briefs/codestyle/flow.narratives.md +0 -74
  420. package/dist/logic/roles/mechanic/.briefs/codestyle/flow.single-responsibility.md +0 -67
  421. package/dist/logic/roles/mechanic/.briefs/codestyle/flow.transformers_over_conditionals.[lesson].md +0 -97
  422. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.args.input-context.md +0 -61
  423. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.args.input-inline.md +0 -63
  424. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.arrowonly.md +0 -47
  425. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.clear-contracts.md +0 -53
  426. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.tests.given-when-then.md +0 -62
  427. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.what-why.md +0 -88
  428. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.what-why.v2.md +0 -98
  429. package/dist/logic/roles/mechanic/.briefs/codestyle/pit-of-success.via.minimize-surface-area.md +0 -58
  430. package/dist/logic/roles/mechanic/.briefs/criteria.practices/never.term.script.md +0 -7
  431. package/dist/logic/roles/mechanic/.briefs/criteria.practices/prefer.emojis.chill_nature.md +0 -24
  432. package/dist/logic/roles/mechanic/.briefs/criteria.practices/prefer.jq.over_alt.[demo].md +0 -29
  433. package/dist/logic/roles/mechanic/.briefs/criteria.practices/prefer.terraform.[criteria].md +0 -4
  434. package/dist/logic/roles/mechanic/.briefs/criteria.practices/prefer.terraform.[seed].md +0 -17
  435. package/dist/logic/roles/mechanic/.briefs/criteria.practices/require.dependency.pinned_versions.md +0 -3
  436. package/dist/logic/roles/mechanic/.briefs/criteria.practices/require.idempotency.md +0 -33
  437. package/dist/logic/roles/mechanic/.briefs/criteria.practices/require.knowledge.externalized.md +0 -17
  438. package/dist/logic/roles/mechanic/.briefs/engineer/dependency-injection.md +0 -118
  439. package/dist/logic/roles/mechanic/.briefs/engineer/dependency-injection.stub.md +0 -11
  440. package/dist/logic/roles/mechanic/.briefs/lessons/code.prod.typescript.types/bivariance_vs_contravariance.[lesson].md +0 -95
  441. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.contract.inputs.nameargs/bad-practice/forbid.positional-args.md +0 -43
  442. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.contract.inputs.nameargs/best-practice/require.namedargs.md +0 -6
  443. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.declarative/.readme.md +0 -0
  444. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.declarative/best-practice/declastruct.[demo].md +0 -485
  445. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.domain.objects/bad-practices/blocker.has.attributes.nullable.md +0 -13
  446. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.domain.objects/bad-practices/blocker.has.attributes.undefined.md +0 -15
  447. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.domain.objects/bad-practices/blocker.refs.immuatble.md +0 -9
  448. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.domain.objects/best-practice/ref.package.domain-objects.[readme].md +0 -585
  449. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.domain.operations/best-practice/require.sync.names.md +0 -14
  450. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.errors.failfast/bad-practices/forbid.failhide.md +0 -19
  451. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.errors.failfast/bad-practices/forbid.hide_errors.md +0 -13
  452. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.errors.failfast/best-practice/prefer.HelpfulError.wrap.md +0 -54
  453. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.errors.failfast/best-practice/require.fail_fast.[demo].shell.md +0 -17
  454. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.errors.failfast/best-practice/require.fail_fast.md +0 -28
  455. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.narrative/bad-practices/forbid.else.md +0 -54
  456. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.narrative/best-practice/early-returns.named-checks.[demo].md +0 -181
  457. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.repo.structure/bad-practices/forbid.barrel.exports.ts.md +0 -41
  458. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.repo.structure/bad-practices/forbid.index.ts.md +0 -3
  459. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.repo.structure/best-practice/directional-dependencies.md +0 -82
  460. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.repo.structure/best-practice/dot-test-and-dot-temp.md +0 -20
  461. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.typescript.utils/best-practice/ref.package.as-command.[tips].md +0 -7
  462. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.acceptance/best-practice/blackbox.md +0 -5
  463. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.diagnose.[lesson].md +0 -14
  464. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.run.[lesson].md +0 -18
  465. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.use.[lesson].md +0 -20
  466. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.write.[lesson].md +0 -3
  467. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.write.[lesson].on_scope.for_integ.md +0 -8
  468. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.write.[lesson].on_scope.for_units.md +0 -9
  469. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.write.bdd.[lesson].md +0 -280
  470. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/prefer.datadriven.md +0 -41
  471. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/ref.test-fns.[readme].md +0 -185
  472. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/whento.snapshots.[lesson].md +0 -23
  473. package/dist/logic/roles/mechanic/.briefs/patterns/lang.terms/.readme.md +0 -1
  474. package/dist/logic/roles/mechanic/.briefs/patterns/lang.terms/bad-practices/forbid.term=existing.md +0 -10
  475. package/dist/logic/roles/mechanic/.briefs/patterns/lang.terms/best-practice/require.order.noun_adj.md +0 -39
  476. package/dist/logic/roles/mechanic/.briefs/patterns/lang.terms/domain=practices.terms=forbid_prefer_desire_require.md +0 -13
  477. package/dist/logic/roles/mechanic/.briefs/patterns/lang.terms/domain=software.terms=prodcode_vs_testcode.md +0 -7
  478. package/dist/logic/roles/mechanic/.briefs/patterns/lang.tones/.readme.md +0 -3
  479. package/dist/logic/roles/mechanic/.briefs/patterns/lang.tones/prefer.chill-nature.md +0 -0
  480. package/dist/logic/roles/mechanic/.briefs/patterns/lang.tones/prefer.lowercase.md +0 -0
  481. package/dist/logic/roles/mechanic/.briefs/style.compressed.md +0 -29
  482. package/dist/logic/roles/mechanic/.briefs/style.compressed.prompt.md +0 -5
  483. package/dist/logic/roles/mechanic/.briefs/style.names.treestruct.md +0 -48
  484. package/dist/logic/roles/mechanic/.briefs/style.names.ubiqlang.md +0 -37
  485. package/dist/logic/roles/mechanic/.briefs/style.words.lowercase.md +0 -36
  486. package/dist/logic/roles/mechanic/.briefs/terms/badpractice/script.md +0 -9
  487. package/dist/logic/roles/mechanic/.briefs/terms/plan.exec_vs_apply.md +0 -45
  488. package/dist/logic/roles/mechanic/.skills/claude.hooks/check.pretooluse.permissions.sh +0 -235
  489. package/dist/logic/roles/mechanic/.skills/claude.hooks/forbid.stderr.redirect.sh +0 -57
  490. package/dist/logic/roles/mechanic/.skills/declapract.upgrade.sh +0 -50
  491. package/dist/logic/roles/mechanic/.skills/git.worktree.common.sh +0 -58
  492. package/dist/logic/roles/mechanic/.skills/git.worktree.del.sh +0 -51
  493. package/dist/logic/roles/mechanic/.skills/git.worktree.get.sh +0 -51
  494. package/dist/logic/roles/mechanic/.skills/git.worktree.set.sh +0 -108
  495. package/dist/logic/roles/mechanic/.skills/git.worktree.sh +0 -46
  496. package/dist/logic/roles/mechanic/.skills/init.bhuild.sh +0 -260
  497. package/dist/logic/roles/mechanic/.skills/init.claude.hooks.forbid.stderr.redirect.sh +0 -116
  498. package/dist/logic/roles/mechanic/.skills/init.claude.hooks.pretooluse.sh +0 -118
  499. package/dist/logic/roles/mechanic/.skills/init.claude.hooks.sessionstart.sh +0 -113
  500. package/dist/logic/roles/mechanic/.skills/init.claude.hooks.sh +0 -25
  501. package/dist/logic/roles/mechanic/.skills/init.claude.permissions.sh +0 -155
  502. package/dist/logic/roles/mechanic/.skills/init.claude.sh +0 -47
  503. package/dist/logic/roles/mechanic/.skills/link.claude.transcripts.sh +0 -43
  504. package/dist/logic/roles/mechanic/.skills/test.integration.sh +0 -50
  505. package/dist/logic/roles/mechanic/codediff/routeArtistCodeDiff.integration.test.d.ts +0 -1
  506. package/dist/logic/roles/mechanic/codediff/routeArtistCodeDiff.integration.test.js +0 -246
  507. package/dist/logic/roles/mechanic/codediff/routeArtistCodeDiff.integration.test.js.map +0 -1
  508. package/dist/logic/roles/mechanic/codediff/routeArtistCodeDiff.template.md +0 -46
  509. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReview.integration.test.d.ts +0 -1
  510. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReview.integration.test.js +0 -144
  511. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReview.integration.test.js.map +0 -1
  512. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewArchitecture.integration.test.d.ts +0 -1
  513. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewArchitecture.integration.test.js +0 -138
  514. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewArchitecture.integration.test.js.map +0 -1
  515. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewArchitecture.template.md +0 -78
  516. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewCodestyle.integration.test.d.ts +0 -1
  517. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewCodestyle.integration.test.js +0 -294
  518. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewCodestyle.integration.test.js.map +0 -1
  519. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewCodestyle.template.md +0 -75
  520. package/dist/logic/roles/mechanic/codediff/routeJudgeReleasable.integration.test.d.ts +0 -1
  521. package/dist/logic/roles/mechanic/codediff/routeJudgeReleasable.integration.test.js +0 -162
  522. package/dist/logic/roles/mechanic/codediff/routeJudgeReleasable.integration.test.js.map +0 -1
  523. package/dist/logic/roles/mechanic/codediff/routeJudgeReleasable.template.md +0 -67
  524. package/dist/logic/roles/mechanic/codediff/routeMechanicCodeIterate.integration.test.d.ts +0 -1
  525. package/dist/logic/roles/mechanic/codediff/routeMechanicCodeIterate.integration.test.js +0 -169
  526. package/dist/logic/roles/mechanic/codediff/routeMechanicCodeIterate.integration.test.js.map +0 -1
  527. package/dist/logic/roles/mechanic/codediff/routeMechanicCodePropose.integration.test.d.ts +0 -1
  528. package/dist/logic/roles/mechanic/codediff/routeMechanicCodePropose.integration.test.js +0 -203
  529. package/dist/logic/roles/mechanic/codediff/routeMechanicCodePropose.integration.test.js.map +0 -1
  530. package/dist/logic/roles/mechanic/study/routeStudyAsk.integration.test.d.ts +0 -1
  531. package/dist/logic/roles/mechanic/study/routeStudyAsk.integration.test.js +0 -98
  532. package/dist/logic/roles/mechanic/study/routeStudyAsk.integration.test.js.map +0 -1
  533. package/dist/logic/roles/mechanic/study/routeStudyAsk.template.md +0 -73
  534. package/dist/logic/roles/mechanic/write/.test/prior.template.md +0 -21
  535. package/dist/logic/roles/mechanic/write/loopWrite.integration.test.d.ts +0 -1
  536. package/dist/logic/roles/mechanic/write/loopWrite.integration.test.js +0 -57
  537. package/dist/logic/roles/mechanic/write/loopWrite.integration.test.js.map +0 -1
  538. package/dist/logic/roles/mechanic/write/stepWrite.integration.test.d.ts +0 -1
  539. package/dist/logic/roles/mechanic/write/stepWrite.integration.test.js +0 -189
  540. package/dist/logic/roles/mechanic/write/stepWrite.integration.test.js.map +0 -1
  541. package/dist/logic/roles/mechanic/write/stepWrite.template.md +0 -38
  542. package/dist/logic/roles/terminal.commander/command.exec/stepExecCommand.integration.test.d.ts +0 -1
  543. package/dist/logic/roles/terminal.commander/command.exec/stepExecCommand.integration.test.js +0 -76
  544. package/dist/logic/roles/terminal.commander/command.exec/stepExecCommand.integration.test.js.map +0 -1
  545. package/dist/logic/roles/terminal.commander/command.plan/stepPlanCommand.integration.test.d.ts +0 -1
  546. package/dist/logic/roles/terminal.commander/command.plan/stepPlanCommand.integration.test.js +0 -97
  547. package/dist/logic/roles/terminal.commander/command.plan/stepPlanCommand.integration.test.js.map +0 -1
@@ -1,585 +0,0 @@
1
- # domain-objects
2
-
3
- ![test](https://github.com/ehmpathy/domain-objects/workflows/test/badge.svg)
4
- ![publish](https://github.com/ehmpathy/domain-objects/workflows/publish/badge.svg)
5
-
6
- A simple, convenient way to represent domain objects, leverage domain knowledge, and add runtime validation in your code base.
7
-
8
- Guided by [Domain Driven Design](https://dddcommunity.org/learning-ddd/what_is_ddd/)
9
-
10
- # Purpose
11
-
12
- - promote speaking in a domain driven manner, in code and in speech, by formally defining domain objects
13
- - to make software safer and easier to debug, by supporting run time type checking
14
- - to leverage domain knowledge in your code base
15
- - e.g., in comparisons of objects
16
- - e.g., in schema based runtime validation
17
-
18
- # Install
19
-
20
- ```sh
21
- npm install --save domain-objects
22
- ```
23
-
24
- # Usage Examples
25
-
26
- ### literal
27
-
28
- ```ts
29
- import { DomainLiteral } from 'domain-objects';
30
-
31
- // define it
32
- interface Address {
33
- street: string;
34
- suite: string | null;
35
- city: string;
36
- state: string;
37
- postal: string;
38
- }
39
- class Address extends DomainLiteral<Address> implements Address {}
40
-
41
- // use it
42
- const austin = new Address({
43
- street: '123 South Congress',
44
- suite: null,
45
- city: 'Austin',
46
- state: 'Texas',
47
- postal: '78704',
48
- });
49
- ```
50
-
51
- ### entity
52
-
53
- ```ts
54
- import { DomainEntity } from 'domain-objects';
55
-
56
- // define it
57
- interface RocketShip {
58
- uuid?: string;
59
- serialNumber: string;
60
- fuelQuantity: number;
61
- passengers: number;
62
- homeAddress: Address;
63
- }
64
- class RocketShip extends DomainEntity<RocketShip> implements RocketShip {
65
- public static unique = ['serialNumber'];
66
- public static updatable = ['fuelQuantity', 'homeAddress'];
67
- }
68
-
69
- // use it
70
- const ship = new RocketShip({
71
- serialNumber: 'SN5',
72
- fuelQuantity: 9001,
73
- passengers: 21,
74
- homeAddress: new Address({ ... }),
75
- });
76
- ```
77
-
78
-
79
- ### event
80
-
81
- ```ts
82
- import { DomainEvent } from 'domain-objects';
83
-
84
- // define it
85
- interface AirQualityMeasuredEvent {
86
- locationUuid: string;
87
- sensorUuid: string;
88
- occurredAt: string;
89
- temperature: string;
90
- humidity: string;
91
- pressure: string;
92
- pm2p5: string; // PM2.5 : fine inhalable particles, with diameters that are generally 2.5 micrometers
93
- pm5p0: string; // PM5.0
94
- pm10p0: string; // PM10.0
95
- }
96
- class AirQualityMeasuredEvent extends DomainEvent<AirQualityMeasuredEvent> implements AirQualityMeasuredEvent {
97
- public static unique = ['locationUuid', 'sensorUuid', 'occurredAt'];
98
- }
99
-
100
- // use it
101
- const event = new AirQualityMeasuredEvent({
102
- locationUuid: '8e34eb9b-2874-43e0-bc89-73a73d50ac5c',
103
- sensorUuid: 'a17f7941-1211-44f4-a22a-b61f220527da',
104
- occurredAt: '2021-07-08T11:13:38.780Z',
105
- temperature: '31.52°C',
106
- humidity: '27%rh',
107
- pressure: '29.99bar',
108
- pm2p5: '9ug/m3',
109
- pm5p0: '11ug/m3',
110
- pm10p0: '17ug/m3',
111
- });
112
- ```
113
-
114
- ### runtime validation
115
-
116
- > everyone has types until they get punched in the runtime - mike typeson
117
-
118
- ```ts
119
- // define your domain object with a schema this time
120
- interface Address {
121
- id?: number;
122
- galaxy: string;
123
- solarSystem: string;
124
- planet: string;
125
- continent: string;
126
- }
127
- const schema = Joi.object().keys({
128
- id: Joi.number().optional(),
129
- galaxy: Joi.string().valid(['Milky Way', 'Andromeda']).required(),
130
- solarSystem: Joi.string().required(),
131
- planet: Joi.string().required(),
132
- continent: Joi.string().required(),
133
- });
134
- class Address extends DomainLiteral<Address> implements Address {
135
- public static schema = schema; // supports Zod, Yup, and Joi
136
- }
137
-
138
- // and now when you instantiate objects, the props you instantiate with will be runtime validated
139
- const northAmerica = new Address({
140
- galaxy: 'Milky Way',
141
- solarSystem: 'Sun',
142
- planet: 'Earth',
143
- continent: 'North America',
144
- }); // passes, no error
145
-
146
- const westDolphia = new Address({
147
- galaxy: 'AndromedA', // oops, accidentally capitalized the last A in Andromeda - this will fail the enum check!
148
- solarSystem: 'Asparagia',
149
- planet: 'Dracena',
150
- continent: 'West Dolphia',
151
- }); // throws a helpful error, see the `Features` section below for details
152
- ```
153
-
154
- ### identity comparison
155
-
156
- ```ts
157
- import { serialize, getUniqueIdentifier } from 'domain-objects';
158
-
159
- const northAmerica = new Address({
160
- galaxy: 'Milky Way',
161
- solarSystem: 'Sun',
162
- planet: 'Earth',
163
- continent: 'North America',
164
- });
165
- const northAmericaWithId = new Address({
166
- id: 821, // we pulled this record from the db, so it has an id
167
- galaxy: 'Milky Way',
168
- solarSystem: 'Sun',
169
- planet: 'Earth',
170
- continent: 'North America',
171
- });
172
-
173
- // is `northAmerica` the same object as `northAmericaWithId`?
174
- const areTheSame = serialize(getUniqueIdentifier(northAmerica)) === serialize(getUniqueIdentifier(northAmericaWithId)); // because of domain modeling, we know definitively that this is `true`!
175
- ```
176
-
177
- ### change detection
178
-
179
- ```ts
180
- import { serialize, omitMetadataValues } from 'domain-objects';
181
-
182
- // shiny new spaceship, full of fuel
183
- const sn5 = new Spaceship({
184
- serialNumber: 'SN5',
185
- fuelQuantity: 9001,
186
- passengers: 21,
187
- });
188
-
189
- // lets save it to the database
190
- const sn5Saved = new Spaceship({ ...sn5, id: 821, updatedAt: now() }); // the database will add metadata to it
191
-
192
- // lets check that in the process of saving to the database, no unexpected changes were introduced
193
- const hadChangeDuringSave = serialize(omitMetadataValues(sn5)) !== serialize(omitMetadataValues(sn5Saved)); // note: we omit the metadata values since we dont care that one has db generated values like id specified and the other does not
194
- expect(hadChangeDuringSave).toEqual(false); // even though an id was added to sn5Saved, the non-metadata attributes have not changed, so we can say there is no change as desired
195
-
196
- // we do some business logic, and in the process, the space ship flys around and uses up fuel
197
- const sn5AfterFlying = new Spaceship({ ...sn5, fuelQuantity: 4500 });
198
-
199
- // lets programmatically detect whether there was a change now
200
- const hadChangeAfterFlying = serialize(omitMetadataValues(spaceport)) !== serialize(omitMetadataValues(spaceportAfterFlight));
201
- expect(hadChangeAfterFlying).toEqual(true); // because the fuelQuantity has decreased, the Spaceship has had a change after flying
202
- ```
203
-
204
- # Features
205
-
206
- ## Declaration
207
-
208
- Model declaration is a fundamental part of domain driven design. Here is how you can declare your model in your code - to aid in building a ubiquitous language.
209
-
210
- ### `DomainLiteral`
211
-
212
- In Domain Driven Design, a Literal (a.k.a. Value Object), is a type of Domain Object for which:
213
-
214
- - properties are immutable
215
- - i.e., it represents some literal value which happens to have a structured object shape
216
- - i.e., if you change the value of any of its properties, it is a different literal
217
- - identity does not matter
218
- - i.e., it is uniquely identifiable by its non-metadata properties
219
-
220
- ```ts
221
- // define it
222
- interface Address {
223
- street: string;
224
- suite: string | null;
225
- city: string;
226
- state: string;
227
- postal: string;
228
- }
229
- class Address extends DomainLiteral<Address> implements Address {}
230
-
231
- // use it
232
- const austin = new Address({
233
- street: '123 South Congress',
234
- suite: null,
235
- city: 'Austin',
236
- state: 'Texas',
237
- postal: '78704',
238
- });
239
- ```
240
-
241
- ### `DomainEntity`
242
-
243
- In Domain Driven Design, an Entity is a type of Domain Object for which:
244
-
245
- - properties change over time
246
- - e.g., it has a lifecycle
247
- - identity matters
248
- - i.e., it represents a distinct existence
249
- - e.g., two entities could have the same properties, differing only by id, and are still considered different entities
250
- - e.g., you can update properties on an entity and it is still considered the same entity
251
-
252
- ```ts
253
- // define it
254
- interface RocketShip {
255
- uuid?: string;
256
- serialNumber: string;
257
- fuelQuantity: number;
258
- passengers: number;
259
- homeAddress: Address;
260
- }
261
- class RocketShip extends DomainEntity<RocketShip> implements RocketShip {
262
- /**
263
- * an entity is uniquely identifiable by some subset of their properties
264
- *
265
- * in order to use the `getUniqueIdentifier` and `serialize` methods on domain entities,
266
- * we must define the properties that the entity is uniquely identifiable by.
267
- */
268
- public static unique = ['serialNumber'];
269
- }
270
-
271
- // use it
272
- const ship = new RocketShip({
273
- serialNumber: 'SN5,
274
- fuelQuantity: 9001,
275
- passengers: 21,
276
- homeAddress: new Address({ ... }),
277
- });
278
- ```
279
-
280
- ## References (`Ref`, `RefByUnique`, `RefByPrimary`)
281
-
282
- In work with entities and events, you often need to refer to them by their **primary key** (e.g., `uuid`) or by their **unique keys** (e.g., a compound unique such as `{ source, exid }`). `domain-objects` provides utility types to make this type-safe.
283
-
284
- ### `RefByPrimary<typeof DomainObject>`
285
-
286
- RefByPrimary extracts the shape of the primary key for a given domain object.
287
-
288
- ```ts
289
- import { DomainEntity, RefByPrimary } from 'domain-objects';
290
-
291
- interface SeaTurtle {
292
- uuid?: string;
293
- seawaterSecurityNumber: string;
294
- name: string;
295
- }
296
- class SeaTurtle extends DomainEntity<SeaTurtle> implements SeaTurtle {
297
- public static primary = ['uuid'] as const;
298
- public static unique = ['seawaterSecurityNumber'] as const;
299
- }
300
-
301
- // ✅ valid
302
- const primaryRef: RefByPrimary<typeof SeaTurtle> = { uuid: 'beefbeef...' };
303
-
304
- // ❌ invalid - must be a string
305
- const wrongType: RefByPrimary<typeof SeaTurtle> = { uuid: 8335 };
306
-
307
- // ❌ invalid - wrong key
308
- const wrongKey: RefByPrimary<typeof SeaTurtle> = { guid: 'beefbeef...' };
309
-
310
- // ❌ invalid - missing primary key
311
- const missing: RefByPrimary<typeof SeaTurtle> = {};
312
- ```
313
-
314
- ### `RefByUnique<typeof DomainObject>`
315
-
316
- RefByUnique extracts the shape of the unique key(s) for a given domain object.
317
-
318
- ```ts
319
- import { DomainEntity, RefByUnique } from 'domain-objects';
320
-
321
- interface SeaTurtle {
322
- uuid?: string;
323
- seawaterSecurityNumber: string;
324
- name: string;
325
- }
326
- class SeaTurtle extends DomainEntity<SeaTurtle> implements SeaTurtle {
327
- public static primary = ['uuid'] as const;
328
- public static unique = ['seawaterSecurityNumber'] as const;
329
- }
330
-
331
- // ✅ valid
332
- const uniqueRef: RefByUnique<typeof SeaTurtle> = { seawaterSecurityNumber: 'ABC-999' };
333
-
334
- // ❌ invalid - wrong type
335
- const wrongType: RefByUnique<typeof SeaTurtle> = { seawaterSecurityNumber: 999 };
336
-
337
- // ❌ invalid - wrong key
338
- const wrongKey: RefByUnique<typeof SeaTurtle> = { saltwaterSecurityNumber: 'ABC-999' };
339
-
340
- // ❌ invalid - empty object
341
- const empty: RefByUnique<typeof SeaTurtle> = {};
342
- ```
343
-
344
- ### `Ref<typeof DomainObject>`
345
-
346
- Ref is a union type that allows referring to a domain object by either primary key or unique keys.
347
-
348
- ```ts
349
- import { DomainEntity, Ref } from 'domain-objects';
350
-
351
- interface EarthWorm {
352
- uuid?: string;
353
- soilSecurityNumber: string;
354
- wormSegmentNumber: string;
355
- name: string;
356
- }
357
- class EarthWorm extends DomainEntity<EarthWorm> implements EarthWorm {
358
- public static primary = ['uuid'] as const;
359
- public static unique = ['soilSecurityNumber', 'wormSegmentNumber'] as const;
360
- }
361
-
362
- // ✅ primary
363
- const byPrimary: Ref<typeof EarthWorm> = { uuid: 'beefbeef...' };
364
-
365
- // ✅ unique
366
- const byUnique: Ref<typeof EarthWorm> = {
367
- soilSecurityNumber: 'SOIL-001',
368
- wormSegmentNumber: 'SEG-42',
369
- };
370
-
371
- // ❌ invalid - missed part of unique key
372
- const incompleteUnique: Ref<typeof EarthWorm> = { soilSecurityNumber: 'SOIL-001' };
373
-
374
- // ❌ invalid - not related to either key
375
- const wrongKey: Ref<typeof EarthWorm> = { guid: 'beefbeef...' };
376
-
377
- // ❌ invalid - empty object
378
- const empty: Ref<typeof EarthWorm> = {};
379
- ```
380
-
381
- 👉 Use `RefByPrimary` for primary-only references,
382
- 👉 `RefByUnique` for unique-only references,
383
- 👉 `Ref` when you want to allow either.
384
-
385
-
386
- ## Run Time Validation
387
-
388
- Runtime validation is a great way to fail fast and prevent unexpected errors.
389
-
390
- `domain-objects` supports an easy way to add runtime validation, by defining a [`Zod`](https://github.com/colinhacks/zod), [`Yup`](https://github.com/jquense/yup), or [`Joi`](https://github.com/sideway/joi) schema.
391
-
392
- When you provide a schema in your type definition, your domain objects will now be run time validated at instantiation.
393
-
394
- example:
395
-
396
- ```ts
397
- // with this declaration of a "RocketShip", the schema specifies that there can be a max of 42 passengers
398
- interface RocketShip {
399
- serialNumber: string;
400
- fuelQuantity: number;
401
- passengers: number;
402
- }
403
- const schema = Joi.object().keys({
404
- serialNumber: Joi.string().uuid().required(),
405
- fuelQuantity: Joi.number().required(),
406
- passengers: Joi.number().max(42).required(),
407
- });
408
- class RocketShip extends DomainObject<RocketShip> implements RocketShip {
409
- public static schema = schema;
410
- }
411
-
412
- // so if we try the following, we will get an error
413
- new RocketShip({
414
- serialNumber: uuid(),
415
- fuelQuantity: 9001,
416
- passengers: 50,
417
- });
418
-
419
- // throws JoiValidationError
420
- ```
421
-
422
- We made sure that the errors are as descriptive as possible to help with debugging. For example, the error that would have been shown above has the following message:
423
-
424
- ```
425
- Errors on 1 properties were found while validating properties for domain object RocketShip.:
426
- [
427
- {
428
- "message": "\"passengers\" must be less than or equal to 42",
429
- "path": "passengers",
430
- "type": "number.max"
431
- }
432
- ]
433
-
434
- Props Provided:
435
- {
436
- "serialNumber": "eeb6988c-d877-4268-b841-bde2f40b377e",
437
- "fuelQuantity": 9001,
438
- "passengers": 50
439
- }
440
- ```
441
-
442
- ## Nested Hydration
443
-
444
- > _TL:DR;_ Without `DomainObject.nested`, you will need to manually instantiate nested domain objects every time. If you forget, `getUniqueIdentifier` and `serialize` will throw errors.
445
-
446
- Nested hydration is useful when instantiating DomainObjects that are composed of other DomainObjects. For example, in the `RocketShip` example above, `RocketShip` has `Address` as a nested property (i.e., `typeof Spaceship.address === Address`).
447
-
448
- When attempting to manipulate DomainObjects with nested DomainObjects, like the Spaceship.address example, it is important that all nested domain objects are instantiated with their class. Otherwise, if `RocketShip.address` is not an instanceof `Address`, then we will not be able to utilize the domain information baked into the static properties of `Address` (e.g., that it is a DomainLiteral).
449
-
450
- `domain-objects` makes it easy to instantiate nested DomainObjects, by exposing the `DomainObject.nested` static property.
451
-
452
- For example:
453
-
454
- ```ts
455
- // define the domain objects that you'll be nesting
456
- interface PlantPot {
457
- diameterInInches: number;
458
- }
459
- class PlantPot extends DomainLiteral<PlantPot> implements PlantPot {}
460
- interface PlantOwner {
461
- name: string;
462
- }
463
- class PlantOwner extends DomainEntity<PlantOwner> implements PlantOwner {}
464
-
465
- // define the plant
466
- interface Plant {
467
- pot: PlantPot;
468
- owners: PlantOwner[];
469
- lastWatered: string;
470
- }
471
- class Plant extends DomainEntity<Plant> implements Plant {
472
- /**
473
- * define that `pot` and `owners` are nested domain objects, and specify which domain objects they are, so that they can be hydrated during instantiation if needed.
474
- */
475
- public static nested = { pot: PlantPot, owners: PlantOwner };
476
- }
477
-
478
- // instantiate your domain object
479
- const plant = new Plant({
480
- pot: { diameterInInches: 7 }, // note, not an instance of `PlantPot`
481
- owners: [{ name: 'bob' }], // note, not an instance of `PlantOwner`
482
- lastWatered: 'monday',
483
- });
484
-
485
- // and find that, because `.nested.pot` was defined, `pot` was instantiated as a `PlantPot`
486
- expect(plant.pot).toBeInstanceOf(PlantPot);
487
-
488
- // and find that, because `.nested.owners` was defined, each element of `owners` was instantiated as a `PlantOwner`
489
- plant.owners.forEach((owner) => expect(owner).toBeInstance(PlantOwner));
490
- ```
491
-
492
- You may be thinking to yourself, "Didn't i just define what the nested DomainObjects were in the type definition, when defining the interface? Why do i have to define it again?". Agreed! Unfortunately, typescript removes all type information at runtime. Therefore, we have no choice but to repeat this information in another way if we want to use this information at runtime. (See #8 for progress on automating this).
493
-
494
- ## fn `getUniqueIdentifier(obj: DomainEntity | DomainLiteral)`
495
-
496
- Domain models inform us of what properties uniquely identify a domain object.
497
-
498
- i.e.,:
499
- - literals are uniquely identified by all of their non-metadata properties
500
- - entities are uniquely identified by an explicitly subset of their properties, declared via the `.unique` static property
501
-
502
- this `getUniqueIdentifier` function leverages this knowledge to return a normal object containing only the properties that uniquely identify the domain object you give it.
503
-
504
- ## fn `serialize(value: any)`
505
-
506
- Domain modeling gives additional information that we can use for `change detection` and `identity comparisons`.
507
-
508
- `domain-objects` allows us to use that information conveniently with the functions `serialize`.
509
-
510
- `serialize` deterministically converts any object you give it into a string representation:
511
-
512
- - deterministically sort all array items
513
- - deterministically sort all object keys
514
- - remove non-unique properties from nested domain objects
515
-
516
- due to this deterministic serialization, we are able to use this fn for [`change detection`](#change-detection) and [`identity comparisons`](#identity-comparison). See the [examples](#usage-examples) section above for an example of each.
517
-
518
-
519
- ## `DomainObject.build`
520
-
521
- Add getters to your domain object instances, easily.
522
-
523
- By default, .build will wrap your dobj instances `withImmute`, to give you immute operations such as `.clone(andSet?: Partial<T>)`
524
-
525
- For example,
526
- ```ts
527
- const ship = RocketShip.build({
528
- serialNumber: 'SN1',
529
- fuelQuantity: 9001,
530
- passengers: 3,
531
- });
532
- const shipTwin = ship.clone()
533
- const shipUsed = ship.clone({ fuelQuantity: 821 })
534
- ```
535
-
536
- Note, you can override your DomainObject's .build procedure to add your own getters
537
-
538
- For example,
539
- ```ts
540
-
541
- ```
542
-
543
- This gives you a simple way to enrich your objects with domain-specific logic, while still preserving immutability and ergonomics.
544
-
545
- ## `withImmute`
546
-
547
-
548
- Wraps any domain object to make it safer to use via immutable operations.
549
-
550
- Immutability helps avoid bugs caused by shared object references - where multiple procedures unintentionally share the same instance of data in memory. This is especially common concern in systems which leverage parallelism.
551
-
552
- `withImmute` adds immute operators to your dobj, such as
553
- - `.clone(update?: Partial<T>)`
554
-
555
- Added by default via `.build()`. Available for adhoc usage too:
556
-
557
- ```ts
558
- const plant = withImmute(new Plant({ ... }));
559
- const twin = plant.clone()
560
- ```
561
-
562
- ## `withImmute.clone(update?: Partial<T>)`
563
-
564
- Creates a new instance of the domain object with updated values — without modifying the original.
565
-
566
- This is helpful when working in a system that depends on immutability, such as functional logic, undo/redo flows, or parallel processing, where unintended mutations can introduce bugs.
567
-
568
- The `.clone()` method uses deep cloning and deep merging:
569
- - Every nested value is safely copied.
570
- - Only the fields you provide in the `update` are changed.
571
- - Original object remains untouched.
572
-
573
- Example:
574
-
575
- ```ts
576
- const plant = Plant.build({
577
- plantedIn: new PlantPot({ diameterInInches: 5 }),
578
- lastWatered: 'Monday',
579
- });
580
-
581
- const updated = plant.clone({ lastWatered: 'Tuesday' });
582
-
583
- expect(updated.lastWatered).toEqual('Tuesday');
584
- expect(plant.lastWatered).toEqual('Monday'); // original is unchanged
585
- ```
@@ -1,14 +0,0 @@
1
- require that fileName === operationName
2
-
3
- this follows the pattern of 1 operation per file
4
-
5
- ---
6
-
7
- the benefit is
8
-
9
- 1. we can always infer the procedure name from file name
10
- 2. we can find procedures by file name search
11
-
12
- ---
13
-
14
- that stacks ontop of the separate benefits of 1 operation per file
@@ -1,19 +0,0 @@
1
- failhide = any scenario where you hide real errors
2
-
3
- the most common patterns is
4
-
5
- try/catch
6
-
7
- ---
8
-
9
- the only cases where a trycatch is allowed is if the catch has an allowlist of the errors it catches and CAREFULLY handles those, while throwing the rest up
10
-
11
- otherwise, its a failhide hazard, where real errors will be silently hidden, leading to defects or hours of pointless debugging
12
-
13
- never failhide
14
-
15
- always failfast
16
-
17
- ---
18
-
19
- this is a mega blocker
@@ -1,13 +0,0 @@
1
- never try+catch just to hide the error
2
-
3
- if an error is thrown
4
-
5
- it should not be caught and hidden
6
-
7
- it should be rethrown
8
-
9
- ---
10
-
11
- if we want to use it for control flow logic, then we epxpect
12
- - all errors by default to be thrown
13
- - only errors that match very restricted conditions to be handled
@@ -1,54 +0,0 @@
1
- in some cases, its useful
2
-
3
- to try/catch
4
-
5
- to make an error more observable
6
-
7
- ---
8
-
9
- e.g.,
10
-
11
- ```ts
12
- try {
13
- // do something that throws
14
- await doSomething({ userUuid })
15
- } catch (error) {
16
- if (!(error instanceof Error)) throw error;
17
- throw Error(`doSomething.error: ${error.message}, for userUuid=${userUuid}`, { cause });
18
- }
19
- ```
20
-
21
- in these cases, its best to use HelpfulError.wrap instead
22
- - it automatically instantiates a HelpfulError (or more specific variant if specified) for maximum observability
23
-
24
- e.g.,
25
-
26
- ```ts
27
- import { HelpfulError } from 'helpful-errors';
28
-
29
- await HelpfulError.wrap(
30
- async () => await doSomething({ userUuid }),
31
- {
32
- message: 'doSomething.error',
33
- metadata: {
34
- userUuid,
35
- }
36
- }
37
- )()
38
- ```
39
-
40
- or
41
-
42
- ```ts
43
- import { UnexpectedCodePathError } from 'helpful-errors';
44
-
45
- await UnexpectedCodePathError.wrap(
46
- async () => await doSomething({ userUuid }),
47
- {
48
- message: 'doSomething.error',
49
- metadata: {
50
- userUuid,
51
- }
52
- }
53
- )()
54
- ```
@@ -1,17 +0,0 @@
1
-
2
- can failfast via UnexpectedCodePathError && BadRequestError in shell too
3
-
4
-
5
- ```sh
6
- # find the daemon info file (port-specific)
7
- INFO_FILES=($(ls /tmp/vpc-tunnel-*-info.json 2>/dev/null))
8
- if [ ${#INFO_FILES[@]} -eq 0 ]; then
9
- echo "✗ UnexpectedCodePathError: tunnel info file not found"
10
- exit 1
11
- elif [ ${#INFO_FILES[@]} -gt 1 ]; then
12
- echo "✗ UnexpectedCodePathError: multiple tunnel info files found: ${INFO_FILES[@]}"
13
- exit 1
14
- fi
15
- INFO_FILE="${INFO_FILES[0]}"
16
- echo "• using tunnel info: $INFO_FILE"
17
- ```