rhachet-roles-ehmpathy 1.13.0 → 1.13.1

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,485 +0,0 @@
1
- # .brief.demo = declastruct pattern, implemented for the stripe sdk
2
-
3
- Use the declastruct pattern whenever we need to construct and control remote resources. Each remote resource is considered a structure that we declaratively control, via idempotent get+set semantics.
4
-
5
-
6
- ### 1. first, declare the entities we wish to construct
7
-
8
- declare them as explicit domain-objects
9
-
10
- most importantly, we must understand
11
- - the unique, natural key upon which we can drive idempotency
12
- - the primary, artificial key upon which we can reference the resource with in foreign keys with other entities
13
-
14
- ref: https://github.com/ehmpathy/declastruct-stripe-sdk/blob/1f9e2ecefb46028f75348aed8a5f9e3528eb5c1e/src/domain/objects/DeclaredStripeCustomer.ts
15
-
16
- ```ts
17
- import { DomainEntity, DomainLiteral } from 'domain-objects';
18
-
19
- /**
20
- * .what = a declarative structure which represents a Stripe Customer
21
- */
22
- export interface DeclaredStripeCustomer {
23
- /**
24
- * the public stripe customer id of this customer
25
- */
26
- id?: string;
27
-
28
- /**
29
- * the email address of the customer
30
- *
31
- * note
32
- * - stripe does not enforce this to be a unique key
33
- * - however, to create a pit-of-success, this is used as the unique key with declastruct, since it is the only non-id field that we can search on
34
- */
35
- email: string;
36
-
37
- /**
38
- * then name of the customer, if set
39
- */
40
- name: null | string;
41
-
42
- /**
43
- * a description of the customer, if set
44
- */
45
- description: null | string;
46
-
47
- /**
48
- * then phone of the customer, if set
49
- */
50
- phone: null | string;
51
-
52
- /**
53
- * metadata that the customer was tagged with
54
- */
55
- metadata: null | Record<string, string>;
56
- }
57
-
58
- export class DeclaredStripeCustomer
59
- extends DomainEntity<DeclaredStripeCustomer>
60
- implements DeclaredStripeCustomer
61
- {
62
- public static primary = ['id'] as const;
63
- public static unique = ['email'] as const;
64
- public static nested = {
65
- metadata: DomainLiteral,
66
- };
67
- }
68
- ```
69
-
70
-
71
- ### 2. next, declare how to translate from the sdk's shape to our declared shape
72
-
73
- declare how to translate from the sdk's shape to our declared shape
74
-
75
- why? because its rare that the simplest way to represent a domain-entity is the way that the api has represented it, due to backwards compat && practice differences
76
-
77
- our objective is
78
- - make things as simple and intuitive to understand
79
- - provide a pit of success
80
-
81
- therefore, we always cast into our own representation, to give ourselves the flexibility to speak more clearly about entities
82
-
83
- additionally, this enables us to cast them into `domain-object` instances, which give us explicit declarations of the distinct objects and domain-driven features like references
84
-
85
- ref: https://github.com/ehmpathy/declastruct-stripe-sdk/blob/1f9e2ecefb46028f75348aed8a5f9e3528eb5c1e/src/logic/cast/castToDeclaredStripeCustomer.ts
86
- ```ts
87
- import { UnexpectedCodePathError } from 'helpful-errors';
88
- import Stripe from 'stripe';
89
- import { HasMetadata, omit } from 'type-fns';
90
-
91
- import { DeclaredStripeCustomer } from '../../domain/objects/DeclaredStripeCustomer';
92
-
93
- export const castToDeclaredStripeCustomer = (
94
- input: Stripe.Customer,
95
- ): HasMetadata<DeclaredStripeCustomer> => {
96
- return new DeclaredStripeCustomer({
97
- id: input.id,
98
- email:
99
- input.email ??
100
- UnexpectedCodePathError.throw(
101
- 'no email found for customer. not a valid declared stripe customer',
102
- { input },
103
- ),
104
- description: input.description ?? null,
105
- name: input.name ?? null,
106
- phone: input.phone ?? null,
107
- metadata: (() => {
108
- const obj = input.metadata ? omit(input.metadata, ['exid']) : {};
109
- if (Object.keys(obj).length === 0) return null;
110
- return obj;
111
- })(),
112
- }) as HasMetadata<DeclaredStripeCustomer>;
113
- };
114
-
115
- ```
116
-
117
-
118
- ### 3. next, declare how to get the resource from the remote repository
119
-
120
- support get.by.unique, get.by.primary, and get.by.ref
121
-
122
- ref: https://github.com/ehmpathy/declastruct-stripe-sdk/blob/1f9e2ecefb46028f75348aed8a5f9e3528eb5c1e/src/logic/customer/getCustomer.ts
123
- ```ts
124
- import { Ref, RefByPrimary, RefByUnique, isUniqueKeyRef } from 'domain-objects';
125
- import { BadRequestError, UnexpectedCodePathError } from 'helpful-errors';
126
- import { HasMetadata, PickOne } from 'type-fns';
127
- import { VisualogicContext } from 'visualogic';
128
-
129
- import { StripeApiContext } from '../../domain/constants';
130
- import { DeclaredStripeCustomer } from '../../domain/objects/DeclaredStripeCustomer';
131
- import { castToDeclaredStripeCustomer } from '../cast/castToDeclaredStripeCustomer';
132
-
133
- /**
134
- * .what = gets a customer from stripe
135
- */
136
- export const getCustomer = async (
137
- input: {
138
- by: PickOne<{
139
- primary: RefByPrimary<typeof DeclaredStripeCustomer>;
140
- unique: RefByUnique<typeof DeclaredStripeCustomer>;
141
- ref: Ref<typeof DeclaredStripeCustomer>;
142
- }>;
143
- },
144
- context: StripeApiContext & VisualogicContext,
145
- ): Promise<HasMetadata<DeclaredStripeCustomer> | null> => {
146
- // handle by ref
147
- if (input.by.ref)
148
- return isUniqueKeyRef({ of: DeclaredStripeCustomer })(input.by.ref)
149
- ? getCustomer({ by: { unique: input.by.ref } }, context)
150
- : getCustomer({ by: { primary: input.by.ref } }, context);
151
-
152
- // handle get by id
153
- if (input.by.primary) {
154
- try {
155
- const customer = await context.stripe.customers.retrieve(
156
- input.by.primary.id,
157
- );
158
- if (customer.deleted) return null;
159
- return castToDeclaredStripeCustomer(customer);
160
- } catch (error) {
161
- if (!(error instanceof Error)) throw error;
162
- if (error.message.includes('No such customer')) return null; // handle "null" responses without an error
163
- throw error;
164
- }
165
- }
166
-
167
- // handle get by email
168
- if (input.by.unique) {
169
- const {
170
- data: [customer, ...otherCustomers],
171
- } = await context.stripe.customers.list({
172
- email: input.by.unique.email,
173
- });
174
- if (otherCustomers.length)
175
- throw new BadRequestError('more than one customer for this email', {
176
- input,
177
- customers: [customer, ...otherCustomers],
178
- });
179
- if (!customer) return null;
180
- return castToDeclaredStripeCustomer(customer);
181
- }
182
-
183
- // otherwise, unexpected input
184
- throw new UnexpectedCodePathError('invalid input', { input });
185
- };
186
- ```
187
-
188
- and dont forget the tests!
189
-
190
- ref: https://github.com/ehmpathy/declastruct-stripe-sdk/blob/1f9e2ecefb46028f75348aed8a5f9e3528eb5c1e/src/logic/customer/getCustomer.integration.test.ts
191
- ```ts
192
- import { given, then, when, useBeforeAll } from 'test-fns';
193
- import { HasMetadata } from 'type-fns';
194
- import { getUuid } from 'uuid-fns';
195
-
196
- import { getStripeCredentials } from '../../__test_assets__/getStripeCredentials';
197
- import { DeclaredStripeCustomer } from '../../domain/objects/DeclaredStripeCustomer';
198
- import { getStripe } from '../auth/getStripe';
199
- import { getCustomer } from './getCustomer';
200
- import { setCustomer } from './setCustomer';
201
-
202
- describe('getCustomer', () => {
203
- given('a by.primary', () => {
204
- when('the customer does not exist', () => {
205
- const stripeCustomerId = getUuid();
206
-
207
- then('we should get null', async () => {
208
- const customer = await getCustomer(
209
- { by: { primary: { id: stripeCustomerId } } },
210
- { stripe: await getStripe(getStripeCredentials()), log: console },
211
- );
212
- expect(customer).toEqual(null);
213
- });
214
- });
215
-
216
- when('the customer does exist', () => {
217
- const customerFound: HasMetadata<DeclaredStripeCustomer> = useBeforeAll(
218
- async () =>
219
- await setCustomer(
220
- {
221
- finsert: {
222
- email: 'svc-protools@ahbode.dev',
223
- name: 'svc-protools.test',
224
- description: 'test',
225
- metadata: null,
226
- phone: null,
227
- },
228
- },
229
- { stripe: await getStripe(getStripeCredentials()), log: console },
230
- ),
231
- );
232
-
233
- when('we attempt to get the customer', () => {
234
- then('we should get null', async () => {
235
- const customer = await getCustomer(
236
- { by: { primary: { id: customerFound.id } } },
237
- { stripe: await getStripe(getStripeCredentials()), log: console },
238
- );
239
- expect(customer?.id).toEqual(customerFound.id);
240
- });
241
- });
242
- });
243
- });
244
- });
245
- ```
246
-
247
- ### 4. last, declare how to set the resource into the remote repository
248
-
249
- support set via both set.finsert and set.upsert idempotent operations
250
-
251
- ref: https://github.com/ehmpathy/declastruct-stripe-sdk/blob/1f9e2ecefb46028f75348aed8a5f9e3528eb5c1e/src/logic/customer/setCustomer.ts
252
-
253
- ```ts
254
- import { serialize } from 'domain-objects';
255
- import { toHashSha256Sync } from 'hash-fns';
256
- import { UnexpectedCodePathError } from 'helpful-errors';
257
- import { HasMetadata, PickOne } from 'type-fns';
258
- import {
259
- getResourceNameFromFileName,
260
- VisualogicContext,
261
- withLogTrail,
262
- } from 'visualogic';
263
-
264
- import { StripeApiContext } from '../../domain/constants';
265
- import { DeclaredStripeCustomer } from '../../domain/objects/DeclaredStripeCustomer';
266
- import { castToDeclaredStripeCustomer } from '../cast/castToDeclaredStripeCustomer';
267
- import { getCustomer } from './getCustomer';
268
-
269
- export const setCustomer = withLogTrail(
270
- async (
271
- input: PickOne<{
272
- finsert: DeclaredStripeCustomer;
273
- upsert: DeclaredStripeCustomer;
274
- }>,
275
- context: StripeApiContext & VisualogicContext,
276
- ): Promise<HasMetadata<DeclaredStripeCustomer>> => {
277
- // lookup the customer
278
- const customerFound = await getCustomer(
279
- {
280
- by: {
281
- unique: {
282
- email:
283
- input.finsert?.email ??
284
- input.upsert?.email ??
285
- UnexpectedCodePathError.throw('no email in input', { input }),
286
- },
287
- },
288
- },
289
- context,
290
- );
291
-
292
- // sanity check that if the customer exists, their id matches the user's expectations, if any
293
- const stripeCustomerIdExpected = input.finsert?.id || input.upsert?.id;
294
- if (
295
- customerFound &&
296
- stripeCustomerIdExpected &&
297
- stripeCustomerIdExpected !== customerFound.id
298
- )
299
- throw new UnexpectedCodePathError(
300
- 'asked to setCustomer with a .primary=id which does not match the .unique=email',
301
- {
302
- stripeCustomerIdExpected,
303
- stripeCustomerIdFound: customerFound.id,
304
- customerFound,
305
- },
306
- );
307
-
308
- // if the customer was found, then handle that
309
- if (customerFound) {
310
- // if asked to finsert, then we can return it now
311
- if (input.finsert) return customerFound;
312
-
313
- // if asked to upsert, then we can update it now
314
- if (input.upsert)
315
- return castToDeclaredStripeCustomer(
316
- await context.stripe.customers.update(customerFound.id, {
317
- name: input.upsert.name ?? undefined,
318
- description: input.upsert.description ?? undefined,
319
- phone: input.upsert.phone ?? undefined,
320
- metadata: input.upsert.metadata ?? undefined,
321
- }),
322
- );
323
- }
324
-
325
- // otherwise, create the customer
326
- const customerDesired: DeclaredStripeCustomer =
327
- input.upsert ?? input.finsert;
328
- const customerCreated = await context.stripe.customers.create(
329
- {
330
- email: customerDesired.email,
331
- name: customerDesired.name ?? undefined,
332
- description: customerDesired.description ?? undefined,
333
- phone: customerDesired.phone ?? undefined,
334
- metadata: customerDesired.metadata ?? undefined,
335
- },
336
- {
337
- idempotencyKey: toHashSha256Sync(
338
- [
339
- // stage, // todo: pull stage from context.environment
340
- 'v1.0.0',
341
- serialize({ ...customerDesired }),
342
- ].join(';'),
343
- ),
344
- },
345
- );
346
- return castToDeclaredStripeCustomer(customerCreated);
347
- },
348
- { name: getResourceNameFromFileName(__filename) },
349
- );
350
- ```
351
-
352
-
353
- and of course, the tests
354
-
355
- ref: https://github.com/ehmpathy/declastruct-stripe-sdk/blob/1f9e2ecefb46028f75348aed8a5f9e3528eb5c1e/src/logic/customer/setCustomer.integration.test.ts
356
- ```ts
357
- import { given, then, useBeforeAll, when } from 'test-fns';
358
- import { getUuid } from 'uuid-fns';
359
-
360
- import { getStripeCredentials } from '../../__test_assets__/getStripeCredentials';
361
- import { getStripe } from '../auth/getStripe';
362
- import { setCustomer } from './setCustomer';
363
-
364
- const log = console;
365
-
366
- describe('setCustomer', () => {
367
- given('a .finsert', () => {
368
- when('the customer does not exist yet', () => {
369
- const email = `svc-protools.test.${getUuid()}@ahbode.dev`; // random uuid => new customer
370
-
371
- then('we should create it', async () => {
372
- const customer = await setCustomer(
373
- {
374
- finsert: {
375
- email,
376
- name: 'svc-protools.test',
377
- description: 'test',
378
- metadata: null,
379
- phone: null,
380
- },
381
- },
382
- { stripe: await getStripe(getStripeCredentials()), log },
383
- );
384
- console.log(customer);
385
- expect(customer.id).toContain('cus_');
386
- });
387
- });
388
-
389
- when('the customer already exists', () => {
390
- const email = `svc-protools.test.${getUuid()}@ahbode.dev`; // random uuid => new customer
391
- const customerBefore = useBeforeAll(
392
- async () =>
393
- await setCustomer(
394
- {
395
- finsert: {
396
- email,
397
- name: 'svc-protools.test',
398
- description: 'test',
399
- metadata: null,
400
- phone: null,
401
- },
402
- },
403
- { stripe: await getStripe(getStripeCredentials()), log },
404
- ),
405
- );
406
-
407
- then('it should not update the customers attributes', async () => {
408
- const customerAfter = await setCustomer(
409
- {
410
- finsert: {
411
- email,
412
- name: 'new name',
413
- description: 'test',
414
- metadata: null,
415
- phone: null,
416
- },
417
- },
418
- { stripe: await getStripe(getStripeCredentials()), log },
419
- );
420
- expect(customerAfter.name).not.toEqual('new name');
421
- expect(customerAfter.name).toEqual(customerBefore.name);
422
- });
423
- });
424
- });
425
- given('a .upsert', () => {
426
- when('the customer does not exist yet', () => {
427
- const email = `svc-protools.test.${getUuid()}@ahbode.dev`; // random uuid => new customer
428
-
429
- then('we should create it', async () => {
430
- const customer = await setCustomer(
431
- {
432
- upsert: {
433
- email,
434
- name: 'svc-protools.test',
435
- description: 'test',
436
- metadata: null,
437
- phone: null,
438
- },
439
- },
440
- { stripe: await getStripe(getStripeCredentials()), log },
441
- );
442
- console.log(customer);
443
- expect(customer.id).toContain('cus_');
444
- });
445
- });
446
-
447
- when('the customer already exists', () => {
448
- const email = `svc-protools.test.${getUuid()}@ahbode.dev`; // random uuid => new customer
449
- const customerBefore = useBeforeAll(
450
- async () =>
451
- await setCustomer(
452
- {
453
- upsert: {
454
- email,
455
- name: 'svc-protools.test',
456
- description: 'test',
457
- metadata: null,
458
- phone: null,
459
- },
460
- },
461
- { stripe: await getStripe(getStripeCredentials()), log },
462
- ),
463
- );
464
-
465
- then('it should update the customers attributes', async () => {
466
- const customerAfter = await setCustomer(
467
- {
468
- upsert: {
469
- email,
470
- name: 'new name',
471
- description: 'test',
472
- metadata: null,
473
- phone: null,
474
- },
475
- },
476
- { stripe: await getStripe(getStripeCredentials()), log },
477
- );
478
- expect(customerAfter.name).toEqual('new name');
479
- expect(customerAfter.name).not.toEqual(customerBefore.name);
480
- });
481
- });
482
- });
483
- });
484
- ```
485
-
@@ -1,13 +0,0 @@
1
- we need to be very skeptical of nullable attributes
2
-
3
- there needs to be a clear domain reason for why an attribute can be null - and it should be clearly articulated
4
-
5
- ---
6
-
7
- if there's no clear reason to support it as null, ensure the attribute has a clear type declared
8
-
9
- rational or its forbidden
10
-
11
- ===
12
-
13
- this is a BLOCKER level violation
@@ -1,15 +0,0 @@
1
- never allow "undefined" attributes for domain objects UNLESS they are database-generated metadata
2
-
3
-
4
- i.e.,
5
- - ids, createdAt, updatedAt, etc - these are allowed to be undefined, since they're metadata, and only known on read
6
-
7
- however, everything else should be explicitly knowable
8
- - if we know that it is null, then set it as null
9
- - however, we should be really clear as to WHY it can be null; if there is no good domain reason for null, forbid it
10
- - otherwise, define the exact type
11
-
12
-
13
- =====
14
-
15
- this is a BLOCKER level violation
@@ -1,9 +0,0 @@
1
- refs must be immutable
2
-
3
- primary keys must be immutable; otherwise, they are not a stable identifier => not a reference key candidate
4
-
5
- unique keys must be immutable; otherwise, they are not a stable identifier => not a reference key candidate
6
-
7
- ===
8
-
9
- this is a BLOCKER level violation when detected