@bonesofspring/ai-rules 0.2.27 → 0.2.29

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 (938) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/bin/cli.js +13 -2
  4. package/bin/lib/seed-ai-local-team.js +43 -5
  5. package/bin/opencode-install.js +58 -0
  6. package/docs/MAVIS-COMPATIBILITY.md +10 -6
  7. package/docs/MAVIS.md +15 -6
  8. package/docs/OPENCODE-COMPATIBILITY.md +3 -3
  9. package/docs/OPENCODE.md +16 -6
  10. package/package.json +2 -1
  11. package/presets/_shared/core/meta/preset-pr-checklist.md +2 -2
  12. package/presets/claude/android-kotlin/CLAUDE.md +15 -1
  13. package/presets/claude/android-kotlin/REPO_AGENTS.md +1 -1
  14. package/presets/claude/android-kotlin/agents/accessibility-reviewer.md +15 -0
  15. package/presets/claude/android-kotlin/agents/api-contract-reviewer.md +16 -1
  16. package/presets/claude/android-kotlin/agents/build-verifier.md +17 -0
  17. package/presets/claude/android-kotlin/agents/ci-investigator.md +25 -0
  18. package/presets/claude/android-kotlin/agents/code-reviewer.md +16 -0
  19. package/presets/claude/android-kotlin/agents/codebase-analyzer.md +15 -0
  20. package/presets/claude/android-kotlin/agents/debugger.md +25 -0
  21. package/presets/claude/android-kotlin/agents/feature-developer.md +25 -0
  22. package/presets/claude/android-kotlin/agents/instrumentation-test-generator.md +16 -0
  23. package/presets/claude/android-kotlin/agents/instrumentation-test-healer.md +16 -0
  24. package/presets/claude/android-kotlin/agents/instrumentation-test-planner.md +16 -0
  25. package/presets/claude/android-kotlin/agents/migration-specialist.md +15 -0
  26. package/presets/claude/android-kotlin/agents/mockup-reviewer.md +15 -0
  27. package/presets/claude/android-kotlin/agents/openspec-author.md +15 -0
  28. package/presets/claude/android-kotlin/agents/performance-auditor.md +15 -0
  29. package/presets/claude/android-kotlin/agents/qa-tester.md +17 -0
  30. package/presets/claude/android-kotlin/agents/security-reviewer.md +15 -0
  31. package/presets/claude/android-kotlin/agents/solution-architect.md +15 -0
  32. package/presets/claude/android-kotlin/agents/task-analyst.md +15 -0
  33. package/presets/claude/android-kotlin/agents/task-router.md +15 -0
  34. package/presets/claude/android-kotlin/agents/tech-writer.md +15 -1
  35. package/presets/claude/android-kotlin/agents/unit-test-generator.md +16 -0
  36. package/presets/claude/android-kotlin/agents/unit-test-healer.md +16 -0
  37. package/presets/claude/android-kotlin/agents/unit-test-planner.md +16 -0
  38. package/presets/claude/android-kotlin/hooks/README.md +6 -5
  39. package/presets/claude/android-kotlin/hooks/chain-team-phases.sh +18 -0
  40. package/presets/claude/android-kotlin/hooks/examples/README.md +2 -0
  41. package/presets/claude/android-kotlin/hooks/guard-shell-command.sh +32 -9
  42. package/presets/claude/android-kotlin/rules/README.md +1 -1
  43. package/presets/claude/android-kotlin/rules/tooling-and-review/ai-local-overlay.md +0 -5
  44. package/presets/claude/android-kotlin/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  45. package/presets/claude/android-kotlin/settings.json +33 -0
  46. package/presets/claude/go/CLAUDE.md +15 -1
  47. package/presets/claude/go/REPO_AGENTS.md +1 -1
  48. package/presets/claude/go/agents/api-contract-reviewer.md +17 -0
  49. package/presets/claude/go/agents/build-verifier.md +17 -0
  50. package/presets/claude/go/agents/ci-investigator.md +29 -0
  51. package/presets/claude/go/agents/code-reviewer.md +16 -0
  52. package/presets/claude/go/agents/codebase-analyzer.md +15 -0
  53. package/presets/claude/go/agents/debugger.md +29 -0
  54. package/presets/claude/go/agents/feature-developer.md +29 -0
  55. package/presets/claude/go/agents/integration-test-generator.md +17 -0
  56. package/presets/claude/go/agents/integration-test-healer.md +17 -0
  57. package/presets/claude/go/agents/integration-test-planner.md +17 -0
  58. package/presets/claude/go/agents/migration-specialist.md +15 -0
  59. package/presets/claude/go/agents/openspec-author.md +15 -0
  60. package/presets/claude/go/agents/performance-auditor.md +15 -0
  61. package/presets/claude/go/agents/qa-tester.md +18 -0
  62. package/presets/claude/go/agents/security-reviewer.md +15 -0
  63. package/presets/claude/go/agents/solution-architect.md +15 -0
  64. package/presets/claude/go/agents/task-analyst.md +15 -0
  65. package/presets/claude/go/agents/task-router.md +15 -0
  66. package/presets/claude/go/agents/tech-writer.md +15 -1
  67. package/presets/claude/go/agents/unit-test-generator.md +16 -0
  68. package/presets/claude/go/agents/unit-test-healer.md +16 -0
  69. package/presets/claude/go/agents/unit-test-planner.md +16 -0
  70. package/presets/claude/go/hooks/README.md +6 -5
  71. package/presets/claude/go/hooks/chain-team-phases.sh +18 -0
  72. package/presets/claude/go/hooks/examples/README.md +2 -0
  73. package/presets/claude/go/hooks/guard-shell-command.sh +32 -9
  74. package/presets/claude/go/rules/README.md +1 -1
  75. package/presets/claude/go/rules/tooling-and-review/ai-local-overlay.md +0 -5
  76. package/presets/claude/go/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  77. package/presets/claude/go/settings.json +33 -0
  78. package/presets/claude/ios-swift/CLAUDE.md +15 -1
  79. package/presets/claude/ios-swift/REPO_AGENTS.md +1 -1
  80. package/presets/claude/ios-swift/agents/accessibility-reviewer.md +15 -0
  81. package/presets/claude/ios-swift/agents/api-contract-reviewer.md +16 -0
  82. package/presets/claude/ios-swift/agents/build-verifier.md +17 -0
  83. package/presets/claude/ios-swift/agents/ci-investigator.md +24 -0
  84. package/presets/claude/ios-swift/agents/code-reviewer.md +16 -0
  85. package/presets/claude/ios-swift/agents/codebase-analyzer.md +15 -0
  86. package/presets/claude/ios-swift/agents/debugger.md +24 -0
  87. package/presets/claude/ios-swift/agents/feature-developer.md +24 -0
  88. package/presets/claude/ios-swift/agents/migration-specialist.md +15 -0
  89. package/presets/claude/ios-swift/agents/mockup-reviewer.md +15 -0
  90. package/presets/claude/ios-swift/agents/openspec-author.md +15 -0
  91. package/presets/claude/ios-swift/agents/performance-auditor.md +15 -0
  92. package/presets/claude/ios-swift/agents/qa-tester.md +17 -0
  93. package/presets/claude/ios-swift/agents/security-reviewer.md +15 -0
  94. package/presets/claude/ios-swift/agents/solution-architect.md +15 -0
  95. package/presets/claude/ios-swift/agents/task-analyst.md +15 -0
  96. package/presets/claude/ios-swift/agents/task-router.md +15 -0
  97. package/presets/claude/ios-swift/agents/tech-writer.md +15 -1
  98. package/presets/claude/ios-swift/agents/unit-test-generator.md +16 -0
  99. package/presets/claude/ios-swift/agents/unit-test-healer.md +16 -0
  100. package/presets/claude/ios-swift/agents/unit-test-planner.md +16 -0
  101. package/presets/claude/ios-swift/agents/xcuitest-test-generator.md +16 -0
  102. package/presets/claude/ios-swift/agents/xcuitest-test-healer.md +16 -0
  103. package/presets/claude/ios-swift/agents/xcuitest-test-planner.md +16 -0
  104. package/presets/claude/ios-swift/hooks/README.md +6 -5
  105. package/presets/claude/ios-swift/hooks/chain-team-phases.sh +18 -0
  106. package/presets/claude/ios-swift/hooks/examples/README.md +2 -0
  107. package/presets/claude/ios-swift/hooks/guard-shell-command.sh +32 -9
  108. package/presets/claude/ios-swift/rules/README.md +1 -1
  109. package/presets/claude/ios-swift/rules/tooling-and-review/ai-local-overlay.md +0 -5
  110. package/presets/claude/ios-swift/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  111. package/presets/claude/ios-swift/settings.json +33 -0
  112. package/presets/claude/java/CLAUDE.md +15 -1
  113. package/presets/claude/java/REPO_AGENTS.md +1 -1
  114. package/presets/claude/java/agents/api-contract-reviewer.md +17 -0
  115. package/presets/claude/java/agents/build-verifier.md +17 -0
  116. package/presets/claude/java/agents/ci-investigator.md +29 -0
  117. package/presets/claude/java/agents/code-reviewer.md +16 -0
  118. package/presets/claude/java/agents/codebase-analyzer.md +15 -0
  119. package/presets/claude/java/agents/debugger.md +29 -0
  120. package/presets/claude/java/agents/feature-developer.md +29 -0
  121. package/presets/claude/java/agents/integration-test-generator.md +17 -0
  122. package/presets/claude/java/agents/integration-test-healer.md +17 -0
  123. package/presets/claude/java/agents/integration-test-planner.md +17 -0
  124. package/presets/claude/java/agents/migration-specialist.md +15 -0
  125. package/presets/claude/java/agents/openspec-author.md +15 -0
  126. package/presets/claude/java/agents/performance-auditor.md +15 -0
  127. package/presets/claude/java/agents/qa-tester.md +18 -0
  128. package/presets/claude/java/agents/security-reviewer.md +15 -0
  129. package/presets/claude/java/agents/solution-architect.md +15 -0
  130. package/presets/claude/java/agents/task-analyst.md +15 -0
  131. package/presets/claude/java/agents/task-router.md +15 -0
  132. package/presets/claude/java/agents/tech-writer.md +15 -1
  133. package/presets/claude/java/agents/unit-test-generator.md +16 -0
  134. package/presets/claude/java/agents/unit-test-healer.md +16 -0
  135. package/presets/claude/java/agents/unit-test-planner.md +16 -0
  136. package/presets/claude/java/hooks/README.md +6 -5
  137. package/presets/claude/java/hooks/chain-team-phases.sh +18 -0
  138. package/presets/claude/java/hooks/examples/README.md +2 -0
  139. package/presets/claude/java/hooks/guard-shell-command.sh +32 -9
  140. package/presets/claude/java/rules/README.md +1 -1
  141. package/presets/claude/java/rules/tooling-and-review/ai-local-overlay.md +0 -5
  142. package/presets/claude/java/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  143. package/presets/claude/java/settings.json +33 -0
  144. package/presets/claude/mcp-ts/CLAUDE.md +15 -1
  145. package/presets/claude/mcp-ts/REPO_AGENTS.md +1 -1
  146. package/presets/claude/mcp-ts/agents/build-verifier.md +17 -0
  147. package/presets/claude/mcp-ts/agents/feature-developer.md +22 -0
  148. package/presets/claude/mcp-ts/agents/security-reviewer.md +15 -0
  149. package/presets/claude/mcp-ts/agents/solution-architect.md +15 -1
  150. package/presets/claude/mcp-ts/agents/task-analyst.md +15 -0
  151. package/presets/claude/mcp-ts/agents/task-router.md +15 -0
  152. package/presets/claude/mcp-ts/hooks/README.md +8 -3
  153. package/presets/claude/mcp-ts/hooks/chain-team-phases.sh +18 -0
  154. package/presets/claude/mcp-ts/hooks/examples/README.md +5 -0
  155. package/presets/claude/mcp-ts/hooks/guard-shell-command.sh +32 -9
  156. package/presets/claude/mcp-ts/rules/README.md +1 -1
  157. package/presets/claude/mcp-ts/rules/tooling-and-review/ai-local-overlay.md +0 -5
  158. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  159. package/presets/claude/mcp-ts/settings.json +33 -0
  160. package/presets/claude/next/CLAUDE.md +15 -1
  161. package/presets/claude/next/REPO_AGENTS.md +1 -1
  162. package/presets/claude/next/agents/accessibility-reviewer.md +17 -0
  163. package/presets/claude/next/agents/api-contract-reviewer.md +19 -0
  164. package/presets/claude/next/agents/build-verifier.md +17 -0
  165. package/presets/claude/next/agents/ci-investigator.md +34 -0
  166. package/presets/claude/next/agents/code-reviewer.md +18 -0
  167. package/presets/claude/next/agents/codebase-analyzer.md +17 -0
  168. package/presets/claude/next/agents/debugger.md +34 -0
  169. package/presets/claude/next/agents/feature-developer.md +34 -0
  170. package/presets/claude/next/agents/migration-specialist.md +17 -0
  171. package/presets/claude/next/agents/mockup-reviewer.md +17 -0
  172. package/presets/claude/next/agents/openspec-author.md +17 -0
  173. package/presets/claude/next/agents/performance-auditor.md +17 -0
  174. package/presets/claude/next/agents/playwright-test-generator.md +19 -0
  175. package/presets/claude/next/agents/playwright-test-healer.md +19 -1
  176. package/presets/claude/next/agents/playwright-test-planner.md +20 -1
  177. package/presets/claude/next/agents/qa-tester.md +20 -0
  178. package/presets/claude/next/agents/security-reviewer.md +17 -0
  179. package/presets/claude/next/agents/solution-architect.md +17 -0
  180. package/presets/claude/next/agents/task-analyst.md +17 -0
  181. package/presets/claude/next/agents/task-router.md +17 -0
  182. package/presets/claude/next/agents/tech-writer.md +17 -0
  183. package/presets/claude/next/agents/unit-test-generator.md +18 -0
  184. package/presets/claude/next/agents/unit-test-healer.md +18 -0
  185. package/presets/claude/next/agents/unit-test-planner.md +18 -0
  186. package/presets/claude/next/hooks/README.md +10 -1
  187. package/presets/claude/next/hooks/chain-team-phases.sh +18 -0
  188. package/presets/claude/next/hooks/examples/README.md +2 -0
  189. package/presets/claude/next/hooks/guard-shell-command.sh +32 -9
  190. package/presets/claude/next/rules/README.md +1 -1
  191. package/presets/claude/next/rules/tooling-and-review/ai-local-overlay.md +0 -5
  192. package/presets/claude/next/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  193. package/presets/claude/next/settings.json +39 -0
  194. package/presets/claude/nuxt/CLAUDE.md +15 -1
  195. package/presets/claude/nuxt/REPO_AGENTS.md +1 -1
  196. package/presets/claude/nuxt/agents/accessibility-reviewer.md +17 -0
  197. package/presets/claude/nuxt/agents/api-contract-reviewer.md +19 -0
  198. package/presets/claude/nuxt/agents/build-verifier.md +17 -0
  199. package/presets/claude/nuxt/agents/ci-investigator.md +34 -0
  200. package/presets/claude/nuxt/agents/code-reviewer.md +18 -0
  201. package/presets/claude/nuxt/agents/codebase-analyzer.md +17 -0
  202. package/presets/claude/nuxt/agents/debugger.md +34 -0
  203. package/presets/claude/nuxt/agents/feature-developer.md +34 -0
  204. package/presets/claude/nuxt/agents/migration-specialist.md +17 -0
  205. package/presets/claude/nuxt/agents/mockup-reviewer.md +17 -0
  206. package/presets/claude/nuxt/agents/openspec-author.md +17 -0
  207. package/presets/claude/nuxt/agents/performance-auditor.md +17 -0
  208. package/presets/claude/nuxt/agents/playwright-test-generator.md +19 -0
  209. package/presets/claude/nuxt/agents/playwright-test-healer.md +19 -1
  210. package/presets/claude/nuxt/agents/playwright-test-planner.md +20 -1
  211. package/presets/claude/nuxt/agents/qa-tester.md +20 -0
  212. package/presets/claude/nuxt/agents/security-reviewer.md +17 -0
  213. package/presets/claude/nuxt/agents/solution-architect.md +17 -0
  214. package/presets/claude/nuxt/agents/task-analyst.md +17 -0
  215. package/presets/claude/nuxt/agents/task-router.md +17 -0
  216. package/presets/claude/nuxt/agents/tech-writer.md +17 -0
  217. package/presets/claude/nuxt/agents/unit-test-generator.md +18 -0
  218. package/presets/claude/nuxt/agents/unit-test-healer.md +18 -0
  219. package/presets/claude/nuxt/agents/unit-test-planner.md +18 -0
  220. package/presets/claude/nuxt/hooks/README.md +7 -4
  221. package/presets/claude/nuxt/hooks/chain-team-phases.sh +18 -0
  222. package/presets/claude/nuxt/hooks/examples/README.md +2 -0
  223. package/presets/claude/nuxt/hooks/guard-shell-command.sh +32 -9
  224. package/presets/claude/nuxt/rules/README.md +1 -1
  225. package/presets/claude/nuxt/rules/tooling-and-review/ai-local-overlay.md +0 -5
  226. package/presets/claude/nuxt/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  227. package/presets/claude/nuxt/settings.json +39 -0
  228. package/presets/claude/php-hexagonal/CLAUDE.md +15 -1
  229. package/presets/claude/php-hexagonal/REPO_AGENTS.md +1 -1
  230. package/presets/claude/php-hexagonal/agents/api-contract-reviewer.md +17 -0
  231. package/presets/claude/php-hexagonal/agents/build-verifier.md +17 -0
  232. package/presets/claude/php-hexagonal/agents/ci-investigator.md +29 -0
  233. package/presets/claude/php-hexagonal/agents/code-reviewer.md +16 -0
  234. package/presets/claude/php-hexagonal/agents/codebase-analyzer.md +15 -0
  235. package/presets/claude/php-hexagonal/agents/debugger.md +29 -0
  236. package/presets/claude/php-hexagonal/agents/feature-developer.md +29 -0
  237. package/presets/claude/php-hexagonal/agents/integration-test-generator.md +17 -0
  238. package/presets/claude/php-hexagonal/agents/integration-test-healer.md +17 -0
  239. package/presets/claude/php-hexagonal/agents/integration-test-planner.md +17 -0
  240. package/presets/claude/php-hexagonal/agents/migration-specialist.md +15 -0
  241. package/presets/claude/php-hexagonal/agents/openspec-author.md +15 -0
  242. package/presets/claude/php-hexagonal/agents/performance-auditor.md +15 -0
  243. package/presets/claude/php-hexagonal/agents/qa-tester.md +18 -0
  244. package/presets/claude/php-hexagonal/agents/security-reviewer.md +15 -0
  245. package/presets/claude/php-hexagonal/agents/solution-architect.md +15 -0
  246. package/presets/claude/php-hexagonal/agents/task-analyst.md +15 -0
  247. package/presets/claude/php-hexagonal/agents/task-router.md +15 -0
  248. package/presets/claude/php-hexagonal/agents/tech-writer.md +15 -1
  249. package/presets/claude/php-hexagonal/agents/unit-test-generator.md +16 -0
  250. package/presets/claude/php-hexagonal/agents/unit-test-healer.md +16 -0
  251. package/presets/claude/php-hexagonal/agents/unit-test-planner.md +16 -0
  252. package/presets/claude/php-hexagonal/hooks/README.md +6 -5
  253. package/presets/claude/php-hexagonal/hooks/chain-team-phases.sh +18 -0
  254. package/presets/claude/php-hexagonal/hooks/examples/README.md +3 -1
  255. package/presets/claude/php-hexagonal/hooks/guard-shell-command.sh +32 -9
  256. package/presets/claude/php-hexagonal/rules/README.md +1 -1
  257. package/presets/claude/php-hexagonal/rules/tooling-and-review/ai-local-overlay.md +0 -5
  258. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  259. package/presets/claude/php-hexagonal/settings.json +33 -0
  260. package/presets/claude/php-laravel/CLAUDE.md +18 -0
  261. package/presets/claude/php-laravel/REPO_AGENTS.md +1 -1
  262. package/presets/claude/php-laravel/agents/api-contract-reviewer.md +18 -0
  263. package/presets/claude/php-laravel/agents/build-verifier.md +17 -0
  264. package/presets/claude/php-laravel/agents/ci-investigator.md +29 -0
  265. package/presets/claude/php-laravel/agents/code-reviewer.md +16 -0
  266. package/presets/claude/php-laravel/agents/codebase-analyzer.md +15 -0
  267. package/presets/claude/php-laravel/agents/debugger.md +29 -0
  268. package/presets/claude/php-laravel/agents/feature-developer.md +29 -0
  269. package/presets/claude/php-laravel/agents/integration-test-generator.md +17 -0
  270. package/presets/claude/php-laravel/agents/integration-test-healer.md +17 -0
  271. package/presets/claude/php-laravel/agents/integration-test-planner.md +17 -0
  272. package/presets/claude/php-laravel/agents/migration-specialist.md +15 -0
  273. package/presets/claude/php-laravel/agents/openspec-author.md +15 -0
  274. package/presets/claude/php-laravel/agents/performance-auditor.md +15 -0
  275. package/presets/claude/php-laravel/agents/qa-tester.md +18 -0
  276. package/presets/claude/php-laravel/agents/security-reviewer.md +15 -0
  277. package/presets/claude/php-laravel/agents/solution-architect.md +15 -0
  278. package/presets/claude/php-laravel/agents/task-analyst.md +15 -0
  279. package/presets/claude/php-laravel/agents/task-router.md +15 -0
  280. package/presets/claude/php-laravel/agents/tech-writer.md +15 -1
  281. package/presets/claude/php-laravel/agents/unit-test-generator.md +16 -0
  282. package/presets/claude/php-laravel/agents/unit-test-healer.md +16 -0
  283. package/presets/claude/php-laravel/agents/unit-test-planner.md +16 -0
  284. package/presets/claude/php-laravel/hooks/README.md +6 -5
  285. package/presets/claude/php-laravel/hooks/chain-team-phases.sh +18 -0
  286. package/presets/claude/php-laravel/hooks/examples/README.md +3 -1
  287. package/presets/claude/php-laravel/hooks/guard-shell-command.sh +32 -9
  288. package/presets/claude/php-laravel/rules/README.md +1 -1
  289. package/presets/claude/php-laravel/rules/tooling-and-review/ai-local-overlay.md +0 -5
  290. package/presets/claude/php-laravel/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  291. package/presets/claude/php-laravel/settings.json +33 -0
  292. package/presets/claude/svelte/CLAUDE.md +15 -1
  293. package/presets/claude/svelte/REPO_AGENTS.md +1 -1
  294. package/presets/claude/svelte/agents/accessibility-reviewer.md +17 -0
  295. package/presets/claude/svelte/agents/api-contract-reviewer.md +19 -0
  296. package/presets/claude/svelte/agents/build-verifier.md +17 -0
  297. package/presets/claude/svelte/agents/ci-investigator.md +34 -0
  298. package/presets/claude/svelte/agents/code-reviewer.md +18 -0
  299. package/presets/claude/svelte/agents/codebase-analyzer.md +17 -0
  300. package/presets/claude/svelte/agents/debugger.md +34 -0
  301. package/presets/claude/svelte/agents/feature-developer.md +34 -0
  302. package/presets/claude/svelte/agents/migration-specialist.md +17 -0
  303. package/presets/claude/svelte/agents/mockup-reviewer.md +17 -0
  304. package/presets/claude/svelte/agents/openspec-author.md +17 -0
  305. package/presets/claude/svelte/agents/performance-auditor.md +17 -0
  306. package/presets/claude/svelte/agents/playwright-test-generator.md +19 -0
  307. package/presets/claude/svelte/agents/playwright-test-healer.md +19 -1
  308. package/presets/claude/svelte/agents/playwright-test-planner.md +20 -1
  309. package/presets/claude/svelte/agents/qa-tester.md +20 -0
  310. package/presets/claude/svelte/agents/security-reviewer.md +17 -0
  311. package/presets/claude/svelte/agents/solution-architect.md +17 -0
  312. package/presets/claude/svelte/agents/task-analyst.md +17 -0
  313. package/presets/claude/svelte/agents/task-router.md +17 -0
  314. package/presets/claude/svelte/agents/tech-writer.md +17 -0
  315. package/presets/claude/svelte/agents/unit-test-generator.md +18 -0
  316. package/presets/claude/svelte/agents/unit-test-healer.md +18 -0
  317. package/presets/claude/svelte/agents/unit-test-planner.md +18 -0
  318. package/presets/claude/svelte/hooks/README.md +7 -4
  319. package/presets/claude/svelte/hooks/chain-team-phases.sh +18 -0
  320. package/presets/claude/svelte/hooks/examples/README.md +2 -0
  321. package/presets/claude/svelte/hooks/guard-shell-command.sh +32 -9
  322. package/presets/claude/svelte/rules/README.md +1 -1
  323. package/presets/claude/svelte/rules/tooling-and-review/ai-local-overlay.md +0 -5
  324. package/presets/claude/svelte/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  325. package/presets/claude/svelte/settings.json +39 -0
  326. package/presets/cursor/android-kotlin/REPO_AGENTS.md +1 -1
  327. package/presets/cursor/android-kotlin/rules/preset-pr-checklist.mdc +2 -2
  328. package/presets/cursor/go/REPO_AGENTS.md +1 -1
  329. package/presets/cursor/go/rules/preset-pr-checklist.mdc +2 -2
  330. package/presets/cursor/ios-swift/REPO_AGENTS.md +1 -1
  331. package/presets/cursor/ios-swift/rules/preset-pr-checklist.mdc +2 -2
  332. package/presets/cursor/java/REPO_AGENTS.md +1 -1
  333. package/presets/cursor/java/rules/preset-pr-checklist.mdc +2 -2
  334. package/presets/cursor/mcp-ts/REPO_AGENTS.md +1 -1
  335. package/presets/cursor/mcp-ts/rules/preset-pr-checklist.mdc +2 -2
  336. package/presets/cursor/next/REPO_AGENTS.md +1 -1
  337. package/presets/cursor/next/ai-local/rules-library/agent-artifacts-no-local-paths.md +38 -0
  338. package/presets/cursor/next/ai-local/rules-library/commit-hygiene.md +17 -0
  339. package/presets/cursor/next/ai-local/rules-library/mcp-required-for-ui-layout.md +41 -0
  340. package/presets/cursor/next/ai-local/rules-library/no-test-driven-behavior-change.md +14 -0
  341. package/presets/cursor/next/ai-local/rules-library/pre-pr-checklist.md +16 -0
  342. package/presets/cursor/next/ai-local/rules-library/router-pages.md +23 -0
  343. package/presets/cursor/next/ai-local/rules-library/single-source-copy-constants.md +16 -0
  344. package/presets/cursor/next/rules/preset-pr-checklist.mdc +2 -2
  345. package/presets/cursor/nuxt/REPO_AGENTS.md +1 -1
  346. package/presets/cursor/nuxt/rules/preset-pr-checklist.mdc +2 -2
  347. package/presets/cursor/php-hexagonal/REPO_AGENTS.md +1 -1
  348. package/presets/cursor/php-hexagonal/rules/preset-pr-checklist.mdc +2 -2
  349. package/presets/cursor/php-laravel/REPO_AGENTS.md +1 -1
  350. package/presets/cursor/php-laravel/rules/preset-pr-checklist.mdc +2 -2
  351. package/presets/cursor/svelte/REPO_AGENTS.md +1 -1
  352. package/presets/cursor/svelte/rules/preset-pr-checklist.mdc +2 -2
  353. package/presets/mavis/README.md +2 -0
  354. package/presets/mavis/android-kotlin/MAVIS.md +23 -1
  355. package/presets/mavis/android-kotlin/REPO_AGENTS.md +1 -1
  356. package/presets/mavis/android-kotlin/adapter-map.json +1 -1
  357. package/presets/mavis/android-kotlin/agents/accessibility-reviewer.md +15 -0
  358. package/presets/mavis/android-kotlin/agents/api-contract-reviewer.md +16 -0
  359. package/presets/mavis/android-kotlin/agents/build-verifier.md +17 -0
  360. package/presets/mavis/android-kotlin/agents/ci-investigator.md +25 -0
  361. package/presets/mavis/android-kotlin/agents/code-reviewer.md +16 -0
  362. package/presets/mavis/android-kotlin/agents/codebase-analyzer.md +15 -0
  363. package/presets/mavis/android-kotlin/agents/debugger.md +25 -0
  364. package/presets/mavis/android-kotlin/agents/feature-developer.md +25 -0
  365. package/presets/mavis/android-kotlin/agents/instrumentation-test-generator.md +16 -0
  366. package/presets/mavis/android-kotlin/agents/instrumentation-test-healer.md +16 -0
  367. package/presets/mavis/android-kotlin/agents/instrumentation-test-planner.md +16 -0
  368. package/presets/mavis/android-kotlin/agents/migration-specialist.md +15 -0
  369. package/presets/mavis/android-kotlin/agents/mockup-reviewer.md +15 -0
  370. package/presets/mavis/android-kotlin/agents/openspec-author.md +15 -0
  371. package/presets/mavis/android-kotlin/agents/performance-auditor.md +15 -0
  372. package/presets/mavis/android-kotlin/agents/qa-tester.md +17 -0
  373. package/presets/mavis/android-kotlin/agents/security-reviewer.md +15 -0
  374. package/presets/mavis/android-kotlin/agents/solution-architect.md +15 -0
  375. package/presets/mavis/android-kotlin/agents/task-analyst.md +15 -0
  376. package/presets/mavis/android-kotlin/agents/task-router.md +15 -0
  377. package/presets/mavis/android-kotlin/agents/tech-writer.md +15 -0
  378. package/presets/mavis/android-kotlin/agents/unit-test-generator.md +16 -0
  379. package/presets/mavis/android-kotlin/agents/unit-test-healer.md +16 -0
  380. package/presets/mavis/android-kotlin/agents/unit-test-planner.md +16 -0
  381. package/presets/mavis/android-kotlin/rules/preset-pr-checklist.md +2 -2
  382. package/presets/mavis/go/MAVIS.md +23 -1
  383. package/presets/mavis/go/REPO_AGENTS.md +1 -1
  384. package/presets/mavis/go/adapter-map.json +1 -1
  385. package/presets/mavis/go/agents/api-contract-reviewer.md +17 -0
  386. package/presets/mavis/go/agents/build-verifier.md +17 -0
  387. package/presets/mavis/go/agents/ci-investigator.md +29 -0
  388. package/presets/mavis/go/agents/code-reviewer.md +16 -0
  389. package/presets/mavis/go/agents/codebase-analyzer.md +15 -0
  390. package/presets/mavis/go/agents/debugger.md +29 -0
  391. package/presets/mavis/go/agents/feature-developer.md +29 -0
  392. package/presets/mavis/go/agents/integration-test-generator.md +17 -0
  393. package/presets/mavis/go/agents/integration-test-healer.md +17 -0
  394. package/presets/mavis/go/agents/integration-test-planner.md +17 -0
  395. package/presets/mavis/go/agents/migration-specialist.md +15 -0
  396. package/presets/mavis/go/agents/openspec-author.md +15 -0
  397. package/presets/mavis/go/agents/performance-auditor.md +15 -0
  398. package/presets/mavis/go/agents/qa-tester.md +18 -0
  399. package/presets/mavis/go/agents/security-reviewer.md +15 -0
  400. package/presets/mavis/go/agents/solution-architect.md +15 -0
  401. package/presets/mavis/go/agents/task-analyst.md +15 -0
  402. package/presets/mavis/go/agents/task-router.md +15 -0
  403. package/presets/mavis/go/agents/tech-writer.md +15 -0
  404. package/presets/mavis/go/agents/unit-test-generator.md +16 -0
  405. package/presets/mavis/go/agents/unit-test-healer.md +16 -0
  406. package/presets/mavis/go/agents/unit-test-planner.md +16 -0
  407. package/presets/mavis/go/rules/preset-pr-checklist.md +2 -2
  408. package/presets/mavis/ios-swift/MAVIS.md +23 -1
  409. package/presets/mavis/ios-swift/REPO_AGENTS.md +1 -1
  410. package/presets/mavis/ios-swift/adapter-map.json +1 -1
  411. package/presets/mavis/ios-swift/agents/accessibility-reviewer.md +15 -0
  412. package/presets/mavis/ios-swift/agents/api-contract-reviewer.md +16 -0
  413. package/presets/mavis/ios-swift/agents/build-verifier.md +17 -0
  414. package/presets/mavis/ios-swift/agents/ci-investigator.md +24 -0
  415. package/presets/mavis/ios-swift/agents/code-reviewer.md +16 -0
  416. package/presets/mavis/ios-swift/agents/codebase-analyzer.md +15 -0
  417. package/presets/mavis/ios-swift/agents/debugger.md +24 -0
  418. package/presets/mavis/ios-swift/agents/feature-developer.md +24 -0
  419. package/presets/mavis/ios-swift/agents/migration-specialist.md +15 -0
  420. package/presets/mavis/ios-swift/agents/mockup-reviewer.md +15 -0
  421. package/presets/mavis/ios-swift/agents/openspec-author.md +15 -0
  422. package/presets/mavis/ios-swift/agents/performance-auditor.md +15 -0
  423. package/presets/mavis/ios-swift/agents/qa-tester.md +17 -0
  424. package/presets/mavis/ios-swift/agents/security-reviewer.md +15 -0
  425. package/presets/mavis/ios-swift/agents/solution-architect.md +15 -0
  426. package/presets/mavis/ios-swift/agents/task-analyst.md +15 -0
  427. package/presets/mavis/ios-swift/agents/task-router.md +15 -0
  428. package/presets/mavis/ios-swift/agents/tech-writer.md +15 -0
  429. package/presets/mavis/ios-swift/agents/unit-test-generator.md +16 -0
  430. package/presets/mavis/ios-swift/agents/unit-test-healer.md +16 -0
  431. package/presets/mavis/ios-swift/agents/unit-test-planner.md +16 -0
  432. package/presets/mavis/ios-swift/agents/xcuitest-test-generator.md +16 -0
  433. package/presets/mavis/ios-swift/agents/xcuitest-test-healer.md +16 -0
  434. package/presets/mavis/ios-swift/agents/xcuitest-test-planner.md +16 -0
  435. package/presets/mavis/ios-swift/rules/preset-pr-checklist.md +2 -2
  436. package/presets/mavis/java/MAVIS.md +23 -1
  437. package/presets/mavis/java/REPO_AGENTS.md +1 -1
  438. package/presets/mavis/java/adapter-map.json +1 -1
  439. package/presets/mavis/java/agents/api-contract-reviewer.md +17 -0
  440. package/presets/mavis/java/agents/build-verifier.md +17 -0
  441. package/presets/mavis/java/agents/ci-investigator.md +29 -0
  442. package/presets/mavis/java/agents/code-reviewer.md +16 -0
  443. package/presets/mavis/java/agents/codebase-analyzer.md +15 -0
  444. package/presets/mavis/java/agents/debugger.md +29 -0
  445. package/presets/mavis/java/agents/feature-developer.md +29 -0
  446. package/presets/mavis/java/agents/integration-test-generator.md +17 -0
  447. package/presets/mavis/java/agents/integration-test-healer.md +17 -0
  448. package/presets/mavis/java/agents/integration-test-planner.md +17 -0
  449. package/presets/mavis/java/agents/migration-specialist.md +15 -0
  450. package/presets/mavis/java/agents/openspec-author.md +15 -0
  451. package/presets/mavis/java/agents/performance-auditor.md +15 -0
  452. package/presets/mavis/java/agents/qa-tester.md +18 -0
  453. package/presets/mavis/java/agents/security-reviewer.md +15 -0
  454. package/presets/mavis/java/agents/solution-architect.md +15 -0
  455. package/presets/mavis/java/agents/task-analyst.md +15 -0
  456. package/presets/mavis/java/agents/task-router.md +15 -0
  457. package/presets/mavis/java/agents/tech-writer.md +15 -0
  458. package/presets/mavis/java/agents/unit-test-generator.md +16 -0
  459. package/presets/mavis/java/agents/unit-test-healer.md +16 -0
  460. package/presets/mavis/java/agents/unit-test-planner.md +16 -0
  461. package/presets/mavis/java/rules/preset-pr-checklist.md +2 -2
  462. package/presets/mavis/mcp-ts/MAVIS.md +23 -1
  463. package/presets/mavis/mcp-ts/REPO_AGENTS.md +1 -1
  464. package/presets/mavis/mcp-ts/adapter-map.json +1 -1
  465. package/presets/mavis/mcp-ts/agents/build-verifier.md +17 -0
  466. package/presets/mavis/mcp-ts/agents/feature-developer.md +22 -0
  467. package/presets/mavis/mcp-ts/agents/security-reviewer.md +15 -0
  468. package/presets/mavis/mcp-ts/agents/solution-architect.md +15 -0
  469. package/presets/mavis/mcp-ts/agents/task-analyst.md +15 -0
  470. package/presets/mavis/mcp-ts/agents/task-router.md +15 -0
  471. package/presets/mavis/mcp-ts/rules/preset-pr-checklist.md +2 -2
  472. package/presets/mavis/next/MAVIS.md +23 -1
  473. package/presets/mavis/next/REPO_AGENTS.md +1 -1
  474. package/presets/mavis/next/adapter-map.json +57 -1
  475. package/presets/mavis/next/agents/accessibility-reviewer.md +17 -0
  476. package/presets/mavis/next/agents/api-contract-reviewer.md +19 -0
  477. package/presets/mavis/next/agents/build-verifier.md +17 -0
  478. package/presets/mavis/next/agents/ci-investigator.md +34 -0
  479. package/presets/mavis/next/agents/code-reviewer.md +18 -0
  480. package/presets/mavis/next/agents/codebase-analyzer.md +17 -0
  481. package/presets/mavis/next/agents/debugger.md +34 -0
  482. package/presets/mavis/next/agents/feature-developer.md +34 -0
  483. package/presets/mavis/next/agents/migration-specialist.md +17 -0
  484. package/presets/mavis/next/agents/mockup-reviewer.md +17 -0
  485. package/presets/mavis/next/agents/openspec-author.md +17 -0
  486. package/presets/mavis/next/agents/performance-auditor.md +17 -0
  487. package/presets/mavis/next/agents/playwright-test-generator.md +19 -0
  488. package/presets/mavis/next/agents/playwright-test-healer.md +19 -0
  489. package/presets/mavis/next/agents/playwright-test-planner.md +19 -0
  490. package/presets/mavis/next/agents/qa-tester.md +20 -0
  491. package/presets/mavis/next/agents/security-reviewer.md +17 -0
  492. package/presets/mavis/next/agents/solution-architect.md +17 -0
  493. package/presets/mavis/next/agents/task-analyst.md +17 -0
  494. package/presets/mavis/next/agents/task-router.md +17 -0
  495. package/presets/mavis/next/agents/tech-writer.md +17 -0
  496. package/presets/mavis/next/agents/unit-test-generator.md +18 -0
  497. package/presets/mavis/next/agents/unit-test-healer.md +18 -0
  498. package/presets/mavis/next/agents/unit-test-planner.md +18 -0
  499. package/presets/mavis/next/ai-local/rules-library/agent-artifacts-no-local-paths.md +38 -0
  500. package/presets/mavis/next/ai-local/rules-library/commit-hygiene.md +17 -0
  501. package/presets/mavis/next/ai-local/rules-library/mcp-required-for-ui-layout.md +41 -0
  502. package/presets/mavis/next/ai-local/rules-library/no-test-driven-behavior-change.md +14 -0
  503. package/presets/mavis/next/ai-local/rules-library/pre-pr-checklist.md +16 -0
  504. package/presets/mavis/next/ai-local/rules-library/router-pages.md +23 -0
  505. package/presets/mavis/next/ai-local/rules-library/single-source-copy-constants.md +16 -0
  506. package/presets/mavis/next/rules/preset-pr-checklist.md +2 -2
  507. package/presets/mavis/nuxt/MAVIS.md +23 -1
  508. package/presets/mavis/nuxt/REPO_AGENTS.md +1 -1
  509. package/presets/mavis/nuxt/adapter-map.json +1 -1
  510. package/presets/mavis/nuxt/agents/accessibility-reviewer.md +17 -0
  511. package/presets/mavis/nuxt/agents/api-contract-reviewer.md +19 -0
  512. package/presets/mavis/nuxt/agents/build-verifier.md +17 -0
  513. package/presets/mavis/nuxt/agents/ci-investigator.md +34 -0
  514. package/presets/mavis/nuxt/agents/code-reviewer.md +18 -0
  515. package/presets/mavis/nuxt/agents/codebase-analyzer.md +17 -0
  516. package/presets/mavis/nuxt/agents/debugger.md +34 -0
  517. package/presets/mavis/nuxt/agents/feature-developer.md +34 -0
  518. package/presets/mavis/nuxt/agents/migration-specialist.md +17 -0
  519. package/presets/mavis/nuxt/agents/mockup-reviewer.md +17 -0
  520. package/presets/mavis/nuxt/agents/openspec-author.md +17 -0
  521. package/presets/mavis/nuxt/agents/performance-auditor.md +17 -0
  522. package/presets/mavis/nuxt/agents/playwright-test-generator.md +19 -0
  523. package/presets/mavis/nuxt/agents/playwright-test-healer.md +19 -0
  524. package/presets/mavis/nuxt/agents/playwright-test-planner.md +19 -0
  525. package/presets/mavis/nuxt/agents/qa-tester.md +20 -0
  526. package/presets/mavis/nuxt/agents/security-reviewer.md +17 -0
  527. package/presets/mavis/nuxt/agents/solution-architect.md +17 -0
  528. package/presets/mavis/nuxt/agents/task-analyst.md +17 -0
  529. package/presets/mavis/nuxt/agents/task-router.md +17 -0
  530. package/presets/mavis/nuxt/agents/tech-writer.md +17 -0
  531. package/presets/mavis/nuxt/agents/unit-test-generator.md +18 -0
  532. package/presets/mavis/nuxt/agents/unit-test-healer.md +18 -0
  533. package/presets/mavis/nuxt/agents/unit-test-planner.md +18 -0
  534. package/presets/mavis/nuxt/rules/preset-pr-checklist.md +2 -2
  535. package/presets/mavis/php-hexagonal/MAVIS.md +23 -1
  536. package/presets/mavis/php-hexagonal/REPO_AGENTS.md +1 -1
  537. package/presets/mavis/php-hexagonal/adapter-map.json +1 -1
  538. package/presets/mavis/php-hexagonal/agents/api-contract-reviewer.md +17 -0
  539. package/presets/mavis/php-hexagonal/agents/build-verifier.md +17 -0
  540. package/presets/mavis/php-hexagonal/agents/ci-investigator.md +29 -0
  541. package/presets/mavis/php-hexagonal/agents/code-reviewer.md +16 -0
  542. package/presets/mavis/php-hexagonal/agents/codebase-analyzer.md +15 -0
  543. package/presets/mavis/php-hexagonal/agents/debugger.md +29 -0
  544. package/presets/mavis/php-hexagonal/agents/feature-developer.md +29 -0
  545. package/presets/mavis/php-hexagonal/agents/integration-test-generator.md +17 -0
  546. package/presets/mavis/php-hexagonal/agents/integration-test-healer.md +17 -0
  547. package/presets/mavis/php-hexagonal/agents/integration-test-planner.md +17 -0
  548. package/presets/mavis/php-hexagonal/agents/migration-specialist.md +15 -0
  549. package/presets/mavis/php-hexagonal/agents/openspec-author.md +15 -0
  550. package/presets/mavis/php-hexagonal/agents/performance-auditor.md +15 -0
  551. package/presets/mavis/php-hexagonal/agents/qa-tester.md +18 -0
  552. package/presets/mavis/php-hexagonal/agents/security-reviewer.md +15 -0
  553. package/presets/mavis/php-hexagonal/agents/solution-architect.md +15 -0
  554. package/presets/mavis/php-hexagonal/agents/task-analyst.md +15 -0
  555. package/presets/mavis/php-hexagonal/agents/task-router.md +15 -0
  556. package/presets/mavis/php-hexagonal/agents/tech-writer.md +15 -0
  557. package/presets/mavis/php-hexagonal/agents/unit-test-generator.md +16 -0
  558. package/presets/mavis/php-hexagonal/agents/unit-test-healer.md +16 -0
  559. package/presets/mavis/php-hexagonal/agents/unit-test-planner.md +16 -0
  560. package/presets/mavis/php-hexagonal/rules/preset-pr-checklist.md +2 -2
  561. package/presets/mavis/php-laravel/MAVIS.md +23 -1
  562. package/presets/mavis/php-laravel/REPO_AGENTS.md +1 -1
  563. package/presets/mavis/php-laravel/adapter-map.json +1 -1
  564. package/presets/mavis/php-laravel/agents/api-contract-reviewer.md +18 -0
  565. package/presets/mavis/php-laravel/agents/build-verifier.md +17 -0
  566. package/presets/mavis/php-laravel/agents/ci-investigator.md +29 -0
  567. package/presets/mavis/php-laravel/agents/code-reviewer.md +16 -0
  568. package/presets/mavis/php-laravel/agents/codebase-analyzer.md +15 -0
  569. package/presets/mavis/php-laravel/agents/debugger.md +29 -0
  570. package/presets/mavis/php-laravel/agents/feature-developer.md +29 -0
  571. package/presets/mavis/php-laravel/agents/integration-test-generator.md +17 -0
  572. package/presets/mavis/php-laravel/agents/integration-test-healer.md +17 -0
  573. package/presets/mavis/php-laravel/agents/integration-test-planner.md +17 -0
  574. package/presets/mavis/php-laravel/agents/migration-specialist.md +15 -0
  575. package/presets/mavis/php-laravel/agents/openspec-author.md +15 -0
  576. package/presets/mavis/php-laravel/agents/performance-auditor.md +15 -0
  577. package/presets/mavis/php-laravel/agents/qa-tester.md +18 -0
  578. package/presets/mavis/php-laravel/agents/security-reviewer.md +15 -0
  579. package/presets/mavis/php-laravel/agents/solution-architect.md +15 -0
  580. package/presets/mavis/php-laravel/agents/task-analyst.md +15 -0
  581. package/presets/mavis/php-laravel/agents/task-router.md +15 -0
  582. package/presets/mavis/php-laravel/agents/tech-writer.md +15 -0
  583. package/presets/mavis/php-laravel/agents/unit-test-generator.md +16 -0
  584. package/presets/mavis/php-laravel/agents/unit-test-healer.md +16 -0
  585. package/presets/mavis/php-laravel/agents/unit-test-planner.md +16 -0
  586. package/presets/mavis/php-laravel/rules/preset-pr-checklist.md +2 -2
  587. package/presets/mavis/platform-contract.json +4 -4
  588. package/presets/mavis/svelte/MAVIS.md +23 -1
  589. package/presets/mavis/svelte/REPO_AGENTS.md +1 -1
  590. package/presets/mavis/svelte/adapter-map.json +1 -1
  591. package/presets/mavis/svelte/agents/accessibility-reviewer.md +17 -0
  592. package/presets/mavis/svelte/agents/api-contract-reviewer.md +19 -0
  593. package/presets/mavis/svelte/agents/build-verifier.md +17 -0
  594. package/presets/mavis/svelte/agents/ci-investigator.md +34 -0
  595. package/presets/mavis/svelte/agents/code-reviewer.md +18 -0
  596. package/presets/mavis/svelte/agents/codebase-analyzer.md +17 -0
  597. package/presets/mavis/svelte/agents/debugger.md +34 -0
  598. package/presets/mavis/svelte/agents/feature-developer.md +34 -0
  599. package/presets/mavis/svelte/agents/migration-specialist.md +17 -0
  600. package/presets/mavis/svelte/agents/mockup-reviewer.md +17 -0
  601. package/presets/mavis/svelte/agents/openspec-author.md +17 -0
  602. package/presets/mavis/svelte/agents/performance-auditor.md +17 -0
  603. package/presets/mavis/svelte/agents/playwright-test-generator.md +19 -0
  604. package/presets/mavis/svelte/agents/playwright-test-healer.md +19 -0
  605. package/presets/mavis/svelte/agents/playwright-test-planner.md +19 -0
  606. package/presets/mavis/svelte/agents/qa-tester.md +20 -0
  607. package/presets/mavis/svelte/agents/security-reviewer.md +17 -0
  608. package/presets/mavis/svelte/agents/solution-architect.md +17 -0
  609. package/presets/mavis/svelte/agents/task-analyst.md +17 -0
  610. package/presets/mavis/svelte/agents/task-router.md +17 -0
  611. package/presets/mavis/svelte/agents/tech-writer.md +17 -0
  612. package/presets/mavis/svelte/agents/unit-test-generator.md +18 -0
  613. package/presets/mavis/svelte/agents/unit-test-healer.md +18 -0
  614. package/presets/mavis/svelte/agents/unit-test-planner.md +18 -0
  615. package/presets/mavis/svelte/rules/preset-pr-checklist.md +2 -2
  616. package/presets/opencode/README.md +1 -1
  617. package/presets/opencode/android-kotlin/OPENCODE.md +23 -2
  618. package/presets/opencode/android-kotlin/REPO_AGENTS.md +1 -1
  619. package/presets/opencode/android-kotlin/adapter-map.json +2 -2
  620. package/presets/opencode/android-kotlin/agents/accessibility-reviewer.md +15 -0
  621. package/presets/opencode/android-kotlin/agents/api-contract-reviewer.md +16 -0
  622. package/presets/opencode/android-kotlin/agents/build-verifier.md +17 -0
  623. package/presets/opencode/android-kotlin/agents/ci-investigator.md +25 -0
  624. package/presets/opencode/android-kotlin/agents/code-reviewer.md +16 -0
  625. package/presets/opencode/android-kotlin/agents/codebase-analyzer.md +15 -0
  626. package/presets/opencode/android-kotlin/agents/debugger.md +25 -0
  627. package/presets/opencode/android-kotlin/agents/feature-developer.md +25 -0
  628. package/presets/opencode/android-kotlin/agents/instrumentation-test-generator.md +16 -0
  629. package/presets/opencode/android-kotlin/agents/instrumentation-test-healer.md +16 -0
  630. package/presets/opencode/android-kotlin/agents/instrumentation-test-planner.md +16 -0
  631. package/presets/opencode/android-kotlin/agents/migration-specialist.md +15 -0
  632. package/presets/opencode/android-kotlin/agents/mockup-reviewer.md +15 -0
  633. package/presets/opencode/android-kotlin/agents/openspec-author.md +15 -0
  634. package/presets/opencode/android-kotlin/agents/performance-auditor.md +15 -0
  635. package/presets/opencode/android-kotlin/agents/qa-tester.md +17 -0
  636. package/presets/opencode/android-kotlin/agents/security-reviewer.md +15 -0
  637. package/presets/opencode/android-kotlin/agents/solution-architect.md +15 -0
  638. package/presets/opencode/android-kotlin/agents/task-analyst.md +15 -0
  639. package/presets/opencode/android-kotlin/agents/task-router.md +15 -0
  640. package/presets/opencode/android-kotlin/agents/tech-writer.md +15 -0
  641. package/presets/opencode/android-kotlin/agents/unit-test-generator.md +16 -0
  642. package/presets/opencode/android-kotlin/agents/unit-test-healer.md +16 -0
  643. package/presets/opencode/android-kotlin/agents/unit-test-planner.md +16 -0
  644. package/presets/opencode/android-kotlin/opencode.json +14 -0
  645. package/presets/opencode/android-kotlin/rules/README.md +7 -2
  646. package/presets/opencode/android-kotlin/rules/preset-pr-checklist.md +2 -2
  647. package/presets/opencode/go/OPENCODE.md +23 -2
  648. package/presets/opencode/go/REPO_AGENTS.md +1 -1
  649. package/presets/opencode/go/adapter-map.json +2 -2
  650. package/presets/opencode/go/agents/api-contract-reviewer.md +17 -0
  651. package/presets/opencode/go/agents/build-verifier.md +17 -0
  652. package/presets/opencode/go/agents/ci-investigator.md +29 -0
  653. package/presets/opencode/go/agents/code-reviewer.md +16 -0
  654. package/presets/opencode/go/agents/codebase-analyzer.md +15 -0
  655. package/presets/opencode/go/agents/debugger.md +29 -0
  656. package/presets/opencode/go/agents/feature-developer.md +29 -0
  657. package/presets/opencode/go/agents/integration-test-generator.md +17 -0
  658. package/presets/opencode/go/agents/integration-test-healer.md +17 -0
  659. package/presets/opencode/go/agents/integration-test-planner.md +17 -0
  660. package/presets/opencode/go/agents/migration-specialist.md +15 -0
  661. package/presets/opencode/go/agents/openspec-author.md +15 -0
  662. package/presets/opencode/go/agents/performance-auditor.md +15 -0
  663. package/presets/opencode/go/agents/qa-tester.md +18 -0
  664. package/presets/opencode/go/agents/security-reviewer.md +15 -0
  665. package/presets/opencode/go/agents/solution-architect.md +15 -0
  666. package/presets/opencode/go/agents/task-analyst.md +15 -0
  667. package/presets/opencode/go/agents/task-router.md +15 -0
  668. package/presets/opencode/go/agents/tech-writer.md +15 -0
  669. package/presets/opencode/go/agents/unit-test-generator.md +16 -0
  670. package/presets/opencode/go/agents/unit-test-healer.md +16 -0
  671. package/presets/opencode/go/agents/unit-test-planner.md +16 -0
  672. package/presets/opencode/go/opencode.json +14 -0
  673. package/presets/opencode/go/rules/README.md +7 -2
  674. package/presets/opencode/go/rules/preset-pr-checklist.md +2 -2
  675. package/presets/opencode/ios-swift/OPENCODE.md +23 -2
  676. package/presets/opencode/ios-swift/REPO_AGENTS.md +1 -1
  677. package/presets/opencode/ios-swift/adapter-map.json +2 -2
  678. package/presets/opencode/ios-swift/agents/accessibility-reviewer.md +15 -0
  679. package/presets/opencode/ios-swift/agents/api-contract-reviewer.md +16 -0
  680. package/presets/opencode/ios-swift/agents/build-verifier.md +17 -0
  681. package/presets/opencode/ios-swift/agents/ci-investigator.md +24 -0
  682. package/presets/opencode/ios-swift/agents/code-reviewer.md +16 -0
  683. package/presets/opencode/ios-swift/agents/codebase-analyzer.md +15 -0
  684. package/presets/opencode/ios-swift/agents/debugger.md +24 -0
  685. package/presets/opencode/ios-swift/agents/feature-developer.md +24 -0
  686. package/presets/opencode/ios-swift/agents/migration-specialist.md +15 -0
  687. package/presets/opencode/ios-swift/agents/mockup-reviewer.md +15 -0
  688. package/presets/opencode/ios-swift/agents/openspec-author.md +15 -0
  689. package/presets/opencode/ios-swift/agents/performance-auditor.md +15 -0
  690. package/presets/opencode/ios-swift/agents/qa-tester.md +17 -0
  691. package/presets/opencode/ios-swift/agents/security-reviewer.md +15 -0
  692. package/presets/opencode/ios-swift/agents/solution-architect.md +15 -0
  693. package/presets/opencode/ios-swift/agents/task-analyst.md +15 -0
  694. package/presets/opencode/ios-swift/agents/task-router.md +15 -0
  695. package/presets/opencode/ios-swift/agents/tech-writer.md +15 -0
  696. package/presets/opencode/ios-swift/agents/unit-test-generator.md +16 -0
  697. package/presets/opencode/ios-swift/agents/unit-test-healer.md +16 -0
  698. package/presets/opencode/ios-swift/agents/unit-test-planner.md +16 -0
  699. package/presets/opencode/ios-swift/agents/xcuitest-test-generator.md +16 -0
  700. package/presets/opencode/ios-swift/agents/xcuitest-test-healer.md +16 -0
  701. package/presets/opencode/ios-swift/agents/xcuitest-test-planner.md +16 -0
  702. package/presets/opencode/ios-swift/opencode.json +14 -0
  703. package/presets/opencode/ios-swift/rules/README.md +7 -2
  704. package/presets/opencode/ios-swift/rules/preset-pr-checklist.md +2 -2
  705. package/presets/opencode/java/OPENCODE.md +23 -2
  706. package/presets/opencode/java/REPO_AGENTS.md +1 -1
  707. package/presets/opencode/java/adapter-map.json +2 -2
  708. package/presets/opencode/java/agents/api-contract-reviewer.md +17 -0
  709. package/presets/opencode/java/agents/build-verifier.md +17 -0
  710. package/presets/opencode/java/agents/ci-investigator.md +29 -0
  711. package/presets/opencode/java/agents/code-reviewer.md +16 -0
  712. package/presets/opencode/java/agents/codebase-analyzer.md +15 -0
  713. package/presets/opencode/java/agents/debugger.md +29 -0
  714. package/presets/opencode/java/agents/feature-developer.md +29 -0
  715. package/presets/opencode/java/agents/integration-test-generator.md +17 -0
  716. package/presets/opencode/java/agents/integration-test-healer.md +17 -0
  717. package/presets/opencode/java/agents/integration-test-planner.md +17 -0
  718. package/presets/opencode/java/agents/migration-specialist.md +15 -0
  719. package/presets/opencode/java/agents/openspec-author.md +15 -0
  720. package/presets/opencode/java/agents/performance-auditor.md +15 -0
  721. package/presets/opencode/java/agents/qa-tester.md +18 -0
  722. package/presets/opencode/java/agents/security-reviewer.md +15 -0
  723. package/presets/opencode/java/agents/solution-architect.md +15 -0
  724. package/presets/opencode/java/agents/task-analyst.md +15 -0
  725. package/presets/opencode/java/agents/task-router.md +15 -0
  726. package/presets/opencode/java/agents/tech-writer.md +15 -0
  727. package/presets/opencode/java/agents/unit-test-generator.md +16 -0
  728. package/presets/opencode/java/agents/unit-test-healer.md +16 -0
  729. package/presets/opencode/java/agents/unit-test-planner.md +16 -0
  730. package/presets/opencode/java/opencode.json +14 -0
  731. package/presets/opencode/java/rules/README.md +7 -2
  732. package/presets/opencode/java/rules/preset-pr-checklist.md +2 -2
  733. package/presets/opencode/mcp-ts/OPENCODE.md +23 -2
  734. package/presets/opencode/mcp-ts/REPO_AGENTS.md +1 -1
  735. package/presets/opencode/mcp-ts/adapter-map.json +2 -2
  736. package/presets/opencode/mcp-ts/agents/build-verifier.md +17 -0
  737. package/presets/opencode/mcp-ts/agents/feature-developer.md +22 -0
  738. package/presets/opencode/mcp-ts/agents/security-reviewer.md +15 -0
  739. package/presets/opencode/mcp-ts/agents/solution-architect.md +15 -0
  740. package/presets/opencode/mcp-ts/agents/task-analyst.md +15 -0
  741. package/presets/opencode/mcp-ts/agents/task-router.md +15 -0
  742. package/presets/opencode/mcp-ts/opencode.json +14 -0
  743. package/presets/opencode/mcp-ts/rules/README.md +7 -2
  744. package/presets/opencode/mcp-ts/rules/preset-pr-checklist.md +2 -2
  745. package/presets/opencode/next/OPENCODE.md +23 -2
  746. package/presets/opencode/next/REPO_AGENTS.md +1 -1
  747. package/presets/opencode/next/adapter-map.json +58 -2
  748. package/presets/opencode/next/agents/accessibility-reviewer.md +17 -0
  749. package/presets/opencode/next/agents/api-contract-reviewer.md +19 -0
  750. package/presets/opencode/next/agents/build-verifier.md +17 -0
  751. package/presets/opencode/next/agents/ci-investigator.md +34 -0
  752. package/presets/opencode/next/agents/code-reviewer.md +18 -0
  753. package/presets/opencode/next/agents/codebase-analyzer.md +17 -0
  754. package/presets/opencode/next/agents/debugger.md +34 -0
  755. package/presets/opencode/next/agents/feature-developer.md +34 -0
  756. package/presets/opencode/next/agents/migration-specialist.md +17 -0
  757. package/presets/opencode/next/agents/mockup-reviewer.md +17 -0
  758. package/presets/opencode/next/agents/openspec-author.md +17 -0
  759. package/presets/opencode/next/agents/performance-auditor.md +17 -0
  760. package/presets/opencode/next/agents/playwright-test-generator.md +19 -0
  761. package/presets/opencode/next/agents/playwright-test-healer.md +19 -0
  762. package/presets/opencode/next/agents/playwright-test-planner.md +19 -0
  763. package/presets/opencode/next/agents/qa-tester.md +20 -0
  764. package/presets/opencode/next/agents/security-reviewer.md +17 -0
  765. package/presets/opencode/next/agents/solution-architect.md +17 -0
  766. package/presets/opencode/next/agents/task-analyst.md +17 -0
  767. package/presets/opencode/next/agents/task-router.md +17 -0
  768. package/presets/opencode/next/agents/tech-writer.md +17 -0
  769. package/presets/opencode/next/agents/unit-test-generator.md +18 -0
  770. package/presets/opencode/next/agents/unit-test-healer.md +18 -0
  771. package/presets/opencode/next/agents/unit-test-planner.md +18 -0
  772. package/presets/opencode/next/ai-local/rules-library/agent-artifacts-no-local-paths.md +38 -0
  773. package/presets/opencode/next/ai-local/rules-library/commit-hygiene.md +17 -0
  774. package/presets/opencode/next/ai-local/rules-library/mcp-required-for-ui-layout.md +41 -0
  775. package/presets/opencode/next/ai-local/rules-library/no-test-driven-behavior-change.md +14 -0
  776. package/presets/opencode/next/ai-local/rules-library/pre-pr-checklist.md +16 -0
  777. package/presets/opencode/next/ai-local/rules-library/router-pages.md +23 -0
  778. package/presets/opencode/next/ai-local/rules-library/single-source-copy-constants.md +16 -0
  779. package/presets/opencode/next/opencode.json +19 -0
  780. package/presets/opencode/next/rules/README.md +7 -2
  781. package/presets/opencode/next/rules/preset-pr-checklist.md +2 -2
  782. package/presets/opencode/nuxt/OPENCODE.md +23 -2
  783. package/presets/opencode/nuxt/REPO_AGENTS.md +1 -1
  784. package/presets/opencode/nuxt/adapter-map.json +2 -2
  785. package/presets/opencode/nuxt/agents/accessibility-reviewer.md +17 -0
  786. package/presets/opencode/nuxt/agents/api-contract-reviewer.md +19 -0
  787. package/presets/opencode/nuxt/agents/build-verifier.md +17 -0
  788. package/presets/opencode/nuxt/agents/ci-investigator.md +34 -0
  789. package/presets/opencode/nuxt/agents/code-reviewer.md +18 -0
  790. package/presets/opencode/nuxt/agents/codebase-analyzer.md +17 -0
  791. package/presets/opencode/nuxt/agents/debugger.md +34 -0
  792. package/presets/opencode/nuxt/agents/feature-developer.md +34 -0
  793. package/presets/opencode/nuxt/agents/migration-specialist.md +17 -0
  794. package/presets/opencode/nuxt/agents/mockup-reviewer.md +17 -0
  795. package/presets/opencode/nuxt/agents/openspec-author.md +17 -0
  796. package/presets/opencode/nuxt/agents/performance-auditor.md +17 -0
  797. package/presets/opencode/nuxt/agents/playwright-test-generator.md +19 -0
  798. package/presets/opencode/nuxt/agents/playwright-test-healer.md +19 -0
  799. package/presets/opencode/nuxt/agents/playwright-test-planner.md +19 -0
  800. package/presets/opencode/nuxt/agents/qa-tester.md +20 -0
  801. package/presets/opencode/nuxt/agents/security-reviewer.md +17 -0
  802. package/presets/opencode/nuxt/agents/solution-architect.md +17 -0
  803. package/presets/opencode/nuxt/agents/task-analyst.md +17 -0
  804. package/presets/opencode/nuxt/agents/task-router.md +17 -0
  805. package/presets/opencode/nuxt/agents/tech-writer.md +17 -0
  806. package/presets/opencode/nuxt/agents/unit-test-generator.md +18 -0
  807. package/presets/opencode/nuxt/agents/unit-test-healer.md +18 -0
  808. package/presets/opencode/nuxt/agents/unit-test-planner.md +18 -0
  809. package/presets/opencode/nuxt/opencode.json +19 -0
  810. package/presets/opencode/nuxt/rules/README.md +7 -2
  811. package/presets/opencode/nuxt/rules/preset-pr-checklist.md +2 -2
  812. package/presets/opencode/php-hexagonal/OPENCODE.md +23 -2
  813. package/presets/opencode/php-hexagonal/REPO_AGENTS.md +1 -1
  814. package/presets/opencode/php-hexagonal/adapter-map.json +2 -2
  815. package/presets/opencode/php-hexagonal/agents/api-contract-reviewer.md +17 -0
  816. package/presets/opencode/php-hexagonal/agents/build-verifier.md +17 -0
  817. package/presets/opencode/php-hexagonal/agents/ci-investigator.md +29 -0
  818. package/presets/opencode/php-hexagonal/agents/code-reviewer.md +16 -0
  819. package/presets/opencode/php-hexagonal/agents/codebase-analyzer.md +15 -0
  820. package/presets/opencode/php-hexagonal/agents/debugger.md +29 -0
  821. package/presets/opencode/php-hexagonal/agents/feature-developer.md +29 -0
  822. package/presets/opencode/php-hexagonal/agents/integration-test-generator.md +17 -0
  823. package/presets/opencode/php-hexagonal/agents/integration-test-healer.md +17 -0
  824. package/presets/opencode/php-hexagonal/agents/integration-test-planner.md +17 -0
  825. package/presets/opencode/php-hexagonal/agents/migration-specialist.md +15 -0
  826. package/presets/opencode/php-hexagonal/agents/openspec-author.md +15 -0
  827. package/presets/opencode/php-hexagonal/agents/performance-auditor.md +15 -0
  828. package/presets/opencode/php-hexagonal/agents/qa-tester.md +18 -0
  829. package/presets/opencode/php-hexagonal/agents/security-reviewer.md +15 -0
  830. package/presets/opencode/php-hexagonal/agents/solution-architect.md +15 -0
  831. package/presets/opencode/php-hexagonal/agents/task-analyst.md +15 -0
  832. package/presets/opencode/php-hexagonal/agents/task-router.md +15 -0
  833. package/presets/opencode/php-hexagonal/agents/tech-writer.md +15 -0
  834. package/presets/opencode/php-hexagonal/agents/unit-test-generator.md +16 -0
  835. package/presets/opencode/php-hexagonal/agents/unit-test-healer.md +16 -0
  836. package/presets/opencode/php-hexagonal/agents/unit-test-planner.md +16 -0
  837. package/presets/opencode/php-hexagonal/opencode.json +14 -0
  838. package/presets/opencode/php-hexagonal/rules/README.md +7 -2
  839. package/presets/opencode/php-hexagonal/rules/preset-pr-checklist.md +2 -2
  840. package/presets/opencode/php-laravel/OPENCODE.md +23 -2
  841. package/presets/opencode/php-laravel/REPO_AGENTS.md +1 -1
  842. package/presets/opencode/php-laravel/adapter-map.json +2 -2
  843. package/presets/opencode/php-laravel/agents/api-contract-reviewer.md +18 -0
  844. package/presets/opencode/php-laravel/agents/build-verifier.md +17 -0
  845. package/presets/opencode/php-laravel/agents/ci-investigator.md +29 -0
  846. package/presets/opencode/php-laravel/agents/code-reviewer.md +16 -0
  847. package/presets/opencode/php-laravel/agents/codebase-analyzer.md +15 -0
  848. package/presets/opencode/php-laravel/agents/debugger.md +29 -0
  849. package/presets/opencode/php-laravel/agents/feature-developer.md +29 -0
  850. package/presets/opencode/php-laravel/agents/integration-test-generator.md +17 -0
  851. package/presets/opencode/php-laravel/agents/integration-test-healer.md +17 -0
  852. package/presets/opencode/php-laravel/agents/integration-test-planner.md +17 -0
  853. package/presets/opencode/php-laravel/agents/migration-specialist.md +15 -0
  854. package/presets/opencode/php-laravel/agents/openspec-author.md +15 -0
  855. package/presets/opencode/php-laravel/agents/performance-auditor.md +15 -0
  856. package/presets/opencode/php-laravel/agents/qa-tester.md +18 -0
  857. package/presets/opencode/php-laravel/agents/security-reviewer.md +15 -0
  858. package/presets/opencode/php-laravel/agents/solution-architect.md +15 -0
  859. package/presets/opencode/php-laravel/agents/task-analyst.md +15 -0
  860. package/presets/opencode/php-laravel/agents/task-router.md +15 -0
  861. package/presets/opencode/php-laravel/agents/tech-writer.md +15 -0
  862. package/presets/opencode/php-laravel/agents/unit-test-generator.md +16 -0
  863. package/presets/opencode/php-laravel/agents/unit-test-healer.md +16 -0
  864. package/presets/opencode/php-laravel/agents/unit-test-planner.md +16 -0
  865. package/presets/opencode/php-laravel/opencode.json +14 -0
  866. package/presets/opencode/php-laravel/rules/README.md +7 -2
  867. package/presets/opencode/php-laravel/rules/preset-pr-checklist.md +2 -2
  868. package/presets/opencode/platform-contract.json +1 -1
  869. package/presets/opencode/svelte/OPENCODE.md +23 -2
  870. package/presets/opencode/svelte/REPO_AGENTS.md +1 -1
  871. package/presets/opencode/svelte/adapter-map.json +2 -2
  872. package/presets/opencode/svelte/agents/accessibility-reviewer.md +17 -0
  873. package/presets/opencode/svelte/agents/api-contract-reviewer.md +19 -0
  874. package/presets/opencode/svelte/agents/build-verifier.md +17 -0
  875. package/presets/opencode/svelte/agents/ci-investigator.md +34 -0
  876. package/presets/opencode/svelte/agents/code-reviewer.md +18 -0
  877. package/presets/opencode/svelte/agents/codebase-analyzer.md +17 -0
  878. package/presets/opencode/svelte/agents/debugger.md +34 -0
  879. package/presets/opencode/svelte/agents/feature-developer.md +34 -0
  880. package/presets/opencode/svelte/agents/migration-specialist.md +17 -0
  881. package/presets/opencode/svelte/agents/mockup-reviewer.md +17 -0
  882. package/presets/opencode/svelte/agents/openspec-author.md +17 -0
  883. package/presets/opencode/svelte/agents/performance-auditor.md +17 -0
  884. package/presets/opencode/svelte/agents/playwright-test-generator.md +19 -0
  885. package/presets/opencode/svelte/agents/playwright-test-healer.md +19 -0
  886. package/presets/opencode/svelte/agents/playwright-test-planner.md +19 -0
  887. package/presets/opencode/svelte/agents/qa-tester.md +20 -0
  888. package/presets/opencode/svelte/agents/security-reviewer.md +17 -0
  889. package/presets/opencode/svelte/agents/solution-architect.md +17 -0
  890. package/presets/opencode/svelte/agents/task-analyst.md +17 -0
  891. package/presets/opencode/svelte/agents/task-router.md +17 -0
  892. package/presets/opencode/svelte/agents/tech-writer.md +17 -0
  893. package/presets/opencode/svelte/agents/unit-test-generator.md +18 -0
  894. package/presets/opencode/svelte/agents/unit-test-healer.md +18 -0
  895. package/presets/opencode/svelte/agents/unit-test-planner.md +18 -0
  896. package/presets/opencode/svelte/opencode.json +19 -0
  897. package/presets/opencode/svelte/rules/README.md +7 -2
  898. package/presets/opencode/svelte/rules/preset-pr-checklist.md +2 -2
  899. package/scripts/check-claude-agent-blocks.mjs +82 -0
  900. package/scripts/check-local-overlay.sh +40 -4
  901. package/scripts/check-mavis-local-overlay.mjs +23 -0
  902. package/scripts/check-mavis-platform-contract.mjs +5 -2
  903. package/scripts/check-opencode-local-overlay.mjs +19 -0
  904. package/scripts/check-opencode-platform-contract.mjs +5 -2
  905. package/scripts/check-preset-structure.sh +9 -0
  906. package/scripts/check-preset-token-budget.sh +7 -0
  907. package/scripts/fixtures/cli-golden/claude/next.json +34 -33
  908. package/scripts/fixtures/cli-golden/cursor/next.json +9 -2
  909. package/scripts/fixtures/cli-golden/mavis/android-kotlin.json +27 -27
  910. package/scripts/fixtures/cli-golden/mavis/go.json +25 -25
  911. package/scripts/fixtures/cli-golden/mavis/ios-swift.json +27 -27
  912. package/scripts/fixtures/cli-golden/mavis/java.json +25 -25
  913. package/scripts/fixtures/cli-golden/mavis/mcp-ts.json +9 -9
  914. package/scripts/fixtures/cli-golden/mavis/next.json +34 -27
  915. package/scripts/fixtures/cli-golden/mavis/nuxt.json +27 -27
  916. package/scripts/fixtures/cli-golden/mavis/php-hexagonal.json +25 -25
  917. package/scripts/fixtures/cli-golden/mavis/php-laravel.json +25 -25
  918. package/scripts/fixtures/cli-golden/mavis/svelte.json +27 -27
  919. package/scripts/fixtures/cli-golden/opencode/android-kotlin.json +29 -29
  920. package/scripts/fixtures/cli-golden/opencode/go.json +27 -27
  921. package/scripts/fixtures/cli-golden/opencode/ios-swift.json +29 -29
  922. package/scripts/fixtures/cli-golden/opencode/java.json +27 -27
  923. package/scripts/fixtures/cli-golden/opencode/mcp-ts.json +11 -11
  924. package/scripts/fixtures/cli-golden/opencode/next.json +36 -29
  925. package/scripts/fixtures/cli-golden/opencode/nuxt.json +29 -29
  926. package/scripts/fixtures/cli-golden/opencode/php-hexagonal.json +27 -27
  927. package/scripts/fixtures/cli-golden/opencode/php-laravel.json +27 -27
  928. package/scripts/fixtures/cli-golden/opencode/svelte.json +29 -29
  929. package/scripts/inject-claude-agent-rules-block.mjs +83 -0
  930. package/scripts/lib/generate-adapter-common.mjs +182 -0
  931. package/scripts/lib/generate-mavis-adapter.mjs +55 -10
  932. package/scripts/lib/generate-opencode-adapter.mjs +76 -12
  933. package/scripts/lib/stack-platform-profiles.mjs +321 -1
  934. package/scripts/sync-claude-harness-wiring.mjs +56 -0
  935. package/scripts/sync-claude-settings.mjs +81 -0
  936. package/scripts/sync-dogfood-claude.sh +62 -0
  937. package/scripts/test-cli-mcp-merge.mjs +54 -0
  938. package/scripts/test-mavis-orchestration.mjs +3 -2
