rhachet-roles-ehmpathy 1.13.2 → 1.13.3

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 (353) hide show
  1. package/dist/logic/roles/architect/.briefs/criteria.given_when_then.[seed].v3.md +87 -0
  2. package/dist/logic/roles/architect/.briefs/practices/prefer.env_access.prep_over_dev.md +12 -0
  3. package/dist/logic/roles/architect/.briefs/ubiqlang.ambiguous-from-overload.md +1 -0
  4. package/dist/logic/roles/bhrain/.briefs/cognition/cog000.overview.and.premise.md +115 -0
  5. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.coordinates.spherical.md +69 -0
  6. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.metaphor.cauliflorous.md +44 -0
  7. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.metaphor.galactic_spacetravel.[article].md +42 -0
  8. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.metaphor.galactic_spacetravel.[lesson].md +60 -0
  9. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.structs.catalog.md +51 -0
  10. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.structs.treestruct.md +85 -0
  11. package/dist/logic/roles/bhrain/.briefs/cognition/cog021.structs.vector.md +112 -0
  12. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.definition.md +115 -0
  13. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct._.md +112 -0
  14. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.coords.1.spherical.md +80 -0
  15. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.coords.2.abstractive.md +59 -0
  16. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.coords.3.descriptive.md +64 -0
  17. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.persp.1.perspectives.md +88 -0
  18. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.persp.2.universal.md +82 -0
  19. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.persp.3.relative.md +106 -0
  20. package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.persp.4.fractal.md +83 -0
  21. package/dist/logic/roles/bhrain/.briefs/cognition/cog151.concept.treestruct.gravity.md +89 -0
  22. package/dist/logic/roles/bhrain/.briefs/cognition/cog201.cortal.focus.p1.definition.md +231 -0
  23. package/dist/logic/roles/bhrain/.briefs/cognition/cog201.cortal.focus.p1.examples.cont.md +82 -0
  24. package/dist/logic/roles/bhrain/.briefs/cognition/cog201.cortal.focus.p2.acuity.md +134 -0
  25. package/dist/logic/roles/bhrain/.briefs/cognition/cog201.cortal.focus.p2.breadth.md +151 -0
  26. package/dist/logic/roles/bhrain/.briefs/cognition/cog201.cortal.focus.p2.depth.md +147 -0
  27. package/dist/logic/roles/bhrain/.briefs/cognition/cog251.cortal.focus.p3.fabric.md +96 -0
  28. package/dist/logic/roles/bhrain/.briefs/cognition/cog251.cortal.focus.p3.mode.md +68 -0
  29. package/dist/logic/roles/bhrain/.briefs/cognition/cog251.cortal.focus.p3.rythm.md +56 -0
  30. package/dist/logic/roles/bhrain/.briefs/cognition/cog251.cortal.focus.p3.usecases.md +76 -0
  31. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.1.motion.primitives._.md +155 -0
  32. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.1.motion.primitives.acuity.md +94 -0
  33. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.1.motion.primitives.breadth.md +114 -0
  34. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.1.motion.primitives.breadth.vary.md +105 -0
  35. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.1.motion.primitives.depth.md +132 -0
  36. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.2.motion.composites._.md +106 -0
  37. package/dist/logic/roles/bhrain/.briefs/cognition/cog301.traversal.2.motion.composites.grammar.md +105 -0
  38. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.._.md +209 -0
  39. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.1.persp.as.berries.md +168 -0
  40. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.1.persp.as.vectors.md +74 -0
  41. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.1.persp.has.precision.tunable.md +80 -0
  42. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.2.1.primitives.rough._.md +99 -0
  43. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.2.1.primitives.rough.interrogative.md +108 -0
  44. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.2.1.primitives.rough.why.[article].md +55 -0
  45. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.2.2.composite.smooth._.md +83 -0
  46. package/dist/logic/roles/bhrain/.briefs/cognition/cog401.questions.2.2.composite.smooth.examples.md +101 -0
  47. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.1.primitives._.md +134 -0
  48. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.1.primitives.recall.md +149 -0
  49. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.1.primitives.steer.md +146 -0
  50. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.1.primitives.think.md +141 -0
  51. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.2.composites.zoom.md +127 -0
  52. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.3.catalogs.md +107 -0
  53. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang.3.grammar.md +124 -0
  54. package/dist/logic/roles/bhrain/.briefs/cognition/cog501.cortal.assemblylang_.md +0 -0
  55. package/dist/logic/roles/bhrain/.briefs/cognition/inflight/concept.vs.idea.md +70 -0
  56. package/dist/logic/roles/bhrain/.briefs/cognition/inflight/core.concept.adjectives.md +8 -0
  57. package/dist/logic/roles/bhrain/.briefs/distilisys.grammar.compressed.md +19 -0
  58. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.1.why.common.[article].md +32 -0
  59. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.1.why.term_smells.[article].md +36 -0
  60. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.1.why.term_smells.detection.[lesson].md +73 -0
  61. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.2.tactic.eliminate.[article].md +55 -0
  62. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.2.tactic.eliminate.[lesson].md +41 -0
  63. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.3.eliminator.[trait]._.md +66 -0
  64. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.3.eliminator.[trait].balance.md +36 -0
  65. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.3.eliminator.[trait].bane.md +34 -0
  66. package/dist/logic/roles/bhrain/.briefs/grammar/gerunds.3.eliminator.[trait].boon.md +35 -0
  67. package/dist/logic/roles/bhrain/.briefs/knowledge/kno101.primitives.1.ontology.[article].frame.docs_as_materializations.md +63 -0
  68. package/dist/logic/roles/bhrain/.briefs/knowledge/kno101.primitives.1.ontology.[article].frame.docs_as_references.md +45 -0
  69. package/dist/logic/roles/bhrain/.briefs/knowledge/kno101.primitives.2.rel.many_to_many.[article].md +37 -0
  70. package/dist/logic/roles/bhrain/.briefs/knowledge/kno101.primitives.3.instances.[article].md +39 -0
  71. package/dist/logic/roles/bhrain/.briefs/knowledge/kno101.primitives.4.documents.[article].md +37 -0
  72. package/dist/logic/roles/bhrain/.briefs/knowledge/kno101.primitives.5.concepts.[article].md +39 -0
  73. package/dist/logic/roles/bhrain/.briefs/knowledge/kno201.documents._.[article].md +48 -0
  74. package/dist/logic/roles/bhrain/.briefs/knowledge/kno201.documents._.[catalog].md +52 -0
  75. package/dist/logic/roles/bhrain/.briefs/knowledge/kno201.documents.articles.[article].md +40 -0
  76. package/dist/logic/roles/bhrain/.briefs/knowledge/kno201.documents.catalogs.[article].md +41 -0
  77. package/dist/logic/roles/bhrain/.briefs/knowledge/kno201.documents.demos.[article].md +42 -0
  78. package/dist/logic/roles/bhrain/.briefs/knowledge/kno201.documents.lessons.[article].md +42 -0
  79. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.compression.1.refs._.[article].md +41 -0
  80. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.compression.2.kernels._.[article].i1.md +50 -0
  81. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.compression.3.briefs._.[article].md +40 -0
  82. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.compression._.[article].md +90 -0
  83. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.compression._.[catalog].persp.garden.md +64 -0
  84. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[article].md +45 -0
  85. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].algorithm.md +54 -0
  86. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].color.md +56 -0
  87. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].empathy.md +54 -0
  88. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].entropy.md +54 -0
  89. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].gravity.md +54 -0
  90. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].joke.md +56 -0
  91. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.1.from_instances.[demo].value.md +54 -0
  92. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2._.[catalog].md +43 -0
  93. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.articulate.[article].md +27 -0
  94. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.articulate.[lesson].md +49 -0
  95. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.catalogize.[article].md +27 -0
  96. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.catalogize.[lesson].md +54 -0
  97. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.demonstrate.[article].md +26 -0
  98. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.demonstrate.[lesson].md +49 -0
  99. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.lessonize.[article].md +26 -0
  100. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.enbrief.2.lessonize.[lesson].md +54 -0
  101. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.kernelize._.[article].md +58 -0
  102. package/dist/logic/roles/bhrain/.briefs/knowledge/kno301.doc.kernelize._.[lesson].md +88 -0
  103. package/dist/logic/roles/bhrain/.briefs/knowledge/kno351.docs.are_instances.[article].md +34 -0
  104. package/dist/logic/roles/bhrain/.briefs/knowledge/kno351.docs.recursion.[catalog].md +44 -0
  105. package/dist/logic/roles/bhrain/.briefs/knowledge/kno401.actors.1.role.author.[article].md +36 -0
  106. package/dist/logic/roles/bhrain/.briefs/knowledge/kno401.actors.1.role.librarian.[article].md +40 -0
  107. package/dist/logic/roles/bhrain/.briefs/knowledge/kno401.actors.2.interdependence.[article].md +52 -0
  108. package/dist/logic/roles/bhrain/.briefs/knowledge/kno501.doc.enbrief.catalog.structure1.[article].md +53 -0
  109. package/dist/logic/roles/bhrain/.briefs/knowledge/kno501.doc.enbrief.catalog.structure1.[lesson].template.md +101 -0
  110. package/dist/logic/roles/bhrain/.briefs/librarian.context/article.variant.vision.[article].md +60 -0
  111. package/dist/logic/roles/bhrain/.briefs/librarian.context/term.expectation.vs_assumption._.md +60 -0
  112. package/dist/logic/roles/bhrain/.briefs/librarian.context/term.frame.vs_perspective.[article].md +96 -0
  113. package/dist/logic/roles/bhrain/.briefs/librarian.context/term.invariant.[article].md +29 -0
  114. package/dist/logic/roles/bhrain/.briefs/librarian.context/term.lesson._vs_article.[article].md +36 -0
  115. package/dist/logic/roles/bhrain/.briefs/librarian.context/term.ref._vs_brief.md +90 -0
  116. package/dist/logic/roles/bhrain/.briefs/librarian.context/term.referent.[article].md +43 -0
  117. package/dist/logic/roles/bhrain/.briefs/librarian.context/usage.lesson_vs_article.[lesson].md +31 -0
  118. package/dist/logic/roles/bhrain/.briefs/librarian.context/usage.lesson_vs_article_vs_demo.[lesson].md +37 -0
  119. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/.readme.md +12 -0
  120. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>._.[article].frame.cognitive.md +33 -0
  121. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>._.[article].frame.tactical.md +45 -0
  122. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.[catalog].md +83 -0
  123. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.concept_dimension.examples.[article][seed].md +4 -0
  124. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.concept_dimension.invariants.[article].md +36 -0
  125. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.from.examples.md +44 -0
  126. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.from.seed.md +48 -0
  127. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.with.templates.[article].md +57 -0
  128. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tactic.with.templates.[gallery][review].effective.md +1 -0
  129. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<articulate>.tone.bluecollar.[article][seed].md +5 -0
  130. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<catalogize>._.[article][seed].md +3 -0
  131. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<catalogize>.observation.via_clusterage_over_via_imagination.[seed].md +6 -0
  132. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<catalogize>.vs_diverge.[article].persp.save_compute.md +46 -0
  133. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>._.[article].frame.colloquial.i2.by_grok.md +64 -0
  134. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.[catalog].md +106 -0
  135. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.contrast.[demo].usecase.vs_userjourney.by_chatgpt.md +45 -0
  136. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.counter.[demo].usecase.flyer.by_chargpt.md +38 -0
  137. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.counter.[demo].walkability.phoenix.by_chargpt.md +41 -0
  138. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[demo].shear_force.scissors.by_grok.md +52 -0
  139. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[demo].tea.darjeeling.by_grok.md +50 -0
  140. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[demo].usecase.book_flight.by_grok.md +54 -0
  141. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[demo].usecase.order_food.by_chatgpt.md +40 -0
  142. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[demo].walkability.portland.by_chatgpt.i3.md +42 -0
  143. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[demo].walkability.portland.by_grok.i2.md +49 -0
  144. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.[lesson].howto.md +28 -0
  145. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.example.structure.[article].i2.md +73 -0
  146. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.narrative.[demo].usecase.order_online.by_chatgpt.md +34 -0
  147. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/<demonstrate>.variants.walkthrough.[demo].usecase.book_online.by_chatgpt.md +47 -0
  148. package/dist/logic/roles/bhrain/.briefs/librarian.tactics/[brief].verbiage.outline.over.narrative.md +55 -0
  149. package/dist/logic/roles/bhrain/.briefs/logistics/term.logistics.[article].md +21 -0
  150. package/dist/logic/roles/bhrain/.briefs/logistics/term.logistics.of_information.[article].md +22 -0
  151. package/dist/logic/roles/bhrain/.briefs/logistics/term.logistics.of_knowledge.[article].md +29 -0
  152. package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.acuity.md +77 -0
  153. package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.breadth.md +74 -0
  154. package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.depth.md +77 -0
  155. package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.distance.md +92 -0
  156. package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.tradeoffs.md +107 -0
  157. package/dist/logic/roles/bhrain/.briefs/tactician/tactics.compose.traits_and_skills.[article].md +76 -0
  158. package/dist/logic/roles/bhrain/.briefs/tactician/trait.articulation.[article].md +67 -0
  159. package/dist/logic/roles/bhrain/.briefs/tactician/trait.purpose.[article].md +56 -0
  160. package/dist/logic/roles/bhrain/.briefs/tactician/trait.vs_skill.[article].md +55 -0
  161. package/dist/logic/roles/bhrain/.briefs/tactician/trait.vs_tactic.[article].md +70 -0
  162. package/dist/logic/roles/bhrain/.briefs/terms.motive.intent.goal.md +46 -0
  163. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<cluster>._.[article].frame.tactical._.md +85 -0
  164. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<cluster>.vs_<diverge>.duality.[article].md +43 -0
  165. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<diverge>._.[article].frame.cognitive.[seed].md +4 -0
  166. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<diverge>._.[article].frame.tactical.md +89 -0
  167. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<elaborate>_vs_<elucidate>.[seed].md +1 -0
  168. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<enquestion>._.[article].md +113 -0
  169. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<enquestion>._.[gallery].plumber.diagnose.md +130 -0
  170. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<enquestion>._.[gallery].thinker.enquestion.md +125 -0
  171. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<enquestion>.tactic.perspectives.[article].md +36 -0
  172. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<triage>._.[article].frame.tactical.md +85 -0
  173. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<triage>.persp.grades_from_context.[article].md +48 -0
  174. package/dist/logic/roles/bhrain/.briefs/thinker.tactics/<triage>.persp.implicit_question.[article].md +65 -0
  175. package/dist/logic/roles/bhrain/.briefs/trait.chillnature.md +14 -0
  176. package/dist/logic/roles/bhrain/.briefs/trait.ocd.md +5 -0
  177. package/dist/logic/roles/bhrain/.briefs/worders/core.matmuls_vecmuls_elemuls.md +93 -0
  178. package/dist/logic/roles/bhrain/.briefs/worders/core.transformers.as_origin.md +62 -0
  179. package/dist/logic/roles/bhrain/.briefs/worders/core.transformers.self_attention.[article].md +93 -0
  180. package/dist/logic/roles/bhrain/.briefs/worders/core.transformers.self_attention.[demo].ambig.bank.md +80 -0
  181. package/dist/logic/roles/bhrain/.briefs/worders/core.transformers.self_attention.[demo].cat_sat.md +67 -0
  182. package/dist/logic/roles/bhrain/.briefs/worders/force.repeat_input_structures.md +48 -0
  183. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.interdependence.[article].md +37 -0
  184. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.interdependence.[demo].domain.physics.md +30 -0
  185. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internal_vs_external.[article].artist_vs_librarian.md +44 -0
  186. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internal_vs_external.[demo].artist_vs_librarian.md +37 -0
  187. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internal_vs_external.[demo].domain.physics.md +39 -0
  188. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internalized.[article].md +35 -0
  189. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internalized.[demo].artist.md +36 -0
  190. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internalized.[demo].neural.md +37 -0
  191. package/dist/logic/roles/bhrain/.briefs/worders/knowledge.internalized.[demo].pianist.md +34 -0
  192. package/dist/logic/roles/bhrain/.briefs/worders/limits.rhyme.md +46 -0
  193. package/dist/logic/roles/bhrain/.briefs/worders/limits.spell.md +49 -0
  194. package/dist/logic/roles/bhrain/.briefs/worders/teach.via.library.examples.md +28 -0
  195. package/dist/logic/roles/bhrain/.briefs/worders/teach.via.library.explanations_vs_examples.md +40 -0
  196. package/dist/logic/roles/bhrain/.briefs/worders/trend.prefer_reuse.[seed].md +10 -0
  197. package/dist/logic/roles/bhrain/brief.articulate/stepArticulate.template.md +120 -0
  198. package/dist/logic/roles/bhrain/brief.demonstrate/stepDemonstrate.template.md +135 -0
  199. package/dist/logic/roles/bhrain/khue.cluster/stepCluster.template.md +134 -0
  200. package/dist/logic/roles/bhrain/khue.diverge/stepDiverge.template.md +110 -0
  201. package/dist/logic/roles/bhrain/khue.instantiate/stepInstantiate.template.md +73 -0
  202. package/dist/logic/roles/bhrain/khue.triage/stepTriage.template.md +128 -0
  203. package/dist/logic/roles/coach/.briefs/claude.context-caching.md +76 -0
  204. package/dist/logic/roles/designer/.briefs/declarative-over-imperative.md +79 -0
  205. package/dist/logic/roles/designer/.briefs/declarative-over-imperative.stub.md +14 -0
  206. package/dist/logic/roles/designer/.briefs/pit-of-success.md +70 -0
  207. package/dist/logic/roles/designer/.briefs/pit-of-success.stub.md +3 -0
  208. package/dist/logic/roles/designer/outlineDistilisys/stepOutlineDistilisys.template.md +173 -0
  209. package/dist/logic/roles/designer/outlineRoadmap/stepOutlineRoadmap.template.md +88 -0
  210. package/dist/logic/roles/designer/outlineVision/stepOutlineVision.template.md +47 -0
  211. package/dist/logic/roles/ecologist/.briefs/.readme.md +17 -0
  212. package/dist/logic/roles/ecologist/.briefs/distilisys/sys101.distilisys.grammar.md +221 -0
  213. package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive._.summary.md +82 -0
  214. package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p1.reversibility.entropy.md +39 -0
  215. package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p2.option.chance.choice.md +140 -0
  216. package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p3.chance.motive.polarity.threat.md +72 -0
  217. package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p4.motive.horizon.md +101 -0
  218. package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p5.motive.grammar.md +131 -0
  219. package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources._.primitives.summary.md +108 -0
  220. package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt1.primitive.time.md +56 -0
  221. package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt2.primitive.energy.md +69 -0
  222. package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt3.primitive.space.md +85 -0
  223. package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt4.primitive.claim.md +113 -0
  224. package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt5.composites.md +146 -0
  225. package/dist/logic/roles/ecologist/.briefs/distilisys/sys231.actor.claims.p1.primitive.exchange.md +130 -0
  226. package/dist/logic/roles/ecologist/.briefs/ecology/.eco001.origin.prompt.md +11 -0
  227. package/dist/logic/roles/ecologist/.briefs/ecology/eco001.overview.md +44 -0
  228. package/dist/logic/roles/ecologist/.briefs/ecology/eco101.core-system-understanding.md +70 -0
  229. package/dist/logic/roles/ecologist/.briefs/ecology/eco101.p1.ecosystem-structure.md +62 -0
  230. package/dist/logic/roles/ecologist/.briefs/ecology/eco101.p2.trophic-dynamics.md +59 -0
  231. package/dist/logic/roles/ecologist/.briefs/ecology/eco101.p3.population-ecology.md +71 -0
  232. package/dist/logic/roles/ecologist/.briefs/ecology/eco101.p4.community-interactions.md +78 -0
  233. package/dist/logic/roles/ecologist/.briefs/ecology/eco505.systems-thinking.md +62 -0
  234. package/dist/logic/roles/ecologist/.briefs/economy/econ001.overview.md +65 -0
  235. package/dist/logic/roles/ecologist/.briefs/economy/econ101.core-mechanics.md +65 -0
  236. package/dist/logic/roles/ecologist/.briefs/economy/econ101.p1.supply-and-demand.md +76 -0
  237. package/dist/logic/roles/ecologist/.briefs/economy/econ101.p2.opportunity-cost.md +106 -0
  238. package/dist/logic/roles/ecologist/.briefs/economy/econ101.p3.marginal-analysis.md +79 -0
  239. package/dist/logic/roles/ecologist/.briefs/economy/econ101.p4.rational-choice.md +81 -0
  240. package/dist/logic/roles/ecologist/.briefs/economy/econ201.market-structures-and-failures.md +81 -0
  241. package/dist/logic/roles/ecologist/.briefs/economy/econ301.production-and-growth.md +71 -0
  242. package/dist/logic/roles/ecologist/.briefs/economy/econ401.macro-systems.md +92 -0
  243. package/dist/logic/roles/ecologist/.briefs/economy/econ501.global-and-institutional.md +85 -0
  244. package/dist/logic/roles/ecologist/.briefs/economy/econ501.p1.game-theory.md +142 -0
  245. package/dist/logic/roles/ecologist/.briefs/economy/econ501.p4.behavioral-economics.md +146 -0
  246. package/dist/logic/roles/ecologist/.briefs/product/user.journey._.[article].i1.md +68 -0
  247. package/dist/logic/roles/ecologist/.briefs/product/user.journey._.[article].md +0 -0
  248. package/dist/logic/roles/ecologist/.briefs/product/user.journey.purpose.[article].i1.md +52 -0
  249. package/dist/logic/roles/ecologist/.briefs/product/user.journey.purpose.[article].md +52 -0
  250. package/dist/logic/roles/ecologist/.briefs/term.distillation.md +93 -0
  251. package/dist/logic/roles/mechanic/.briefs/architecture/bounded-contexts.md +61 -0
  252. package/dist/logic/roles/mechanic/.briefs/architecture/directional-dependencies.md +82 -0
  253. package/dist/logic/roles/mechanic/.briefs/architecture/domain-driven-design.md +61 -0
  254. package/dist/logic/roles/mechanic/.briefs/architecture/ubiqlang.md +37 -0
  255. package/dist/logic/roles/mechanic/.briefs/codestyle/_mech.compressed.md +57 -0
  256. package/dist/logic/roles/mechanic/.briefs/codestyle/_mech.compressed.prompt.md +5 -0
  257. package/dist/logic/roles/mechanic/.briefs/codestyle/flow.failfast.md +37 -0
  258. package/dist/logic/roles/mechanic/.briefs/codestyle/flow.idempotency.md +63 -0
  259. package/dist/logic/roles/mechanic/.briefs/codestyle/flow.immutability.md +48 -0
  260. package/dist/logic/roles/mechanic/.briefs/codestyle/flow.narratives.md +74 -0
  261. package/dist/logic/roles/mechanic/.briefs/codestyle/flow.single-responsibility.md +67 -0
  262. package/dist/logic/roles/mechanic/.briefs/codestyle/flow.transformers_over_conditionals.[lesson].md +97 -0
  263. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.args.input-context.md +61 -0
  264. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.args.input-inline.md +63 -0
  265. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.arrowonly.md +47 -0
  266. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.clear-contracts.md +53 -0
  267. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.tests.given-when-then.md +62 -0
  268. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.what-why.md +88 -0
  269. package/dist/logic/roles/mechanic/.briefs/codestyle/mech.what-why.v2.md +98 -0
  270. package/dist/logic/roles/mechanic/.briefs/codestyle/pit-of-success.via.minimize-surface-area.md +58 -0
  271. package/dist/logic/roles/mechanic/.briefs/criteria.practices/never.term.script.md +7 -0
  272. package/dist/logic/roles/mechanic/.briefs/criteria.practices/prefer.emojis.chill_nature.md +24 -0
  273. package/dist/logic/roles/mechanic/.briefs/criteria.practices/prefer.jq.over_alt.[demo].md +29 -0
  274. package/dist/logic/roles/mechanic/.briefs/criteria.practices/prefer.terraform.[criteria].md +4 -0
  275. package/dist/logic/roles/mechanic/.briefs/criteria.practices/prefer.terraform.[seed].md +17 -0
  276. package/dist/logic/roles/mechanic/.briefs/criteria.practices/require.dependency.pinned_versions.md +3 -0
  277. package/dist/logic/roles/mechanic/.briefs/criteria.practices/require.idempotency.md +33 -0
  278. package/dist/logic/roles/mechanic/.briefs/criteria.practices/require.knowledge.externalized.md +17 -0
  279. package/dist/logic/roles/mechanic/.briefs/engineer/dependency-injection.md +118 -0
  280. package/dist/logic/roles/mechanic/.briefs/engineer/dependency-injection.stub.md +11 -0
  281. package/dist/logic/roles/mechanic/.briefs/lessons/code.prod.typescript.types/bivariance_vs_contravariance.[lesson].md +95 -0
  282. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.contract.inputs.nameargs/bad-practice/forbid.positional-args.md +43 -0
  283. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.contract.inputs.nameargs/best-practice/require.namedargs.md +6 -0
  284. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.declarative/.readme.md +0 -0
  285. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.declarative/best-practice/declastruct.[demo].md +485 -0
  286. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.domain.objects/bad-practices/blocker.has.attributes.nullable.md +13 -0
  287. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.domain.objects/bad-practices/blocker.has.attributes.undefined.md +15 -0
  288. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.domain.objects/bad-practices/blocker.refs.immuatble.md +9 -0
  289. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.domain.objects/best-practice/ref.package.domain-objects.[readme].md +585 -0
  290. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.domain.operations/best-practice/require.sync.names.md +14 -0
  291. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.errors.failfast/bad-practices/forbid.failhide.md +19 -0
  292. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.errors.failfast/bad-practices/forbid.hide_errors.md +13 -0
  293. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.errors.failfast/best-practice/prefer.HelpfulError.wrap.md +54 -0
  294. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.errors.failfast/best-practice/require.fail_fast.[demo].shell.md +17 -0
  295. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.errors.failfast/best-practice/require.fail_fast.md +28 -0
  296. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.narrative/bad-practices/forbid.else.md +54 -0
  297. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.narrative/best-practice/early-returns.named-checks.[demo].md +181 -0
  298. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.repo.structure/bad-practices/forbid.barrel.exports.ts.md +41 -0
  299. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.repo.structure/bad-practices/forbid.index.ts.md +3 -0
  300. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.repo.structure/best-practice/directional-dependencies.md +82 -0
  301. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.repo.structure/best-practice/dot-test-and-dot-temp.md +20 -0
  302. package/dist/logic/roles/mechanic/.briefs/patterns/code.prod.typescript.utils/best-practice/ref.package.as-command.[tips].md +7 -0
  303. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.acceptance/best-practice/blackbox.md +5 -0
  304. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.diagnose.[lesson].md +14 -0
  305. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.run.[lesson].md +18 -0
  306. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.use.[lesson].md +20 -0
  307. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.write.[lesson].md +3 -0
  308. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.write.[lesson].on_scope.for_integ.md +8 -0
  309. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.write.[lesson].on_scope.for_units.md +9 -0
  310. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.write.bdd.[lesson].md +280 -0
  311. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/prefer.datadriven.md +41 -0
  312. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/ref.test-fns.[readme].md +185 -0
  313. package/dist/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/whento.snapshots.[lesson].md +23 -0
  314. package/dist/logic/roles/mechanic/.briefs/patterns/lang.terms/.readme.md +1 -0
  315. package/dist/logic/roles/mechanic/.briefs/patterns/lang.terms/bad-practices/forbid.term=existing.md +10 -0
  316. package/dist/logic/roles/mechanic/.briefs/patterns/lang.terms/best-practice/require.order.noun_adj.md +39 -0
  317. package/dist/logic/roles/mechanic/.briefs/patterns/lang.terms/domain=practices.terms=forbid_prefer_desire_require.md +13 -0
  318. package/dist/logic/roles/mechanic/.briefs/patterns/lang.terms/domain=software.terms=prodcode_vs_testcode.md +7 -0
  319. package/dist/logic/roles/mechanic/.briefs/patterns/lang.tones/.readme.md +3 -0
  320. package/dist/logic/roles/mechanic/.briefs/patterns/lang.tones/prefer.chill-nature.md +0 -0
  321. package/dist/logic/roles/mechanic/.briefs/patterns/lang.tones/prefer.lowercase.md +0 -0
  322. package/dist/logic/roles/mechanic/.briefs/style.compressed.md +29 -0
  323. package/dist/logic/roles/mechanic/.briefs/style.compressed.prompt.md +5 -0
  324. package/dist/logic/roles/mechanic/.briefs/style.names.treestruct.md +48 -0
  325. package/dist/logic/roles/mechanic/.briefs/style.names.ubiqlang.md +37 -0
  326. package/dist/logic/roles/mechanic/.briefs/style.words.lowercase.md +36 -0
  327. package/dist/logic/roles/mechanic/.briefs/terms/badpractice/script.md +9 -0
  328. package/dist/logic/roles/mechanic/.briefs/terms/plan.exec_vs_apply.md +45 -0
  329. package/dist/logic/roles/mechanic/.skills/claude.hooks/check.pretooluse.permissions.sh +235 -0
  330. package/dist/logic/roles/mechanic/.skills/claude.hooks/forbid.stderr.redirect.sh +57 -0
  331. package/dist/logic/roles/mechanic/.skills/declapract.upgrade.sh +50 -0
  332. package/dist/logic/roles/mechanic/.skills/git.worktree.common.sh +58 -0
  333. package/dist/logic/roles/mechanic/.skills/git.worktree.del.sh +51 -0
  334. package/dist/logic/roles/mechanic/.skills/git.worktree.get.sh +51 -0
  335. package/dist/logic/roles/mechanic/.skills/git.worktree.set.sh +108 -0
  336. package/dist/logic/roles/mechanic/.skills/git.worktree.sh +46 -0
  337. package/dist/logic/roles/mechanic/.skills/init.bhuild.sh +260 -0
  338. package/dist/logic/roles/mechanic/.skills/init.claude.hooks.forbid.stderr.redirect.sh +116 -0
  339. package/dist/logic/roles/mechanic/.skills/init.claude.hooks.pretooluse.sh +118 -0
  340. package/dist/logic/roles/mechanic/.skills/init.claude.hooks.sessionstart.sh +113 -0
  341. package/dist/logic/roles/mechanic/.skills/init.claude.hooks.sh +25 -0
  342. package/dist/logic/roles/mechanic/.skills/init.claude.permissions.sh +156 -0
  343. package/dist/logic/roles/mechanic/.skills/init.claude.sh +47 -0
  344. package/dist/logic/roles/mechanic/.skills/link.claude.transcripts.sh +43 -0
  345. package/dist/logic/roles/mechanic/.skills/test.integration.sh +50 -0
  346. package/dist/logic/roles/mechanic/codediff/routeArtistCodeDiff.template.md +46 -0
  347. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewArchitecture.template.md +78 -0
  348. package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewCodestyle.template.md +75 -0
  349. package/dist/logic/roles/mechanic/codediff/routeJudgeReleasable.template.md +67 -0
  350. package/dist/logic/roles/mechanic/study/routeStudyAsk.template.md +73 -0
  351. package/dist/logic/roles/mechanic/write/.test/prior.template.md +21 -0
  352. package/dist/logic/roles/mechanic/write/stepWrite.template.md +38 -0
  353. package/package.json +2 -2
