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,280 +0,0 @@
1
- # How to Write BDD Style Tests
2
-
3
- This guide explains the pattern for writing integration tests using `test-fns` with `given`, `when`, `then`, and `useBeforeAll`.
4
-
5
- ## Core Pattern
6
-
7
- ```typescript
8
- import { given, when, then, useBeforeAll } from 'test-fns';
9
-
10
- describe('featureName', () => {
11
- // Shared setup for all tests in the describe block
12
- const dbConnection = useBeforeAll(() => getDatabaseConnection());
13
- afterAll(async () => dbConnection.end());
14
-
15
- given('[case1] description of the initial state', () => {
16
- // Setup specific to this case, shared across all when/then blocks
17
- const scene = useBeforeAll(async () => {
18
- // Create test data
19
- const entity = await createEntity({ dbConnection });
20
- return { entity };
21
- });
22
-
23
- when('[t0] action or event occurs', () => {
24
- then('expected outcome', async () => {
25
- // Execute and verify using scene.entity
26
- const result = await performAction({ id: scene.entity.id });
27
- expect(result).toEqual(expectedValue);
28
- });
29
- });
30
-
31
- when('[t1] different action occurs', () => {
32
- then('different expected outcome', async () => {
33
- // Another test using the same scene
34
- const result = await performOtherAction({ id: scene.entity.id });
35
- expect(result).toEqual(otherExpectedValue);
36
- });
37
- });
38
- });
39
- });
40
- ```
41
-
42
- ## Key Principles
43
-
44
- ### 1. Wrap Everything in `describe`
45
-
46
- All tests for a feature should be wrapped in a single `describe` block:
47
-
48
- ```typescript
49
- describe('syncPhoneFromWhodis', () => {
50
- // all given/when/then blocks go here
51
- });
52
- ```
53
-
54
- ### 2. Use `useBeforeAll` for shared resources
55
-
56
- Instead of `let` + `beforeAll` + `afterAll`:
57
-
58
- e.g.,
59
- ```typescript
60
- // ❌ Don't do this
61
- let dbConnection: DatabaseConnection;
62
- beforeAll(async () => {
63
- dbConnection = await getDatabaseConnection();
64
- });
65
- afterAll(async () => {
66
- await dbConnection.end();
67
- });
68
-
69
- // ✅ Do this
70
- const dbConnection = useBeforeAll(() => getDatabaseConnection());
71
- afterAll(async () => dbConnection.end());
72
- ```
73
-
74
- ### 3. Label given(scenes) with `[caseN]`
75
-
76
- Each `given` block should have a unique case label:
77
-
78
- ```typescript
79
- given('[case1] doer with outdated phone', () => { ... });
80
- given('[case2] doer with matching phone', () => { ... });
81
- given('[case3] doer does not exist', () => { ... });
82
- ```
83
-
84
- ### 4. Label when(event) with `[tN]`
85
-
86
- Each `when` block should have an event time index label. The counter resets within each `given` block:
87
-
88
- ```typescript
89
- given('[case1] first scenario', () => {
90
- when('[t0] command executed in PLAN mode', () => { ... });
91
- when('[t1] command executed in EXECUTE mode', () => { ... });
92
- });
93
-
94
- given('[case2] second scenario', () => {
95
- when('[t0] first action', () => { ... }); // counter resets to 0
96
- when('[t1] second action', () => { ... });
97
- });
98
- ```
99
-
100
- ### 5. One Behavioral Assertion per `then` Block
101
-
102
- Each `then` block should test a single behavioral assertion. This makes test failures more precise and test names more descriptive:
103
-
104
- ```typescript
105
- // ❌ Don't do this - multiple assertions in one then
106
- when('[t0] command executed in PLAN mode', () => {
107
- then('decision is UPDATE and doer remains unchanged', async () => {
108
- const result = await command({ mode: 'PLAN' });
109
- expect(result.decision).toEqual('UPDATE');
110
- expect(result.before.doer.contactPhoneNumber).toEqual('+13175550200');
111
-
112
- const doerAfter = await doerDao.findByUnique({ dbConnection, userUuid });
113
- expect(doerAfter?.contactPhoneNumber).toEqual('+13175550200');
114
- });
115
- });
116
-
117
- // ✅ Do this - separate then blocks for each behavioral assertion
118
- when('[t0] command executed in PLAN mode', () => {
119
- then('decision is "UPDATE"', async () => {
120
- const result = await command({ mode: 'PLAN' });
121
- expect(result.decision).toEqual('UPDATE');
122
- });
123
-
124
- then('before.doer.contactPhoneNumber is "+13175550200"', async () => {
125
- const result = await command({ mode: 'PLAN' });
126
- expect(result.before.doer.contactPhoneNumber).toEqual('+13175550200');
127
- });
128
-
129
- then('doer contactPhoneNumber remains unchanged', async () => {
130
- await command({ mode: 'PLAN' });
131
- const doerAfter = await doerDao.findByUnique({ dbConnection, userUuid });
132
- expect(doerAfter?.contactPhoneNumber).toEqual('+13175550200');
133
- });
134
- });
135
- ```
136
-
137
- ### 6. Use `scene` for Shared Test Data
138
-
139
- When multiple `when/then` blocks need the same test data, use `useBeforeAll` to create a `scene`:
140
-
141
- ```typescript
142
- given('[case1] description', () => {
143
- const scene = useBeforeAll(async () => {
144
- const doer = await createDoer({ dbConnection });
145
- const provider = await createProvider({ dbConnection, doerId: doer.id });
146
- return { doer, provider };
147
- });
148
-
149
- when('[t0] first test', () => {
150
- then('outcome', async () => {
151
- // Access scene.doer and scene.provider
152
- const result = await action({ doerId: scene.doer.id });
153
- });
154
- });
155
-
156
- when('[t1] second test', () => {
157
- then('outcome', async () => {
158
- // Same scene is reused
159
- const result = await otherAction({ providerId: scene.provider.id });
160
- });
161
- });
162
- });
163
- ```
164
-
165
- ### 7. Cases Without Setup
166
-
167
- If a case doesn't need setup (e.g., testing error handling with invalid input), skip the `scene`:
168
-
169
- ```typescript
170
- given('[case4] valid userUuid', () => {
171
- when('[t7] Whodis user cannot be found', () => {
172
- then('command throws error', async () => {
173
- await expect(
174
- command({ userUuid: '00000000-0000-0000-0000-000000000001' }),
175
- ).rejects.toThrow('Whodis user not found');
176
- });
177
- });
178
- });
179
- ```
180
-
181
- ## Complete Example
182
-
183
- ```typescript
184
- import { given, when, then, useBeforeAll } from 'test-fns';
185
- import { getDatabaseConnection } from '../../utils/database/getDatabaseConnection';
186
- import { myCommand } from './myCommand';
187
-
188
- describe('myCommand', () => {
189
- const dbConnection = useBeforeAll(() => getDatabaseConnection());
190
- afterAll(async () => dbConnection.end());
191
-
192
- given('[case1] entity exists with state A', () => {
193
- const scene = useBeforeAll(async () => {
194
- const entity = await createEntity({
195
- dbConnection,
196
- state: 'A',
197
- });
198
- return { entity };
199
- });
200
-
201
- when('[t0] command executed in PLAN mode', () => {
202
- then('decision is "UPDATE"', async () => {
203
- const result = await myCommand({
204
- entityId: scene.entity.id,
205
- mode: 'PLAN',
206
- });
207
- expect(result.decision).toEqual('UPDATE');
208
- });
209
-
210
- then('entity state remains "A"', async () => {
211
- await myCommand({ entityId: scene.entity.id, mode: 'PLAN' });
212
- const entityAfter = await findEntity({ dbConnection, id: scene.entity.id });
213
- expect(entityAfter.state).toEqual('A');
214
- });
215
- });
216
-
217
- when('[t1] command executed in EXECUTE mode', () => {
218
- then('decision is "UPDATE"', async () => {
219
- const result = await myCommand({
220
- entityId: scene.entity.id,
221
- mode: 'EXECUTE',
222
- });
223
- expect(result.decision).toEqual('UPDATE');
224
- });
225
-
226
- then('after.state is "B"', async () => {
227
- const result = await myCommand({
228
- entityId: scene.entity.id,
229
- mode: 'EXECUTE',
230
- });
231
- expect(result.after.state).toEqual('B');
232
- });
233
-
234
- then('entity state is updated to "B"', async () => {
235
- await myCommand({ entityId: scene.entity.id, mode: 'EXECUTE' });
236
- const entityAfter = await findEntity({ dbConnection, id: scene.entity.id });
237
- expect(entityAfter.state).toEqual('B');
238
- });
239
- });
240
- });
241
-
242
- given('[case2] entity already in state B', () => {
243
- const scene = useBeforeAll(async () => {
244
- const entity = await createEntity({
245
- dbConnection,
246
- state: 'B',
247
- });
248
- return { entity };
249
- });
250
-
251
- when('[t0] command executed', () => {
252
- then('decision is "NOCHANGE"', async () => {
253
- const result = await myCommand({
254
- entityId: scene.entity.id,
255
- mode: 'EXECUTE',
256
- });
257
- expect(result.decision).toEqual('NOCHANGE');
258
- });
259
- });
260
- });
261
-
262
- given('[case3] invalid entityId', () => {
263
- when('[t0] command executed', () => {
264
- then('throws error', async () => {
265
- await expect(
266
- myCommand({ entityId: 'invalid-id', mode: 'PLAN' }),
267
- ).rejects.toThrow('Entity not found');
268
- });
269
- });
270
- });
271
- });
272
- ```
273
-
274
- ## Benefits
275
-
276
- 1. **Readable test output**: Test names clearly show the scenario being tested
277
- 2. **Efficient setup**: `useBeforeAll` runs once per `given` block, not per test
278
- 3. **Immutable references**: `const scene` and `const dbConnection` prevent accidental reassignment
279
- 4. **Clear labeling**: `[caseN]` and `[tN]` labels make it easy to identify and discuss specific tests
280
- 5. **Black-box testing**: Tests interact only through the contract layer, not internal implementations
@@ -1,41 +0,0 @@
1
- when possible, prefer data driven, caselist based, tests
2
-
3
- this is especially applicable for unit tests, which often evaluate a transform
4
-
5
- ---
6
-
7
-
8
- for example
9
-
10
-
11
- ```ts
12
-
13
- const TEST_CASES = [
14
- {
15
- description: 'capitalizes the first word in a sentence',
16
- given: {
17
- input: 'the bird is in the basket',
18
- },
19
- expect: {
20
- output: 'The bird is in the basket',
21
- }
22
- },
23
- {
24
- description: 'retains existing capitals in the sentence',
25
- given: {
26
- input: 'that Doctor Goose is a loon!',
27
- },
28
- expect: {
29
- output: 'That Doctor Goose is a loon!',
30
- }
31
- },
32
- ]
33
-
34
- describe('asSentenceCase', () => {
35
- TEST_CASES.map(thisCase => test(thisCase.description, () => {
36
- const output = asSentenceCase(thisCase.given.input);
37
- expect(output).toEqual(thisCase.expect.output);
38
- }))
39
- })
40
-
41
- ```
@@ -1,185 +0,0 @@
1
- # test-fns
2
-
3
- ![ci_on_commit](https://github.com/ehmpathy/test-fns/workflows/ci_on_commit/badge.svg)
4
- ![deploy_on_tag](https://github.com/ehmpathy/test-fns/workflows/deploy_on_tag/badge.svg)
5
-
6
- write usecase driven tests systematically for simpler, safer, and more readable code
7
-
8
- # purpose
9
-
10
- establishes a pattern of writing tests for simpler, safer, and more readable code.
11
-
12
- by defining tests in terms of usecases (`given`, `when`, `then`) your tests are
13
- - simpler to write
14
- - easier to read
15
- - safer to trust
16
-
17
- # install
18
-
19
- ```sh
20
- npm install --save test-fns
21
- ```
22
-
23
- # use
24
-
25
- ```ts
26
- type Plant = { id: number, hydration: 'DRY' | 'WET' };
27
- const doesPlantNeedWater = (plant: Plant) => plant.hydration === 'DRY';
28
-
29
- describe('doesPlantNeedWater', () => {
30
- given('a plant', () => {
31
- when('the plant doesnt have enough water', () => {
32
- const plant: Plant = {
33
- id: 7,
34
- hydration: 'DRY',
35
- };
36
- then('it should return true', () => {
37
- expect(doesPlantNeedWater(plant)).toEqual(true)
38
- })
39
- })
40
- })
41
- })
42
- ```
43
-
44
- produces
45
-
46
- ```sh
47
- PASS src/givenWhenThen.test.ts
48
- doesPlantNeedWater
49
- given: a plant
50
- when: the plant doesnt have enough water
51
- ✓ then: it should return true (1 ms)
52
- ```
53
-
54
- # features
55
-
56
-
57
- ### .runIf(condition) && .skipIf(condition)
58
-
59
- skip running the suite if the condition is not met
60
-
61
- ```ts
62
- describe('your test', () => {
63
- given.runIf(onLocalMachine)('some test that should only run locally', () => {
64
- then.skipIf(onProduction)('some test that should not run against production', () => {
65
- expect(onProduction).toBeFalse()
66
- })
67
- })
68
- })
69
- ```
70
-
71
- ### usePrep
72
-
73
- prepare test scenarios within a .given/.when block asynchronously, without any `let`s or `beforeAll`s
74
-
75
- `usePrep` accepts a `mode` option to control when setup runs:
76
- - `mode: 'beforeAll'` - runs setup once for all tests (default)
77
- - `mode: 'beforeEach'` - runs setup fresh before each test
78
-
79
- ```ts
80
- given('an overdue invoice', () => {
81
- const invoice = usePrep(async () => {
82
- const invoiceOverdue = await ... // your logic
83
- return invoiceOverdue;
84
- })
85
-
86
- then('it should invoke a reminder', async () => {
87
- const result = await nurtureInvoice({ invoice }, context)
88
- expect(result.sent.reminder).toEqual(true)
89
- })
90
- })
91
- ```
92
-
93
- **useBeforeAll and useBeforeEach are convenience wrappers** around `usePrep`:
94
- - `useBeforeAll(setup)` is equivalent to `usePrep(setup, { mode: 'beforeAll' })`
95
- - `useBeforeEach(setup)` is equivalent to `usePrep(setup, { mode: 'beforeEach' })`
96
-
97
- Use the named functions for clarity about when setup runs.
98
-
99
- ### useBeforeAll
100
-
101
- prepare test resources once for all tests in a suite, optimizing setup time for expensive operations
102
-
103
- ```ts
104
- describe('spaceship refueling system', () => {
105
- given('a spaceship that needs to refuel', () => {
106
- const spaceship = useBeforeAll(async () => {
107
- // This runs once before all tests in this suite
108
- const ship = await prepareExampleSpaceship();
109
- await ship.dock();
110
- return ship;
111
- });
112
-
113
- when('no changes are made', () => {
114
- then('it should be docked', async () => {
115
- expect(spaceship.isDocked).toEqual(true);
116
- });
117
-
118
- then('it should need fuel', async () => {
119
- expect(spaceship.fuelLevel).toBeLessThan(spaceship.fuelCapacity);
120
- });
121
- });
122
-
123
- when('it connects to the fuel station', () => {
124
- const result = useBeforeAll(async () => await spaceship.connectToFuelStation());
125
-
126
- then('it should be connected', async () => {
127
- expect(result.connected).toEqual(true);
128
- });
129
-
130
- then('it should calculate required fuel', async () => {
131
- expect(result.fuelNeeded).toBeGreaterThan(0);
132
- });
133
- });
134
- });
135
- });
136
- ```
137
-
138
- ### useBeforeEach
139
-
140
- prepare fresh test resources before each test, ensuring test isolation
141
-
142
- ```ts
143
- describe('spaceship combat system', () => {
144
- given('a spaceship in battle', () => {
145
- // This runs before each test, ensuring a fresh spaceship
146
- const spaceship = useBeforeEach(async () => {
147
- const ship = await prepareExampleSpaceship();
148
- await ship.resetShields();
149
- return ship;
150
- });
151
-
152
- when('no changes are made', () => {
153
- then('it should have full shields', async () => {
154
- expect(spaceship.shields).toEqual(100);
155
- });
156
-
157
- then('it should be ready for combat', async () => {
158
- expect(spaceship.status).toEqual('READY');
159
- });
160
- });
161
-
162
- when('it takes damage', () => {
163
- const result = useBeforeEach(async () => await spaceship.takeDamage(25));
164
-
165
- then('it should reduce shield strength', async () => {
166
- expect(spaceship.shields).toEqual(75);
167
- });
168
-
169
- then('it should return damage report', async () => {
170
- expect(result.damageReceived).toEqual(25);
171
- });
172
- });
173
- });
174
- });
175
- ```
176
-
177
- **When to use each:**
178
- - `useBeforeAll`: Use when setup is expensive (database connections, API calls) and tests don't modify the resource
179
- - `useBeforeEach`: Use when tests modify the resource and need isolation between runs
180
- - `usePrep`: The base function that powers both - use when you want explicit control over the mode or need to dynamically choose between `beforeAll` and `beforeEach`
181
-
182
- **Key differences:**
183
- - All three functions (`usePrep`, `useBeforeAll`, `useBeforeEach`) create a proxy that defers setup until the test framework's lifecycle hooks run
184
- - `useBeforeAll` and `useBeforeEach` are just clearer, more readable shortcuts for `usePrep` with a specific mode
185
- - Choose based on readability: use `useBeforeAll`/`useBeforeEach` for explicit intent, or `usePrep` when mode needs to be configurable
@@ -1,23 +0,0 @@
1
- use snapshots whenever output artifacts are created
2
-
3
- why?
4
- - makes it easier to review in prs what is actually being produced
5
- - e.g., visual spotcheck, make sure it looks good
6
- - especially important when the output is userfacing (e.g., codegen, comms, etc)
7
-
8
- - makes it easier to detect exactly what the impact of a change is
9
- - most of the time its intended and the snapshot can just be updated
10
- - sometimes though, the snapshot diff exposes critical differences that are blockers or nitpicks that need to be addressed
11
-
12
-
13
- ---
14
-
15
- critical:
16
-
17
- use both
18
- - a snapshot
19
- - AND
20
- - explicit assertions before the snapshot
21
-
22
- snapshot is for observability in code reviews and aesthetic verification
23
- assertions are for functional verification
@@ -1 +0,0 @@
1
- practices on which terms to use to promote a ubiquitous language go here
@@ -1,10 +0,0 @@
1
- never use the term `existing`; its a needless gerund
2
-
3
- either
4
- - foundBefore
5
- - or
6
- - foundAfter
7
-
8
- or some nonGerund alternative
9
-
10
- but never `existing`
@@ -1,39 +0,0 @@
1
- always use [noun][adjective] order
2
-
3
- e.g.,
4
-
5
- instead of
6
-
7
- currentOwner = [adj][noun]
8
-
9
- prefer
10
-
11
- ownerCurrent = [noun][adj]
12
-
13
-
14
- ---
15
-
16
- instead of
17
-
18
-
19
- foundUser
20
-
21
- prefer
22
-
23
- userFound
24
-
25
- ----
26
-
27
-
28
- why?
29
-
30
- because it enables autocomplete via common prefixes
31
-
32
- e.g.,
33
-
34
- userBefore
35
- userAfter
36
- userCreated
37
- etc
38
-
39
- can see via autocomplete suggestions all the variants of user available in the current scope, rather than need to remember what the variants are
@@ -1,13 +0,0 @@
1
- these are the terms we use to describe how to use practices
2
-
3
- forbid = search to ensure this was not done
4
- - it's a bad practice
5
- - it's a BLOCKER if detected
6
-
7
- prefer = search for opportunities to do this
8
- - it's a best practice, but not mandatory
9
- - it's a NITPICK if detected
10
-
11
- require = search for opportunities to do this
12
- - it's a best practice, and is mandatory
13
- - it's a BLOCKER if detected
@@ -1,7 +0,0 @@
1
- prodcode = the product's code
2
- - the code that produces the behavior users experience
3
- - the code that gets shipped to production
4
-
5
- testcode = the builder's code
6
- - the code that verifies the behaviors users experience
7
- - the code that runs at build time to protect production
@@ -1,3 +0,0 @@
1
- briefs on what tones to use in writing goes here
2
-
3
- tones impact how things are thought about, so they are important to curate
@@ -1,29 +0,0 @@
1
- // style:tactics (compressed)
2
-
3
- - name:ubiqlang
4
- - use one canonical term per concept (e.g., always use `customer`, never `client`, `user`, or `account`)
5
- - eliminate overloads: each term must refer to exactly one thing (e.g., do not use `update` for both "save" and "fetch")
6
- - when introducing a new term:
7
- - define its interface and role
8
- - document its meaning clearly
9
- - ensure consistent usage across code, docs, and tests
10
-
11
- - name:treestruct
12
- - for mechanisms (procedures, steps, transforms), use `[Verb][NounHierarchy]` format
13
- - verb must come first and be atomic (e.g., `gen`, `set`, `get`, `map`, `submit`)
14
- - examples: `genStepImagineViaTemplate`, `setCustomerPhone`
15
- - for resources (records, results), use `[NounHierarchy][State]?` format
16
- - `State` is optional and should clarify the form or phase (e.g., `Found`, `Updated`, `Draft`, `Final`)
17
- - examples: `contentFound`, `invoiceDraft`, `customer`
18
- - group nouns by domain to maintain treesorted file and symbol organization
19
-
20
- - words:lowercase
21
- - use lowercase for all non-code text (comments, prompts, markdown, logs)
22
- - never capitalize:
23
- - the start of a sentence
24
- - generic nouns (`customer`, `step`)
25
- - verbs (`set`, `submit`, `handle`)
26
- - system messages or instructions
27
- - only capitalize:
28
- - code symbols (e.g., `StitchStepImagine`, `GitRepo`)
29
- - proper nouns or brand names (e.g., OpenAI, GitHub)
@@ -1,5 +0,0 @@
1
- compress these three style tactics for use in prompt context
2
-
3
- retain references to the tactics each section came from, so that it can always be dereferenced
4
-
5
- use outline form with each tactic a root bullet