@xhulz/nina 0.62.0 → 0.63.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/bin/nina.mjs +7 -0
  2. package/package.json +1 -1
  3. package/releases/0.63.0/core/GAPS.md +125 -0
  4. package/releases/0.63.0/core/answered.json +77 -0
  5. package/releases/0.63.0/core/defaults/tree/.claude/agents/architect.md +1 -0
  6. package/releases/0.63.0/core/defaults/tree/.claude/agents/dba.md +3 -0
  7. package/releases/0.63.0/core/defaults/tree/.claude/agents/devops.md +1 -0
  8. package/releases/0.63.0/core/defaults/tree/.claude/agents/implementer.md +1 -0
  9. package/releases/0.63.0/core/defaults/tree/.claude/agents/integration-tester.md +3 -0
  10. package/releases/0.63.0/core/defaults/tree/.claude/agents/qa.md +7 -0
  11. package/releases/0.63.0/core/defaults/tree/.claude/agents/reviewer.md +3 -0
  12. package/releases/0.63.0/core/defaults/tree/.claude/agents/secops.md +3 -0
  13. package/releases/0.63.0/core/defaults/tree/.claude/agents/solidity-auditor.md +3 -0
  14. package/releases/0.63.0/core/defaults/tree/.claude/agents/solidity-dev.md +3 -0
  15. package/releases/0.63.0/core/tree/.claude/agents/architect.md +133 -0
  16. package/releases/0.63.0/core/tree/.claude/agents/dba.md +119 -0
  17. package/releases/0.63.0/core/tree/.claude/agents/design-reviewer.md +76 -0
  18. package/releases/0.63.0/core/tree/.claude/agents/devops.md +118 -0
  19. package/releases/0.63.0/core/tree/.claude/agents/implementer.md +164 -0
  20. package/releases/0.63.0/core/tree/.claude/agents/integration-tester.md +170 -0
  21. package/releases/0.63.0/core/tree/.claude/agents/planner.md +132 -0
  22. package/releases/0.63.0/core/tree/.claude/agents/qa.md +150 -0
  23. package/releases/0.63.0/core/tree/.claude/agents/reviewer.md +187 -0
  24. package/releases/0.63.0/core/tree/.claude/agents/secops.md +120 -0
  25. package/releases/0.63.0/core/tree/.claude/agents/solidity-auditor.md +126 -0
  26. package/releases/0.63.0/core/tree/.claude/agents/solidity-dev.md +123 -0
  27. package/releases/0.63.0/core/tree/.claude/agents-overview.md +65 -0
  28. package/releases/0.63.0/core/tree/.claude/frontend.md +10 -0
  29. package/releases/0.63.0/core/tree/.claude/graph.md +79 -0
  30. package/releases/0.63.0/core/tree/.claude/patterns.md +251 -0
  31. package/releases/0.63.0/core/tree/.claude/pills/README.md +150 -0
  32. package/releases/0.63.0/core/tree/.claude/pipeline.md +101 -0
  33. package/releases/0.63.0/core/tree/.claude/retrieval.md +103 -0
  34. package/releases/0.63.0/core/tree/.claude/router.md +211 -0
  35. package/releases/0.63.0/core/tree/.claude/templates/integration.md +48 -0
  36. package/releases/0.63.0/core/tree/CLAUDE.md +166 -0
  37. package/releases/0.63.0/core/tree/scripts/cost-watch.mjs +25 -0
  38. package/releases/0.63.0/core/tree/scripts/edit-guard.mjs +24 -0
  39. package/releases/0.63.0/core/tree/scripts/harness-check.mjs +80 -0
  40. package/releases/0.63.0/core/tree/scripts/loop-gate.mjs +19 -0
  41. package/releases/0.63.0/core/vocabulary.json +14 -0
  42. package/releases/0.63.0/surfaces/blockchain/tree/.claude/agents/architect.md +5 -0
  43. package/releases/0.63.0/surfaces/blockchain/tree/.claude/agents/devops.md +5 -0
  44. package/releases/0.63.0/surfaces/blockchain/tree/.claude/agents/reviewer.md +5 -0
  45. package/releases/0.63.0/surfaces/blockchain/tree/.claude/agents/solidity-auditor.md +18 -0
  46. package/releases/0.63.0/surfaces/blockchain/tree/.claude/agents/solidity-dev.md +16 -0
  47. package/releases/0.63.0/surfaces/blockchain/tree/.claude/agents-overview.md +6 -0
  48. package/releases/0.63.0/surfaces/blockchain/tree/.claude/graph.md +11 -0
  49. package/releases/0.63.0/surfaces/blockchain/tree/.claude/router.md +6 -0
  50. package/releases/0.63.0/surfaces/blockchain/tree/CLAUDE.md +12 -0
  51. package/releases/0.63.0/surfaces/d1/tree/.claude/agents/dba.md +15 -0
  52. package/releases/0.63.0/surfaces/d1/tree/.claude/agents/devops.md +2 -0
  53. package/releases/0.63.0/surfaces/d1/tree/.claude/agents/implementer.md +2 -0
  54. package/releases/0.63.0/surfaces/d1/tree/.claude/patterns.md +8 -0
  55. package/releases/0.63.0/surfaces/d1/tree/CLAUDE.md +2 -0
  56. package/releases/0.63.0/surfaces/db/tree/.claude/agents/architect.md +5 -0
  57. package/releases/0.63.0/surfaces/db/tree/.claude/agents/dba.md +54 -0
  58. package/releases/0.63.0/surfaces/db/tree/.claude/agents/devops.md +5 -0
  59. package/releases/0.63.0/surfaces/db/tree/.claude/agents/implementer.md +2 -0
  60. package/releases/0.63.0/surfaces/db/tree/.claude/agents/integration-tester.md +10 -0
  61. package/releases/0.63.0/surfaces/db/tree/.claude/agents/planner.md +2 -0
  62. package/releases/0.63.0/surfaces/db/tree/.claude/agents/reviewer.md +22 -0
  63. package/releases/0.63.0/surfaces/db/tree/.claude/agents/secops.md +2 -0
  64. package/releases/0.63.0/surfaces/db/tree/.claude/agents-overview.md +5 -0
  65. package/releases/0.63.0/surfaces/db/tree/.claude/graph.md +8 -0
  66. package/releases/0.63.0/surfaces/db/tree/.claude/patterns.md +22 -0
  67. package/releases/0.63.0/surfaces/db/tree/.claude/pipeline.md +13 -0
  68. package/releases/0.63.0/surfaces/db/tree/.claude/retrieval.md +5 -0
  69. package/releases/0.63.0/surfaces/db/tree/.claude/router.md +4 -0
  70. package/releases/0.63.0/surfaces/db/tree/CLAUDE.md +17 -0
  71. package/releases/0.63.0/surfaces/drizzle/tree/.claude/agents/dba.md +9 -0
  72. package/releases/0.63.0/surfaces/drizzle/tree/.claude/agents/devops.md +5 -0
  73. package/releases/0.63.0/surfaces/drizzle/tree/.claude/agents/implementer.md +2 -0
  74. package/releases/0.63.0/surfaces/drizzle/tree/.claude/patterns.md +7 -0
  75. package/releases/0.63.0/surfaces/edge-cf/tree/.claude/agents/architect.md +14 -0
  76. package/releases/0.63.0/surfaces/edge-cf/tree/.claude/agents/dba.md +2 -0
  77. package/releases/0.63.0/surfaces/edge-cf/tree/.claude/agents/devops.md +29 -0
  78. package/releases/0.63.0/surfaces/edge-cf/tree/.claude/agents/implementer.md +14 -0
  79. package/releases/0.63.0/surfaces/edge-cf/tree/.claude/agents/integration-tester.md +11 -0
  80. package/releases/0.63.0/surfaces/edge-cf/tree/.claude/agents/qa.md +3 -0
  81. package/releases/0.63.0/surfaces/edge-cf/tree/.claude/agents/reviewer.md +8 -0
  82. package/releases/0.63.0/surfaces/edge-cf/tree/.claude/agents/secops.md +8 -0
  83. package/releases/0.63.0/surfaces/edge-cf/tree/.claude/patterns.md +17 -0
  84. package/releases/0.63.0/surfaces/edge-cf/tree/.claude/retrieval.md +8 -0
  85. package/releases/0.63.0/surfaces/edge-cf/tree/CLAUDE.md +27 -0
  86. package/releases/0.63.0/surfaces/frontend/tree/.claude/agents/architect.md +20 -0
  87. package/releases/0.63.0/surfaces/frontend/tree/.claude/agents/devops.md +28 -0
  88. package/releases/0.63.0/surfaces/frontend/tree/.claude/agents/implementer.md +25 -0
  89. package/releases/0.63.0/surfaces/frontend/tree/.claude/agents/qa.md +17 -0
  90. package/releases/0.63.0/surfaces/frontend/tree/.claude/agents/reviewer.md +56 -0
  91. package/releases/0.63.0/surfaces/frontend/tree/.claude/patterns.md +8 -0
  92. package/releases/0.63.0/surfaces/frontend/tree/.claude/retrieval.md +2 -0
  93. package/releases/0.63.0/surfaces/frontend/tree/.claude/router.md +14 -0
  94. package/releases/0.63.0/surfaces/frontend/tree/CLAUDE.md +5 -0
  95. package/releases/0.63.0/surfaces/integrations/tree/.claude/agents/architect.md +16 -0
  96. package/releases/0.63.0/surfaces/integrations/tree/.claude/agents/implementer.md +12 -0
  97. package/releases/0.63.0/surfaces/integrations/tree/.claude/agents/integration-tester.md +20 -0
  98. package/releases/0.63.0/surfaces/integrations/tree/.claude/agents/planner.md +2 -0
  99. package/releases/0.63.0/surfaces/integrations/tree/.claude/agents/reviewer.md +21 -0
  100. package/releases/0.63.0/surfaces/integrations/tree/.claude/agents/secops.md +2 -0
  101. package/releases/0.63.0/surfaces/integrations/tree/.claude/agents-overview.md +8 -0
  102. package/releases/0.63.0/surfaces/integrations/tree/.claude/graph.md +10 -0
  103. package/releases/0.63.0/surfaces/integrations/tree/.claude/patterns.md +38 -0
  104. package/releases/0.63.0/surfaces/integrations/tree/.claude/pipeline.md +16 -0
  105. package/releases/0.63.0/surfaces/integrations/tree/.claude/retrieval.md +16 -0
  106. package/releases/0.63.0/surfaces/integrations/tree/.claude/router.md +6 -0
  107. package/releases/0.63.0/surfaces/integrations/tree/CLAUDE.md +17 -0
  108. package/releases/0.63.0/surfaces/money/tree/.claude/agents/architect.md +12 -0
  109. package/releases/0.63.0/surfaces/money/tree/.claude/agents/dba.md +14 -0
  110. package/releases/0.63.0/surfaces/money/tree/.claude/agents/implementer.md +11 -0
  111. package/releases/0.63.0/surfaces/money/tree/.claude/agents/integration-tester.md +3 -0
  112. package/releases/0.63.0/surfaces/money/tree/.claude/agents/reviewer.md +23 -0
  113. package/releases/0.63.0/surfaces/money/tree/.claude/agents/secops.md +5 -0
  114. package/releases/0.63.0/surfaces/money/tree/.claude/agents/solidity-auditor.md +4 -0
  115. package/releases/0.63.0/surfaces/money/tree/.claude/agents/solidity-dev.md +4 -0
  116. package/releases/0.63.0/surfaces/money/tree/.claude/graph.md +2 -0
  117. package/releases/0.63.0/surfaces/money/tree/.claude/patterns.md +49 -0
  118. package/releases/0.63.0/surfaces/money/tree/.claude/pipeline.md +2 -0
  119. package/releases/0.63.0/surfaces/money/tree/.claude/retrieval.md +2 -0
  120. package/releases/0.63.0/surfaces/money/tree/CLAUDE.md +11 -0
  121. package/releases/0.63.0/surfaces/pii/tree/.claude/agents/dba.md +2 -0
  122. package/releases/0.63.0/surfaces/pii/tree/.claude/agents/devops.md +8 -0
  123. package/releases/0.63.0/surfaces/pii/tree/.claude/agents/reviewer.md +8 -0
  124. package/releases/0.63.0/surfaces/pii/tree/.claude/agents/secops.md +2 -0
  125. package/releases/0.63.0/surfaces/pii/tree/.claude/agents/solidity-auditor.md +5 -0
  126. package/releases/0.63.0/surfaces/pii/tree/CLAUDE.md +5 -0
  127. package/releases/0.63.0/surfaces/prisma/tree/.claude/agents/architect.md +2 -0
  128. package/releases/0.63.0/surfaces/prisma/tree/.claude/agents/dba.md +42 -0
  129. package/releases/0.63.0/surfaces/prisma/tree/.claude/agents/devops.md +11 -0
  130. package/releases/0.63.0/surfaces/prisma/tree/.claude/agents/implementer.md +2 -0
  131. package/releases/0.63.0/surfaces/prisma/tree/.claude/agents/integration-tester.md +2 -0
  132. package/releases/0.63.0/surfaces/prisma/tree/.claude/agents/reviewer.md +2 -0
  133. package/releases/0.63.0/surfaces/prisma/tree/.claude/patterns.md +15 -0
  134. package/releases/0.63.0/surfaces/prisma/tree/CLAUDE.md +5 -0
  135. package/releases/0.63.1/core/GAPS.md +125 -0
  136. package/releases/0.63.1/core/answered.json +77 -0
  137. package/releases/0.63.1/core/defaults/tree/.claude/agents/architect.md +1 -0
  138. package/releases/0.63.1/core/defaults/tree/.claude/agents/dba.md +3 -0
  139. package/releases/0.63.1/core/defaults/tree/.claude/agents/devops.md +1 -0
  140. package/releases/0.63.1/core/defaults/tree/.claude/agents/implementer.md +1 -0
  141. package/releases/0.63.1/core/defaults/tree/.claude/agents/integration-tester.md +3 -0
  142. package/releases/0.63.1/core/defaults/tree/.claude/agents/qa.md +7 -0
  143. package/releases/0.63.1/core/defaults/tree/.claude/agents/reviewer.md +3 -0
  144. package/releases/0.63.1/core/defaults/tree/.claude/agents/secops.md +3 -0
  145. package/releases/0.63.1/core/defaults/tree/.claude/agents/solidity-auditor.md +3 -0
  146. package/releases/0.63.1/core/defaults/tree/.claude/agents/solidity-dev.md +3 -0
  147. package/releases/0.63.1/core/tree/.claude/agents/architect.md +133 -0
  148. package/releases/0.63.1/core/tree/.claude/agents/dba.md +119 -0
  149. package/releases/0.63.1/core/tree/.claude/agents/design-reviewer.md +76 -0
  150. package/releases/0.63.1/core/tree/.claude/agents/devops.md +118 -0
  151. package/releases/0.63.1/core/tree/.claude/agents/implementer.md +164 -0
  152. package/releases/0.63.1/core/tree/.claude/agents/integration-tester.md +170 -0
  153. package/releases/0.63.1/core/tree/.claude/agents/planner.md +132 -0
  154. package/releases/0.63.1/core/tree/.claude/agents/qa.md +150 -0
  155. package/releases/0.63.1/core/tree/.claude/agents/reviewer.md +187 -0
  156. package/releases/0.63.1/core/tree/.claude/agents/secops.md +120 -0
  157. package/releases/0.63.1/core/tree/.claude/agents/solidity-auditor.md +126 -0
  158. package/releases/0.63.1/core/tree/.claude/agents/solidity-dev.md +123 -0
  159. package/releases/0.63.1/core/tree/.claude/agents-overview.md +65 -0
  160. package/releases/0.63.1/core/tree/.claude/frontend.md +10 -0
  161. package/releases/0.63.1/core/tree/.claude/graph.md +79 -0
  162. package/releases/0.63.1/core/tree/.claude/patterns.md +251 -0
  163. package/releases/0.63.1/core/tree/.claude/pills/README.md +150 -0
  164. package/releases/0.63.1/core/tree/.claude/pipeline.md +101 -0
  165. package/releases/0.63.1/core/tree/.claude/retrieval.md +103 -0
  166. package/releases/0.63.1/core/tree/.claude/router.md +211 -0
  167. package/releases/0.63.1/core/tree/.claude/templates/integration.md +48 -0
  168. package/releases/0.63.1/core/tree/CLAUDE.md +166 -0
  169. package/releases/0.63.1/core/tree/scripts/cost-watch.mjs +25 -0
  170. package/releases/0.63.1/core/tree/scripts/edit-guard.mjs +24 -0
  171. package/releases/0.63.1/core/tree/scripts/harness-check.mjs +80 -0
  172. package/releases/0.63.1/core/tree/scripts/loop-gate.mjs +19 -0
  173. package/releases/0.63.1/core/vocabulary.json +14 -0
  174. package/releases/0.63.1/surfaces/blockchain/tree/.claude/agents/architect.md +5 -0
  175. package/releases/0.63.1/surfaces/blockchain/tree/.claude/agents/devops.md +5 -0
  176. package/releases/0.63.1/surfaces/blockchain/tree/.claude/agents/reviewer.md +5 -0
  177. package/releases/0.63.1/surfaces/blockchain/tree/.claude/agents/solidity-auditor.md +18 -0
  178. package/releases/0.63.1/surfaces/blockchain/tree/.claude/agents/solidity-dev.md +16 -0
  179. package/releases/0.63.1/surfaces/blockchain/tree/.claude/agents-overview.md +6 -0
  180. package/releases/0.63.1/surfaces/blockchain/tree/.claude/graph.md +11 -0
  181. package/releases/0.63.1/surfaces/blockchain/tree/.claude/router.md +6 -0
  182. package/releases/0.63.1/surfaces/blockchain/tree/CLAUDE.md +12 -0
  183. package/releases/0.63.1/surfaces/d1/tree/.claude/agents/dba.md +15 -0
  184. package/releases/0.63.1/surfaces/d1/tree/.claude/agents/devops.md +2 -0
  185. package/releases/0.63.1/surfaces/d1/tree/.claude/agents/implementer.md +2 -0
  186. package/releases/0.63.1/surfaces/d1/tree/.claude/patterns.md +8 -0
  187. package/releases/0.63.1/surfaces/d1/tree/CLAUDE.md +2 -0
  188. package/releases/0.63.1/surfaces/db/tree/.claude/agents/architect.md +5 -0
  189. package/releases/0.63.1/surfaces/db/tree/.claude/agents/dba.md +54 -0
  190. package/releases/0.63.1/surfaces/db/tree/.claude/agents/devops.md +5 -0
  191. package/releases/0.63.1/surfaces/db/tree/.claude/agents/implementer.md +2 -0
  192. package/releases/0.63.1/surfaces/db/tree/.claude/agents/integration-tester.md +10 -0
  193. package/releases/0.63.1/surfaces/db/tree/.claude/agents/planner.md +2 -0
  194. package/releases/0.63.1/surfaces/db/tree/.claude/agents/reviewer.md +22 -0
  195. package/releases/0.63.1/surfaces/db/tree/.claude/agents/secops.md +2 -0
  196. package/releases/0.63.1/surfaces/db/tree/.claude/agents-overview.md +5 -0
  197. package/releases/0.63.1/surfaces/db/tree/.claude/graph.md +8 -0
  198. package/releases/0.63.1/surfaces/db/tree/.claude/patterns.md +22 -0
  199. package/releases/0.63.1/surfaces/db/tree/.claude/pipeline.md +13 -0
  200. package/releases/0.63.1/surfaces/db/tree/.claude/retrieval.md +5 -0
  201. package/releases/0.63.1/surfaces/db/tree/.claude/router.md +4 -0
  202. package/releases/0.63.1/surfaces/db/tree/CLAUDE.md +17 -0
  203. package/releases/0.63.1/surfaces/drizzle/tree/.claude/agents/dba.md +9 -0
  204. package/releases/0.63.1/surfaces/drizzle/tree/.claude/agents/devops.md +5 -0
  205. package/releases/0.63.1/surfaces/drizzle/tree/.claude/agents/implementer.md +2 -0
  206. package/releases/0.63.1/surfaces/drizzle/tree/.claude/patterns.md +7 -0
  207. package/releases/0.63.1/surfaces/edge-cf/tree/.claude/agents/architect.md +14 -0
  208. package/releases/0.63.1/surfaces/edge-cf/tree/.claude/agents/dba.md +2 -0
  209. package/releases/0.63.1/surfaces/edge-cf/tree/.claude/agents/devops.md +29 -0
  210. package/releases/0.63.1/surfaces/edge-cf/tree/.claude/agents/implementer.md +14 -0
  211. package/releases/0.63.1/surfaces/edge-cf/tree/.claude/agents/integration-tester.md +11 -0
  212. package/releases/0.63.1/surfaces/edge-cf/tree/.claude/agents/qa.md +3 -0
  213. package/releases/0.63.1/surfaces/edge-cf/tree/.claude/agents/reviewer.md +8 -0
  214. package/releases/0.63.1/surfaces/edge-cf/tree/.claude/agents/secops.md +8 -0
  215. package/releases/0.63.1/surfaces/edge-cf/tree/.claude/patterns.md +17 -0
  216. package/releases/0.63.1/surfaces/edge-cf/tree/.claude/retrieval.md +8 -0
  217. package/releases/0.63.1/surfaces/edge-cf/tree/CLAUDE.md +27 -0
  218. package/releases/0.63.1/surfaces/frontend/tree/.claude/agents/architect.md +20 -0
  219. package/releases/0.63.1/surfaces/frontend/tree/.claude/agents/devops.md +28 -0
  220. package/releases/0.63.1/surfaces/frontend/tree/.claude/agents/implementer.md +25 -0
  221. package/releases/0.63.1/surfaces/frontend/tree/.claude/agents/qa.md +17 -0
  222. package/releases/0.63.1/surfaces/frontend/tree/.claude/agents/reviewer.md +56 -0
  223. package/releases/0.63.1/surfaces/frontend/tree/.claude/patterns.md +8 -0
  224. package/releases/0.63.1/surfaces/frontend/tree/.claude/retrieval.md +2 -0
  225. package/releases/0.63.1/surfaces/frontend/tree/.claude/router.md +14 -0
  226. package/releases/0.63.1/surfaces/frontend/tree/CLAUDE.md +5 -0
  227. package/releases/0.63.1/surfaces/integrations/tree/.claude/agents/architect.md +16 -0
  228. package/releases/0.63.1/surfaces/integrations/tree/.claude/agents/implementer.md +12 -0
  229. package/releases/0.63.1/surfaces/integrations/tree/.claude/agents/integration-tester.md +20 -0
  230. package/releases/0.63.1/surfaces/integrations/tree/.claude/agents/planner.md +2 -0
  231. package/releases/0.63.1/surfaces/integrations/tree/.claude/agents/reviewer.md +21 -0
  232. package/releases/0.63.1/surfaces/integrations/tree/.claude/agents/secops.md +2 -0
  233. package/releases/0.63.1/surfaces/integrations/tree/.claude/agents-overview.md +8 -0
  234. package/releases/0.63.1/surfaces/integrations/tree/.claude/graph.md +10 -0
  235. package/releases/0.63.1/surfaces/integrations/tree/.claude/patterns.md +38 -0
  236. package/releases/0.63.1/surfaces/integrations/tree/.claude/pipeline.md +16 -0
  237. package/releases/0.63.1/surfaces/integrations/tree/.claude/retrieval.md +16 -0
  238. package/releases/0.63.1/surfaces/integrations/tree/.claude/router.md +6 -0
  239. package/releases/0.63.1/surfaces/integrations/tree/CLAUDE.md +17 -0
  240. package/releases/0.63.1/surfaces/money/tree/.claude/agents/architect.md +12 -0
  241. package/releases/0.63.1/surfaces/money/tree/.claude/agents/dba.md +14 -0
  242. package/releases/0.63.1/surfaces/money/tree/.claude/agents/implementer.md +11 -0
  243. package/releases/0.63.1/surfaces/money/tree/.claude/agents/integration-tester.md +3 -0
  244. package/releases/0.63.1/surfaces/money/tree/.claude/agents/reviewer.md +23 -0
  245. package/releases/0.63.1/surfaces/money/tree/.claude/agents/secops.md +5 -0
  246. package/releases/0.63.1/surfaces/money/tree/.claude/agents/solidity-auditor.md +4 -0
  247. package/releases/0.63.1/surfaces/money/tree/.claude/agents/solidity-dev.md +4 -0
  248. package/releases/0.63.1/surfaces/money/tree/.claude/graph.md +2 -0
  249. package/releases/0.63.1/surfaces/money/tree/.claude/patterns.md +49 -0
  250. package/releases/0.63.1/surfaces/money/tree/.claude/pipeline.md +2 -0
  251. package/releases/0.63.1/surfaces/money/tree/.claude/retrieval.md +2 -0
  252. package/releases/0.63.1/surfaces/money/tree/CLAUDE.md +11 -0
  253. package/releases/0.63.1/surfaces/pii/tree/.claude/agents/dba.md +2 -0
  254. package/releases/0.63.1/surfaces/pii/tree/.claude/agents/devops.md +8 -0
  255. package/releases/0.63.1/surfaces/pii/tree/.claude/agents/reviewer.md +8 -0
  256. package/releases/0.63.1/surfaces/pii/tree/.claude/agents/secops.md +2 -0
  257. package/releases/0.63.1/surfaces/pii/tree/.claude/agents/solidity-auditor.md +5 -0
  258. package/releases/0.63.1/surfaces/pii/tree/CLAUDE.md +5 -0
  259. package/releases/0.63.1/surfaces/prisma/tree/.claude/agents/architect.md +2 -0
  260. package/releases/0.63.1/surfaces/prisma/tree/.claude/agents/dba.md +42 -0
  261. package/releases/0.63.1/surfaces/prisma/tree/.claude/agents/devops.md +11 -0
  262. package/releases/0.63.1/surfaces/prisma/tree/.claude/agents/implementer.md +2 -0
  263. package/releases/0.63.1/surfaces/prisma/tree/.claude/agents/integration-tester.md +2 -0
  264. package/releases/0.63.1/surfaces/prisma/tree/.claude/agents/reviewer.md +2 -0
  265. package/releases/0.63.1/surfaces/prisma/tree/.claude/patterns.md +15 -0
  266. package/releases/0.63.1/surfaces/prisma/tree/CLAUDE.md +5 -0
  267. package/src/commands/sizes.mjs +356 -0
  268. package/src/commands/upgrade.mjs +5 -0
  269. package/src/gate.mjs +138 -4