@@ -0,0 +1,28 @@
1
+ fail fast saves lives
2
+
3
+ when you fail fast, you detect fast, and you fix fast
4
+
5
+ this contributes to a pit of success
6
+ - enables tests to alert when unexpected behaviors occur, detected at build time
7
+ - enables logs to alert when unexpected behaviors occur, detected at monitor time
8
+ =>
9
+ - this allows us to more safely develop => as any surprises will be flagged asap, loud and proud
10
+ - this allows us to more rapidly maintain => as any changes live in production will be flagged asap, loud and proud
11
+
12
+ ---
13
+
14
+ specifically, you should choose from
15
+
16
+ ```ts
17
+ import { UnexpectedCodePathError } from 'helpful-errors';
18
+
19
+ throw new UnexpectedCodePathError(message, metadata)
20
+ ```
21
+
22
+ or
23
+
24
+ ```ts
25
+ import { BadRequestError } from 'helpful-errors';
26
+
27
+ throw new BadRequestError(message, metadata)
28
+ ```
@@ -0,0 +1,54 @@
1
+ else is a code REAK
2
+
3
+ its not even a smell
4
+
5
+ its such a bad smell that it reaks
6
+
7
+ ---
8
+
9
+ else's can _always_ be better rewriten as an IFFE+EarlyReturn
10
+
11
+ ---
12
+
13
+ see the narrative flow breifs for more context on the desired goal
14
+
15
+
16
+ -------
17
+
18
+ e.g.,
19
+
20
+ > no if else; only early returns; else is a code REAK
21
+
22
+ ● You're right - the if/else violates the flow:narrative tactic. Let me
23
+ refactor to use early returns only:
24
+
25
+ ● Update(src/domain.operations/vpcTunnel/setVpcTunnel.ts)
26
+ ⎿ Updated src/domain.operations/vpcTunnel/setVpcTunnel.ts with 5
27
+ additions and 3 removals
28
+ 81 if (portInUse) {
29
+ 82 const cacheFilePresent = await isFilePresent({ path:
30
+ cachePath });
31
+ 83
32
+ 84 + // port used by unknown process; kill it to reclaim
33
+ 85 + if (!cacheFilePresent) {
34
+ 86 + killProcessOnPort({ port: input.from.port });
35
+ 87 + }
36
+ 88 +
37
+ 89 // check if existing tunnel is ours and healthy
38
+ 90 if (cacheFilePresent) {
39
+ 91 const cacheContent = await fs.readFile(cachePath,
40
+ 'utf-8');
41
+ ...
42
+ 100 // cleanup stale tunnel
43
+ 101 if (isProcessAlive({ pid: cache.pid }))
44
+ process.kill(cache.pid, 'SIGTERM');
45
+ 102 await fs.rm(cachePath, { force: true });
46
+ 103 - } else {
47
+ 104 - // port used by another process; kill it to reclaim
48
+ 105 - killProcessOnPort({ port: input.from.port });
49
+ 103 }
50
+ 104 }
51
+ 105
52
+
53
+ ● Removed the else block - now both conditions are independent if statements
54
+ with no branching maze.
@@ -0,0 +1,181 @@
1
+
2
+ ● The check now walks up the prototype chain starting from error.constructor, checking if any class in the
3
+ inheritance hierarchy is named 'BadRequestError'. This handles cases where a custom error class extends
4
+ BadRequestError (or extends something that extends it, etc.).
5
+
6
+ > lets actually create a new constant called "isExtensionOfBadRequestError"
7
+ ⎿ Found 3 new diagnostic issues in 1 file (ctrl+o to expand)
8
+
9
+ ● Update(src/logic/middlewares/badRequestErrorMiddleware.ts)
10
+ ⎿ Updated src/logic/middlewares/badRequestErrorMiddleware.ts with 4 additions and 2 removals
11
+ 8 */
12
+ 9 export const decideIsBadRequestError = ({ error }: { error: Error }) => {
13
+ 10 const isInstanceOfBadRequestError = error instanceof BadRequestError;
14
+ 11 - const isNamedAfterBadRequestError = (() => {
15
+ 12 - let proto = error.constructor;
16
+ 11 + const isNamedAfterBadRequestError =
17
+ 12 + error.constructor.name === 'BadRequestError';
18
+ 13 + const isExtensionOfBadRequestError = (() => {
19
+ 14 + let proto = Object.getPrototypeOf(error.constructor);
20
+ 15 while (proto) {
21
+ 16 if (proto.name === 'BadRequestError') return true;
22
+ 17 proto = Object.getPrototypeOf(proto);
23
+
24
+ ● Now I need to add the new constant to the return statement:
25
+
26
+ ● Update(src/logic/middlewares/badRequestErrorMiddleware.ts)
27
+ ⎿ Updated src/logic/middlewares/badRequestErrorMiddleware.ts with 1 addition and 1 removal
28
+ 18 }
29
+ 19 return false;
30
+ 20 })();
31
+ 21 - return isInstanceOfBadRequestError || isNamedAfterBadRequestError;
32
+ 21 + return isInstanceOfBadRequestError || isNamedAfterBadRequestError
33
+ + || isExtensionOfBadRequestError;
34
+ 22 };
35
+ 23
36
+ 24 /**
37
+
38
+ ● Done. Now decideIsBadRequestError has three separate checks:
39
+
40
+ 1. isInstanceOfBadRequestError - uses instanceof check
41
+ 2. isNamedAfterBadRequestError - checks if the error's constructor is named 'BadRequestError'
42
+ 3. isExtensionOfBadRequestError - walks up the prototype chain to check if any parent class is named
43
+ 'BadRequestError'
44
+
45
+ > add a header comment for each constant
46
+ ⎿ Found 1 new diagnostic issue in 1 file (ctrl+o to expand)
47
+
48
+ ● Update(src/logic/middlewares/badRequestErrorMiddleware.ts)
49
+ ⎿ Updated src/logic/middlewares/badRequestErrorMiddleware.ts with 11 additions and 1 removal
50
+ 7 * .what = procedure for deciding whether an error is a bad request error
51
+ 8 */
52
+ 9 export const decideIsBadRequestError = ({ error }: { error: Error }) => {
53
+ 10 + // check if the error is an instance of BadRequestError
54
+ 11 const isInstanceOfBadRequestError = error instanceof BadRequestError;
55
+ 12 +
56
+ 13 + // check if the error's constructor is named 'BadRequestError'
57
+ 14 const isNamedAfterBadRequestError =
58
+ 15 error.constructor.name === 'BadRequestError';
59
+ 16 +
60
+ 17 + // check if any parent class in the prototype chain is named 'BadRequestError'
61
+ 18 const isExtensionOfBadRequestError = (() => {
62
+ 19 let proto = Object.getPrototypeOf(error.constructor);
63
+ 20 while (proto) {
64
+ ...
65
+ 18 }
66
+ 19 return false;
67
+ 20 })();
68
+ 21 - return isInstanceOfBadRequestError || isNamedAfterBadRequestError ||
69
+ - isExtensionOfBadRequestError;
70
+ 21 +
71
+ 22 + return (
72
+ 23 + isInstanceOfBadRequestError ||
73
+ 24 + isNamedAfterBadRequestError ||
74
+ 25 + isExtensionOfBadRequestError
75
+ 26 + );
76
+ 27 };
77
+ 28
78
+ 29 /**
79
+
80
+ ● Done. Added header comments for each constant and also fixed the formatting on the return statement to
81
+ satisfy the eslint rule.
82
+
83
+ > use early returns after each check, rather than needoing to evalaute all three
84
+ ⎿ Found 3 new diagnostic issues in 1 file (ctrl+o to expand)
85
+
86
+ ● Update(src/logic/middlewares/badRequestErrorMiddleware.ts)
87
+ ⎿ Updated src/logic/middlewares/badRequestErrorMiddleware.ts with 8 additions and 16 removals
88
+ 8 */
89
+ 9 export const decideIsBadRequestError = ({ error }: { error: Error }) => {
90
+ 10 // check if the error is an instance of BadRequestError
91
+ 11 - const isInstanceOfBadRequestError = error instanceof BadRequestError;
92
+ 11 + if (error instanceof BadRequestError) return true;
93
+ 12
94
+ 13 // check if the error's constructor is named 'BadRequestError'
95
+ 14 - const isNamedAfterBadRequestError =
96
+ 15 - error.constructor.name === 'BadRequestError';
97
+ 14 + if (error.constructor.name === 'BadRequestError') return true;
98
+ 15
99
+ 16 // check if any parent class in the prototype chain is named 'BadRequestError'
100
+ 17 - const isExtensionOfBadRequestError = (() => {
101
+ 18 - let proto = Object.getPrototypeOf(error.constructor);
102
+ 19 - while (proto) {
103
+ 20 - if (proto.name === 'BadRequestError') return true;
104
+ 21 - proto = Object.getPrototypeOf(proto);
105
+ 22 - }
106
+ 23 - return false;
107
+ 24 - })();
108
+ 17 + let proto = Object.getPrototypeOf(error.constructor);
109
+ 18 + while (proto) {
110
+ 19 + if (proto.name === 'BadRequestError') return true;
111
+ 20 + proto = Object.getPrototypeOf(proto);
112
+ 21 + }
113
+ 22
114
+ 23 - return (
115
+ 24 - isInstanceOfBadRequestError ||
116
+ 25 - isNamedAfterBadRequestError ||
117
+ 26 - isExtensionOfBadRequestError
118
+ 27 - );
119
+ 23 + return false;
120
+ 24 };
121
+ 25
122
+ 26 /**
123
+
124
+ ● Done. Now the function uses early returns, so it short-circuits as soon as any check passes without needing
125
+ to evaluate the remaining checks.
126
+
127
+ > header comment on the last return, too
128
+ ⎿ Found 3 new diagnostic issues in 1 file (ctrl+o to expand)
129
+
130
+ ● Update(src/logic/middlewares/badRequestErrorMiddleware.ts)
131
+ ⎿ Updated src/logic/middlewares/badRequestErrorMiddleware.ts with 1 addition
132
+ 20 proto = Object.getPrototypeOf(proto);
133
+ 21 }
134
+ 22
135
+ 23 + // otherwise, not a bad request error
136
+ 24 return false;
137
+ 25 };
138
+ 26
139
+
140
+ ● Done.
141
+
142
+ > keep the names of the constants though; if (isXyz) is important for greater readability
143
+ ⎿ Found 3 new diagnostic issues in 1 file (ctrl+o to expand)
144
+
145
+ ● Update(src/logic/middlewares/badRequestErrorMiddleware.ts)
146
+ ⎿ Updated src/logic/middlewares/badRequestErrorMiddleware.ts with 14 additions and 7 removals
147
+ 8 */
148
+ 9 export const decideIsBadRequestError = ({ error }: { error: Error }) => {
149
+ 10 // check if the error is an instance of BadRequestError
150
+ 11 - if (error instanceof BadRequestError) return true;
151
+ 11 + const isInstanceOfBadRequestError = error instanceof BadRequestError;
152
+ 12 + if (isInstanceOfBadRequestError) return true;
153
+ 13
154
+ 14 // check if the error's constructor is named 'BadRequestError'
155
+ 15 - if (error.constructor.name === 'BadRequestError') return true;
156
+ 15 + const isNamedAfterBadRequestError =
157
+ 16 + error.constructor.name === 'BadRequestError';
158
+ 17 + if (isNamedAfterBadRequestError) return true;
159
+ 18
160
+ 19 // check if any parent class in the prototype chain is named 'BadRequestError'
161
+ 20 - let proto = Object.getPrototypeOf(error.constructor);
162
+ 21 - while (proto) {
163
+ 22 - if (proto.name === 'BadRequestError') return true;
164
+ 23 - proto = Object.getPrototypeOf(proto);
165
+ 24 - }
166
+ 20 + const isExtensionOfBadRequestError = (() => {
167
+ 21 + let proto = Object.getPrototypeOf(error.constructor);
168
+ 22 + while (proto) {
169
+ 23 + if (proto.name === 'BadRequestError') return true;
170
+ 24 + proto = Object.getPrototypeOf(proto);
171
+ 25 + }
172
+ 26 + return false;
173
+ 27 + })();
174
+ 28 + if (isExtensionOfBadRequestError) return true;
175
+ 29
176
+ 30 // otherwise, not a bad request error
177
+ 31 return false;
178
+
179
+ ● Done. Now each check has a named constant (isInstanceOfBadRequestError, isNamedAfterBadRequestError,
180
+ isExtensionOfBadRequestError) followed by an early return, giving both readability and short-circuit
181
+ evaluation.
@@ -0,0 +1,41 @@
1
+ this is an alias to ./forbid.index.ts.md
2
+
3
+ NEVER do barrel exports
4
+
5
+ e.g.,
6
+ - `src/domain.objects/index.ts`
7
+ - `src/domain.operations/organization/index.ts`
8
+ - `src/domain.operations/organizationAccount/index.ts`
9
+ - `src/access/daos/index.ts`
10
+ - `src/contract/sdks/index.ts`
11
+
12
+ all are banned
13
+
14
+ they're just new aliases that increase
15
+ - codepath variants
16
+ - cyclical import chances
17
+
18
+ totally forbidden
19
+
20
+ they add zero value
21
+
22
+
23
+ ---
24
+
25
+ the only thing that's allowed is
26
+
27
+ within an index.ts file, exporting one object
28
+
29
+ e.g.,
30
+
31
+ ```ts
32
+ export const daoAwsOrganization = {
33
+ getOne,
34
+ getAll,
35
+ set,
36
+ del,
37
+ }
38
+ ```
39
+ nice and tight export
40
+
41
+ but thats it. never just an export forwarder
@@ -0,0 +1,3 @@
1
+ the _only_ time an index.ts file is acceptable is if its
2
+ 1. the entrypoint of the public package, if this is a public package
3
+ 2. the entrypoint of a dao, if it is a dao
@@ -0,0 +1,82 @@
1
+ .tactic = arch:directional-deps
2
+
3
+ .what
4
+ enforce strict top-down dependency flow across layered system boundaries — lower layers must never import from higher ones
5
+
6
+ .scope
7
+ - applies to all folders and modules within `src/`
8
+ - required for `contract/`, `access/`, `domain.objects/`, `domain.operations/`
9
+ - governs imports, module references, and stitched flow boundaries
10
+
11
+ .why
12
+ - upholds **separation of concerns** and enforces **clean architecture**
13
+ - prevents circular dependencies and tangled system boundaries
14
+ - makes each layer easier to test, replace, and understand in isolation
15
+ - aligns with `arch:bounded-contexts` and enables predictable top-down orchestration
16
+
17
+ .structure
18
+ \`\`\`
19
+ src/
20
+ contract/ // topmost — public interfaces, local commands
21
+ api/ // public invocable api endpoints, deployed and exposed by the project; e.g., via `aws-lambda`
22
+ cmd/ // private internal use entrypoints, supported by the project; e.g., via `as-command`
23
+ sdk/ // public software development kit exports, supported by the project; e.g., `export ...`
24
+ cli/ // public command line interface contracts, supported by the project; e.g., via `commander`
25
+
26
+ access/ // infrastructure layer (daos, sdks, svcs)
27
+ daos/ // private persistence logic — may reference domain objects
28
+ sdks/ // remote third party contracts, from any alt org — may declare their own domain.objects
29
+ svcs/ // remote first party contracts, from our own org — may declare their own domain.objects
30
+
31
+ domain.objects/ // canonical domain declarations
32
+ domain.operations/ // domain behavior + business rules
33
+
34
+ infra/ // infrastructure specific adapters
35
+ \`\`\`
36
+
37
+ .how
38
+ - each layer may depend **only on the layers below it**
39
+ - `contract/` may depend on `domain.objects/` and `domain.operations/`
40
+ - `access/` may depend on `domain.objects/` and `domain.operations/`
41
+ - `domain.operations/` may depend on `domain.objects/` or `infra/`
42
+ - `domain.objects/` must not depend on anything outside its own layer
43
+ - `infra/` must not depend on anything outside its own layer
44
+
45
+ - stitched flows live in `domain.operations/` or `contract/commands/` and orchestrate downstream only
46
+ - never import upward across layers (e.g., `domain.objects/` importing `access/`)
47
+ - shared types must follow the same directional rules
48
+
49
+ .enforcement
50
+ - imports that violate top-down boundary = **BLOCKER**
51
+ - circular dependencies between layers = **BLOCKER**
52
+ - logic in `domain.objects/` must never reach into `access/`, `contract/`, or `domain.operations/`
53
+ - logic in `domain.operations/` must not reference infrastructure concerns; they can can only leverage `infra/` adapters
54
+ - logic in `access/` may use domain layers but must remain free of domain knowledge and business rules
55
+ - logic in `infra/` must remain free of domain knowledge and business rules
56
+
57
+ .examples
58
+
59
+ ✅ positive
60
+ \`\`\`ts
61
+ // contract/endpoints/sendInvoice.ts
62
+ import { generateInvoice } from '@/domain.operations/generateInvoice';
63
+ import { invoiceDao } from '@/access/daos/invoiceDao';
64
+
65
+ // access/daos/jobDao.ts
66
+ import { Job } from '@/domain.objects/Job';
67
+
68
+ // domain.operations/calculateTotal.ts
69
+ import { LineItem } from '@/domain.objects/LineItem';
70
+ \`\`\`
71
+
72
+ ❌ negative
73
+ \`\`\`ts
74
+ // domain.objects/Customer.ts
75
+ import { customerDao } from '@/access/daos/customerDao'; // ⛔ illegal upward import
76
+
77
+ // domain.operations/InvoiceOps.ts
78
+ import { runFlow } from '@/contract/commands'; // ⛔ direction violation
79
+
80
+ // access/svcs/sdkWrapper.ts
81
+ import { dispatchFlow } from '@/contract/'; // ⛔ bottom-up reference
82
+ \`\`\`
@@ -0,0 +1,20 @@
1
+ prefer
2
+
3
+ .temp/ directories over
4
+ - tmp/
5
+ - temp
6
+
7
+ .test/ directories over
8
+ - __test__
9
+ - __fixtures__
10
+ - __test_assets__
11
+ - __test_utils__
12
+ - etc
13
+
14
+ ---
15
+
16
+ its easier on the eyes and more consistent with broader patterns
17
+
18
+ ---
19
+
20
+ this is a NITPICK level violation
@@ -0,0 +1,7 @@
1
+ when using `@ehmpathy/as-command`, no need to manage output dirs yourslef
2
+
3
+ simply use context.out.write()
4
+
5
+ it will write to a dedicated, safe output dir
6
+
7
+ ---
@@ -0,0 +1,5 @@
1
+
2
+ acceptance tests are black box tests
3
+
4
+ - no ability to assert internal details
5
+ - only what's exposed through the @src/contract layer is accessible to acpt tests
@@ -0,0 +1,14 @@
1
+ if you have a failing test
2
+
3
+ 1. make the error super clear via
4
+ 1. observable error messages
5
+ 2. clear log trails
6
+
7
+ 2. when you detect which subcomponent has unexpected behavior
8
+ 1. cover that subscomponent with tests of its own (unit, integration, etc)
9
+ 2. if it does not have its own procedure, breakit out into its own procedure (own function + own file + own test suite)
10
+
11
+ that way
12
+ 1. its easy to see exactly what is failing
13
+ 2. its easy to prove we fixed it (or verify that the behavior is / isnt expected)
14
+ 3. we can systematically track down the bug, one subcomponnent at a time
@@ -0,0 +1,18 @@
1
+ 1. lookup the organization to use from declapract.use.yml
2
+ 2. declare the AWS_PROFILE based on the pattern `AWS_PROFILE=$organization.dev`
3
+ 1. always use .dev, never .prod
4
+ 2. this specifies which remote resources we'll have access to for the session
5
+ 3. we always test against dev resources, to avoid prod pollution
6
+ 3. run npm run start:testdb (or provision:integration-test-db, if start:testdb is not available yet)
7
+ 1. this setsup the local testdb against which the tests can be run
8
+
9
+ then, you can run the tests you need to
10
+
11
+ e.g.,
12
+
13
+ AWS_PROFILE=$organization.dev npm run test:integration -- syncPhoneFromWhodis.integration.test.ts
14
+ AWS_PROFILE=$organization.dev npm run test:unit -- syncPhoneFromWhodis.test.ts
15
+
16
+ etc
17
+
18
+ check package json for the other test variants you can run
@@ -0,0 +1,20 @@
1
+ instead of rerunning tests over and over and getting the `head` to check what happened while preserving context
2
+
3
+ its BEST
4
+
5
+ to `| tee` into a `@gitroot/.log/test/(unit|integration|acceptance)/run.$ISOTIMESTAMP.out` file
6
+
7
+ then you can review that file over and over
8
+
9
+ also, other agents can review as well in parallel
10
+
11
+ last, it can also be used to compare progress in changes of tests
12
+
13
+ ---
14
+
15
+ so, pretty much ALWAYS, you should ` | tee` into one of these files
16
+
17
+
18
+ ===
19
+
20
+ best practice is to run test via `.skills/run.test.sh`, which does this for you
@@ -0,0 +1,3 @@
1
+ import { given, when, then, useBeforeAll } from 'test-fns';
2
+
3
+ use those to declare the tests
@@ -0,0 +1,8 @@
1
+
2
+ to create an integration test, just add a file with .integration.test.ts extension (collocated) and dont mock anything
3
+
4
+ you can spy, but never mock
5
+
6
+ ---
7
+
8
+ use the less on in src/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.write.bdd.[lesson].md for preference on pattern
@@ -0,0 +1,9 @@
1
+
2
+ for unit tests:
3
+
4
+ only test that the behaviors explicitly important for that test
5
+
6
+ no need to overtest, only whatever is scoped for that test and unique to it
7
+
8
+
9
+ use the less on in src/logic/roles/mechanic/.briefs/patterns/code.test.howto/best-practice/howto.write.bdd.[lesson].md for preference on pattern