@cratylus/canon 0.1.0

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 (546) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +76 -0
  3. package/dist/agents/arch-doc-writer.d.ts +2 -0
  4. package/dist/agents/arch-doc-writer.js +54 -0
  5. package/dist/agents/arch-doc-writer.js.map +1 -0
  6. package/dist/agents/boz.d.ts +2 -0
  7. package/dist/agents/boz.js +59 -0
  8. package/dist/agents/boz.js.map +1 -0
  9. package/dist/agents/developer.d.ts +2 -0
  10. package/dist/agents/developer.js +53 -0
  11. package/dist/agents/developer.js.map +1 -0
  12. package/dist/agents/investigator.d.ts +2 -0
  13. package/dist/agents/investigator.js +59 -0
  14. package/dist/agents/investigator.js.map +1 -0
  15. package/dist/agents/mav.d.ts +2 -0
  16. package/dist/agents/mav.js +83 -0
  17. package/dist/agents/mav.js.map +1 -0
  18. package/dist/agents/nico.d.ts +2 -0
  19. package/dist/agents/nico.js +92 -0
  20. package/dist/agents/nico.js.map +1 -0
  21. package/dist/agents/planner.d.ts +2 -0
  22. package/dist/agents/planner.js +52 -0
  23. package/dist/agents/planner.js.map +1 -0
  24. package/dist/agents/principal-engineer-reviewer.d.ts +2 -0
  25. package/dist/agents/principal-engineer-reviewer.js +56 -0
  26. package/dist/agents/principal-engineer-reviewer.js.map +1 -0
  27. package/dist/agents/principal-ic.d.ts +2 -0
  28. package/dist/agents/principal-ic.js +72 -0
  29. package/dist/agents/principal-ic.js.map +1 -0
  30. package/dist/agents/tester.d.ts +2 -0
  31. package/dist/agents/tester.js +55 -0
  32. package/dist/agents/tester.js.map +1 -0
  33. package/dist/dimensions/actions/code-execution.d.ts +2 -0
  34. package/dist/dimensions/actions/code-execution.js +2 -0
  35. package/dist/dimensions/actions/code-execution.js.map +1 -0
  36. package/dist/dimensions/actions/communication.d.ts +2 -0
  37. package/dist/dimensions/actions/communication.js +2 -0
  38. package/dist/dimensions/actions/communication.js.map +1 -0
  39. package/dist/dimensions/actions/computer-use.d.ts +2 -0
  40. package/dist/dimensions/actions/computer-use.js +2 -0
  41. package/dist/dimensions/actions/computer-use.js.map +1 -0
  42. package/dist/dimensions/actions/delegation.d.ts +2 -0
  43. package/dist/dimensions/actions/delegation.js +2 -0
  44. package/dist/dimensions/actions/delegation.js.map +1 -0
  45. package/dist/dimensions/actions/file-ops.d.ts +2 -0
  46. package/dist/dimensions/actions/file-ops.js +2 -0
  47. package/dist/dimensions/actions/file-ops.js.map +1 -0
  48. package/dist/dimensions/actions/physical-actuation.d.ts +2 -0
  49. package/dist/dimensions/actions/physical-actuation.js +2 -0
  50. package/dist/dimensions/actions/physical-actuation.js.map +1 -0
  51. package/dist/dimensions/actions/retrieval.d.ts +2 -0
  52. package/dist/dimensions/actions/retrieval.js +2 -0
  53. package/dist/dimensions/actions/retrieval.js.map +1 -0
  54. package/dist/dimensions/actions/tool-call.d.ts +2 -0
  55. package/dist/dimensions/actions/tool-call.js +2 -0
  56. package/dist/dimensions/actions/tool-call.js.map +1 -0
  57. package/dist/dimensions/audience-adaptation/convergence.d.ts +2 -0
  58. package/dist/dimensions/audience-adaptation/convergence.js +2 -0
  59. package/dist/dimensions/audience-adaptation/convergence.js.map +1 -0
  60. package/dist/dimensions/audience-adaptation/divergence.d.ts +2 -0
  61. package/dist/dimensions/audience-adaptation/divergence.js +2 -0
  62. package/dist/dimensions/audience-adaptation/divergence.js.map +1 -0
  63. package/dist/dimensions/audience-adaptation/maintenance.d.ts +2 -0
  64. package/dist/dimensions/audience-adaptation/maintenance.js +2 -0
  65. package/dist/dimensions/audience-adaptation/maintenance.js.map +1 -0
  66. package/dist/dimensions/autonomy/check-in.d.ts +2 -0
  67. package/dist/dimensions/autonomy/check-in.js +2 -0
  68. package/dist/dimensions/autonomy/check-in.js.map +1 -0
  69. package/dist/dimensions/autonomy/decision-authority.d.ts +2 -0
  70. package/dist/dimensions/autonomy/decision-authority.js +17 -0
  71. package/dist/dimensions/autonomy/decision-authority.js.map +1 -0
  72. package/dist/dimensions/autonomy/human-in-the-loop.d.ts +2 -0
  73. package/dist/dimensions/autonomy/human-in-the-loop.js +2 -0
  74. package/dist/dimensions/autonomy/human-in-the-loop.js.map +1 -0
  75. package/dist/dimensions/autonomy/human-on-the-loop.d.ts +2 -0
  76. package/dist/dimensions/autonomy/human-on-the-loop.js +10 -0
  77. package/dist/dimensions/autonomy/human-on-the-loop.js.map +1 -0
  78. package/dist/dimensions/autonomy/human-out-of-the-loop.d.ts +2 -0
  79. package/dist/dimensions/autonomy/human-out-of-the-loop.js +2 -0
  80. package/dist/dimensions/autonomy/human-out-of-the-loop.js.map +1 -0
  81. package/dist/dimensions/autonomy/mission-command.d.ts +2 -0
  82. package/dist/dimensions/autonomy/mission-command.js +2 -0
  83. package/dist/dimensions/autonomy/mission-command.js.map +1 -0
  84. package/dist/dimensions/capabilities/analysis-diagnosis.d.ts +2 -0
  85. package/dist/dimensions/capabilities/analysis-diagnosis.js +2 -0
  86. package/dist/dimensions/capabilities/analysis-diagnosis.js.map +1 -0
  87. package/dist/dimensions/capabilities/data-analytics.d.ts +2 -0
  88. package/dist/dimensions/capabilities/data-analytics.js +2 -0
  89. package/dist/dimensions/capabilities/data-analytics.js.map +1 -0
  90. package/dist/dimensions/capabilities/operations-delivery.d.ts +2 -0
  91. package/dist/dimensions/capabilities/operations-delivery.js +2 -0
  92. package/dist/dimensions/capabilities/operations-delivery.js.map +1 -0
  93. package/dist/dimensions/capabilities/planning-decomposition.d.ts +2 -0
  94. package/dist/dimensions/capabilities/planning-decomposition.js +2 -0
  95. package/dist/dimensions/capabilities/planning-decomposition.js.map +1 -0
  96. package/dist/dimensions/capabilities/research-investigation.d.ts +2 -0
  97. package/dist/dimensions/capabilities/research-investigation.js +2 -0
  98. package/dist/dimensions/capabilities/research-investigation.js.map +1 -0
  99. package/dist/dimensions/capabilities/review-critique.d.ts +2 -0
  100. package/dist/dimensions/capabilities/review-critique.js +2 -0
  101. package/dist/dimensions/capabilities/review-critique.js.map +1 -0
  102. package/dist/dimensions/capabilities/software-engineering.d.ts +2 -0
  103. package/dist/dimensions/capabilities/software-engineering.js +2 -0
  104. package/dist/dimensions/capabilities/software-engineering.js.map +1 -0
  105. package/dist/dimensions/capabilities/system-design.d.ts +2 -0
  106. package/dist/dimensions/capabilities/system-design.js +2 -0
  107. package/dist/dimensions/capabilities/system-design.js.map +1 -0
  108. package/dist/dimensions/capabilities/technical-writing.d.ts +2 -0
  109. package/dist/dimensions/capabilities/technical-writing.js +2 -0
  110. package/dist/dimensions/capabilities/technical-writing.js.map +1 -0
  111. package/dist/dimensions/capabilities/verification-testing.d.ts +2 -0
  112. package/dist/dimensions/capabilities/verification-testing.js +2 -0
  113. package/dist/dimensions/capabilities/verification-testing.js.map +1 -0
  114. package/dist/dimensions/engineering-principles/cold-decode-oracle.d.ts +2 -0
  115. package/dist/dimensions/engineering-principles/cold-decode-oracle.js +2 -0
  116. package/dist/dimensions/engineering-principles/cold-decode-oracle.js.map +1 -0
  117. package/dist/dimensions/engineering-principles/cratylism.d.ts +2 -0
  118. package/dist/dimensions/engineering-principles/cratylism.js +2 -0
  119. package/dist/dimensions/engineering-principles/cratylism.js.map +1 -0
  120. package/dist/dimensions/engineering-principles/dry.d.ts +2 -0
  121. package/dist/dimensions/engineering-principles/dry.js +2 -0
  122. package/dist/dimensions/engineering-principles/dry.js.map +1 -0
  123. package/dist/dimensions/engineering-principles/first-principles.d.ts +2 -0
  124. package/dist/dimensions/engineering-principles/first-principles.js +2 -0
  125. package/dist/dimensions/engineering-principles/first-principles.js.map +1 -0
  126. package/dist/dimensions/engineering-principles/green-field.d.ts +2 -0
  127. package/dist/dimensions/engineering-principles/green-field.js +2 -0
  128. package/dist/dimensions/engineering-principles/green-field.js.map +1 -0
  129. package/dist/dimensions/engineering-principles/invoke-the-canonical.d.ts +2 -0
  130. package/dist/dimensions/engineering-principles/invoke-the-canonical.js +2 -0
  131. package/dist/dimensions/engineering-principles/invoke-the-canonical.js.map +1 -0
  132. package/dist/dimensions/engineering-principles/llm-native.d.ts +2 -0
  133. package/dist/dimensions/engineering-principles/llm-native.js +2 -0
  134. package/dist/dimensions/engineering-principles/llm-native.js.map +1 -0
  135. package/dist/dimensions/engineering-principles/mece.d.ts +2 -0
  136. package/dist/dimensions/engineering-principles/mece.js +2 -0
  137. package/dist/dimensions/engineering-principles/mece.js.map +1 -0
  138. package/dist/dimensions/engineering-principles/separation-of-concerns.d.ts +2 -0
  139. package/dist/dimensions/engineering-principles/separation-of-concerns.js +2 -0
  140. package/dist/dimensions/engineering-principles/separation-of-concerns.js.map +1 -0
  141. package/dist/dimensions/engineering-principles/simplicity.d.ts +2 -0
  142. package/dist/dimensions/engineering-principles/simplicity.js +2 -0
  143. package/dist/dimensions/engineering-principles/simplicity.js.map +1 -0
  144. package/dist/dimensions/engineering-principles/trust-but-verify.d.ts +2 -0
  145. package/dist/dimensions/engineering-principles/trust-but-verify.js +2 -0
  146. package/dist/dimensions/engineering-principles/trust-but-verify.js.map +1 -0
  147. package/dist/dimensions/engineering-principles/zero-trust.d.ts +2 -0
  148. package/dist/dimensions/engineering-principles/zero-trust.js +2 -0
  149. package/dist/dimensions/engineering-principles/zero-trust.js.map +1 -0
  150. package/dist/dimensions/formality/casual.d.ts +2 -0
  151. package/dist/dimensions/formality/casual.js +2 -0
  152. package/dist/dimensions/formality/casual.js.map +1 -0
  153. package/dist/dimensions/formality/expansive.d.ts +2 -0
  154. package/dist/dimensions/formality/expansive.js +2 -0
  155. package/dist/dimensions/formality/expansive.js.map +1 -0
  156. package/dist/dimensions/formality/formal.d.ts +2 -0
  157. package/dist/dimensions/formality/formal.js +2 -0
  158. package/dist/dimensions/formality/formal.js.map +1 -0
  159. package/dist/dimensions/formality/neutral.d.ts +2 -0
  160. package/dist/dimensions/formality/neutral.js +2 -0
  161. package/dist/dimensions/formality/neutral.js.map +1 -0
  162. package/dist/dimensions/framing/adversarial.d.ts +2 -0
  163. package/dist/dimensions/framing/adversarial.js +2 -0
  164. package/dist/dimensions/framing/adversarial.js.map +1 -0
  165. package/dist/dimensions/framing/analytical.d.ts +2 -0
  166. package/dist/dimensions/framing/analytical.js +2 -0
  167. package/dist/dimensions/framing/analytical.js.map +1 -0
  168. package/dist/dimensions/framing/correctness-oriented.d.ts +2 -0
  169. package/dist/dimensions/framing/correctness-oriented.js +2 -0
  170. package/dist/dimensions/framing/correctness-oriented.js.map +1 -0
  171. package/dist/dimensions/framing/decompositional.d.ts +2 -0
  172. package/dist/dimensions/framing/decompositional.js +2 -0
  173. package/dist/dimensions/framing/decompositional.js.map +1 -0
  174. package/dist/dimensions/framing/diagnostic.d.ts +2 -0
  175. package/dist/dimensions/framing/diagnostic.js +2 -0
  176. package/dist/dimensions/framing/diagnostic.js.map +1 -0
  177. package/dist/dimensions/framing/exploratory.d.ts +2 -0
  178. package/dist/dimensions/framing/exploratory.js +2 -0
  179. package/dist/dimensions/framing/exploratory.js.map +1 -0
  180. package/dist/dimensions/framing/first-principles.d.ts +2 -0
  181. package/dist/dimensions/framing/first-principles.js +2 -0
  182. package/dist/dimensions/framing/first-principles.js.map +1 -0
  183. package/dist/dimensions/framing/goal-directed.d.ts +2 -0
  184. package/dist/dimensions/framing/goal-directed.js +2 -0
  185. package/dist/dimensions/framing/goal-directed.js.map +1 -0
  186. package/dist/dimensions/framing/risk-oriented.d.ts +2 -0
  187. package/dist/dimensions/framing/risk-oriented.js +2 -0
  188. package/dist/dimensions/framing/risk-oriented.js.map +1 -0
  189. package/dist/dimensions/framing/systems-thinking.d.ts +2 -0
  190. package/dist/dimensions/framing/systems-thinking.js +2 -0
  191. package/dist/dimensions/framing/systems-thinking.js.map +1 -0
  192. package/dist/dimensions/framing/user-centered.d.ts +2 -0
  193. package/dist/dimensions/framing/user-centered.js +2 -0
  194. package/dist/dimensions/framing/user-centered.js.map +1 -0
  195. package/dist/dimensions/guardrails/accountability.d.ts +2 -0
  196. package/dist/dimensions/guardrails/accountability.js +2 -0
  197. package/dist/dimensions/guardrails/accountability.js.map +1 -0
  198. package/dist/dimensions/guardrails/harm-avoidance.d.ts +2 -0
  199. package/dist/dimensions/guardrails/harm-avoidance.js +2 -0
  200. package/dist/dimensions/guardrails/harm-avoidance.js.map +1 -0
  201. package/dist/dimensions/guardrails/helpfulness.d.ts +2 -0
  202. package/dist/dimensions/guardrails/helpfulness.js +2 -0
  203. package/dist/dimensions/guardrails/helpfulness.js.map +1 -0
  204. package/dist/dimensions/guardrails/honesty.d.ts +2 -0
  205. package/dist/dimensions/guardrails/honesty.js +2 -0
  206. package/dist/dimensions/guardrails/honesty.js.map +1 -0
  207. package/dist/dimensions/guardrails/human-oversight.d.ts +2 -0
  208. package/dist/dimensions/guardrails/human-oversight.js +2 -0
  209. package/dist/dimensions/guardrails/human-oversight.js.map +1 -0
  210. package/dist/dimensions/guardrails/input-untrusted.d.ts +2 -0
  211. package/dist/dimensions/guardrails/input-untrusted.js +2 -0
  212. package/dist/dimensions/guardrails/input-untrusted.js.map +1 -0
  213. package/dist/dimensions/guardrails/privacy.d.ts +2 -0
  214. package/dist/dimensions/guardrails/privacy.js +2 -0
  215. package/dist/dimensions/guardrails/privacy.js.map +1 -0
  216. package/dist/dimensions/guardrails/scope-of-authority.d.ts +2 -0
  217. package/dist/dimensions/guardrails/scope-of-authority.js +2 -0
  218. package/dist/dimensions/guardrails/scope-of-authority.js.map +1 -0
  219. package/dist/dimensions/heuristics/anchoring.d.ts +2 -0
  220. package/dist/dimensions/heuristics/anchoring.js +2 -0
  221. package/dist/dimensions/heuristics/anchoring.js.map +1 -0
  222. package/dist/dimensions/heuristics/availability.d.ts +2 -0
  223. package/dist/dimensions/heuristics/availability.js +2 -0
  224. package/dist/dimensions/heuristics/availability.js.map +1 -0
  225. package/dist/dimensions/heuristics/recognition.d.ts +2 -0
  226. package/dist/dimensions/heuristics/recognition.js +2 -0
  227. package/dist/dimensions/heuristics/recognition.js.map +1 -0
  228. package/dist/dimensions/heuristics/take-the-best.d.ts +2 -0
  229. package/dist/dimensions/heuristics/take-the-best.js +2 -0
  230. package/dist/dimensions/heuristics/take-the-best.js.map +1 -0
  231. package/dist/dimensions/learning/continual-online.d.ts +2 -0
  232. package/dist/dimensions/learning/continual-online.js +2 -0
  233. package/dist/dimensions/learning/continual-online.js.map +1 -0
  234. package/dist/dimensions/learning/correction-consolidation.d.ts +2 -0
  235. package/dist/dimensions/learning/correction-consolidation.js +2 -0
  236. package/dist/dimensions/learning/correction-consolidation.js.map +1 -0
  237. package/dist/dimensions/learning/curated-promotion.d.ts +2 -0
  238. package/dist/dimensions/learning/curated-promotion.js +2 -0
  239. package/dist/dimensions/learning/curated-promotion.js.map +1 -0
  240. package/dist/dimensions/learning/episodic-accretion.d.ts +2 -0
  241. package/dist/dimensions/learning/episodic-accretion.js +2 -0
  242. package/dist/dimensions/learning/episodic-accretion.js.map +1 -0
  243. package/dist/dimensions/learning/in-context-recall.d.ts +2 -0
  244. package/dist/dimensions/learning/in-context-recall.js +2 -0
  245. package/dist/dimensions/learning/in-context-recall.js.map +1 -0
  246. package/dist/dimensions/learning/reflective-revision.d.ts +2 -0
  247. package/dist/dimensions/learning/reflective-revision.js +2 -0
  248. package/dist/dimensions/learning/reflective-revision.js.map +1 -0
  249. package/dist/dimensions/learning/static-frozen.d.ts +2 -0
  250. package/dist/dimensions/learning/static-frozen.js +2 -0
  251. package/dist/dimensions/learning/static-frozen.js.map +1 -0
  252. package/dist/dimensions/memory/episodic.d.ts +2 -0
  253. package/dist/dimensions/memory/episodic.js +2 -0
  254. package/dist/dimensions/memory/episodic.js.map +1 -0
  255. package/dist/dimensions/memory/long-term-memory.d.ts +2 -0
  256. package/dist/dimensions/memory/long-term-memory.js +2 -0
  257. package/dist/dimensions/memory/long-term-memory.js.map +1 -0
  258. package/dist/dimensions/memory/procedural.d.ts +2 -0
  259. package/dist/dimensions/memory/procedural.js +2 -0
  260. package/dist/dimensions/memory/procedural.js.map +1 -0
  261. package/dist/dimensions/memory/semantic.d.ts +2 -0
  262. package/dist/dimensions/memory/semantic.js +2 -0
  263. package/dist/dimensions/memory/semantic.js.map +1 -0
  264. package/dist/dimensions/memory/working-memory.d.ts +2 -0
  265. package/dist/dimensions/memory/working-memory.js +2 -0
  266. package/dist/dimensions/memory/working-memory.js.map +1 -0
  267. package/dist/dimensions/modalities/audio.d.ts +2 -0
  268. package/dist/dimensions/modalities/audio.js +2 -0
  269. package/dist/dimensions/modalities/audio.js.map +1 -0
  270. package/dist/dimensions/modalities/image.d.ts +2 -0
  271. package/dist/dimensions/modalities/image.js +2 -0
  272. package/dist/dimensions/modalities/image.js.map +1 -0
  273. package/dist/dimensions/modalities/text.d.ts +2 -0
  274. package/dist/dimensions/modalities/text.js +2 -0
  275. package/dist/dimensions/modalities/text.js.map +1 -0
  276. package/dist/dimensions/modalities/video.d.ts +2 -0
  277. package/dist/dimensions/modalities/video.js +2 -0
  278. package/dist/dimensions/modalities/video.js.map +1 -0
  279. package/dist/dimensions/model/claude.d.ts +2 -0
  280. package/dist/dimensions/model/claude.js +2 -0
  281. package/dist/dimensions/model/claude.js.map +1 -0
  282. package/dist/dimensions/objective/correctness.d.ts +2 -0
  283. package/dist/dimensions/objective/correctness.js +2 -0
  284. package/dist/dimensions/objective/correctness.js.map +1 -0
  285. package/dist/dimensions/objective/delivery.d.ts +2 -0
  286. package/dist/dimensions/objective/delivery.js +2 -0
  287. package/dist/dimensions/objective/delivery.js.map +1 -0
  288. package/dist/dimensions/objective/faithful-record.d.ts +2 -0
  289. package/dist/dimensions/objective/faithful-record.js +2 -0
  290. package/dist/dimensions/objective/faithful-record.js.map +1 -0
  291. package/dist/dimensions/objective/insight.d.ts +2 -0
  292. package/dist/dimensions/objective/insight.js +2 -0
  293. package/dist/dimensions/objective/insight.js.map +1 -0
  294. package/dist/dimensions/objective/parsimony.d.ts +2 -0
  295. package/dist/dimensions/objective/parsimony.js +2 -0
  296. package/dist/dimensions/objective/parsimony.js.map +1 -0
  297. package/dist/dimensions/objective/safety.d.ts +2 -0
  298. package/dist/dimensions/objective/safety.js +2 -0
  299. package/dist/dimensions/objective/safety.js.map +1 -0
  300. package/dist/dimensions/objective/thoroughness.d.ts +2 -0
  301. package/dist/dimensions/objective/thoroughness.js +2 -0
  302. package/dist/dimensions/objective/thoroughness.js.map +1 -0
  303. package/dist/dimensions/objective/throughput.d.ts +2 -0
  304. package/dist/dimensions/objective/throughput.js +2 -0
  305. package/dist/dimensions/objective/throughput.js.map +1 -0
  306. package/dist/dimensions/objective/user-satisfaction.d.ts +2 -0
  307. package/dist/dimensions/objective/user-satisfaction.js +2 -0
  308. package/dist/dimensions/objective/user-satisfaction.js.map +1 -0
  309. package/dist/dimensions/output-format/action.d.ts +2 -0
  310. package/dist/dimensions/output-format/action.js +2 -0
  311. package/dist/dimensions/output-format/action.js.map +1 -0
  312. package/dist/dimensions/output-format/code.d.ts +2 -0
  313. package/dist/dimensions/output-format/code.js +2 -0
  314. package/dist/dimensions/output-format/code.js.map +1 -0
  315. package/dist/dimensions/output-format/document.d.ts +2 -0
  316. package/dist/dimensions/output-format/document.js +2 -0
  317. package/dist/dimensions/output-format/document.js.map +1 -0
  318. package/dist/dimensions/output-format/natural-language.d.ts +2 -0
  319. package/dist/dimensions/output-format/natural-language.js +2 -0
  320. package/dist/dimensions/output-format/natural-language.js.map +1 -0
  321. package/dist/dimensions/output-format/structured-data.d.ts +2 -0
  322. package/dist/dimensions/output-format/structured-data.js +2 -0
  323. package/dist/dimensions/output-format/structured-data.js.map +1 -0
  324. package/dist/dimensions/output-format/structured-decision.d.ts +2 -0
  325. package/dist/dimensions/output-format/structured-decision.js +2 -0
  326. package/dist/dimensions/output-format/structured-decision.js.map +1 -0
  327. package/dist/dimensions/output-format/visualization.d.ts +2 -0
  328. package/dist/dimensions/output-format/visualization.js +2 -0
  329. package/dist/dimensions/output-format/visualization.js.map +1 -0
  330. package/dist/dimensions/reasoning-strategy/chain-of-thought.d.ts +2 -0
  331. package/dist/dimensions/reasoning-strategy/chain-of-thought.js +2 -0
  332. package/dist/dimensions/reasoning-strategy/chain-of-thought.js.map +1 -0
  333. package/dist/dimensions/reasoning-strategy/plan-and-solve.d.ts +2 -0
  334. package/dist/dimensions/reasoning-strategy/plan-and-solve.js +2 -0
  335. package/dist/dimensions/reasoning-strategy/plan-and-solve.js.map +1 -0
  336. package/dist/dimensions/reasoning-strategy/react.d.ts +2 -0
  337. package/dist/dimensions/reasoning-strategy/react.js +2 -0
  338. package/dist/dimensions/reasoning-strategy/react.js.map +1 -0
  339. package/dist/dimensions/reasoning-strategy/reflexion.d.ts +2 -0
  340. package/dist/dimensions/reasoning-strategy/reflexion.js +2 -0
  341. package/dist/dimensions/reasoning-strategy/reflexion.js.map +1 -0
  342. package/dist/dimensions/reasoning-strategy/tree-of-thoughts.d.ts +2 -0
  343. package/dist/dimensions/reasoning-strategy/tree-of-thoughts.js +2 -0
  344. package/dist/dimensions/reasoning-strategy/tree-of-thoughts.js.map +1 -0
  345. package/dist/dimensions/role/architect.d.ts +2 -0
  346. package/dist/dimensions/role/architect.js +2 -0
  347. package/dist/dimensions/role/architect.js.map +1 -0
  348. package/dist/dimensions/role/build.d.ts +2 -0
  349. package/dist/dimensions/role/build.js +2 -0
  350. package/dist/dimensions/role/build.js.map +1 -0
  351. package/dist/dimensions/role/converse.d.ts +2 -0
  352. package/dist/dimensions/role/converse.js +2 -0
  353. package/dist/dimensions/role/converse.js.map +1 -0
  354. package/dist/dimensions/role/curate.d.ts +2 -0
  355. package/dist/dimensions/role/curate.js +2 -0
  356. package/dist/dimensions/role/curate.js.map +1 -0
  357. package/dist/dimensions/role/diagnose.d.ts +2 -0
  358. package/dist/dimensions/role/diagnose.js +2 -0
  359. package/dist/dimensions/role/diagnose.js.map +1 -0
  360. package/dist/dimensions/role/document.d.ts +2 -0
  361. package/dist/dimensions/role/document.js +2 -0
  362. package/dist/dimensions/role/document.js.map +1 -0
  363. package/dist/dimensions/role/implement.d.ts +2 -0
  364. package/dist/dimensions/role/implement.js +2 -0
  365. package/dist/dimensions/role/implement.js.map +1 -0
  366. package/dist/dimensions/role/operate.d.ts +2 -0
  367. package/dist/dimensions/role/operate.js +2 -0
  368. package/dist/dimensions/role/operate.js.map +1 -0
  369. package/dist/dimensions/role/orchestrate.d.ts +2 -0
  370. package/dist/dimensions/role/orchestrate.js +2 -0
  371. package/dist/dimensions/role/orchestrate.js.map +1 -0
  372. package/dist/dimensions/role/plan.d.ts +2 -0
  373. package/dist/dimensions/role/plan.js +2 -0
  374. package/dist/dimensions/role/plan.js.map +1 -0
  375. package/dist/dimensions/role/research.d.ts +2 -0
  376. package/dist/dimensions/role/research.js +2 -0
  377. package/dist/dimensions/role/research.js.map +1 -0
  378. package/dist/dimensions/role/review.d.ts +2 -0
  379. package/dist/dimensions/role/review.js +2 -0
  380. package/dist/dimensions/role/review.js.map +1 -0
  381. package/dist/dimensions/role/test.d.ts +2 -0
  382. package/dist/dimensions/role/test.js +2 -0
  383. package/dist/dimensions/role/test.js.map +1 -0
  384. package/dist/dimensions/satisficing/optimize.d.ts +2 -0
  385. package/dist/dimensions/satisficing/optimize.js +2 -0
  386. package/dist/dimensions/satisficing/optimize.js.map +1 -0
  387. package/dist/dimensions/satisficing/satisfice.d.ts +2 -0
  388. package/dist/dimensions/satisficing/satisfice.js +2 -0
  389. package/dist/dimensions/satisficing/satisfice.js.map +1 -0
  390. package/dist/dimensions/self-evaluation/acceptance-criteria-check.d.ts +2 -0
  391. package/dist/dimensions/self-evaluation/acceptance-criteria-check.js +2 -0
  392. package/dist/dimensions/self-evaluation/acceptance-criteria-check.js.map +1 -0
  393. package/dist/dimensions/self-evaluation/cross-validation-consensus.d.ts +2 -0
  394. package/dist/dimensions/self-evaluation/cross-validation-consensus.js +2 -0
  395. package/dist/dimensions/self-evaluation/cross-validation-consensus.js.map +1 -0
  396. package/dist/dimensions/self-evaluation/executable-test-oracle.d.ts +2 -0
  397. package/dist/dimensions/self-evaluation/executable-test-oracle.js +2 -0
  398. package/dist/dimensions/self-evaluation/executable-test-oracle.js.map +1 -0
  399. package/dist/dimensions/self-evaluation/human-review.d.ts +2 -0
  400. package/dist/dimensions/self-evaluation/human-review.js +2 -0
  401. package/dist/dimensions/self-evaluation/human-review.js.map +1 -0
  402. package/dist/dimensions/self-evaluation/llm-as-judge.d.ts +2 -0
  403. package/dist/dimensions/self-evaluation/llm-as-judge.js +2 -0
  404. package/dist/dimensions/self-evaluation/llm-as-judge.js.map +1 -0
  405. package/dist/dimensions/self-evaluation/self-critique.d.ts +2 -0
  406. package/dist/dimensions/self-evaluation/self-critique.js +2 -0
  407. package/dist/dimensions/self-evaluation/self-critique.js.map +1 -0
  408. package/dist/dimensions/self-evaluation/verifier-model.d.ts +2 -0
  409. package/dist/dimensions/self-evaluation/verifier-model.js +2 -0
  410. package/dist/dimensions/self-evaluation/verifier-model.js.map +1 -0
  411. package/dist/dimensions/situation-awareness/comprehension.d.ts +2 -0
  412. package/dist/dimensions/situation-awareness/comprehension.js +2 -0
  413. package/dist/dimensions/situation-awareness/comprehension.js.map +1 -0
  414. package/dist/dimensions/situation-awareness/perception.d.ts +2 -0
  415. package/dist/dimensions/situation-awareness/perception.js +2 -0
  416. package/dist/dimensions/situation-awareness/perception.js.map +1 -0
  417. package/dist/dimensions/situation-awareness/projection.d.ts +2 -0
  418. package/dist/dimensions/situation-awareness/projection.js +2 -0
  419. package/dist/dimensions/situation-awareness/projection.js.map +1 -0
  420. package/dist/dimensions/transparency/answer-only.d.ts +2 -0
  421. package/dist/dimensions/transparency/answer-only.js +2 -0
  422. package/dist/dimensions/transparency/answer-only.js.map +1 -0
  423. package/dist/dimensions/transparency/decision-rationale.d.ts +2 -0
  424. package/dist/dimensions/transparency/decision-rationale.js +2 -0
  425. package/dist/dimensions/transparency/decision-rationale.js.map +1 -0
  426. package/dist/dimensions/transparency/limitation-disclosure.d.ts +2 -0
  427. package/dist/dimensions/transparency/limitation-disclosure.js +2 -0
  428. package/dist/dimensions/transparency/limitation-disclosure.js.map +1 -0
  429. package/dist/dimensions/transparency/post-hoc-rationale.d.ts +2 -0
  430. package/dist/dimensions/transparency/post-hoc-rationale.js +2 -0
  431. package/dist/dimensions/transparency/post-hoc-rationale.js.map +1 -0
  432. package/dist/dimensions/transparency/provenance-attribution.d.ts +2 -0
  433. package/dist/dimensions/transparency/provenance-attribution.js +2 -0
  434. package/dist/dimensions/transparency/provenance-attribution.js.map +1 -0
  435. package/dist/dimensions/transparency/reasoning-trace.d.ts +2 -0
  436. package/dist/dimensions/transparency/reasoning-trace.js +2 -0
  437. package/dist/dimensions/transparency/reasoning-trace.js.map +1 -0
  438. package/dist/dimensions/transparency/uncertainty-disclosure.d.ts +2 -0
  439. package/dist/dimensions/transparency/uncertainty-disclosure.js +2 -0
  440. package/dist/dimensions/transparency/uncertainty-disclosure.js.map +1 -0
  441. package/dist/dimensions/trigger/agent-message.d.ts +2 -0
  442. package/dist/dimensions/trigger/agent-message.js +2 -0
  443. package/dist/dimensions/trigger/agent-message.js.map +1 -0
  444. package/dist/dimensions/trigger/environment-event.d.ts +2 -0
  445. package/dist/dimensions/trigger/environment-event.js +2 -0
  446. package/dist/dimensions/trigger/environment-event.js.map +1 -0
  447. package/dist/dimensions/trigger/introspection-request.d.ts +2 -0
  448. package/dist/dimensions/trigger/introspection-request.js +2 -0
  449. package/dist/dimensions/trigger/introspection-request.js.map +1 -0
  450. package/dist/dimensions/trigger/scheduled-trigger.d.ts +2 -0
  451. package/dist/dimensions/trigger/scheduled-trigger.js +2 -0
  452. package/dist/dimensions/trigger/scheduled-trigger.js.map +1 -0
  453. package/dist/dimensions/trigger/tool-result.d.ts +2 -0
  454. package/dist/dimensions/trigger/tool-result.js +2 -0
  455. package/dist/dimensions/trigger/tool-result.js.map +1 -0
  456. package/dist/dimensions/trigger/user-message.d.ts +2 -0
  457. package/dist/dimensions/trigger/user-message.js +2 -0
  458. package/dist/dimensions/trigger/user-message.js.map +1 -0
  459. package/dist/genus/founding-doctrine.d.ts +7 -0
  460. package/dist/genus/founding-doctrine.js +41 -0
  461. package/dist/genus/founding-doctrine.js.map +1 -0
  462. package/dist/hook-cells.d.ts +3 -0
  463. package/dist/hook-cells.js +30 -0
  464. package/dist/hook-cells.js.map +1 -0
  465. package/dist/hooks/deploy-drift-notice.d.ts +2 -0
  466. package/dist/hooks/deploy-drift-notice.js +434 -0
  467. package/dist/hooks/deploy-drift-notice.js.map +1 -0
  468. package/dist/hooks/memory-consolidation-nudge.d.ts +2 -0
  469. package/dist/hooks/memory-consolidation-nudge.js +148 -0
  470. package/dist/hooks/memory-consolidation-nudge.js.map +1 -0
  471. package/dist/hooks/praxis-continuity.d.ts +2 -0
  472. package/dist/hooks/praxis-continuity.js +131 -0
  473. package/dist/hooks/praxis-continuity.js.map +1 -0
  474. package/dist/hooks/resume-availability-notice.d.ts +2 -0
  475. package/dist/hooks/resume-availability-notice.js +50 -0
  476. package/dist/hooks/resume-availability-notice.js.map +1 -0
  477. package/dist/hooks/stance-guardrail-pre.d.ts +2 -0
  478. package/dist/hooks/stance-guardrail-pre.js +170 -0
  479. package/dist/hooks/stance-guardrail-pre.js.map +1 -0
  480. package/dist/hooks/stance-guardrail.d.ts +2 -0
  481. package/dist/hooks/stance-guardrail.js +943 -0
  482. package/dist/hooks/stance-guardrail.js.map +1 -0
  483. package/dist/index.d.ts +2 -0
  484. package/dist/index.js +45 -0
  485. package/dist/index.js.map +1 -0
  486. package/dist/manifest.d.ts +191 -0
  487. package/dist/manifest.js +237 -0
  488. package/dist/manifest.js.map +1 -0
  489. package/dist/operator-lexicon.d.ts +302 -0
  490. package/dist/operator-lexicon.js +198 -0
  491. package/dist/operator-lexicon.js.map +1 -0
  492. package/dist/plan-states.d.ts +31 -0
  493. package/dist/plan-states.js +42 -0
  494. package/dist/plan-states.js.map +1 -0
  495. package/dist/rules/repo-preamble.d.ts +2 -0
  496. package/dist/rules/repo-preamble.js +56 -0
  497. package/dist/rules/repo-preamble.js.map +1 -0
  498. package/dist/skills/carry-on/skill.d.ts +2 -0
  499. package/dist/skills/carry-on/skill.js +56 -0
  500. package/dist/skills/carry-on/skill.js.map +1 -0
  501. package/dist/skills/conceptualize/skill.d.ts +2 -0
  502. package/dist/skills/conceptualize/skill.js +34 -0
  503. package/dist/skills/conceptualize/skill.js.map +1 -0
  504. package/dist/skills/create-agent/skill.d.ts +2 -0
  505. package/dist/skills/create-agent/skill.js +38 -0
  506. package/dist/skills/create-agent/skill.js.map +1 -0
  507. package/dist/skills/create-skill/skill.d.ts +2 -0
  508. package/dist/skills/create-skill/skill.js +27 -0
  509. package/dist/skills/create-skill/skill.js.map +1 -0
  510. package/dist/skills/dream/skill.d.ts +2 -0
  511. package/dist/skills/dream/skill.js +65 -0
  512. package/dist/skills/dream/skill.js.map +1 -0
  513. package/dist/skills/elicit/skill.d.ts +2 -0
  514. package/dist/skills/elicit/skill.js +26 -0
  515. package/dist/skills/elicit/skill.js.map +1 -0
  516. package/dist/skills/event-tap/skill.d.ts +2 -0
  517. package/dist/skills/event-tap/skill.js +37 -0
  518. package/dist/skills/event-tap/skill.js.map +1 -0
  519. package/dist/skills/exemplify/skill.d.ts +2 -0
  520. package/dist/skills/exemplify/skill.js +42 -0
  521. package/dist/skills/exemplify/skill.js.map +1 -0
  522. package/dist/skills/formalize/skill.d.ts +2 -0
  523. package/dist/skills/formalize/skill.js +35 -0
  524. package/dist/skills/formalize/skill.js.map +1 -0
  525. package/dist/skills/handoff/skill.d.ts +2 -0
  526. package/dist/skills/handoff/skill.js +27 -0
  527. package/dist/skills/handoff/skill.js.map +1 -0
  528. package/dist/skills/introspect/skill.d.ts +2 -0
  529. package/dist/skills/introspect/skill.js +47 -0
  530. package/dist/skills/introspect/skill.js.map +1 -0
  531. package/dist/skills/materialize/skill.d.ts +2 -0
  532. package/dist/skills/materialize/skill.js +54 -0
  533. package/dist/skills/materialize/skill.js.map +1 -0
  534. package/dist/skills/praxis/skill.d.ts +2 -0
  535. package/dist/skills/praxis/skill.js +196 -0
  536. package/dist/skills/praxis/skill.js.map +1 -0
  537. package/dist/skills/probe/skill.d.ts +2 -0
  538. package/dist/skills/probe/skill.js +58 -0
  539. package/dist/skills/probe/skill.js.map +1 -0
  540. package/dist/skills/signify/skill.d.ts +2 -0
  541. package/dist/skills/signify/skill.js +59 -0
  542. package/dist/skills/signify/skill.js.map +1 -0
  543. package/dist/skills/wake/skill.d.ts +2 -0
  544. package/dist/skills/wake/skill.js +43 -0
  545. package/dist/skills/wake/skill.js.map +1 -0
  546. package/package.json +72 -0