package/src/gate.mjs CHANGED
@@ -59,7 +59,7 @@
59
59
 
60
60
  import { spawnSync } from 'node:child_process';
61
61
  import { appendFileSync, closeSync, existsSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, realpathSync, statSync, unlinkSync, writeFileSync } from 'node:fs';
62
- import { dirname, join } from 'node:path';
62
+ import { basename, dirname, join } from 'node:path';
63
63
  import { fileURLToPath } from 'node:url';
64
64
  import { TERMINALS, declaredTokens, parseGraph } from './graph.mjs';
65
65
  import { gateDir, layerRootFor, readProfile, slugFor } from './paths.mjs';
@@ -215,7 +215,7 @@ export function loadProject(root) {
215
215
  const spec = join(root, '.claude', 'agents', `${stage}.md`);
216
216
  if (existsSync(spec)) tokens.set(stage, declaredTokens(readFileSync(spec, 'utf8')));
217
217
  }
218
- return { graph, tokens, loops: loopEdges(graph), forward: forwardEdges(graph) };
218
+ return { root, graph, tokens, loops: loopEdges(graph), forward: forwardEdges(graph) };
219
219
  }
220
220
 
221
221
  /**
@@ -637,7 +637,138 @@ function onPost(input, project, path, at) {
637
637
  // The name an agent was launched with, if any: a later SendMessage may reach it by that name alone.
638
638
  const name = tool !== 'SendMessage' && typeof input.tool_input?.name === 'string' ? input.tool_input.name.slice(0, 80) : null;
639
639
  append(path, { k: 'dispatch', at, role, agent, via: tool, id: input.tool_use_id ?? null, ...describedAs(input), ...(name ? { name } : {}), ...(resumed === undefined ? {} : { resumed }) });
640
- return null;
640
+ // A stage run in the foreground has finished by now, and its report is this call's result. One launched in the
641
+ // background, or sent a message, has not: its report arrives later, as a prompt.
642
+ if (tool === 'SendMessage' || response.isAsync === true || String(response.status ?? '').startsWith('async') || input.tool_input?.run_in_background === true) return null;
643
+ return leftBehind(input, project, path, at, agent, 'PostToolUse');
644
+ }
645
+
646
+ /** Where a tool call names a path: a shell command, or a file tool's path. A file's contents are not read, and a long
647
+ * run of characters with no space — a base64 blob a stage wrote — is what made the pattern below take seconds. */
648
+ const PATH_KEYS = ['command', 'file_path', 'path', 'notebook_path'];
649
+
650
+ /** A text as a pattern that matches it literally. */
651
+ const literal = (text) => text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
652
+
653
+ /** How much of a stage's transcript is read for its commands: a run's commands are seldom near this, a stray never is. */
654
+ const STRAY_TAIL = 32 * 1024 * 1024;
655
+
656
+ /**
657
+ * What a stage left at the root of the session's scratchpad (Hard Rule #18): each entry its commands named there, made
658
+ * or changed since it was dispatched, that is not a stage's directory, `<role>-<step>-XXXX`. On the first night the rule
659
+ * held it was read and still missed twice — a reviewer's log, an integration-tester's pointer file — and only the
660
+ * orchestrator, by chance, saw either. The root is the one the stage's commands used, written out or held in a
661
+ * variable, so nothing here assumes where Claude Code keeps it; an entry no command of the stage named, or one it only
662
+ * read, is not laid at its door. A `cd` into the root and a bare name are not followed.
663
+ *
664
+ * @param {string} transcript - The stage's own transcript.
665
+ * @param {Set<string>} roles - The pipeline's stages, whose directories the root may hold.
666
+ * @param {{since?: number, project?: string}} [options] - When the stage was dispatched, in ms; and the project, inside
667
+ * which a directory called `scratchpad` is the project's own, not the session's.
668
+ * @returns {string[]} The paths left there.
669
+ */
670
+ export function strays(transcript, roles, { since = 0, project = null } = {}) {
671
+ let text = '';
672
+ try {
673
+ const size = statSync(transcript).size;
674
+ const length = Math.min(size, STRAY_TAIL);
675
+ const buffer = Buffer.alloc(length);
676
+ const fd = openSync(transcript, 'r');
677
+ try {
678
+ readSync(fd, buffer, 0, length, size - length);
679
+ } finally {
680
+ closeSync(fd);
681
+ }
682
+ for (const line of buffer.toString('utf8').split('\n')) {
683
+ if (!line.includes('"tool_use"') || !line.includes('scratchpad')) continue;
684
+ let row;
685
+ try {
686
+ row = JSON.parse(line);
687
+ } catch {
688
+ continue;
689
+ }
690
+ if (!Array.isArray(row?.message?.content)) continue;
691
+ for (const block of row.message.content) {
692
+ if (block?.type !== 'tool_use' || !block.input || typeof block.input !== 'object') continue;
693
+ for (const key of PATH_KEYS) if (typeof block.input[key] === 'string') text += `${block.input[key]}\n`;
694
+ }
695
+ }
696
+ } catch {
697
+ return [];
698
+ }
699
+ if (!text.includes('/scratchpad')) return [];
700
+ const own = new RegExp(`^(${[...roles].map(literal).join('|')})-.+-[A-Za-z0-9]{4,}$`);
701
+ const inside = project ? `${realpathOr(project)}/` : null;
702
+ const out = [];
703
+ for (const root of new Set([...text.matchAll(/(\/[^\s"'`;|&<>()$\\]{0,400}\/scratchpad)(?![\w.-])/g)].map((m) => m[1]))) {
704
+ if (inside && `${realpathOr(root)}/`.startsWith(inside)) continue;
705
+ let entries;
706
+ try {
707
+ entries = readdirSync(root, { withFileTypes: true });
708
+ } catch {
709
+ continue;
710
+ }
711
+ // The root as its commands wrote it, and every variable they set to it.
712
+ const ways = new Set([root]);
713
+ for (const m of text.matchAll(new RegExp(`\\b([A-Za-z_]\\w*)=["']?${literal(root)}["']?(?=[\\s;&|]|$)`, 'gm'))) ways.add(`$${m[1]}`).add(`\${${m[1]}}`);
714
+ const named = new RegExp(`(?:${[...ways].map(literal).join('|')})/([^\\s"'\`;|&<>()/\\\\]{1,200})`, 'g');
715
+ const touched = new Set([...text.matchAll(named)].map((m) => m[1]));
716
+ for (const entry of entries) {
717
+ if (entry.isDirectory() && own.test(entry.name)) continue;
718
+ if (!touched.has(entry.name)) continue;
719
+ // Read, not made: a file the orchestrator left there and a reviewer read is not the reviewer's.
720
+ let changed = 0;
721
+ try {
722
+ const stat = statSync(join(root, entry.name));
723
+ changed = Math.max(stat.mtimeMs, stat.birthtimeMs || 0);
724
+ } catch {
725
+ continue;
726
+ }
727
+ if (changed >= since) out.push(join(root, entry.name));
728
+ }
729
+ }
730
+ return out.sort();
731
+ }
732
+
733
+ /** A path with its links resolved, where it can be. */
734
+ function realpathOr(path) {
735
+ try {
736
+ return realpathSync(path);
737
+ } catch {
738
+ return path;
739
+ }
740
+ }
741
+
742
+ /**
743
+ * A stage's report reached the orchestrator: say what it left at the scratchpad's root, once each, for the
744
+ * orchestrator to move or remove before a stage beside it overwrites or deletes it.
745
+ *
746
+ * @param {string|null} named - The agent, by its id or the name it was launched with.
747
+ * @returns {object|null} The hook's answer, its text for the orchestrator.
748
+ */
749
+ function leftBehind(input, project, path, at, named, event) {
750
+ if (!named || typeof input.transcript_path !== 'string' || typeof input.session_id !== 'string') return null;
751
+ const entries = readLedger(path);
752
+ const { agent, role } = recipient(entries, project, named);
753
+ if (!agent || !role || !project.graph.stages.has(role)) return null;
754
+ // From when it went out: a foreground dispatch is recorded as it comes back, so its start is its `pre`.
755
+ const launched = entries.findLast((e) => e.k === 'dispatch' && e.agent === agent);
756
+ const pre = launched?.id ? entries.find((e) => e.k === 'pre' && e.id === launched.id) : null;
757
+ const transcript = join(dirname(input.transcript_path), input.session_id, 'subagents', `agent-${agent}.jsonl`);
758
+ const told = new Set(entries.filter((e) => e.k === 'stray').flatMap((e) => e.paths ?? []));
759
+ const found = strays(transcript, project.graph.stages, { since: Date.parse(pre?.at ?? launched?.at ?? '') || 0, project: project.root }).filter((p) => !told.has(p));
760
+ if (found.length === 0) return null;
761
+ append(path, { k: 'stray', at, agent, role, paths: found });
762
+ const names = found.map((p) => `\`${basename(p)}\``).join(', ');
763
+ return {
764
+ hookSpecificOutput: {
765
+ hookEventName: event,
766
+ additionalContext:
767
+ `NINA, Hard Rule #18: the ${role} whose report this is worked in ${names} at the root of the session's scratchpad ` +
768
+ `(${dirname(found[0])}), outside any stage's \`<role>-<step>-XXXX\` directory, where a stage beside it can overwrite ` +
769
+ `or delete it. Move it into the directory of the stage that made it, or remove it, and say so in that stage's next dispatch.`,
770
+ },
771
+ };
641
772
  }
642
773
 
643
774
  /** How far a round is past what holds it: its issue's cap, or its edge's ceiling. Above zero asks. */
@@ -862,7 +993,10 @@ export function handle(input, { root, now = new Date(), pkg = PACKAGE }) {
862
993
  const at = now.toISOString();
863
994
  switch (input?.hook_event_name) {
864
995
  case 'UserPromptSubmit':
865
- if (typeof input.prompt === 'string' && DELIVERED.test(input.prompt.slice(0, DELIVERY_HEAD))) return null;
996
+ if (typeof input.prompt === 'string' && DELIVERED.test(input.prompt.slice(0, DELIVERY_HEAD))) {
997
+ const from = /<agent-message from="([^"]+)"/.exec(input.prompt)?.[1] ?? /<task-id>([^<\s]+)<\/task-id>/.exec(input.prompt)?.[1];
998
+ return leftBehind(input, project, path, at, from, 'UserPromptSubmit');
999
+ }
866
1000
  append(path, { k: 'reset', at, why: 'prompt' });
867
1001
  prune(root, now);
868
1002
  return null;