@@ -34,7 +34,296 @@ const BACKEND_DEVELOPER_AGENTS = [
34
34
 
35
35
  const QUALITY_OVERLAY = ['code-quality-and-refactoring', 'ai-local-overlay'];
36
36
 
37
- /** @typedef {{ title: string, family: string, alwaysOn: string[], developerAgents: string[] }} StackProfile */
37
+ /**
38
+ * Requestable-but-critical rules a subagent must Read explicitly, because a
39
+ * `Task`/`mcode exec`/Claude subagent starts blank and inherits no always-on
40
+ * context. Filtered to stems that exist for the stack at generation time.
41
+ */
42
+ const NEXT_ZONE_RULES = [
43
+ 'architecture-boundaries',
44
+ 'public-imports',
45
+ 'react-ui',
46
+ 'store-rtk',
47
+ 'react-next-anti-hallucination',
48
+ 'no-props-spread',
49
+ 'no-type-assertion-as-import-export',
50
+ 'feature-delivery-workflow',
51
+ 'reference-features',
52
+ 'anti-sycophancy-discipline',
53
+ 'post-change-lint',
54
+ 'mcp-usage',
55
+ ];
56
+
57
+ const UNIVERSAL_ZONE_RULES = [
58
+ 'architecture-boundaries',
59
+ 'feature-delivery-workflow',
60
+ 'reference-features',
61
+ 'anti-sycophancy-discipline',
62
+ 'post-change-lint',
63
+ 'mcp-usage',
64
+ ];
65
+
66
+ /**
67
+ * Glob-only Next stems absent from NEXT_ZONE_RULES. Only the implementer role
68
+ * receives them — the roles that edit those zones — not every agent.
69
+ */
70
+ const NEXT_GLOB_ONLY_ZONE_RULES = [
71
+ 'architecture-boundaries-ui',
72
+ 'arrow-functions',
73
+ 'css-property-order-stylelint',
74
+ 'layer-barrel-exports',
75
+ 'navigation-router-stack',
76
+ 'navigation-router-ui',
77
+ 'next-app-router',
78
+ 'react-a11y-coding',
79
+ 'types-jsdoc',
80
+ ];
81
+
82
+ const FRONTEND_API_ZONE_RULES = ['api-services', 'http-client'];
83
+ const HEX_API_ZONE_RULES = ['api-http', 'api-grpc'];
84
+ const HEX_DOMAIN_ZONE_RULES = [
85
+ 'domain-layer',
86
+ 'application-usecases',
87
+ 'ports-interfaces',
88
+ 'adapters-driven',
89
+ 'adapters-driving',
90
+ 'composition-root',
91
+ 'module-public-api',
92
+ 'persistence-adapters',
93
+ 'messaging-adapters',
94
+ ];
95
+
96
+ /** Domain stems beyond UNIVERSAL_ZONE_RULES for the implementer role. */
97
+ const DOMAIN_ZONE_RULES = {
98
+ next: [
99
+ ...NEXT_ZONE_RULES.filter((stem) => !UNIVERSAL_ZONE_RULES.includes(stem)),
100
+ ...NEXT_GLOB_ONLY_ZONE_RULES,
101
+ ],
102
+ nuxt: [
103
+ 'public-imports',
104
+ 'vue-ui',
105
+ 'store-pinia',
106
+ 'vue-nuxt-anti-hallucination',
107
+ 'no-v-bind-spread',
108
+ 'no-type-assertion-as-import-export',
109
+ 'architecture-boundaries-ui',
110
+ 'css-property-order-stylelint',
111
+ 'layer-barrel-exports',
112
+ 'navigation-router-stack',
113
+ 'navigation-router-ui',
114
+ 'nuxt-pages-routing',
115
+ 'vue-a11y-coding',
116
+ 'types-jsdoc',
117
+ 'script-setup-conventions',
118
+ ],
119
+ svelte: [
120
+ 'public-imports',
121
+ 'svelte-ui',
122
+ 'store-svelte',
123
+ 'svelte-sveltekit-anti-hallucination',
124
+ 'no-rest-props-spread',
125
+ 'no-type-assertion-as-import-export',
126
+ 'architecture-boundaries-ui',
127
+ 'css-property-order-stylelint',
128
+ 'layer-barrel-exports',
129
+ 'navigation-router-stack',
130
+ 'navigation-router-ui',
131
+ 'sveltekit-routing',
132
+ 'svelte-a11y-coding',
133
+ 'types-jsdoc',
134
+ 'svelte-script-conventions',
135
+ ],
136
+ 'ios-swift': [
137
+ 'swiftui-ui',
138
+ 'swift-conventions',
139
+ 'state-and-viewmodels',
140
+ 'navigation-coordinators',
141
+ 'persistence-data',
142
+ 'module-public-api',
143
+ ],
144
+ 'android-kotlin': [
145
+ 'compose-ui',
146
+ 'kotlin-conventions',
147
+ 'state-and-viewmodels',
148
+ 'navigation-feature-launcher',
149
+ 'persistence-data',
150
+ 'module-public-api',
151
+ 'di-dagger-feature-holders',
152
+ ],
153
+ go: [...HEX_DOMAIN_ZONE_RULES, 'go-conventions'],
154
+ java: [...HEX_DOMAIN_ZONE_RULES, 'java-conventions'],
155
+ 'php-hexagonal': [...HEX_DOMAIN_ZONE_RULES, 'php-conventions'],
156
+ 'php-laravel': [
157
+ 'domain-layer',
158
+ 'actions-services',
159
+ 'eloquent-persistence',
160
+ 'events-listeners',
161
+ 'jobs-queues',
162
+ 'laravel-conventions',
163
+ 'module-public-api',
164
+ 'policies-authorization',
165
+ 'service-providers',
166
+ ],
167
+ 'mcp-ts': [
168
+ 'mcp-tool-design',
169
+ 'mcp-contract-testing',
170
+ 'mcp-auth-secrets',
171
+ 'mcp-transport-packaging',
172
+ 'mcp-ts-conventions',
173
+ ],
174
+ };
175
+
176
+ const API_ZONE_RULES = {
177
+ next: FRONTEND_API_ZONE_RULES,
178
+ nuxt: FRONTEND_API_ZONE_RULES,
179
+ svelte: FRONTEND_API_ZONE_RULES,
180
+ 'ios-swift': ['networking-services'],
181
+ 'android-kotlin': ['networking-data'],
182
+ go: HEX_API_ZONE_RULES,
183
+ java: HEX_API_ZONE_RULES,
184
+ 'php-hexagonal': HEX_API_ZONE_RULES,
185
+ 'php-laravel': ['http-layer', 'routes-api', 'form-requests'],
186
+ 'mcp-ts': [],
187
+ };
188
+
189
+ const E2E_ZONE_RULES = {
190
+ next: ['playwright-agents', 'tests-e2e-structure'],
191
+ nuxt: ['playwright-agents', 'tests-e2e-structure'],
192
+ svelte: ['playwright-agents', 'tests-e2e-structure'],
193
+ 'ios-swift': ['tests-ui'],
194
+ 'android-kotlin': ['tests-ui'],
195
+ go: ['tests-integration', 'tests-e2e'],
196
+ java: ['tests-integration', 'tests-e2e'],
197
+ 'php-hexagonal': ['tests-integration', 'tests-e2e'],
198
+ 'php-laravel': ['tests-integration', 'tests-e2e'],
199
+ 'mcp-ts': [],
200
+ };
201
+
202
+ const TOOLING_ZONE_RULES = {
203
+ next: [],
204
+ nuxt: [],
205
+ svelte: [],
206
+ 'ios-swift': ['xcode-tooling', 'post-change-build'],
207
+ 'android-kotlin': ['gradle-tooling', 'post-change-build'],
208
+ go: ['go-tooling', 'post-change-test'],
209
+ java: ['java-tooling', 'post-change-test'],
210
+ 'php-hexagonal': ['php-tooling', 'post-change-test'],
211
+ 'php-laravel': ['php-tooling', 'post-change-test'],
212
+ 'mcp-ts': ['mcp-ts-tooling', 'post-change-test'],
213
+ };
214
+
215
+ const IMPLEMENTER_AGENTS = new Set(['feature-developer', 'debugger', 'ci-investigator']);
216
+
217
+ function dedupeStems(stems) {
218
+ const seen = new Set();
219
+ const ordered = [];
220
+ for (const stem of stems) {
221
+ if (seen.has(stem)) continue;
222
+ seen.add(stem);
223
+ ordered.push(stem);
224
+ }
225
+ return ordered;
226
+ }
227
+
228
+ function zoneRulesForRole(stack, role) {
229
+ const domain = DOMAIN_ZONE_RULES[stack] ?? [];
230
+ const api = API_ZONE_RULES[stack] ?? [];
231
+ const tooling = TOOLING_ZONE_RULES[stack] ?? [];
232
+ const e2e = E2E_ZONE_RULES[stack] ?? [];
233
+ switch (role) {
234
+ case 'implementer':
235
+ return dedupeStems([...UNIVERSAL_ZONE_RULES, ...domain, ...api, ...tooling]);
236
+ case 'reviewer':
237
+ return dedupeStems([...UNIVERSAL_ZONE_RULES, 'code-review-mr']);
238
+ case 'unit-test':
239
+ return dedupeStems([...UNIVERSAL_ZONE_RULES, 'tests-unit']);
240
+ case 'e2e':
241
+ return dedupeStems([...UNIVERSAL_ZONE_RULES, ...e2e]);
242
+ case 'qa':
243
+ return dedupeStems([...UNIVERSAL_ZONE_RULES, 'tests-unit', ...e2e]);
244
+ case 'api-contract':
245
+ return dedupeStems([...UNIVERSAL_ZONE_RULES, ...api]);
246
+ case 'verifier':
247
+ return dedupeStems([...UNIVERSAL_ZONE_RULES, ...tooling]);
248
+ default:
249
+ return [...UNIVERSAL_ZONE_RULES];
250
+ }
251
+ }
252
+
253
+ const ROLE_KEYS = [
254
+ 'implementer',
255
+ 'reviewer',
256
+ 'unit-test',
257
+ 'e2e',
258
+ 'qa',
259
+ 'api-contract',
260
+ 'verifier',
261
+ 'default',
262
+ ];
263
+
264
+ /** @type {Record<string, Record<string, string[]>>} */
265
+ export const zoneRulesByRole = Object.fromEntries(
266
+ Object.keys(DOMAIN_ZONE_RULES).map((stack) => [
267
+ stack,
268
+ Object.fromEntries(ROLE_KEYS.map((role) => [role, zoneRulesForRole(stack, role)])),
269
+ ]),
270
+ );
271
+
272
+ /**
273
+ * Smallest stem→role map that keeps the 9 Next glob stems on production
274
+ * editors only. Test prefixes win over the developer-agent write list so
275
+ * unit-test roles do not inherit the UI bundle. qa-tester writes tests, not
276
+ * UI zones, so it is not an implementer.
277
+ */
278
+ export function resolveAgentRole(agentStem) {
279
+ if (agentStem === 'code-reviewer') return 'reviewer';
280
+ if (agentStem.startsWith('unit-test-')) return 'unit-test';
281
+ if (
282
+ agentStem.startsWith('playwright-test-') ||
283
+ agentStem.startsWith('xcuitest-test-') ||
284
+ agentStem.startsWith('instrumentation-test-') ||
285
+ agentStem.startsWith('integration-test-')
286
+ ) {
287
+ return 'e2e';
288
+ }
289
+ if (agentStem === 'api-contract-reviewer') return 'api-contract';
290
+ if (agentStem === 'qa-tester') return 'qa';
291
+ if (agentStem === 'build-verifier') return 'verifier';
292
+ if (IMPLEMENTER_AGENTS.has(agentStem)) return 'implementer';
293
+ return 'default';
294
+ }
295
+
296
+ /**
297
+ * Universal harness-level `permission.bash` guards. Apply to every stack.
298
+ * `git commit/push` are universally denied to honor the "human commits" contract
299
+ * from root `AGENTS.md`; package-manager enforcement is stack-driven via
300
+ * `STACK_BASH_PERMISSIONS_OVERRIDES`.
301
+ */
302
+ const UNIVERSAL_BASH_PERMISSION = {
303
+ '*': 'allow',
304
+ 'git commit *': 'deny',
305
+ 'git push *': 'deny',
306
+ };
307
+
308
+ const JS_STACK_PACKAGE_GUARDS = {
309
+ 'npm *': 'ask',
310
+ 'npx *': 'ask',
311
+ 'pnpm *': 'ask',
312
+ 'bun *': 'ask',
313
+ 'npx jest*': 'deny',
314
+ };
315
+
316
+ const STACK_BASH_PERMISSIONS_OVERRIDES = {
317
+ next: { ...JS_STACK_PACKAGE_GUARDS },
318
+ nuxt: { ...JS_STACK_PACKAGE_GUARDS },
319
+ svelte: { ...JS_STACK_PACKAGE_GUARDS },
320
+ };
321
+
322
+ /**
323
+ * `zoneRules` is the pre-S1 homogeneous catalog (still the default shape of the
324
+ * profile). Subagent «Rules to load» blocks use `getZoneRulesForAgent` instead.
325
+ * @typedef {{ title: string, family: string, alwaysOn: string[], zoneRules: string[], developerAgents: string[], bashPermission: Record<string,string> }} StackProfile
326
+ */
38
327
 
39
328
  /** @type {Record<string, StackProfile>} */
40
329
  export const STACK_PROFILES = {
@@ -42,24 +331,32 @@ export const STACK_PROFILES = {
42
331
  title: 'Next.js',
43
332
  family: 'frontend',
44
333
  alwaysOn: ['next-app-core', 'package-manager', ...QUALITY_OVERLAY],
334
+ zoneRules: NEXT_ZONE_RULES,
45
335
  developerAgents: FRONTEND_DEVELOPER_AGENTS,
336
+ bashPermission: { ...UNIVERSAL_BASH_PERMISSION, ...JS_STACK_PACKAGE_GUARDS },
46
337
  },
47
338
  nuxt: {
48
339
  title: 'Nuxt 3',
49
340
  family: 'frontend',
50
341
  alwaysOn: ['nuxt-app-core', 'package-manager', ...QUALITY_OVERLAY],
342
+ zoneRules: UNIVERSAL_ZONE_RULES,
51
343
  developerAgents: FRONTEND_DEVELOPER_AGENTS,
344
+ bashPermission: { ...UNIVERSAL_BASH_PERMISSION, ...JS_STACK_PACKAGE_GUARDS },
52
345
  },
53
346
  svelte: {
54
347
  title: 'SvelteKit',
55
348
  family: 'frontend',
56
349
  alwaysOn: ['svelte-app-core', 'package-manager', ...QUALITY_OVERLAY],
350
+ zoneRules: UNIVERSAL_ZONE_RULES,
57
351
  developerAgents: FRONTEND_DEVELOPER_AGENTS,
352
+ bashPermission: { ...UNIVERSAL_BASH_PERMISSION, ...JS_STACK_PACKAGE_GUARDS },
58
353
  },
59
354
  'ios-swift': {
60
355
  title: 'iOS Swift',
61
356
  family: 'ios',
62
357
  alwaysOn: ['ios-app-core', 'architecture-boundaries', ...QUALITY_OVERLAY],
358
+ zoneRules: UNIVERSAL_ZONE_RULES,
359
+ bashPermission: { ...UNIVERSAL_BASH_PERMISSION },
63
360
  developerAgents: [
64
361
  ...MOBILE_DEVELOPER_BASE,
65
362
  'xcuitest-test-generator',
@@ -70,6 +367,8 @@ export const STACK_PROFILES = {
70
367
  title: 'Android Kotlin',
71
368
  family: 'android',
72
369
  alwaysOn: ['android-app-core', 'architecture-boundaries', ...QUALITY_OVERLAY],
370
+ zoneRules: UNIVERSAL_ZONE_RULES,
371
+ bashPermission: { ...UNIVERSAL_BASH_PERMISSION },
73
372
  developerAgents: [
74
373
  ...MOBILE_DEVELOPER_BASE,
75
374
  'instrumentation-test-generator',
@@ -80,31 +379,41 @@ export const STACK_PROFILES = {
80
379
  title: 'Go hexagonal',
81
380
  family: 'backend',
82
381
  alwaysOn: ['go-app-core', 'architecture-boundaries', ...QUALITY_OVERLAY],
382
+ zoneRules: UNIVERSAL_ZONE_RULES,
383
+ bashPermission: { ...UNIVERSAL_BASH_PERMISSION },
83
384
  developerAgents: BACKEND_DEVELOPER_AGENTS,
84
385
  },
85
386
  java: {
86
387
  title: 'Java hexagonal',
87
388
  family: 'backend',
88
389
  alwaysOn: ['java-app-core', 'architecture-boundaries', ...QUALITY_OVERLAY],
390
+ zoneRules: UNIVERSAL_ZONE_RULES,
391
+ bashPermission: { ...UNIVERSAL_BASH_PERMISSION },
89
392
  developerAgents: BACKEND_DEVELOPER_AGENTS,
90
393
  },
91
394
  'php-hexagonal': {
92
395
  title: 'PHP hexagonal',
93
396
  family: 'backend',
94
397
  alwaysOn: ['php-app-core', 'architecture-boundaries', ...QUALITY_OVERLAY],
398
+ zoneRules: UNIVERSAL_ZONE_RULES,
399
+ bashPermission: { ...UNIVERSAL_BASH_PERMISSION },
95
400
  developerAgents: BACKEND_DEVELOPER_AGENTS,
96
401
  },
97
402
  'php-laravel': {
98
403
  title: 'Laravel',
99
404
  family: 'backend',
100
405
  alwaysOn: ['laravel-app-core', 'architecture-boundaries', ...QUALITY_OVERLAY],
406
+ zoneRules: UNIVERSAL_ZONE_RULES,
407
+ bashPermission: { ...UNIVERSAL_BASH_PERMISSION },
101
408
  developerAgents: BACKEND_DEVELOPER_AGENTS,
102
409
  },
103
410
  'mcp-ts': {
104
411
  title: 'TypeScript MCP',
105
412
  family: 'mcp-ts',
106
413
  alwaysOn: ['mcp-ts-app-core', 'mcp-server-boundaries', ...QUALITY_OVERLAY],
414
+ zoneRules: UNIVERSAL_ZONE_RULES,
107
415
  developerAgents: ['feature-developer'],
416
+ bashPermission: { ...UNIVERSAL_BASH_PERMISSION },
108
417
  },
109
418
  };
110
419
 
@@ -126,6 +435,17 @@ export function getStackProfile(stack) {
126
435
  return profile;
127
436
  }
128
437
 
438
+ /** Role-trimmed zone stems for one agent. Filtered again to stems that exist at generation time. */
439
+ export function getZoneRulesForAgent(stack, agentStem) {
440
+ getStackProfile(stack);
441
+ const role = resolveAgentRole(agentStem);
442
+ const rules = zoneRulesByRole[stack]?.[role];
443
+ if (!rules) {
444
+ throw new Error(`no zone rules for stack "${stack}" role "${role}"`);
445
+ }
446
+ return rules;
447
+ }
448
+
129
449
  export function parseStackArg(argv, { required = true } = {}) {
130
450
  let stack;
131
451
  for (let index = 0; index < argv.length; index += 1) {
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Append a "## Harness wiring" section to `presets/claude/<stack>/CLAUDE.md`
4
+ * for every released stack. Idempotent: skips files that already contain
5
+ * the heading. Claude presets are hand-maintained; this keeps them aligned
6
+ * with the cross-platform harness story (OpenCode/Mavis parity work).
7
+ *
8
+ * Usage: node scripts/sync-claude-harness-wiring.mjs
9
+ */
10
+ import fs from 'node:fs';
11
+ import path from 'node:path';
12
+ import { fileURLToPath } from 'node:url';
13
+ import { loadReleasedStacks } from './lib/generate-adapter-common.mjs';
14
+
15
+ const scriptDirectory = path.dirname(fileURLToPath(import.meta.url));
16
+ const packageRoot = path.join(scriptDirectory, '..');
17
+ const presetsRoot = path.join(packageRoot, 'presets');
18
+ const HEADING = '## Harness wiring';
19
+
20
+ const SECTION = `
21
+ ## Harness wiring
22
+
23
+ - **Subagent rules** are re-declared inside every \`.claude/agents/*.md\` via
24
+ the \`## Rules to load (subagent context)\` block (always-on + zone rules
25
+ filtered to stems that exist for this stack, using the nested
26
+ \`.claude/rules/<topic>/<stem>.md\` paths). Claude Code subagents inherit
27
+ no parent context, so this block is the authoritative mechanism.
28
+ - \`.claude/settings.json\` ships harness-level denials (universal
29
+ \`git commit/push deny\`; JS stacks also \`npx jest* deny\` and \`npm/npx/pnpm/bun\`
30
+ ask). Re-init overwrites the file (consumer can edit afterwards); mirror
31
+ with root \`AGENTS.md\` if you change the harness.
32
+ `;
33
+
34
+ function sync(stack) {
35
+ const dest = path.join(presetsRoot, 'claude', stack, 'CLAUDE.md');
36
+ if (!fs.existsSync(dest)) {
37
+ console.log(`skip claude/${stack}: no CLAUDE.md`);
38
+ return;
39
+ }
40
+ const text = fs.readFileSync(dest, 'utf8');
41
+ if (text.includes(HEADING)) {
42
+ console.log(`claude/${stack}: already has ${HEADING}`);
43
+ return;
44
+ }
45
+ const next = text.replace(/\n+$/, '\n') + SECTION;
46
+ fs.writeFileSync(dest, next);
47
+ console.log(`claude/${stack}: appended ${HEADING}`);
48
+ }
49
+
50
+ function main() {
51
+ for (const stack of loadReleasedStacks(presetsRoot, 'opencode')) {
52
+ sync(stack);
53
+ }
54
+ }
55
+
56
+ main();
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Generate (and keep fresh) `presets/claude/<stack>/settings.json` from the
4
+ * stack profile's `bashPermission`. Claude Code's settings.json uses
5
+ * `permissions.deny` / `permissions.ask` (glob patterns). We map:
6
+ * - `<perm>`: "deny" → `permissions.deny`
7
+ * - `<perm>`: "ask" → `permissions.ask`
8
+ * (`allow` entries are ignored since they are not needed for the harness.)
9
+ *
10
+ * Idempotent: rewrites every stack. Claude presets are hand-maintained, so
11
+ * this script keeps them aligned with the StackProfile in
12
+ * `stack-platform-profiles.mjs` — run after editing `bashPermission` there.
13
+ *
14
+ * Usage: node scripts/sync-claude-settings.mjs
15
+ */
16
+ import fs from 'node:fs';
17
+ import path from 'node:path';
18
+ import { fileURLToPath } from 'node:url';
19
+ import { loadReleasedStacks } from './lib/generate-adapter-common.mjs';
20
+ import { getStackProfile } from './lib/stack-platform-profiles.mjs';
21
+
22
+ const scriptDirectory = path.dirname(fileURLToPath(import.meta.url));
23
+ const packageRoot = path.join(scriptDirectory, '..');
24
+ const presetsRoot = path.join(packageRoot, 'presets');
25
+
26
+ function buildClaudePermissions(bashPermission) {
27
+ const deny = [];
28
+ const ask = [];
29
+ for (const [pattern, action] of Object.entries(bashPermission || {})) {
30
+ if (pattern === '*') continue;
31
+ if (action === 'deny') deny.push(`Bash(${pattern})`);
32
+ else if (action === 'ask') ask.push(`Bash(${pattern})`);
33
+ }
34
+ return { deny: deny.sort(), ask: ask.sort() };
35
+ }
36
+
37
+ function sync(stack) {
38
+ const profile = getStackProfile(stack);
39
+ const permissions = buildClaudePermissions(profile.bashPermission);
40
+ const hookCommand = (script) =>
41
+ `\${CLAUDE_PROJECT_DIR}/.claude/hooks/${script}`;
42
+ const settings = {
43
+ $schema: 'https://json.schemastore.org/claude-code-settings.json',
44
+ permissions,
45
+ hooks: {
46
+ PreToolUse: [
47
+ {
48
+ matcher: 'Bash',
49
+ hooks: [
50
+ {
51
+ type: 'command',
52
+ command: hookCommand('guard-shell-command.sh'),
53
+ },
54
+ ],
55
+ },
56
+ ],
57
+ SubagentStop: [
58
+ {
59
+ hooks: [
60
+ {
61
+ type: 'command',
62
+ command: hookCommand('chain-team-phases.sh'),
63
+ },
64
+ ],
65
+ },
66
+ ],
67
+ },
68
+ };
69
+ const dest = path.join(presetsRoot, 'claude', stack, 'settings.json');
70
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
71
+ fs.writeFileSync(dest, `${JSON.stringify(settings, null, 2)}\n`);
72
+ console.log(`claude/${stack}: wrote ${path.relative(packageRoot, dest)}`);
73
+ }
74
+
75
+ function main() {
76
+ for (const stack of loadReleasedStacks(presetsRoot, 'opencode')) {
77
+ sync(stack);
78
+ }
79
+ }
80
+
81
+ main();
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env bash
2
+ # Sync monorepo dogfood root `.claude/` from Claude next preset (packages SoT).
3
+ # Also syncs repo-root AGENTS.md from REPO_AGENTS.md and project `.mcp.json`.
4
+ # Usage (from repo root or any cwd):
5
+ # ./packages/ai-rules/scripts/sync-dogfood-claude.sh
6
+ # AI_RULES_DOGFOOD_PRESET=ios-swift ./packages/ai-rules/scripts/sync-dogfood-claude.sh
7
+ #
8
+ # Note: this monorepo dogfood stays `next` (do not sync other released stacks here).
9
+ set -euo pipefail
10
+
11
+ ROOT="$(cd "$(dirname "$0")/../../.." && pwd)"
12
+ PRESET_NAME="${AI_RULES_DOGFOOD_PRESET:-next}"
13
+ SRC="$ROOT/packages/ai-rules/presets/claude/$PRESET_NAME"
14
+ DST="$ROOT/.claude"
15
+
16
+ if [[ ! -d "$SRC" ]]; then
17
+ echo "error: preset not found: $SRC" >&2
18
+ exit 1
19
+ fi
20
+
21
+ echo "Dogfood sync: $SRC → $DST (preset=$PRESET_NAME)"
22
+
23
+ mkdir -p "$DST"
24
+
25
+ for f in CLAUDE.md MCP.md settings.json README.md; do
26
+ if [[ -f "$SRC/$f" ]]; then
27
+ cp "$SRC/$f" "$DST/$f"
28
+ fi
29
+ done
30
+
31
+ if [[ -f "$SRC/REPO_AGENTS.md" ]]; then
32
+ cp "$SRC/REPO_AGENTS.md" "$ROOT/AGENTS.md"
33
+ echo "Copied REPO_AGENTS.md → $ROOT/AGENTS.md"
34
+ fi
35
+
36
+ # Claude init copies mcp.json to the project-root `.mcp.json` (not under .claude/).
37
+ if [[ -f "$SRC/mcp.json" ]]; then
38
+ cp "$SRC/mcp.json" "$ROOT/.mcp.json"
39
+ echo "Copied mcp.json → $ROOT/.mcp.json"
40
+ fi
41
+
42
+ for dir in agents commands hooks rules skills; do
43
+ if [[ -d "$SRC/$dir" ]]; then
44
+ mkdir -p "$DST/$dir"
45
+ rsync -a --delete "$SRC/$dir/" "$DST/$dir/"
46
+ fi
47
+ done
48
+
49
+ if [[ -f "$DST/hooks/chain-team-phases.sh" ]]; then
50
+ chmod +x "$DST/hooks/chain-team-phases.sh"
51
+ fi
52
+ if [[ -f "$DST/hooks/guard-shell-command.sh" ]]; then
53
+ chmod +x "$DST/hooks/guard-shell-command.sh"
54
+ fi
55
+
56
+ node -e "
57
+ const { seedAiLocalTeam } = require(process.argv[1]);
58
+ seedAiLocalTeam({ cwd: process.argv[2], presetTeamSrc: process.argv[3] });
59
+ " "$ROOT/packages/ai-rules/bin/lib/seed-ai-local-team.js" "$ROOT" "$SRC/team"
60
+
61
+ echo "Done. Review: git status -- .claude/ AGENTS.md .mcp.json .ai.local/team"
62
+ echo "Tip: run packages/ai-rules/scripts/check-shared-core-drift.sh after core edits."
@@ -154,6 +154,60 @@ try {
154
154
  assert.equal(fs.existsSync(path.join(mavisDir, '.minimax')), false);
155
155
  fs.rmSync(mavisDir, { recursive: true, force: true });
156
156
 
157
+ // OpenCode re-init unions preset instruction paths and fills missing bash keys.
158
+ const freshOc = fs.mkdtempSync(path.join(os.tmpdir(), 'ai-rules-oc-fresh-'));
159
+ init(freshOc, 'opencode', 'next');
160
+ const freshOcJson = readJson(path.join(freshOc, 'opencode.json'));
161
+ assert.ok(Array.isArray(freshOcJson.instructions), 'fresh opencode.json should have instructions');
162
+ assert.ok(freshOcJson.instructions.includes('.opencode/AGENTS.md'));
163
+ assert.ok(freshOcJson.permission, 'fresh opencode.json should have permission');
164
+ assert.ok(freshOcJson.permission.bash, 'fresh opencode.json should have permission.bash');
165
+ assert.equal(freshOcJson.permission.bash['git commit *'], 'deny');
166
+ assert.equal(freshOcJson.permission.bash['git push *'], 'deny');
167
+ assert.equal(freshOcJson.permission.bash['npx jest*'], 'deny');
168
+ const presetInstructions = freshOcJson.instructions.slice();
169
+ const presetBash = { ...freshOcJson.permission.bash };
170
+ fs.rmSync(freshOc, { recursive: true, force: true });
171
+
172
+ const repeatOc = fs.mkdtempSync(path.join(os.tmpdir(), 'ai-rules-oc-repeat-'));
173
+ init(repeatOc, 'opencode', 'next');
174
+ const consumerInstructions = ['.opencode/AGENTS.md', 'CONSUMER-RULE.md'];
175
+ const consumerBash = { '*': 'allow', 'git push *': 'allow', 'rm -rf /': 'deny' };
176
+ writeJson(path.join(repeatOc, 'opencode.json'), {
177
+ $schema: 'https://opencode.ai/config.json',
178
+ instructions: consumerInstructions,
179
+ permission: { bash: consumerBash },
180
+ mcp: { context7: { type: 'local', command: ['npx', '-y', '@upstash/context7-mcp@4.0.2'] } },
181
+ customNote: true,
182
+ });
183
+ init(repeatOc, 'opencode', 'next');
184
+ const preserved = readJson(path.join(repeatOc, 'opencode.json'));
185
+ assert.deepEqual(
186
+ preserved.instructions,
187
+ [...consumerInstructions, ...presetInstructions.filter((item) => !consumerInstructions.includes(item))],
188
+ 'preset instruction paths are unioned; consumer extras stay first',
189
+ );
190
+ assert.equal(preserved.permission.bash['git push *'], 'allow', 'consumer bash override wins');
191
+ assert.equal(preserved.permission.bash['rm -rf /'], 'deny', 'consumer extra bash key stays');
192
+ assert.equal(preserved.permission.bash['git commit *'], presetBash['git commit *'], 'missing preset bash key is filled');
193
+ assert.equal(preserved.customNote, true, 'consumer custom keys preserved');
194
+ fs.rmSync(repeatOc, { recursive: true, force: true });
195
+
196
+ const emptyOc = fs.mkdtempSync(path.join(os.tmpdir(), 'ai-rules-oc-empty-'));
197
+ init(emptyOc, 'opencode', 'next');
198
+ writeJson(path.join(emptyOc, 'opencode.json'), {
199
+ $schema: 'https://opencode.ai/config.json',
200
+ instructions: [],
201
+ permission: {},
202
+ customNote: true,
203
+ });
204
+ init(emptyOc, 'opencode', 'next');
205
+ const filled = readJson(path.join(emptyOc, 'opencode.json'));
206
+ assert.deepEqual(filled.instructions, presetInstructions, 'empty instructions receive the preset list');
207
+ assert.deepEqual(filled.permission.bash, presetBash, 'missing bash object receives the preset map');
208
+ assert.equal(filled.customNote, true);
209
+ fs.rmSync(emptyOc, { recursive: true, force: true });
210
+
157
211
  console.log('test-cli-mcp-merge: ok');
158
212
  } finally {
159
213
  fs.rmSync(tmp, { recursive: true, force: true });
@@ -33,9 +33,10 @@ assert.equal(
33
33
  false,
34
34
  'Mavis must not ship hooks.json',
35
35
  );
36
- assert.equal(contract.nativeCapabilities.projectHooks.status, 'unknown');
36
+ assert.equal(contract.nativeCapabilities.projectHooks.status, 'manual');
37
+ assert.equal(contract.nativeCapabilities.freshInit.status, 'unknown');
37
38
  assert.equal(contract.mcp.mode, 'fallback-manual-import');
38
- console.log('ok P3 semi-auto: projectHooks unknown, no hooks.json');
39
+ console.log('ok P3 semi-auto: projectHooks manual, freshInit unknown, no hooks.json');
39
40
 
40
41
  function readJson(filePath) {
41
42
  return JSON.parse(fs.readFileSync(filePath, 'utf8'));