@@ -0,0 +1,131 @@
1
+ // praxis-continuity — the repo-level post-commit reminder. A scope-activated source
2
+ // cell on the GIT substrate: `vcs.commit.post` is an ordinary member of this
3
+ // corpus's `CANONICAL_EVENTS` carrying `substrate: 'git'`, so it is routed rather
4
+ // than refused — the `.husky/post-commit` dispatcher runs the committed worker
5
+ // directly and nothing reaches `settings.json`. Its `workers[].content` are the
6
+ // byte-anchors the committed `targets/continuity/` workers regenerate from
7
+ // (byte-locked).
8
+ //
9
+ // THE REVIEW THIS CELL WAS FLAGGED FOR IS CLOSED. The note read "not in FORGE's
10
+ // `CanonicalEvent` taxonomy" — stale by one package before it was stale by two, and
11
+ // it asked for either an addition to the taxonomy or a named exception. Neither was
12
+ // owed: the event was never exceptional, only unliterable, because the taxonomy was
13
+ // a closed union in `schema` that a git moment had no member to be. The vocabulary
14
+ // now lives where signification lives, `EventName` is open, and this cell names its
15
+ // moment exactly as a harness cell names its own.
16
+ export const praxisContinuity = {
17
+ id: 'praxis-continuity',
18
+ residue: 'post-commit detector ⟨task-file crosses state-folder ⇒ plan-mirror stale⟩ · nudge re-mirror · ¬edit · opt-in ↾ clone · exit-0 ⟨reminder ¬fail-commit⟩',
19
+ substrate: 'git',
20
+ events: ['vcs.commit.post'],
21
+ // git substrate: the entry is still named, never spelled as a path. Which
22
+ // directory git invokes it from is git's projection to make, not this cell's.
23
+ entry: 'praxis-advance-nudge.sh',
24
+ refs: [],
25
+ workers: [
26
+ {
27
+ filename: 'continuity-hook.sh',
28
+ targetPath: 'packages/canon/targets/continuity/continuity-hook.sh',
29
+ executable: true,
30
+ content: `#!/usr/bin/env sh
31
+ # continuity-hook — opt this repo in/out of the post-commit continuity ritual.
32
+ #
33
+ # The opt-in flag is a per-repo git config (agentfactory.continuity) living in .git/config,
34
+ # which is NOT checked in — so opting in is local to your clone and a fresh clone is
35
+ # opted out by default. The .husky/post-commit dispatcher reads this flag.
36
+ #
37
+ # pnpm run continuity:install → set agentfactory.continuity true
38
+ # pnpm run continuity:uninstall → unset (back to default off)
39
+ # pnpm run continuity:status → show current state
40
+ #
41
+ # Usage: continuity-hook.sh {install|uninstall|status}
42
+
43
+ set -e
44
+
45
+ cmd="\${1:-status}"
46
+
47
+ case "$cmd" in
48
+ install | on | true)
49
+ git config --bool agentfactory.continuity true
50
+ printf 'continuity: ENABLED for this repo (agentfactory.continuity=true).\\n'
51
+ printf ' Commits touching plans/**/{pending,ready,active,completed}/ now print a /praxis re-mirror reminder.\\n'
52
+ ;;
53
+ uninstall | off | false)
54
+ git config --unset agentfactory.continuity 2>/dev/null || true
55
+ printf 'continuity: DISABLED for this repo (agentfactory.continuity unset → default off).\\n'
56
+ ;;
57
+ status)
58
+ state=$(git config --bool agentfactory.continuity 2>/dev/null || echo "false")
59
+ printf 'continuity: %s (agentfactory.continuity=%s)\\n' \\
60
+ "$([ "$state" = "true" ] && echo ENABLED || echo "disabled (default)")" "$state"
61
+ ;;
62
+ *)
63
+ printf 'usage: continuity-hook.sh {install|uninstall|status}\\n' >&2
64
+ exit 2
65
+ ;;
66
+ esac
67
+ `,
68
+ },
69
+ {
70
+ filename: 'praxis-advance-nudge.sh',
71
+ targetPath: 'packages/canon/targets/continuity/praxis-advance-nudge.sh',
72
+ executable: true,
73
+ content: `#!/usr/bin/env sh
74
+ # praxis-advance-nudge — the repo-level continuity ritual, as a post-commit reminder.
75
+ #
76
+ # WHAT IT DOES (and deliberately does NOT do):
77
+ # When a commit moves plan task-files between their state folders
78
+ # (plans/**/{pending,ready,active,completed}/), PLAN.md — the hand-authored
79
+ # mirror of that folder-state — may now be stale. This script DETECTS that and
80
+ # PRINTS A REMINDER to re-mirror via /praxis. It never edits PLAN.md: the mirror
81
+ # is hand-authored prose; auto-rewriting it is out of scope (a future "mechanized
82
+ # PLAN.md generation" task). Detect → remind, never edit. (doc-mirrors-runtime-truth:
83
+ # the folders are the truth; this only flags that the mirror lagged.)
84
+ #
85
+ # SCOPE: praxis-advance is the ONE repo-level continuity ritual. encode/dream are
86
+ # per-AGENT sidecar-memory operations (~/.claude/agents/<name>/*) — not repo state,
87
+ # a git hook can't meaningfully fire them — so they are out of this hook's scope.
88
+ #
89
+ # OPT-IN: this runs only when \`git config --bool agentfactory.continuity\` is true. A fresh
90
+ # clone is opted out, so default commit behavior is unchanged. See continuity-hook.sh.
91
+ #
92
+ # POSIX sh; no deps beyond git. Exits 0 always — a reminder must never fail a commit.
93
+
94
+ set -e
95
+
96
+ # The commit just made (post-commit runs after HEAD has advanced).
97
+ git rev-parse HEAD >/dev/null 2>&1 || exit 0
98
+
99
+ # Files changed by HEAD. For a root commit (no parent) diff against the root.
100
+ if git rev-parse --verify --quiet HEAD^ >/dev/null 2>&1; then
101
+ changed=$(git diff-tree --no-commit-id --name-only -r HEAD 2>/dev/null) || exit 0
102
+ else
103
+ changed=$(git diff-tree --no-commit-id --name-only -r --root HEAD 2>/dev/null) || exit 0
104
+ fi
105
+
106
+ # Did this commit touch any plan state-folder? Match the four canonical states under
107
+ # any plans/ subtree (works whether or not a tasks/ or {concern} wrapper is present).
108
+ touched=$(printf '%s\\n' "$changed" \\
109
+ | grep -E '^plans/.*/(pending|ready|active|completed)/' || true)
110
+
111
+ [ -z "$touched" ] && exit 0
112
+
113
+ # Which plan dirs were touched (dedup to the plan root: plans/<plan>/).
114
+ plans=$(printf '%s\\n' "$touched" \\
115
+ | sed -E 's#^(plans/[^/]+)/.*#\\1#' | sort -u)
116
+
117
+ printf '\\n'
118
+ printf 'continuity · praxis-advance — plan state changed in this commit:\\n'
119
+ printf '%s\\n' "$plans" | sed 's/^/ /'
120
+ printf '\\n'
121
+ printf ' PLAN.md mirrors the task-folder state; it may now be stale.\\n'
122
+ printf ' Re-mirror with /praxis (advance the task, re-sync PLAN.md), then amend or follow-up commit.\\n'
123
+ printf ' (This is a reminder only — nothing was edited. Disable: pnpm run continuity:uninstall)\\n'
124
+ printf '\\n'
125
+
126
+ exit 0
127
+ `,
128
+ },
129
+ ],
130
+ };
131
+ //# sourceMappingURL=praxis-continuity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"praxis-continuity.js","sourceRoot":"","sources":["../../src/hooks/praxis-continuity.ts"],"names":[],"mappings":"AAEA,oFAAoF;AACpF,6EAA6E;AAC7E,kFAAkF;AAClF,+EAA+E;AAC/E,gFAAgF;AAChF,2EAA2E;AAC3E,iBAAiB;AACjB,EAAE;AACF,gFAAgF;AAChF,oFAAoF;AACpF,oFAAoF;AACpF,oFAAoF;AACpF,mFAAmF;AACnF,oFAAoF;AACpF,kDAAkD;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAa;IACxC,EAAE,EAAE,mBAAmB;IACvB,OAAO,EACL,uJAAuJ;IACzJ,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,CAAC,iBAAiB,CAAC;IAC3B,0EAA0E;IAC1E,8EAA8E;IAC9E,KAAK,EAAE,yBAAyB;IAChC,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP;YACE,QAAQ,EAAE,oBAAoB;YAC9B,UAAU,EAAE,sDAAsD;YAClE,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCd;SACI;QACD;YACE,QAAQ,EAAE,yBAAyB;YACnC,UAAU,EAAE,2DAA2D;YACvE,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDd;SACI;KACF;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { HookCell } from '../manifest.js';
2
+ export declare const resumeAvailabilityNotice: HookCell;
@@ -0,0 +1,50 @@
1
+ // resume-availability-notice — the SessionStart note. It tells the agent that
2
+ // memory exists and that `/wake` reconstitutes it, and does nothing else.
3
+ //
4
+ // WHY A NOTE AND NOT AN ACTION: reconstitution is the operator's call, not the
5
+ // harness's. The agent may already have been woken, may deliberately be wanted
6
+ // cold, or may simply have been started without it. A hook cannot tell which,
7
+ // so it must not decide — it makes the option visible and leaves the choice
8
+ // where it belongs.
9
+ //
10
+ // THE VERB-FREE LAW IS LOAD-BEARING, not tidiness. Every memory verb that
11
+ // touches the registry REGISTERS the session, and registration is exactly what
12
+ // distinguishes a woken session from an encode-only one (`SessionEntry.origin`).
13
+ // A note that called any such verb would register the session itself and make
14
+ // every session look woken — destroying the very signal that lets the agent
15
+ // notice it was NOT woken. So: no `session begin`, no `register`, no `read`, no
16
+ // `encode`. It reads nothing, writes nothing, and needs no home.
17
+ export const resumeAvailabilityNotice = {
18
+ id: 'resume-availability-notice',
19
+ residue: 'emit ↾ session.start · fixed-text · ¬verb ⟨any registry touch ⇒ every session reads woken ∴ origin destroyed⟩ · ¬read · ¬write · ¬home-derivation · reconstitution ↦ operator ⟨may have run it · may refuse it · may have forgotten⟩ · exit-0 ∀error',
20
+ substrate: 'harness',
21
+ events: ['session.start'],
22
+ entry: 'resume-availability-notice.sh',
23
+ timeout: 5,
24
+ refs: [],
25
+ workers: [
26
+ {
27
+ filename: 'resume-availability-notice.sh',
28
+ targetPath: 'packages/canon/targets/guardrail/resume-availability-notice.sh',
29
+ executable: true,
30
+ content: `#!/usr/bin/env sh
31
+ # resume-availability-notice — a SessionStart note. Emits ONE fixed line telling
32
+ # the agent that memory skills exist and that /wake reconstitutes it.
33
+ #
34
+ # It calls NO memory verb. That is a hard requirement, not a style choice: every
35
+ # registry-touching verb registers the session, and registration is what marks a
36
+ # session as woken. A note that registered would make every session look woken
37
+ # and destroy the signal it exists to support.
38
+ #
39
+ # Reads nothing, writes nothing, derives no home. Always exits 0.
40
+
41
+ set -eu
42
+ trap 'exit 0' EXIT
43
+
44
+ printf 'MEMORY — this agent has persistent memory. /wake reconstitutes it (prior state, standing plan, continuity); /dream consolidates it. Neither runs automatically.\\n'
45
+ exit 0
46
+ `,
47
+ },
48
+ ],
49
+ };
50
+ //# sourceMappingURL=resume-availability-notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume-availability-notice.js","sourceRoot":"","sources":["../../src/hooks/resume-availability-notice.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,oBAAoB;AACpB,EAAE;AACF,0EAA0E;AAC1E,+EAA+E;AAC/E,iFAAiF;AACjF,8EAA8E;AAC9E,4EAA4E;AAC5E,gFAAgF;AAChF,iEAAiE;AAEjE,MAAM,CAAC,MAAM,wBAAwB,GAAa;IAChD,EAAE,EAAE,4BAA4B;IAChC,OAAO,EACL,sPAAsP;IACxP,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,CAAC,eAAe,CAAC;IACzB,KAAK,EAAE,+BAA+B;IACtC,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP;YACE,QAAQ,EAAE,+BAA+B;YACzC,UAAU,EACR,gEAAgE;YAClE,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE;;;;;;;;;;;;;;;;CAgBd;SACI;KACF;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { HookCell } from '../manifest.js';
2
+ export declare const stanceGuardrailPre: HookCell;
@@ -0,0 +1,170 @@
1
+ // stance-guardrail-pre — the BEFORE-THE-CALL twin of `stance-guardrail` (the turn-end
2
+ // cell). It STRUCTURALLY REFUSES, BEFORE the call fires, a mid-turn tool call that
3
+ // collapses out of the intent-driven-expert stance. Two acts, and the acts are what it
4
+ // binds:
5
+ // - operator.consult.pre : a permission / option-menu on an in-remit reversible call
6
+ // - subagent.dispatch.pre : a dispatch that transcribes literal words w/o extracted intent
7
+ // Neither act fires turn-end, so the Stop guard is blind to them (the closed blind spot).
8
+ // It SHARES the deployed judge backend + rubric of the sibling `stance-guardrail` hook
9
+ // (one rubric, one judge — no duplication); only this worker is new.
10
+ //
11
+ // IT BINDS TWO ACTS, NOT ONE EVENT PLUS A REGEX. This cell used to read
12
+ // `events: ['tool.use.pre']` + `matcher: 'AskUserQuestion|Agent|SendMessage'` — three
13
+ // claude tool names on a harness-agnostic shape, which the codex adapter dropped
14
+ // without a word, so the hook there fired on EVERY tool call and only the worker's
15
+ // own `*) allow ;;` branch kept it correct. The two acts below were already latent in
16
+ // the residue (`permission-menu` · `dispatch-echo`); naming them moves the narrowing
17
+ // to the adapter, which alone knows which of its tools performs the act. Each adapter
18
+ // computes its own ⟨native event, native selector⟩ pair, and one that can fire an act
19
+ // but not narrow it now SAYS SO through the projection's warnings.
20
+ // `test/hook-rule-boundary.test.ts` byte-locks the worker;
21
+ // `test/hook-act-selector.test.ts` holds the seam.
22
+ export const stanceGuardrailPre = {
23
+ id: 'stance-guardrail-pre',
24
+ residue: 'structural-refusal ↾ mid-turn tool-call · deny-before-fire ⟨intent-driven-expert-collapse⟩ ⟨permission-menu · dispatch-echo ⟨literal-transcription ∄ extracted-intent⟩⟩ · pass ⟨reserved · irreversible-outward-consent · substantive-dispatch · intent-ambiguity ↦ elicit⟩ · shared judge-backend ⟨sibling⟩ · loop-safe ⟨re-entry-cap : ¬deny identical twice⟩',
25
+ substrate: 'harness',
26
+ order: 1,
27
+ events: ['operator.consult.pre', 'subagent.dispatch.pre'],
28
+ entry: 'stance-guardrail-pre.sh',
29
+ timeout: 60,
30
+ refs: [],
31
+ workers: [
32
+ {
33
+ filename: 'stance-guardrail-pre.sh',
34
+ targetPath: 'packages/canon/targets/guardrail/stance-guardrail-pre.sh',
35
+ executable: true,
36
+ content: `#!/usr/bin/env sh
37
+ # stance-guardrail-pre — a PreToolUse hook that STRUCTURALLY REFUSES a mid-turn tool
38
+ # call that collapses out of the intent-driven-expert (fiduciary-agent) stance BEFORE
39
+ # it fires. The pre-hoc twin of stance-guardrail (Stop): AskUserQuestion menus and
40
+ # Agent/SendMessage dispatch-echo never fire Stop, so the Stop guard cannot see them.
41
+ #
42
+ # WHAT IT DENIES (see stance-judge-prompt.md — the SHARED rubric):
43
+ # - AskUserQuestion : a permission / option-menu on an in-remit reversible call
44
+ # - Agent/SendMessage : a dispatch transcribing literal words without extracted intent
45
+ # WHAT IT DOES NOT DENY (reserved): an irreversible-outward consent menu, a true INTENT
46
+ # ambiguity, a substantive intent-extracted dispatch.
47
+ #
48
+ # SAFETY MODEL (mirrors stance-guardrail):
49
+ # - OFF BY DEFAULT (git config agentfactory.stanceGuard true).
50
+ # - AGENT-SCOPED (agent_type in the allowlist; default: nico mav). agent_type is
51
+ # present only for subagents / --agent mode; a top-level session call fails open.
52
+ # - FAILS OPEN. Any error (no jq, judge failure, bad input) -> exit 0 (allow the call).
53
+ # - LOOP-SAFE. A re-entry cap: never deny an identical tool_input twice (there is no
54
+ # stop_hook_active analog for PreToolUse), so it can never wedge a call.
55
+ # - OBSERVABLE. Judge failures/timeouts are logged (fails open, but a miss is visible).
56
+ #
57
+ # INPUT : Claude Code PreToolUse hook JSON on stdin (tool_name, tool_input, agent_type
58
+ # [subagents], session_id, cwd, ...).
59
+ # OUTPUT : on collapse -> stdout
60
+ # {"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"deny",
61
+ # "permissionDecisionReason":"..."}} + exit 0.
62
+ # otherwise -> no stdout + exit 0 (allow the call).
63
+ #
64
+ # POSIX sh. Depends on: jq. Missing jq -> fail open.
65
+
66
+ set -eu
67
+
68
+ # The sibling Stop hook's deployed dir owns the SHARED judge + rubric (deployed together).
69
+ JUDGE_DIR="\${STANCE_GUARD_DIR:-$HOME/.claude/hooks/stance-guardrail}"
70
+ RUBRIC="\${STANCE_RUBRIC:-$JUDGE_DIR/stance-judge-prompt.md}"
71
+ JUDGE_CMD="\${STANCE_JUDGE_CMD:-sh $JUDGE_DIR/stance-judge.sh}"
72
+ LOG="\${STANCE_GUARD_LOG:-$HOME/.claude/hooks/stance-guardrail-pre/misses.log}"
73
+
74
+ # A PreToolUse hook must never break a session. Trap any unexpected error -> allow.
75
+ trap 'exit 0' EXIT
76
+
77
+ allow() { exit 0; } # emit nothing; the tool call proceeds.
78
+ note() { printf '%s\\n' "$1" >> "$LOG" 2>/dev/null || true; }
79
+
80
+ # --- read hook input ------------------------------------------------------------------------
81
+ input="$(cat)"
82
+ [ -n "$input" ] || allow
83
+ command -v jq >/dev/null 2>&1 || allow # no jq -> cannot parse -> fail open
84
+
85
+ # --- opt-in gate (off by default) -----------------------------------------------------------
86
+ # Per-repo, lives in .git/config, never checked in. Resolve relative to the hook's cwd.
87
+ cwd="$(printf '%s' "$input" | jq -r '.cwd // empty' 2>/dev/null || true)"
88
+ [ -n "$cwd" ] && cd "$cwd" 2>/dev/null || true
89
+ enabled="$(git config --bool agentfactory.stanceGuard 2>/dev/null || echo false)"
90
+ [ "$enabled" = "true" ] || allow
91
+
92
+ # --- agent-scope gate -----------------------------------------------------------------------
93
+ # Only enforce for the configured agents (default: the principal-ic-intrinsic agents).
94
+ # agent_type is present only for a subagent / --agent tool call; absent for the top-level
95
+ # session -> fail open (unless STANCE_GUARD_AGENTS=*), exactly like the Stop guard.
96
+ agent_type="$(printf '%s' "$input" | jq -r '.agent_type // empty' 2>/dev/null || true)"
97
+ allowlist="\${STANCE_GUARD_AGENTS:-$(git config agentfactory.stanceGuardAgents 2>/dev/null || echo 'nico mav')}"
98
+ if [ "$allowlist" != "*" ]; then
99
+ [ -n "$agent_type" ] || allow # cannot identify the agent -> fail open
100
+ in_scope=false
101
+ for a in $allowlist; do
102
+ [ "$a" = "$agent_type" ] && in_scope=true && break
103
+ done
104
+ [ "$in_scope" = true ] || allow
105
+ fi
106
+
107
+ # --- extract the judged payload, branched by tool -------------------------------------------
108
+ tool_name="$(printf '%s' "$input" | jq -r '.tool_name // empty' 2>/dev/null || true)"
109
+ [ -n "$tool_name" ] || allow
110
+
111
+ case "$tool_name" in
112
+ AskUserQuestion)
113
+ # the questions + their option menus — the permission-menu class
114
+ body="$(printf '%s' "$input" | jq -r '
115
+ (.tool_input.questions // [])
116
+ | map("Q: " + (.question // "")
117
+ + " OPTIONS: " + ((.options // []) | map(.label // "") | join(" | ")))
118
+ | join(" ;; ")
119
+ ' 2>/dev/null || true)"
120
+ payload="AskUserQuestion menu (a question/option menu handed to the operator): $body" ;;
121
+ Agent|SendMessage)
122
+ # the dispatch prompt/message — the dispatch-echo class
123
+ body="$(printf '%s' "$input" | jq -r '.tool_input.prompt // .tool_input.message // .tool_input.description // ""' 2>/dev/null || true)"
124
+ payload="$tool_name dispatch (the delegate prompt/message): $body" ;;
125
+ *)
126
+ allow ;; # DEFENCE IN DEPTH, and on some harnesses the only narrowing there is:
127
+ # claude's adapter computes a selector from the act and this never fires;
128
+ # codex has no subject selector, so its projection WARNS and this branch
129
+ # is what keeps the guard off every other tool call.
130
+ esac
131
+
132
+ [ -n "\${body:-}" ] || allow # nothing judgeable -> allow
133
+
134
+ # --- loop-safety: never deny an identical tool_input twice ----------------------------------
135
+ # No stop_hook_active analog exists for PreToolUse; a per-(session,input) marker caps re-deny.
136
+ session_id="$(printf '%s' "$input" | jq -r '.session_id // "nosession"' 2>/dev/null || echo nosession)"
137
+ sig="$(printf '%s' "$input" | jq -c '.tool_input' 2>/dev/null | cksum | cut -d' ' -f1 2>/dev/null || echo 0)"
138
+ seen="\${TMPDIR:-/tmp}/.stance-pre-$session_id-$sig"
139
+ [ -f "$seen" ] && allow # already denied this exact input once -> let it through
140
+
141
+ # --- judge (SHARED backend + rubric) --------------------------------------------------------
142
+ verdict="$(printf '%s' "$payload" | $JUDGE_CMD "$RUBRIC" 2>/dev/null)" || {
143
+ note "$(date -u +%Y-%m-%dT%H:%M:%SZ) judge-fail tool=$tool_name agent=\${agent_type:-?}"
144
+ allow
145
+ }
146
+
147
+ decision="$(printf '%s\\n' "$verdict" | sed -n 's/^VERDICT:[[:space:]]*//p' | head -1)"
148
+ [ "$decision" = "BLOCK" ] || allow # PASS, empty, or anything but BLOCK -> allow
149
+
150
+ reason="$(printf '%s\\n' "$verdict" | sed -n 's/^REASON:[[:space:]]*//p' | head -1)"
151
+ [ -n "$reason" ] || reason="This tool call collapsed out of the intent-driven-expert stance."
152
+
153
+ # mark this exact input as denied-once (the cap) before emitting the deny
154
+ : > "$seen" 2>/dev/null || true
155
+
156
+ # --- DENY -----------------------------------------------------------------------------------
157
+ feedback="STANCE GUARDRAIL (pre) — denied this $tool_name call: it collapses out of the \\
158
+ intent-driven-expert stance. $reason Own the in-remit reversible call yourself instead of handing the \\
159
+ operator a menu; extract and serve the underlying INTENT instead of transcribing literal words into a \\
160
+ dispatch. Decide, note the call for review, and proceed. (Legitimate exceptions that should NOT be a menu \\
161
+ here: a genuine irreversible-outward consent choice, a true INTENT ambiguity for /elicit, or a substantive \\
162
+ intent-extracted dispatch.)"
163
+
164
+ jq -cn --arg r "$feedback" '{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:$r}}'
165
+ exit 0
166
+ `,
167
+ },
168
+ ],
169
+ };
170
+ //# sourceMappingURL=stance-guardrail-pre.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stance-guardrail-pre.js","sourceRoot":"","sources":["../../src/hooks/stance-guardrail-pre.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,mFAAmF;AACnF,uFAAuF;AACvF,SAAS;AACT,wFAAwF;AACxF,6FAA6F;AAC7F,0FAA0F;AAC1F,uFAAuF;AACvF,qEAAqE;AACrE,EAAE;AACF,wEAAwE;AACxE,sFAAsF;AACtF,iFAAiF;AACjF,mFAAmF;AACnF,sFAAsF;AACtF,qFAAqF;AACrF,sFAAsF;AACtF,sFAAsF;AACtF,mEAAmE;AACnE,2DAA2D;AAC3D,mDAAmD;AAEnD,MAAM,CAAC,MAAM,kBAAkB,GAAa;IAC1C,EAAE,EAAE,sBAAsB;IAC1B,OAAO,EACL,iWAAiW;IACnW,SAAS,EAAE,SAAS;IACpB,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;IACzD,KAAK,EAAE,yBAAyB;IAChC,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP;YACE,QAAQ,EAAE,yBAAyB;YACnC,UAAU,EAAE,0DAA0D;YACtE,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkId;SACI;KACF;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { HookCell } from '../manifest.js';
2
+ export declare const stanceGuardrail: HookCell;