rhachet-roles-ehmpathy 1.13.1 → 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 +4 -4
@@ -0,0 +1,113 @@
1
+ #!/usr/bin/env bash
2
+ ######################################################################
3
+ # .what = bind mechanic SessionStart hook to Claude settings
4
+ #
5
+ # .why = the mechanic role needs to boot on every Claude session
6
+ # to ensure project context and briefs are loaded.
7
+ #
8
+ # this script "findserts" (find-or-insert) the SessionStart
9
+ # hook into .claude/settings.local.json, ensuring:
10
+ # • the hook is present after running this skill
11
+ # • no duplication if already present
12
+ # • idempotent: safe to rerun
13
+ #
14
+ # .how = uses jq to merge the SessionStart hook configuration
15
+ # into the existing hooks structure, creating it if absent.
16
+ #
17
+ # guarantee:
18
+ # ✔ creates .claude/settings.local.json if missing
19
+ # ✔ preserves existing settings (permissions, other hooks)
20
+ # ✔ idempotent: no-op if hook already present
21
+ # ✔ fail-fast on errors
22
+ ######################################################################
23
+
24
+ set -euo pipefail
25
+
26
+ PROJECT_ROOT="$PWD"
27
+ SETTINGS_FILE="$PROJECT_ROOT/.claude/settings.local.json"
28
+
29
+ # Define the hook configuration to findsert
30
+ HOOK_CONFIG=$(cat <<'EOF'
31
+ {
32
+ "hooks": {
33
+ "SessionStart": [
34
+ {
35
+ "matcher": "*",
36
+ "hooks": [
37
+ {
38
+ "type": "command",
39
+ "command": "npx rhachet roles boot --repo ehmpathy --role mechanic",
40
+ "timeout": 60
41
+ }
42
+ ]
43
+ }
44
+ ]
45
+ }
46
+ }
47
+ EOF
48
+ )
49
+
50
+ # Ensure .claude directory exists
51
+ mkdir -p "$(dirname "$SETTINGS_FILE")"
52
+
53
+ # Initialize settings file if it doesn't exist
54
+ if [[ ! -f "$SETTINGS_FILE" ]]; then
55
+ echo "{}" > "$SETTINGS_FILE"
56
+ fi
57
+
58
+ # Findsert: merge the hook configuration if not already present
59
+ # Strategy: deep merge with existing hooks, creating structure if needed
60
+ jq --argjson hook "$HOOK_CONFIG" '
61
+ # Define the target command for comparison
62
+ def targetCmd: "npx rhachet roles boot --repo ehmpathy --role mechanic";
63
+
64
+ # Check if hook already exists
65
+ def hookExists:
66
+ (.hooks.SessionStart // [])
67
+ | map(select(.matcher == "*") | .hooks // [])
68
+ | flatten
69
+ | map(.command)
70
+ | index(targetCmd) != null;
71
+
72
+ # If hook already exists, return unchanged
73
+ if hookExists then
74
+ .
75
+ else
76
+ # Ensure .hooks exists
77
+ .hooks //= {} |
78
+
79
+ # Ensure .hooks.SessionStart exists
80
+ .hooks.SessionStart //= [] |
81
+
82
+ # Check if our matcher already exists
83
+ if (.hooks.SessionStart | map(.matcher) | index("*")) then
84
+ # Matcher exists, add our hook to its hooks array
85
+ .hooks.SessionStart |= map(
86
+ if .matcher == "*" then
87
+ .hooks += $hook.hooks.SessionStart[0].hooks
88
+ else
89
+ .
90
+ end
91
+ )
92
+ else
93
+ # Matcher does not exist, add the entire entry
94
+ .hooks.SessionStart += $hook.hooks.SessionStart
95
+ end
96
+ end
97
+ ' "$SETTINGS_FILE" > "$SETTINGS_FILE.tmp"
98
+
99
+ # Check if any changes were made
100
+ if diff -q "$SETTINGS_FILE" "$SETTINGS_FILE.tmp" >/dev/null 2>&1; then
101
+ rm "$SETTINGS_FILE.tmp"
102
+ echo "👌 mechanic SessionStart hook already bound"
103
+ echo " $SETTINGS_FILE"
104
+ exit 0
105
+ fi
106
+
107
+ # Atomic replace
108
+ mv "$SETTINGS_FILE.tmp" "$SETTINGS_FILE"
109
+
110
+ echo "🔗 mechanic SessionStart hook bound successfully!"
111
+ echo " $SETTINGS_FILE"
112
+ echo ""
113
+ echo "✨ next time you start a Claude session, the mechanic will boot automatically"
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env bash
2
+ ######################################################################
3
+ # .what = bind all mechanic hooks to Claude settings
4
+ #
5
+ # .why = the mechanic role uses multiple hooks:
6
+ # • SessionStart: boot mechanic on every session
7
+ # • PreToolUse: check existing permissions before new requests
8
+ #
9
+ # this script dispatches to each hook initializer.
10
+ #
11
+ # .how = runs each init.claude.hooks.*.sh script in sequence
12
+ #
13
+ # guarantee:
14
+ # ✔ idempotent: safe to rerun
15
+ # ✔ fail-fast on errors
16
+ ######################################################################
17
+
18
+ set -euo pipefail
19
+
20
+ SKILLS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
21
+
22
+ # Dispatch to each hook initializer
23
+ "$SKILLS_DIR/init.claude.hooks.sessionstart.sh"
24
+ "$SKILLS_DIR/init.claude.hooks.forbid.stderr.redirect.sh"
25
+ "$SKILLS_DIR/init.claude.hooks.pretooluse.sh"
@@ -0,0 +1,156 @@
1
+ #!/usr/bin/env bash
2
+ ######################################################################
3
+ # .what = bind mechanic permissions to Claude settings
4
+ #
5
+ # .why = the mechanic role needs conservative permissions to operate
6
+ # safely while still being productive.
7
+ #
8
+ # this script manages permissions in .claude/settings.local.json:
9
+ # • replaces existing allows entirely (conservative)
10
+ # • extends denies by appending new entries (conservative)
11
+ # • extends asks by appending new entries (conservative)
12
+ # • idempotent: safe to rerun
13
+ #
14
+ # .how = uses jq to merge the permissions configuration
15
+ # into the existing settings structure, creating it if absent.
16
+ #
17
+ # guarantee:
18
+ # ✔ creates .claude/settings.local.json if missing
19
+ # ✔ preserves existing settings (hooks, other configs)
20
+ # ✔ replaces allow list entirely
21
+ # ✔ appends to deny list (no duplicates)
22
+ # ✔ appends to ask list (no duplicates)
23
+ # ✔ idempotent: safe to rerun
24
+ # ✔ fail-fast on errors
25
+ ######################################################################
26
+
27
+ set -euo pipefail
28
+
29
+ PROJECT_ROOT="$PWD"
30
+ SETTINGS_FILE="$PROJECT_ROOT/.claude/settings.local.json"
31
+
32
+ # define the permissions configuration to apply
33
+ PERMISSIONS_CONFIG=$(cat <<'EOF'
34
+ {
35
+ "permissions": {
36
+ "deny": [
37
+ "Bash(git commit:*)",
38
+ "Bash(sed:*)",
39
+ "Bash(tee:*)",
40
+ "Bash(find:*)",
41
+ "Bash(echo:*)"
42
+ ],
43
+ "ask": [
44
+ "Bash(bash:*)",
45
+ "Bash(chmod:*)",
46
+ "Bash(npm install:*)",
47
+ "Bash(pnpm install:*)",
48
+ "Bash(pnpm add:*)"
49
+ ],
50
+ "allow": [
51
+ "WebSearch",
52
+ "WebFetch(domain:github.com)",
53
+ "WebFetch(domain:www.npmjs.com)",
54
+ "WebFetch(domain:hub.docker.com)",
55
+ "WebFetch(domain:raw.githubusercontent.com)",
56
+ "WebFetch(domain:biomejs.dev)",
57
+
58
+
59
+ "Bash(ls:*)",
60
+ "Bash(tree:*)",
61
+ "Bash(cat:*)",
62
+ "Bash(head:*)",
63
+ "Bash(tail:*)",
64
+ "Bash(grep:*)",
65
+ "Bash(wc:*)",
66
+ "Bash(diff:*)",
67
+ "Bash(which:*)",
68
+ "Bash(file:*)",
69
+ "Bash(mkdir:*)",
70
+ "Bash(pwd)",
71
+ "Bash(npm view:*)",
72
+ "Bash(npm list:*)",
73
+ "Bash(npm remove:*)",
74
+
75
+ "Bash(npx rhachet roles boot --repo ehmpathy --role mechanic)",
76
+ "Bash(npx tsx ./bin/run:*)",
77
+ "Bash(npx tsc:*)",
78
+ "Bash(npx biome:*)",
79
+ "Bash(npx jest:*)",
80
+
81
+ "Bash(npm run build:*)",
82
+ "Bash(npm run build:compile)",
83
+ "Bash(npm run start:testdb:*)",
84
+
85
+
86
+ "Bash(npm run test:*)",
87
+ "Bash(npm run test:types:*)",
88
+ "Bash(npm run test:format:*)",
89
+ "Bash(npm run test:lint:*)",
90
+ "Bash(npm run test:unit:*)",
91
+ "Bash(npm run test:integration:*)",
92
+ "Bash(npm run test:acceptance:*)",
93
+
94
+ "Bash(THOROUGH=true npm run test:*)",
95
+ "Bash(THOROUGH=true npm run test:unit:*)",
96
+ "Bash(THOROUGH=true npm run test:integration:*)",
97
+ "Bash(THOROUGH=true npm run test:acceptance:*)",
98
+
99
+ "Bash(npm run fix:*)",
100
+ "Bash(npm run fix:format:*)",
101
+ "Bash(npm run fix:lint:*)",
102
+
103
+ "Bash(gh pr checks:*)",
104
+ "Bash(gh pr status:*)",
105
+
106
+ "Bash(source .agent/repo=.this/skills/*)"
107
+ ]
108
+ }
109
+ }
110
+ EOF
111
+ )
112
+
113
+ # ensure .claude directory exists
114
+ mkdir -p "$(dirname "$SETTINGS_FILE")"
115
+
116
+ # initialize settings file if it doesn't exist
117
+ if [[ ! -f "$SETTINGS_FILE" ]]; then
118
+ echo "{}" > "$SETTINGS_FILE"
119
+ fi
120
+
121
+ # apply permissions:
122
+ # - replace allow entirely
123
+ # - append to deny (unique)
124
+ # - append to ask (unique)
125
+ jq --argjson perms "$PERMISSIONS_CONFIG" '
126
+ # ensure .permissions exists
127
+ .permissions //= {} |
128
+
129
+ # replace allow entirely with our config
130
+ .permissions.allow = $perms.permissions.allow |
131
+
132
+ # append to deny (unique entries only)
133
+ .permissions.deny = ((.permissions.deny // []) + $perms.permissions.deny | unique) |
134
+
135
+ # append to ask (unique entries only)
136
+ .permissions.ask = ((.permissions.ask // []) + $perms.permissions.ask | unique)
137
+ ' "$SETTINGS_FILE" > "$SETTINGS_FILE.tmp"
138
+
139
+ # check if any changes were made
140
+ if diff -q "$SETTINGS_FILE" "$SETTINGS_FILE.tmp" >/dev/null 2>&1; then
141
+ rm "$SETTINGS_FILE.tmp"
142
+ echo "👌 mechanic permissions already configured"
143
+ echo " $SETTINGS_FILE"
144
+ exit 0
145
+ fi
146
+
147
+ # atomic replace
148
+ mv "$SETTINGS_FILE.tmp" "$SETTINGS_FILE"
149
+
150
+ echo "🔐 mechanic permissions configured successfully!"
151
+ echo " $SETTINGS_FILE"
152
+ echo ""
153
+ echo "✨ permissions applied:"
154
+ echo " • allow: replaced entirely"
155
+ echo " • deny: extended (no duplicates)"
156
+ echo " • ask: extended (no duplicates)"
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env bash
2
+ ######################################################################
3
+ # .what = initialize Claude settings for mechanic role
4
+ #
5
+ # .why = mechanic needs both hooks and permissions configured to
6
+ # operate effectively. this script dispatches to both:
7
+ # • init.claude.hooks.sh - binds SessionStart hook
8
+ # • init.claude.permissions.sh - configures permissions
9
+ #
10
+ # single entry point for full Claude configuration.
11
+ #
12
+ # .how = runs both init scripts in sequence from the same directory.
13
+ #
14
+ # guarantee:
15
+ # ✔ backs up settings.local.json before changes (if exists)
16
+ # ✔ runs both hooks and permissions initialization
17
+ # ✔ fail-fast on any error
18
+ # ✔ idempotent: safe to rerun
19
+ ######################################################################
20
+
21
+ set -euo pipefail
22
+
23
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
24
+ GITROOT="$(git rev-parse --show-toplevel)"
25
+ SETTINGS_FILE="$GITROOT/.claude/settings.local.json"
26
+
27
+ echo "🔧 init claude config for mechanic role..."
28
+ echo ""
29
+
30
+ # backup existing settings before changes
31
+ if [[ -f "$SETTINGS_FILE" ]]; then
32
+ ISODATETIME="$(date -u +%Y-%m-%dT%H-%M-%SZ)"
33
+ BACKUP_FILE="$GITROOT/.claude/settings.$ISODATETIME.bak.local.json"
34
+ cp "$SETTINGS_FILE" "$BACKUP_FILE"
35
+ echo "📦 backed up settings to: ${BACKUP_FILE#$GITROOT/}"
36
+ echo ""
37
+ fi
38
+
39
+ # initialize hooks
40
+ "$SCRIPT_DIR/init.claude.hooks.sh"
41
+ echo ""
42
+
43
+ # initialize permissions
44
+ "$SCRIPT_DIR/init.claude.permissions.sh"
45
+ echo ""
46
+
47
+ echo "👌 claude config ready"
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env bash
2
+ ######################################################################
3
+ # .what = link Claude transcripts into project-local structure
4
+ #
5
+ # .why = Claude stores transcripts in ~/.claude/projects/<encoded-path>
6
+ # which makes them hard to browse, version-control, and sync.
7
+ #
8
+ # this script creates a symlink so transcripts appear under:
9
+ # <project>/.rhachet/claude/transcripts
10
+ #
11
+ # without altering, moving, or creating files in Claude storage.
12
+ #
13
+ # guarantee:
14
+ # ✔ zero mutation to Claude's storage
15
+ # ✔ fail-fast if transcripts don't exist yet
16
+ # ✔ safe to rerun (idempotent)
17
+ ######################################################################
18
+
19
+ set -euo pipefail
20
+
21
+ PROJECT_ROOT="$PWD"
22
+ DEST="$PROJECT_ROOT/.rhachet/claude/transcripts"
23
+
24
+ # Resolve where Claude stores transcripts for this project’s cwd
25
+ ENCODED_PATH="$(echo "$PROJECT_ROOT" | sed 's#/#-#g')"
26
+ CLAUDE_STORAGE="$HOME/.claude/projects/$ENCODED_PATH"
27
+
28
+ # Fail if Claude hasn't created the storage dir yet
29
+ if [[ ! -d "$CLAUDE_STORAGE" ]]; then
30
+ echo "❌ no Claude transcripts found for this project:"
31
+ echo " $CLAUDE_STORAGE"
32
+ echo "➡️ first run 'claude' once in this directory to create them"
33
+ exit 1
34
+ fi
35
+
36
+ # Ensure our local parent folder exists (not Claude’s)
37
+ mkdir -p "$(dirname "$DEST")"
38
+
39
+ # Create symlink pointing into Claude-managed storage
40
+ ln -sfn "$CLAUDE_STORAGE" "$DEST"
41
+
42
+ echo "🔗 linked:"
43
+ echo " $DEST → $CLAUDE_STORAGE"
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env bash
2
+ ######################################################################
3
+ # .what = run integration tests thoroughly with optional scope filter
4
+ #
5
+ # .why = integration tests verify interactions between components
6
+ # and external systems. running them thoroughly (without
7
+ # --changedSince) ensures all tests pass, not just changed ones.
8
+ #
9
+ # this is critical before releases, after major changes, or
10
+ # when verifying the entire test suite.
11
+ #
12
+ # usage for agents:
13
+ # - run all integration tests:
14
+ # ./test.integration.sh
15
+ #
16
+ # - run tests matching a specific scope/pattern:
17
+ # ./test.integration.sh <pattern>
18
+ # example: ./test.integration.sh "user.*auth"
19
+ # example: ./test.integration.sh "database"
20
+ #
21
+ # - the THOROUGH=true flag forces ALL tests to run, not just
22
+ # those changed since main branch
23
+ #
24
+ # guarantee:
25
+ # ✔ runs ALL integration tests (ignores --changedSince)
26
+ # ✔ supports optional jest pattern/scope filtering
27
+ # ✔ uses verbose output for debugging
28
+ # ✔ passes with no tests if scope matches nothing
29
+ # ✔ fail-fast on test failures
30
+ ######################################################################
31
+
32
+ set -euo pipefail
33
+
34
+ SCOPE="${1:-}"
35
+
36
+ echo "🧪 running integration tests thoroughly..."
37
+ echo ""
38
+
39
+ if [[ -n "$SCOPE" ]]; then
40
+ echo "📍 scope filter: $SCOPE"
41
+ echo ""
42
+ THOROUGH=true npm run test:integration -- "$SCOPE"
43
+ else
44
+ echo "📍 scope: all tests"
45
+ echo ""
46
+ THOROUGH=true npm run test:integration
47
+ fi
48
+
49
+ echo ""
50
+ echo "✅ integration tests complete!"
@@ -0,0 +1,46 @@
1
+ directive
2
+ - <codediff><imagine> the [ask] against the [inflight]
3
+ - input = [inflight], [ask], [claims], [feedback]?
4
+ - output = new [inflight] .ts contents (all thoughts should go in comments, output should be valid typescript); no markdown codeblock, just code
5
+ - write only the production logic and comments required; no demo code unless it's in the jsdoc comment
6
+
7
+ context.role.traits
8
+ - maximally concise; prefer treestructs and outlines; maximize signal, minimize words
9
+ - systematically distill scenes with ubiquitous language
10
+ - uses treestructs and bullet points to maximize signal-to-noise
11
+ - explain .what and .why with comments for each code paragraph // and each code procedure /**
12
+ $.rhachet{inherit.traits}
13
+
14
+ context.role.skills
15
+ $.rhachet{inherit.skills}
16
+
17
+ context.scene
18
+ $.rhachet{scene}
19
+
20
+ directive
21
+ - <codediff><imagine> the [ask] against the [inflight]
22
+ - input = [ask], [claims], [feedback]?
23
+ - output = new [inflight] .ts contents (all thoughts should go in comments, output should be valid typescript); no markdown codeblock, just code
24
+
25
+ --------------------------
26
+
27
+ codestyle rules to enforce:
28
+ $.rhachet{codestyle}
29
+
30
+ --------------------------
31
+
32
+ claims =
33
+ $.rhachet{claims}
34
+
35
+ feedback =
36
+ $.rhachet{feedback}
37
+
38
+ ask =
39
+ $.rhachet{ask}
40
+
41
+ --------------------------
42
+
43
+ inflight =
44
+ ```ts
45
+ $.rhachet{inflight}
46
+ ```
@@ -0,0 +1,78 @@
1
+ directive
2
+ - <critic><review><architecture> the [subject] focused on architecture violations only
3
+ - input = [subject], [claims]
4
+ - output = json list of suggestions
5
+ - each suggestion must be:
6
+ {
7
+ kind: "blocker" | "nitpick" | "chance" | "praise",
8
+ scope: "technical.architecture",
9
+ what: string,
10
+ why: string,
11
+ where: {
12
+ scope: 'contract' | 'implementation',
13
+ sample: string
14
+ },
15
+ suggestion: {
16
+ before: string,
17
+ after: string,
18
+ }
19
+ }
20
+ - output should be directly the .json file contents. no markdown or code blocks
21
+
22
+ context.role.traits
23
+ - think like a precise code reviewer
24
+ - optimize for signal, minimize words
25
+ $.rhachet{inherit.traits}
26
+
27
+ context.role.skills
28
+ $.rhachet{inherit.skills}
29
+
30
+ --------------------------
31
+
32
+ architecture rules to enforce:
33
+ ```md
34
+ $.rhachet{architecture.rules}
35
+ ```
36
+
37
+ --------------------------
38
+
39
+ architectural domain relevant:
40
+
41
+ domain.terms established (for ubiqlang)
42
+ ```md
43
+ $.rhachet{architecture.domain.terms}
44
+ ```
45
+
46
+ domain.bounds established (for bounded contexts & separation of concerns)
47
+ ```md
48
+ $.rhachet{architecture.domain.bounds}
49
+ ```
50
+
51
+ --------------------------
52
+
53
+
54
+ directive
55
+ - <critic><review><architecture> the [subject] focused on architecture violations only
56
+ - input = [diff], [claims]
57
+ - output = json list of suggestions
58
+ - each suggestion must be:
59
+ {
60
+ kind: "blocker" | "nitpick" | "chance" | "praise",
61
+ scope: "technical.architecture"
62
+ what: string,
63
+ why: string,
64
+ where: {
65
+ scope: 'contract' | 'implementation',
66
+ sample: string
67
+ },
68
+ suggestion: {
69
+ before: string,
70
+ after: string,
71
+ }
72
+ }
73
+ - output should be directly the .json file contents. no markdown or code blocks
74
+
75
+ --------------------------
76
+
77
+ subject =
78
+ $.rhachet{subject}
@@ -0,0 +1,75 @@
1
+ directive
2
+ - <critic><review><codestyle> the [diff] focused on codestyle violations only
3
+ - input = [diff], [claims]
4
+ - output = json list of suggestions
5
+ - each suggestion must be:
6
+ {
7
+ kind: "blocker" | "nitpick" | "chance" | "praise",
8
+ scope: "technical.codestyle",
9
+ what: string,
10
+ why: string,
11
+ where: {
12
+ scope: 'contract' | 'implementation',
13
+ sample: string
14
+ },
15
+ suggestion: {
16
+ before: string,
17
+ after: string,
18
+ }
19
+ }
20
+ - output should be directly the .json file contents. no markdown or code blocks
21
+ - dont praise satisfaction of expectations; praise only exceptional imagination and nonintuitives
22
+
23
+ important
24
+ - dont cause unnessesary churn. if its a chance for improvement, mark it a chance.
25
+ - only mark clear violations as BLOCKERs
26
+ - if your before/after is not sufficiently different, that probably means its not a blocker
27
+
28
+
29
+ context.role.traits
30
+ - think like a precise and pragmatic code reviewer
31
+ - optimize for signal, minimize words
32
+ $.rhachet{inherit.traits}
33
+
34
+ context.role.skills
35
+ $.rhachet{inherit.skills}
36
+
37
+ --------------------------
38
+
39
+ codestyle rules to enforce:
40
+ $.rhachet{codestyle}
41
+
42
+ --------------------------
43
+
44
+
45
+ directive
46
+ - <codediff><review> the [diff] focused on codestyle violations only
47
+ - input = [diff], [claims]
48
+ - output = json list of suggestions
49
+ - each suggestion must be:
50
+ {
51
+ kind: "blocker" | "nitpick" | "chance" | "praise",
52
+ scope: "technical.codestyle"
53
+ what: string,
54
+ why: string,
55
+ where: {
56
+ scope: 'contract' | 'implementation',
57
+ sample: string
58
+ },
59
+ suggestion: {
60
+ before: string,
61
+ after: string,
62
+ }
63
+ }
64
+ - output should be directly the .json file contents. no markdown or code blocks
65
+ - dont praise satisfaction of expectations; praise only exceptional imagination and nonintuitives
66
+
67
+ important
68
+ - dont cause unnessesary churn. if its a chance for improvement, mark it a chance.
69
+ - only mark clear violations as BLOCKERs
70
+ - if your before/after is not sufficiently different, that probably means its not a blocker
71
+
72
+ --------------------------
73
+
74
+ subject =
75
+ $.rhachet{diff}