@bonesofspring/ai-rules 0.2.27 → 0.2.28

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 (773) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/bin/cli.js +13 -2
  3. package/bin/lib/seed-ai-local-team.js +43 -5
  4. package/bin/opencode-install.js +58 -0
  5. package/docs/OPENCODE-COMPATIBILITY.md +1 -1
  6. package/docs/OPENCODE.md +15 -5
  7. package/package.json +2 -1
  8. package/presets/claude/android-kotlin/CLAUDE.md +12 -0
  9. package/presets/claude/android-kotlin/agents/accessibility-reviewer.md +15 -0
  10. package/presets/claude/android-kotlin/agents/api-contract-reviewer.md +16 -1
  11. package/presets/claude/android-kotlin/agents/build-verifier.md +17 -0
  12. package/presets/claude/android-kotlin/agents/ci-investigator.md +25 -0
  13. package/presets/claude/android-kotlin/agents/code-reviewer.md +16 -0
  14. package/presets/claude/android-kotlin/agents/codebase-analyzer.md +15 -0
  15. package/presets/claude/android-kotlin/agents/debugger.md +25 -0
  16. package/presets/claude/android-kotlin/agents/feature-developer.md +25 -0
  17. package/presets/claude/android-kotlin/agents/instrumentation-test-generator.md +16 -0
  18. package/presets/claude/android-kotlin/agents/instrumentation-test-healer.md +16 -0
  19. package/presets/claude/android-kotlin/agents/instrumentation-test-planner.md +16 -0
  20. package/presets/claude/android-kotlin/agents/migration-specialist.md +15 -0
  21. package/presets/claude/android-kotlin/agents/mockup-reviewer.md +15 -0
  22. package/presets/claude/android-kotlin/agents/openspec-author.md +15 -0
  23. package/presets/claude/android-kotlin/agents/performance-auditor.md +15 -0
  24. package/presets/claude/android-kotlin/agents/qa-tester.md +17 -0
  25. package/presets/claude/android-kotlin/agents/security-reviewer.md +15 -0
  26. package/presets/claude/android-kotlin/agents/solution-architect.md +15 -0
  27. package/presets/claude/android-kotlin/agents/task-analyst.md +15 -0
  28. package/presets/claude/android-kotlin/agents/task-router.md +15 -0
  29. package/presets/claude/android-kotlin/agents/tech-writer.md +15 -1
  30. package/presets/claude/android-kotlin/agents/unit-test-generator.md +16 -0
  31. package/presets/claude/android-kotlin/agents/unit-test-healer.md +16 -0
  32. package/presets/claude/android-kotlin/agents/unit-test-planner.md +16 -0
  33. package/presets/claude/android-kotlin/settings.json +10 -0
  34. package/presets/claude/go/CLAUDE.md +12 -0
  35. package/presets/claude/go/agents/api-contract-reviewer.md +17 -0
  36. package/presets/claude/go/agents/build-verifier.md +17 -0
  37. package/presets/claude/go/agents/ci-investigator.md +29 -0
  38. package/presets/claude/go/agents/code-reviewer.md +16 -0
  39. package/presets/claude/go/agents/codebase-analyzer.md +15 -0
  40. package/presets/claude/go/agents/debugger.md +29 -0
  41. package/presets/claude/go/agents/feature-developer.md +29 -0
  42. package/presets/claude/go/agents/integration-test-generator.md +17 -0
  43. package/presets/claude/go/agents/integration-test-healer.md +17 -0
  44. package/presets/claude/go/agents/integration-test-planner.md +17 -0
  45. package/presets/claude/go/agents/migration-specialist.md +15 -0
  46. package/presets/claude/go/agents/openspec-author.md +15 -0
  47. package/presets/claude/go/agents/performance-auditor.md +15 -0
  48. package/presets/claude/go/agents/qa-tester.md +18 -0
  49. package/presets/claude/go/agents/security-reviewer.md +15 -0
  50. package/presets/claude/go/agents/solution-architect.md +15 -0
  51. package/presets/claude/go/agents/task-analyst.md +15 -0
  52. package/presets/claude/go/agents/task-router.md +15 -0
  53. package/presets/claude/go/agents/tech-writer.md +15 -1
  54. package/presets/claude/go/agents/unit-test-generator.md +16 -0
  55. package/presets/claude/go/agents/unit-test-healer.md +16 -0
  56. package/presets/claude/go/agents/unit-test-planner.md +16 -0
  57. package/presets/claude/go/settings.json +10 -0
  58. package/presets/claude/ios-swift/CLAUDE.md +12 -0
  59. package/presets/claude/ios-swift/agents/accessibility-reviewer.md +15 -0
  60. package/presets/claude/ios-swift/agents/api-contract-reviewer.md +16 -0
  61. package/presets/claude/ios-swift/agents/build-verifier.md +17 -0
  62. package/presets/claude/ios-swift/agents/ci-investigator.md +24 -0
  63. package/presets/claude/ios-swift/agents/code-reviewer.md +16 -0
  64. package/presets/claude/ios-swift/agents/codebase-analyzer.md +15 -0
  65. package/presets/claude/ios-swift/agents/debugger.md +24 -0
  66. package/presets/claude/ios-swift/agents/feature-developer.md +24 -0
  67. package/presets/claude/ios-swift/agents/migration-specialist.md +15 -0
  68. package/presets/claude/ios-swift/agents/mockup-reviewer.md +15 -0
  69. package/presets/claude/ios-swift/agents/openspec-author.md +15 -0
  70. package/presets/claude/ios-swift/agents/performance-auditor.md +15 -0
  71. package/presets/claude/ios-swift/agents/qa-tester.md +17 -0
  72. package/presets/claude/ios-swift/agents/security-reviewer.md +15 -0
  73. package/presets/claude/ios-swift/agents/solution-architect.md +15 -0
  74. package/presets/claude/ios-swift/agents/task-analyst.md +15 -0
  75. package/presets/claude/ios-swift/agents/task-router.md +15 -0
  76. package/presets/claude/ios-swift/agents/tech-writer.md +15 -1
  77. package/presets/claude/ios-swift/agents/unit-test-generator.md +16 -0
  78. package/presets/claude/ios-swift/agents/unit-test-healer.md +16 -0
  79. package/presets/claude/ios-swift/agents/unit-test-planner.md +16 -0
  80. package/presets/claude/ios-swift/agents/xcuitest-test-generator.md +16 -0
  81. package/presets/claude/ios-swift/agents/xcuitest-test-healer.md +16 -0
  82. package/presets/claude/ios-swift/agents/xcuitest-test-planner.md +16 -0
  83. package/presets/claude/ios-swift/settings.json +10 -0
  84. package/presets/claude/java/CLAUDE.md +12 -0
  85. package/presets/claude/java/agents/api-contract-reviewer.md +17 -0
  86. package/presets/claude/java/agents/build-verifier.md +17 -0
  87. package/presets/claude/java/agents/ci-investigator.md +29 -0
  88. package/presets/claude/java/agents/code-reviewer.md +16 -0
  89. package/presets/claude/java/agents/codebase-analyzer.md +15 -0
  90. package/presets/claude/java/agents/debugger.md +29 -0
  91. package/presets/claude/java/agents/feature-developer.md +29 -0
  92. package/presets/claude/java/agents/integration-test-generator.md +17 -0
  93. package/presets/claude/java/agents/integration-test-healer.md +17 -0
  94. package/presets/claude/java/agents/integration-test-planner.md +17 -0
  95. package/presets/claude/java/agents/migration-specialist.md +15 -0
  96. package/presets/claude/java/agents/openspec-author.md +15 -0
  97. package/presets/claude/java/agents/performance-auditor.md +15 -0
  98. package/presets/claude/java/agents/qa-tester.md +18 -0
  99. package/presets/claude/java/agents/security-reviewer.md +15 -0
  100. package/presets/claude/java/agents/solution-architect.md +15 -0
  101. package/presets/claude/java/agents/task-analyst.md +15 -0
  102. package/presets/claude/java/agents/task-router.md +15 -0
  103. package/presets/claude/java/agents/tech-writer.md +15 -1
  104. package/presets/claude/java/agents/unit-test-generator.md +16 -0
  105. package/presets/claude/java/agents/unit-test-healer.md +16 -0
  106. package/presets/claude/java/agents/unit-test-planner.md +16 -0
  107. package/presets/claude/java/settings.json +10 -0
  108. package/presets/claude/mcp-ts/CLAUDE.md +12 -0
  109. package/presets/claude/mcp-ts/agents/build-verifier.md +17 -0
  110. package/presets/claude/mcp-ts/agents/feature-developer.md +22 -0
  111. package/presets/claude/mcp-ts/agents/security-reviewer.md +15 -0
  112. package/presets/claude/mcp-ts/agents/solution-architect.md +15 -1
  113. package/presets/claude/mcp-ts/agents/task-analyst.md +15 -0
  114. package/presets/claude/mcp-ts/agents/task-router.md +15 -0
  115. package/presets/claude/mcp-ts/settings.json +10 -0
  116. package/presets/claude/next/CLAUDE.md +12 -0
  117. package/presets/claude/next/agents/accessibility-reviewer.md +17 -0
  118. package/presets/claude/next/agents/api-contract-reviewer.md +19 -0
  119. package/presets/claude/next/agents/build-verifier.md +17 -0
  120. package/presets/claude/next/agents/ci-investigator.md +34 -0
  121. package/presets/claude/next/agents/code-reviewer.md +18 -0
  122. package/presets/claude/next/agents/codebase-analyzer.md +17 -0
  123. package/presets/claude/next/agents/debugger.md +34 -0
  124. package/presets/claude/next/agents/feature-developer.md +34 -0
  125. package/presets/claude/next/agents/migration-specialist.md +17 -0
  126. package/presets/claude/next/agents/mockup-reviewer.md +17 -0
  127. package/presets/claude/next/agents/openspec-author.md +17 -0
  128. package/presets/claude/next/agents/performance-auditor.md +17 -0
  129. package/presets/claude/next/agents/playwright-test-generator.md +19 -0
  130. package/presets/claude/next/agents/playwright-test-healer.md +19 -1
  131. package/presets/claude/next/agents/playwright-test-planner.md +20 -1
  132. package/presets/claude/next/agents/qa-tester.md +20 -0
  133. package/presets/claude/next/agents/security-reviewer.md +17 -0
  134. package/presets/claude/next/agents/solution-architect.md +17 -0
  135. package/presets/claude/next/agents/task-analyst.md +17 -0
  136. package/presets/claude/next/agents/task-router.md +17 -0
  137. package/presets/claude/next/agents/tech-writer.md +17 -0
  138. package/presets/claude/next/agents/unit-test-generator.md +18 -0
  139. package/presets/claude/next/agents/unit-test-healer.md +18 -0
  140. package/presets/claude/next/agents/unit-test-planner.md +18 -0
  141. package/presets/claude/next/settings.json +16 -0
  142. package/presets/claude/nuxt/CLAUDE.md +12 -0
  143. package/presets/claude/nuxt/agents/accessibility-reviewer.md +17 -0
  144. package/presets/claude/nuxt/agents/api-contract-reviewer.md +19 -0
  145. package/presets/claude/nuxt/agents/build-verifier.md +17 -0
  146. package/presets/claude/nuxt/agents/ci-investigator.md +34 -0
  147. package/presets/claude/nuxt/agents/code-reviewer.md +18 -0
  148. package/presets/claude/nuxt/agents/codebase-analyzer.md +17 -0
  149. package/presets/claude/nuxt/agents/debugger.md +34 -0
  150. package/presets/claude/nuxt/agents/feature-developer.md +34 -0
  151. package/presets/claude/nuxt/agents/migration-specialist.md +17 -0
  152. package/presets/claude/nuxt/agents/mockup-reviewer.md +17 -0
  153. package/presets/claude/nuxt/agents/openspec-author.md +17 -0
  154. package/presets/claude/nuxt/agents/performance-auditor.md +17 -0
  155. package/presets/claude/nuxt/agents/playwright-test-generator.md +19 -0
  156. package/presets/claude/nuxt/agents/playwright-test-healer.md +19 -1
  157. package/presets/claude/nuxt/agents/playwright-test-planner.md +20 -1
  158. package/presets/claude/nuxt/agents/qa-tester.md +20 -0
  159. package/presets/claude/nuxt/agents/security-reviewer.md +17 -0
  160. package/presets/claude/nuxt/agents/solution-architect.md +17 -0
  161. package/presets/claude/nuxt/agents/task-analyst.md +17 -0
  162. package/presets/claude/nuxt/agents/task-router.md +17 -0
  163. package/presets/claude/nuxt/agents/tech-writer.md +17 -0
  164. package/presets/claude/nuxt/agents/unit-test-generator.md +18 -0
  165. package/presets/claude/nuxt/agents/unit-test-healer.md +18 -0
  166. package/presets/claude/nuxt/agents/unit-test-planner.md +18 -0
  167. package/presets/claude/nuxt/settings.json +16 -0
  168. package/presets/claude/php-hexagonal/CLAUDE.md +12 -0
  169. package/presets/claude/php-hexagonal/agents/api-contract-reviewer.md +17 -0
  170. package/presets/claude/php-hexagonal/agents/build-verifier.md +17 -0
  171. package/presets/claude/php-hexagonal/agents/ci-investigator.md +29 -0
  172. package/presets/claude/php-hexagonal/agents/code-reviewer.md +16 -0
  173. package/presets/claude/php-hexagonal/agents/codebase-analyzer.md +15 -0
  174. package/presets/claude/php-hexagonal/agents/debugger.md +29 -0
  175. package/presets/claude/php-hexagonal/agents/feature-developer.md +29 -0
  176. package/presets/claude/php-hexagonal/agents/integration-test-generator.md +17 -0
  177. package/presets/claude/php-hexagonal/agents/integration-test-healer.md +17 -0
  178. package/presets/claude/php-hexagonal/agents/integration-test-planner.md +17 -0
  179. package/presets/claude/php-hexagonal/agents/migration-specialist.md +15 -0
  180. package/presets/claude/php-hexagonal/agents/openspec-author.md +15 -0
  181. package/presets/claude/php-hexagonal/agents/performance-auditor.md +15 -0
  182. package/presets/claude/php-hexagonal/agents/qa-tester.md +18 -0
  183. package/presets/claude/php-hexagonal/agents/security-reviewer.md +15 -0
  184. package/presets/claude/php-hexagonal/agents/solution-architect.md +15 -0
  185. package/presets/claude/php-hexagonal/agents/task-analyst.md +15 -0
  186. package/presets/claude/php-hexagonal/agents/task-router.md +15 -0
  187. package/presets/claude/php-hexagonal/agents/tech-writer.md +15 -1
  188. package/presets/claude/php-hexagonal/agents/unit-test-generator.md +16 -0
  189. package/presets/claude/php-hexagonal/agents/unit-test-healer.md +16 -0
  190. package/presets/claude/php-hexagonal/agents/unit-test-planner.md +16 -0
  191. package/presets/claude/php-hexagonal/settings.json +10 -0
  192. package/presets/claude/php-laravel/CLAUDE.md +12 -0
  193. package/presets/claude/php-laravel/agents/api-contract-reviewer.md +18 -0
  194. package/presets/claude/php-laravel/agents/build-verifier.md +17 -0
  195. package/presets/claude/php-laravel/agents/ci-investigator.md +29 -0
  196. package/presets/claude/php-laravel/agents/code-reviewer.md +16 -0
  197. package/presets/claude/php-laravel/agents/codebase-analyzer.md +15 -0
  198. package/presets/claude/php-laravel/agents/debugger.md +29 -0
  199. package/presets/claude/php-laravel/agents/feature-developer.md +29 -0
  200. package/presets/claude/php-laravel/agents/integration-test-generator.md +17 -0
  201. package/presets/claude/php-laravel/agents/integration-test-healer.md +17 -0
  202. package/presets/claude/php-laravel/agents/integration-test-planner.md +17 -0
  203. package/presets/claude/php-laravel/agents/migration-specialist.md +15 -0
  204. package/presets/claude/php-laravel/agents/openspec-author.md +15 -0
  205. package/presets/claude/php-laravel/agents/performance-auditor.md +15 -0
  206. package/presets/claude/php-laravel/agents/qa-tester.md +18 -0
  207. package/presets/claude/php-laravel/agents/security-reviewer.md +15 -0
  208. package/presets/claude/php-laravel/agents/solution-architect.md +15 -0
  209. package/presets/claude/php-laravel/agents/task-analyst.md +15 -0
  210. package/presets/claude/php-laravel/agents/task-router.md +15 -0
  211. package/presets/claude/php-laravel/agents/tech-writer.md +15 -1
  212. package/presets/claude/php-laravel/agents/unit-test-generator.md +16 -0
  213. package/presets/claude/php-laravel/agents/unit-test-healer.md +16 -0
  214. package/presets/claude/php-laravel/agents/unit-test-planner.md +16 -0
  215. package/presets/claude/php-laravel/settings.json +10 -0
  216. package/presets/claude/svelte/CLAUDE.md +12 -0
  217. package/presets/claude/svelte/agents/accessibility-reviewer.md +17 -0
  218. package/presets/claude/svelte/agents/api-contract-reviewer.md +19 -0
  219. package/presets/claude/svelte/agents/build-verifier.md +17 -0
  220. package/presets/claude/svelte/agents/ci-investigator.md +34 -0
  221. package/presets/claude/svelte/agents/code-reviewer.md +18 -0
  222. package/presets/claude/svelte/agents/codebase-analyzer.md +17 -0
  223. package/presets/claude/svelte/agents/debugger.md +34 -0
  224. package/presets/claude/svelte/agents/feature-developer.md +34 -0
  225. package/presets/claude/svelte/agents/migration-specialist.md +17 -0
  226. package/presets/claude/svelte/agents/mockup-reviewer.md +17 -0
  227. package/presets/claude/svelte/agents/openspec-author.md +17 -0
  228. package/presets/claude/svelte/agents/performance-auditor.md +17 -0
  229. package/presets/claude/svelte/agents/playwright-test-generator.md +19 -0
  230. package/presets/claude/svelte/agents/playwright-test-healer.md +19 -1
  231. package/presets/claude/svelte/agents/playwright-test-planner.md +20 -1
  232. package/presets/claude/svelte/agents/qa-tester.md +20 -0
  233. package/presets/claude/svelte/agents/security-reviewer.md +17 -0
  234. package/presets/claude/svelte/agents/solution-architect.md +17 -0
  235. package/presets/claude/svelte/agents/task-analyst.md +17 -0
  236. package/presets/claude/svelte/agents/task-router.md +17 -0
  237. package/presets/claude/svelte/agents/tech-writer.md +17 -0
  238. package/presets/claude/svelte/agents/unit-test-generator.md +18 -0
  239. package/presets/claude/svelte/agents/unit-test-healer.md +18 -0
  240. package/presets/claude/svelte/agents/unit-test-planner.md +18 -0
  241. package/presets/claude/svelte/settings.json +16 -0
  242. package/presets/cursor/next/ai-local/rules-library/agent-artifacts-no-local-paths.md +38 -0
  243. package/presets/cursor/next/ai-local/rules-library/commit-hygiene.md +17 -0
  244. package/presets/cursor/next/ai-local/rules-library/mcp-required-for-ui-layout.md +41 -0
  245. package/presets/cursor/next/ai-local/rules-library/no-test-driven-behavior-change.md +14 -0
  246. package/presets/cursor/next/ai-local/rules-library/pre-pr-checklist.md +16 -0
  247. package/presets/cursor/next/ai-local/rules-library/router-pages.md +23 -0
  248. package/presets/cursor/next/ai-local/rules-library/single-source-copy-constants.md +16 -0
  249. package/presets/mavis/android-kotlin/MAVIS.md +13 -0
  250. package/presets/mavis/android-kotlin/agents/accessibility-reviewer.md +15 -0
  251. package/presets/mavis/android-kotlin/agents/api-contract-reviewer.md +16 -0
  252. package/presets/mavis/android-kotlin/agents/build-verifier.md +17 -0
  253. package/presets/mavis/android-kotlin/agents/ci-investigator.md +25 -0
  254. package/presets/mavis/android-kotlin/agents/code-reviewer.md +16 -0
  255. package/presets/mavis/android-kotlin/agents/codebase-analyzer.md +15 -0
  256. package/presets/mavis/android-kotlin/agents/debugger.md +25 -0
  257. package/presets/mavis/android-kotlin/agents/feature-developer.md +25 -0
  258. package/presets/mavis/android-kotlin/agents/instrumentation-test-generator.md +16 -0
  259. package/presets/mavis/android-kotlin/agents/instrumentation-test-healer.md +16 -0
  260. package/presets/mavis/android-kotlin/agents/instrumentation-test-planner.md +16 -0
  261. package/presets/mavis/android-kotlin/agents/migration-specialist.md +15 -0
  262. package/presets/mavis/android-kotlin/agents/mockup-reviewer.md +15 -0
  263. package/presets/mavis/android-kotlin/agents/openspec-author.md +15 -0
  264. package/presets/mavis/android-kotlin/agents/performance-auditor.md +15 -0
  265. package/presets/mavis/android-kotlin/agents/qa-tester.md +17 -0
  266. package/presets/mavis/android-kotlin/agents/security-reviewer.md +15 -0
  267. package/presets/mavis/android-kotlin/agents/solution-architect.md +15 -0
  268. package/presets/mavis/android-kotlin/agents/task-analyst.md +15 -0
  269. package/presets/mavis/android-kotlin/agents/task-router.md +15 -0
  270. package/presets/mavis/android-kotlin/agents/tech-writer.md +15 -0
  271. package/presets/mavis/android-kotlin/agents/unit-test-generator.md +16 -0
  272. package/presets/mavis/android-kotlin/agents/unit-test-healer.md +16 -0
  273. package/presets/mavis/android-kotlin/agents/unit-test-planner.md +16 -0
  274. package/presets/mavis/go/MAVIS.md +13 -0
  275. package/presets/mavis/go/agents/api-contract-reviewer.md +17 -0
  276. package/presets/mavis/go/agents/build-verifier.md +17 -0
  277. package/presets/mavis/go/agents/ci-investigator.md +29 -0
  278. package/presets/mavis/go/agents/code-reviewer.md +16 -0
  279. package/presets/mavis/go/agents/codebase-analyzer.md +15 -0
  280. package/presets/mavis/go/agents/debugger.md +29 -0
  281. package/presets/mavis/go/agents/feature-developer.md +29 -0
  282. package/presets/mavis/go/agents/integration-test-generator.md +17 -0
  283. package/presets/mavis/go/agents/integration-test-healer.md +17 -0
  284. package/presets/mavis/go/agents/integration-test-planner.md +17 -0
  285. package/presets/mavis/go/agents/migration-specialist.md +15 -0
  286. package/presets/mavis/go/agents/openspec-author.md +15 -0
  287. package/presets/mavis/go/agents/performance-auditor.md +15 -0
  288. package/presets/mavis/go/agents/qa-tester.md +18 -0
  289. package/presets/mavis/go/agents/security-reviewer.md +15 -0
  290. package/presets/mavis/go/agents/solution-architect.md +15 -0
  291. package/presets/mavis/go/agents/task-analyst.md +15 -0
  292. package/presets/mavis/go/agents/task-router.md +15 -0
  293. package/presets/mavis/go/agents/tech-writer.md +15 -0
  294. package/presets/mavis/go/agents/unit-test-generator.md +16 -0
  295. package/presets/mavis/go/agents/unit-test-healer.md +16 -0
  296. package/presets/mavis/go/agents/unit-test-planner.md +16 -0
  297. package/presets/mavis/ios-swift/MAVIS.md +13 -0
  298. package/presets/mavis/ios-swift/agents/accessibility-reviewer.md +15 -0
  299. package/presets/mavis/ios-swift/agents/api-contract-reviewer.md +16 -0
  300. package/presets/mavis/ios-swift/agents/build-verifier.md +17 -0
  301. package/presets/mavis/ios-swift/agents/ci-investigator.md +24 -0
  302. package/presets/mavis/ios-swift/agents/code-reviewer.md +16 -0
  303. package/presets/mavis/ios-swift/agents/codebase-analyzer.md +15 -0
  304. package/presets/mavis/ios-swift/agents/debugger.md +24 -0
  305. package/presets/mavis/ios-swift/agents/feature-developer.md +24 -0
  306. package/presets/mavis/ios-swift/agents/migration-specialist.md +15 -0
  307. package/presets/mavis/ios-swift/agents/mockup-reviewer.md +15 -0
  308. package/presets/mavis/ios-swift/agents/openspec-author.md +15 -0
  309. package/presets/mavis/ios-swift/agents/performance-auditor.md +15 -0
  310. package/presets/mavis/ios-swift/agents/qa-tester.md +17 -0
  311. package/presets/mavis/ios-swift/agents/security-reviewer.md +15 -0
  312. package/presets/mavis/ios-swift/agents/solution-architect.md +15 -0
  313. package/presets/mavis/ios-swift/agents/task-analyst.md +15 -0
  314. package/presets/mavis/ios-swift/agents/task-router.md +15 -0
  315. package/presets/mavis/ios-swift/agents/tech-writer.md +15 -0
  316. package/presets/mavis/ios-swift/agents/unit-test-generator.md +16 -0
  317. package/presets/mavis/ios-swift/agents/unit-test-healer.md +16 -0
  318. package/presets/mavis/ios-swift/agents/unit-test-planner.md +16 -0
  319. package/presets/mavis/ios-swift/agents/xcuitest-test-generator.md +16 -0
  320. package/presets/mavis/ios-swift/agents/xcuitest-test-healer.md +16 -0
  321. package/presets/mavis/ios-swift/agents/xcuitest-test-planner.md +16 -0
  322. package/presets/mavis/java/MAVIS.md +13 -0
  323. package/presets/mavis/java/agents/api-contract-reviewer.md +17 -0
  324. package/presets/mavis/java/agents/build-verifier.md +17 -0
  325. package/presets/mavis/java/agents/ci-investigator.md +29 -0
  326. package/presets/mavis/java/agents/code-reviewer.md +16 -0
  327. package/presets/mavis/java/agents/codebase-analyzer.md +15 -0
  328. package/presets/mavis/java/agents/debugger.md +29 -0
  329. package/presets/mavis/java/agents/feature-developer.md +29 -0
  330. package/presets/mavis/java/agents/integration-test-generator.md +17 -0
  331. package/presets/mavis/java/agents/integration-test-healer.md +17 -0
  332. package/presets/mavis/java/agents/integration-test-planner.md +17 -0
  333. package/presets/mavis/java/agents/migration-specialist.md +15 -0
  334. package/presets/mavis/java/agents/openspec-author.md +15 -0
  335. package/presets/mavis/java/agents/performance-auditor.md +15 -0
  336. package/presets/mavis/java/agents/qa-tester.md +18 -0
  337. package/presets/mavis/java/agents/security-reviewer.md +15 -0
  338. package/presets/mavis/java/agents/solution-architect.md +15 -0
  339. package/presets/mavis/java/agents/task-analyst.md +15 -0
  340. package/presets/mavis/java/agents/task-router.md +15 -0
  341. package/presets/mavis/java/agents/tech-writer.md +15 -0
  342. package/presets/mavis/java/agents/unit-test-generator.md +16 -0
  343. package/presets/mavis/java/agents/unit-test-healer.md +16 -0
  344. package/presets/mavis/java/agents/unit-test-planner.md +16 -0
  345. package/presets/mavis/mcp-ts/MAVIS.md +13 -0
  346. package/presets/mavis/mcp-ts/agents/build-verifier.md +17 -0
  347. package/presets/mavis/mcp-ts/agents/feature-developer.md +22 -0
  348. package/presets/mavis/mcp-ts/agents/security-reviewer.md +15 -0
  349. package/presets/mavis/mcp-ts/agents/solution-architect.md +15 -0
  350. package/presets/mavis/mcp-ts/agents/task-analyst.md +15 -0
  351. package/presets/mavis/mcp-ts/agents/task-router.md +15 -0
  352. package/presets/mavis/next/MAVIS.md +13 -0
  353. package/presets/mavis/next/adapter-map.json +57 -1
  354. package/presets/mavis/next/agents/accessibility-reviewer.md +17 -0
  355. package/presets/mavis/next/agents/api-contract-reviewer.md +19 -0
  356. package/presets/mavis/next/agents/build-verifier.md +17 -0
  357. package/presets/mavis/next/agents/ci-investigator.md +34 -0
  358. package/presets/mavis/next/agents/code-reviewer.md +18 -0
  359. package/presets/mavis/next/agents/codebase-analyzer.md +17 -0
  360. package/presets/mavis/next/agents/debugger.md +34 -0
  361. package/presets/mavis/next/agents/feature-developer.md +34 -0
  362. package/presets/mavis/next/agents/migration-specialist.md +17 -0
  363. package/presets/mavis/next/agents/mockup-reviewer.md +17 -0
  364. package/presets/mavis/next/agents/openspec-author.md +17 -0
  365. package/presets/mavis/next/agents/performance-auditor.md +17 -0
  366. package/presets/mavis/next/agents/playwright-test-generator.md +19 -0
  367. package/presets/mavis/next/agents/playwright-test-healer.md +19 -0
  368. package/presets/mavis/next/agents/playwright-test-planner.md +19 -0
  369. package/presets/mavis/next/agents/qa-tester.md +20 -0
  370. package/presets/mavis/next/agents/security-reviewer.md +17 -0
  371. package/presets/mavis/next/agents/solution-architect.md +17 -0
  372. package/presets/mavis/next/agents/task-analyst.md +17 -0
  373. package/presets/mavis/next/agents/task-router.md +17 -0
  374. package/presets/mavis/next/agents/tech-writer.md +17 -0
  375. package/presets/mavis/next/agents/unit-test-generator.md +18 -0
  376. package/presets/mavis/next/agents/unit-test-healer.md +18 -0
  377. package/presets/mavis/next/agents/unit-test-planner.md +18 -0
  378. package/presets/mavis/next/ai-local/rules-library/agent-artifacts-no-local-paths.md +38 -0
  379. package/presets/mavis/next/ai-local/rules-library/commit-hygiene.md +17 -0
  380. package/presets/mavis/next/ai-local/rules-library/mcp-required-for-ui-layout.md +41 -0
  381. package/presets/mavis/next/ai-local/rules-library/no-test-driven-behavior-change.md +14 -0
  382. package/presets/mavis/next/ai-local/rules-library/pre-pr-checklist.md +16 -0
  383. package/presets/mavis/next/ai-local/rules-library/router-pages.md +23 -0
  384. package/presets/mavis/next/ai-local/rules-library/single-source-copy-constants.md +16 -0
  385. package/presets/mavis/nuxt/MAVIS.md +13 -0
  386. package/presets/mavis/nuxt/agents/accessibility-reviewer.md +17 -0
  387. package/presets/mavis/nuxt/agents/api-contract-reviewer.md +19 -0
  388. package/presets/mavis/nuxt/agents/build-verifier.md +17 -0
  389. package/presets/mavis/nuxt/agents/ci-investigator.md +34 -0
  390. package/presets/mavis/nuxt/agents/code-reviewer.md +18 -0
  391. package/presets/mavis/nuxt/agents/codebase-analyzer.md +17 -0
  392. package/presets/mavis/nuxt/agents/debugger.md +34 -0
  393. package/presets/mavis/nuxt/agents/feature-developer.md +34 -0
  394. package/presets/mavis/nuxt/agents/migration-specialist.md +17 -0
  395. package/presets/mavis/nuxt/agents/mockup-reviewer.md +17 -0
  396. package/presets/mavis/nuxt/agents/openspec-author.md +17 -0
  397. package/presets/mavis/nuxt/agents/performance-auditor.md +17 -0
  398. package/presets/mavis/nuxt/agents/playwright-test-generator.md +19 -0
  399. package/presets/mavis/nuxt/agents/playwright-test-healer.md +19 -0
  400. package/presets/mavis/nuxt/agents/playwright-test-planner.md +19 -0
  401. package/presets/mavis/nuxt/agents/qa-tester.md +20 -0
  402. package/presets/mavis/nuxt/agents/security-reviewer.md +17 -0
  403. package/presets/mavis/nuxt/agents/solution-architect.md +17 -0
  404. package/presets/mavis/nuxt/agents/task-analyst.md +17 -0
  405. package/presets/mavis/nuxt/agents/task-router.md +17 -0
  406. package/presets/mavis/nuxt/agents/tech-writer.md +17 -0
  407. package/presets/mavis/nuxt/agents/unit-test-generator.md +18 -0
  408. package/presets/mavis/nuxt/agents/unit-test-healer.md +18 -0
  409. package/presets/mavis/nuxt/agents/unit-test-planner.md +18 -0
  410. package/presets/mavis/php-hexagonal/MAVIS.md +13 -0
  411. package/presets/mavis/php-hexagonal/agents/api-contract-reviewer.md +17 -0
  412. package/presets/mavis/php-hexagonal/agents/build-verifier.md +17 -0
  413. package/presets/mavis/php-hexagonal/agents/ci-investigator.md +29 -0
  414. package/presets/mavis/php-hexagonal/agents/code-reviewer.md +16 -0
  415. package/presets/mavis/php-hexagonal/agents/codebase-analyzer.md +15 -0
  416. package/presets/mavis/php-hexagonal/agents/debugger.md +29 -0
  417. package/presets/mavis/php-hexagonal/agents/feature-developer.md +29 -0
  418. package/presets/mavis/php-hexagonal/agents/integration-test-generator.md +17 -0
  419. package/presets/mavis/php-hexagonal/agents/integration-test-healer.md +17 -0
  420. package/presets/mavis/php-hexagonal/agents/integration-test-planner.md +17 -0
  421. package/presets/mavis/php-hexagonal/agents/migration-specialist.md +15 -0
  422. package/presets/mavis/php-hexagonal/agents/openspec-author.md +15 -0
  423. package/presets/mavis/php-hexagonal/agents/performance-auditor.md +15 -0
  424. package/presets/mavis/php-hexagonal/agents/qa-tester.md +18 -0
  425. package/presets/mavis/php-hexagonal/agents/security-reviewer.md +15 -0
  426. package/presets/mavis/php-hexagonal/agents/solution-architect.md +15 -0
  427. package/presets/mavis/php-hexagonal/agents/task-analyst.md +15 -0
  428. package/presets/mavis/php-hexagonal/agents/task-router.md +15 -0
  429. package/presets/mavis/php-hexagonal/agents/tech-writer.md +15 -0
  430. package/presets/mavis/php-hexagonal/agents/unit-test-generator.md +16 -0
  431. package/presets/mavis/php-hexagonal/agents/unit-test-healer.md +16 -0
  432. package/presets/mavis/php-hexagonal/agents/unit-test-planner.md +16 -0
  433. package/presets/mavis/php-laravel/MAVIS.md +13 -0
  434. package/presets/mavis/php-laravel/agents/api-contract-reviewer.md +18 -0
  435. package/presets/mavis/php-laravel/agents/build-verifier.md +17 -0
  436. package/presets/mavis/php-laravel/agents/ci-investigator.md +29 -0
  437. package/presets/mavis/php-laravel/agents/code-reviewer.md +16 -0
  438. package/presets/mavis/php-laravel/agents/codebase-analyzer.md +15 -0
  439. package/presets/mavis/php-laravel/agents/debugger.md +29 -0
  440. package/presets/mavis/php-laravel/agents/feature-developer.md +29 -0
  441. package/presets/mavis/php-laravel/agents/integration-test-generator.md +17 -0
  442. package/presets/mavis/php-laravel/agents/integration-test-healer.md +17 -0
  443. package/presets/mavis/php-laravel/agents/integration-test-planner.md +17 -0
  444. package/presets/mavis/php-laravel/agents/migration-specialist.md +15 -0
  445. package/presets/mavis/php-laravel/agents/openspec-author.md +15 -0
  446. package/presets/mavis/php-laravel/agents/performance-auditor.md +15 -0
  447. package/presets/mavis/php-laravel/agents/qa-tester.md +18 -0
  448. package/presets/mavis/php-laravel/agents/security-reviewer.md +15 -0
  449. package/presets/mavis/php-laravel/agents/solution-architect.md +15 -0
  450. package/presets/mavis/php-laravel/agents/task-analyst.md +15 -0
  451. package/presets/mavis/php-laravel/agents/task-router.md +15 -0
  452. package/presets/mavis/php-laravel/agents/tech-writer.md +15 -0
  453. package/presets/mavis/php-laravel/agents/unit-test-generator.md +16 -0
  454. package/presets/mavis/php-laravel/agents/unit-test-healer.md +16 -0
  455. package/presets/mavis/php-laravel/agents/unit-test-planner.md +16 -0
  456. package/presets/mavis/svelte/MAVIS.md +13 -0
  457. package/presets/mavis/svelte/agents/accessibility-reviewer.md +17 -0
  458. package/presets/mavis/svelte/agents/api-contract-reviewer.md +19 -0
  459. package/presets/mavis/svelte/agents/build-verifier.md +17 -0
  460. package/presets/mavis/svelte/agents/ci-investigator.md +34 -0
  461. package/presets/mavis/svelte/agents/code-reviewer.md +18 -0
  462. package/presets/mavis/svelte/agents/codebase-analyzer.md +17 -0
  463. package/presets/mavis/svelte/agents/debugger.md +34 -0
  464. package/presets/mavis/svelte/agents/feature-developer.md +34 -0
  465. package/presets/mavis/svelte/agents/migration-specialist.md +17 -0
  466. package/presets/mavis/svelte/agents/mockup-reviewer.md +17 -0
  467. package/presets/mavis/svelte/agents/openspec-author.md +17 -0
  468. package/presets/mavis/svelte/agents/performance-auditor.md +17 -0
  469. package/presets/mavis/svelte/agents/playwright-test-generator.md +19 -0
  470. package/presets/mavis/svelte/agents/playwright-test-healer.md +19 -0
  471. package/presets/mavis/svelte/agents/playwright-test-planner.md +19 -0
  472. package/presets/mavis/svelte/agents/qa-tester.md +20 -0
  473. package/presets/mavis/svelte/agents/security-reviewer.md +17 -0
  474. package/presets/mavis/svelte/agents/solution-architect.md +17 -0
  475. package/presets/mavis/svelte/agents/task-analyst.md +17 -0
  476. package/presets/mavis/svelte/agents/task-router.md +17 -0
  477. package/presets/mavis/svelte/agents/tech-writer.md +17 -0
  478. package/presets/mavis/svelte/agents/unit-test-generator.md +18 -0
  479. package/presets/mavis/svelte/agents/unit-test-healer.md +18 -0
  480. package/presets/mavis/svelte/agents/unit-test-planner.md +18 -0
  481. package/presets/opencode/android-kotlin/OPENCODE.md +15 -1
  482. package/presets/opencode/android-kotlin/adapter-map.json +1 -1
  483. package/presets/opencode/android-kotlin/agents/accessibility-reviewer.md +15 -0
  484. package/presets/opencode/android-kotlin/agents/api-contract-reviewer.md +16 -0
  485. package/presets/opencode/android-kotlin/agents/build-verifier.md +17 -0
  486. package/presets/opencode/android-kotlin/agents/ci-investigator.md +25 -0
  487. package/presets/opencode/android-kotlin/agents/code-reviewer.md +16 -0
  488. package/presets/opencode/android-kotlin/agents/codebase-analyzer.md +15 -0
  489. package/presets/opencode/android-kotlin/agents/debugger.md +25 -0
  490. package/presets/opencode/android-kotlin/agents/feature-developer.md +25 -0
  491. package/presets/opencode/android-kotlin/agents/instrumentation-test-generator.md +16 -0
  492. package/presets/opencode/android-kotlin/agents/instrumentation-test-healer.md +16 -0
  493. package/presets/opencode/android-kotlin/agents/instrumentation-test-planner.md +16 -0
  494. package/presets/opencode/android-kotlin/agents/migration-specialist.md +15 -0
  495. package/presets/opencode/android-kotlin/agents/mockup-reviewer.md +15 -0
  496. package/presets/opencode/android-kotlin/agents/openspec-author.md +15 -0
  497. package/presets/opencode/android-kotlin/agents/performance-auditor.md +15 -0
  498. package/presets/opencode/android-kotlin/agents/qa-tester.md +17 -0
  499. package/presets/opencode/android-kotlin/agents/security-reviewer.md +15 -0
  500. package/presets/opencode/android-kotlin/agents/solution-architect.md +15 -0
  501. package/presets/opencode/android-kotlin/agents/task-analyst.md +15 -0
  502. package/presets/opencode/android-kotlin/agents/task-router.md +15 -0
  503. package/presets/opencode/android-kotlin/agents/tech-writer.md +15 -0
  504. package/presets/opencode/android-kotlin/agents/unit-test-generator.md +16 -0
  505. package/presets/opencode/android-kotlin/agents/unit-test-healer.md +16 -0
  506. package/presets/opencode/android-kotlin/agents/unit-test-planner.md +16 -0
  507. package/presets/opencode/android-kotlin/opencode.json +14 -0
  508. package/presets/opencode/android-kotlin/rules/README.md +7 -2
  509. package/presets/opencode/go/OPENCODE.md +15 -1
  510. package/presets/opencode/go/adapter-map.json +1 -1
  511. package/presets/opencode/go/agents/api-contract-reviewer.md +17 -0
  512. package/presets/opencode/go/agents/build-verifier.md +17 -0
  513. package/presets/opencode/go/agents/ci-investigator.md +29 -0
  514. package/presets/opencode/go/agents/code-reviewer.md +16 -0
  515. package/presets/opencode/go/agents/codebase-analyzer.md +15 -0
  516. package/presets/opencode/go/agents/debugger.md +29 -0
  517. package/presets/opencode/go/agents/feature-developer.md +29 -0
  518. package/presets/opencode/go/agents/integration-test-generator.md +17 -0
  519. package/presets/opencode/go/agents/integration-test-healer.md +17 -0
  520. package/presets/opencode/go/agents/integration-test-planner.md +17 -0
  521. package/presets/opencode/go/agents/migration-specialist.md +15 -0
  522. package/presets/opencode/go/agents/openspec-author.md +15 -0
  523. package/presets/opencode/go/agents/performance-auditor.md +15 -0
  524. package/presets/opencode/go/agents/qa-tester.md +18 -0
  525. package/presets/opencode/go/agents/security-reviewer.md +15 -0
  526. package/presets/opencode/go/agents/solution-architect.md +15 -0
  527. package/presets/opencode/go/agents/task-analyst.md +15 -0
  528. package/presets/opencode/go/agents/task-router.md +15 -0
  529. package/presets/opencode/go/agents/tech-writer.md +15 -0
  530. package/presets/opencode/go/agents/unit-test-generator.md +16 -0
  531. package/presets/opencode/go/agents/unit-test-healer.md +16 -0
  532. package/presets/opencode/go/agents/unit-test-planner.md +16 -0
  533. package/presets/opencode/go/opencode.json +14 -0
  534. package/presets/opencode/go/rules/README.md +7 -2
  535. package/presets/opencode/ios-swift/OPENCODE.md +15 -1
  536. package/presets/opencode/ios-swift/adapter-map.json +1 -1
  537. package/presets/opencode/ios-swift/agents/accessibility-reviewer.md +15 -0
  538. package/presets/opencode/ios-swift/agents/api-contract-reviewer.md +16 -0
  539. package/presets/opencode/ios-swift/agents/build-verifier.md +17 -0
  540. package/presets/opencode/ios-swift/agents/ci-investigator.md +24 -0
  541. package/presets/opencode/ios-swift/agents/code-reviewer.md +16 -0
  542. package/presets/opencode/ios-swift/agents/codebase-analyzer.md +15 -0
  543. package/presets/opencode/ios-swift/agents/debugger.md +24 -0
  544. package/presets/opencode/ios-swift/agents/feature-developer.md +24 -0
  545. package/presets/opencode/ios-swift/agents/migration-specialist.md +15 -0
  546. package/presets/opencode/ios-swift/agents/mockup-reviewer.md +15 -0
  547. package/presets/opencode/ios-swift/agents/openspec-author.md +15 -0
  548. package/presets/opencode/ios-swift/agents/performance-auditor.md +15 -0
  549. package/presets/opencode/ios-swift/agents/qa-tester.md +17 -0
  550. package/presets/opencode/ios-swift/agents/security-reviewer.md +15 -0
  551. package/presets/opencode/ios-swift/agents/solution-architect.md +15 -0
  552. package/presets/opencode/ios-swift/agents/task-analyst.md +15 -0
  553. package/presets/opencode/ios-swift/agents/task-router.md +15 -0
  554. package/presets/opencode/ios-swift/agents/tech-writer.md +15 -0
  555. package/presets/opencode/ios-swift/agents/unit-test-generator.md +16 -0
  556. package/presets/opencode/ios-swift/agents/unit-test-healer.md +16 -0
  557. package/presets/opencode/ios-swift/agents/unit-test-planner.md +16 -0
  558. package/presets/opencode/ios-swift/agents/xcuitest-test-generator.md +16 -0
  559. package/presets/opencode/ios-swift/agents/xcuitest-test-healer.md +16 -0
  560. package/presets/opencode/ios-swift/agents/xcuitest-test-planner.md +16 -0
  561. package/presets/opencode/ios-swift/opencode.json +14 -0
  562. package/presets/opencode/ios-swift/rules/README.md +7 -2
  563. package/presets/opencode/java/OPENCODE.md +15 -1
  564. package/presets/opencode/java/adapter-map.json +1 -1
  565. package/presets/opencode/java/agents/api-contract-reviewer.md +17 -0
  566. package/presets/opencode/java/agents/build-verifier.md +17 -0
  567. package/presets/opencode/java/agents/ci-investigator.md +29 -0
  568. package/presets/opencode/java/agents/code-reviewer.md +16 -0
  569. package/presets/opencode/java/agents/codebase-analyzer.md +15 -0
  570. package/presets/opencode/java/agents/debugger.md +29 -0
  571. package/presets/opencode/java/agents/feature-developer.md +29 -0
  572. package/presets/opencode/java/agents/integration-test-generator.md +17 -0
  573. package/presets/opencode/java/agents/integration-test-healer.md +17 -0
  574. package/presets/opencode/java/agents/integration-test-planner.md +17 -0
  575. package/presets/opencode/java/agents/migration-specialist.md +15 -0
  576. package/presets/opencode/java/agents/openspec-author.md +15 -0
  577. package/presets/opencode/java/agents/performance-auditor.md +15 -0
  578. package/presets/opencode/java/agents/qa-tester.md +18 -0
  579. package/presets/opencode/java/agents/security-reviewer.md +15 -0
  580. package/presets/opencode/java/agents/solution-architect.md +15 -0
  581. package/presets/opencode/java/agents/task-analyst.md +15 -0
  582. package/presets/opencode/java/agents/task-router.md +15 -0
  583. package/presets/opencode/java/agents/tech-writer.md +15 -0
  584. package/presets/opencode/java/agents/unit-test-generator.md +16 -0
  585. package/presets/opencode/java/agents/unit-test-healer.md +16 -0
  586. package/presets/opencode/java/agents/unit-test-planner.md +16 -0
  587. package/presets/opencode/java/opencode.json +14 -0
  588. package/presets/opencode/java/rules/README.md +7 -2
  589. package/presets/opencode/mcp-ts/OPENCODE.md +15 -1
  590. package/presets/opencode/mcp-ts/adapter-map.json +1 -1
  591. package/presets/opencode/mcp-ts/agents/build-verifier.md +17 -0
  592. package/presets/opencode/mcp-ts/agents/feature-developer.md +22 -0
  593. package/presets/opencode/mcp-ts/agents/security-reviewer.md +15 -0
  594. package/presets/opencode/mcp-ts/agents/solution-architect.md +15 -0
  595. package/presets/opencode/mcp-ts/agents/task-analyst.md +15 -0
  596. package/presets/opencode/mcp-ts/agents/task-router.md +15 -0
  597. package/presets/opencode/mcp-ts/opencode.json +14 -0
  598. package/presets/opencode/mcp-ts/rules/README.md +7 -2
  599. package/presets/opencode/next/OPENCODE.md +15 -1
  600. package/presets/opencode/next/adapter-map.json +58 -2
  601. package/presets/opencode/next/agents/accessibility-reviewer.md +17 -0
  602. package/presets/opencode/next/agents/api-contract-reviewer.md +19 -0
  603. package/presets/opencode/next/agents/build-verifier.md +17 -0
  604. package/presets/opencode/next/agents/ci-investigator.md +34 -0
  605. package/presets/opencode/next/agents/code-reviewer.md +18 -0
  606. package/presets/opencode/next/agents/codebase-analyzer.md +17 -0
  607. package/presets/opencode/next/agents/debugger.md +34 -0
  608. package/presets/opencode/next/agents/feature-developer.md +34 -0
  609. package/presets/opencode/next/agents/migration-specialist.md +17 -0
  610. package/presets/opencode/next/agents/mockup-reviewer.md +17 -0
  611. package/presets/opencode/next/agents/openspec-author.md +17 -0
  612. package/presets/opencode/next/agents/performance-auditor.md +17 -0
  613. package/presets/opencode/next/agents/playwright-test-generator.md +19 -0
  614. package/presets/opencode/next/agents/playwright-test-healer.md +19 -0
  615. package/presets/opencode/next/agents/playwright-test-planner.md +19 -0
  616. package/presets/opencode/next/agents/qa-tester.md +20 -0
  617. package/presets/opencode/next/agents/security-reviewer.md +17 -0
  618. package/presets/opencode/next/agents/solution-architect.md +17 -0
  619. package/presets/opencode/next/agents/task-analyst.md +17 -0
  620. package/presets/opencode/next/agents/task-router.md +17 -0
  621. package/presets/opencode/next/agents/tech-writer.md +17 -0
  622. package/presets/opencode/next/agents/unit-test-generator.md +18 -0
  623. package/presets/opencode/next/agents/unit-test-healer.md +18 -0
  624. package/presets/opencode/next/agents/unit-test-planner.md +18 -0
  625. package/presets/opencode/next/ai-local/rules-library/agent-artifacts-no-local-paths.md +38 -0
  626. package/presets/opencode/next/ai-local/rules-library/commit-hygiene.md +17 -0
  627. package/presets/opencode/next/ai-local/rules-library/mcp-required-for-ui-layout.md +41 -0
  628. package/presets/opencode/next/ai-local/rules-library/no-test-driven-behavior-change.md +14 -0
  629. package/presets/opencode/next/ai-local/rules-library/pre-pr-checklist.md +16 -0
  630. package/presets/opencode/next/ai-local/rules-library/router-pages.md +23 -0
  631. package/presets/opencode/next/ai-local/rules-library/single-source-copy-constants.md +16 -0
  632. package/presets/opencode/next/opencode.json +19 -0
  633. package/presets/opencode/next/rules/README.md +7 -2
  634. package/presets/opencode/nuxt/OPENCODE.md +15 -1
  635. package/presets/opencode/nuxt/adapter-map.json +1 -1
  636. package/presets/opencode/nuxt/agents/accessibility-reviewer.md +17 -0
  637. package/presets/opencode/nuxt/agents/api-contract-reviewer.md +19 -0
  638. package/presets/opencode/nuxt/agents/build-verifier.md +17 -0
  639. package/presets/opencode/nuxt/agents/ci-investigator.md +34 -0
  640. package/presets/opencode/nuxt/agents/code-reviewer.md +18 -0
  641. package/presets/opencode/nuxt/agents/codebase-analyzer.md +17 -0
  642. package/presets/opencode/nuxt/agents/debugger.md +34 -0
  643. package/presets/opencode/nuxt/agents/feature-developer.md +34 -0
  644. package/presets/opencode/nuxt/agents/migration-specialist.md +17 -0
  645. package/presets/opencode/nuxt/agents/mockup-reviewer.md +17 -0
  646. package/presets/opencode/nuxt/agents/openspec-author.md +17 -0
  647. package/presets/opencode/nuxt/agents/performance-auditor.md +17 -0
  648. package/presets/opencode/nuxt/agents/playwright-test-generator.md +19 -0
  649. package/presets/opencode/nuxt/agents/playwright-test-healer.md +19 -0
  650. package/presets/opencode/nuxt/agents/playwright-test-planner.md +19 -0
  651. package/presets/opencode/nuxt/agents/qa-tester.md +20 -0
  652. package/presets/opencode/nuxt/agents/security-reviewer.md +17 -0
  653. package/presets/opencode/nuxt/agents/solution-architect.md +17 -0
  654. package/presets/opencode/nuxt/agents/task-analyst.md +17 -0
  655. package/presets/opencode/nuxt/agents/task-router.md +17 -0
  656. package/presets/opencode/nuxt/agents/tech-writer.md +17 -0
  657. package/presets/opencode/nuxt/agents/unit-test-generator.md +18 -0
  658. package/presets/opencode/nuxt/agents/unit-test-healer.md +18 -0
  659. package/presets/opencode/nuxt/agents/unit-test-planner.md +18 -0
  660. package/presets/opencode/nuxt/opencode.json +19 -0
  661. package/presets/opencode/nuxt/rules/README.md +7 -2
  662. package/presets/opencode/php-hexagonal/OPENCODE.md +15 -1
  663. package/presets/opencode/php-hexagonal/adapter-map.json +1 -1
  664. package/presets/opencode/php-hexagonal/agents/api-contract-reviewer.md +17 -0
  665. package/presets/opencode/php-hexagonal/agents/build-verifier.md +17 -0
  666. package/presets/opencode/php-hexagonal/agents/ci-investigator.md +29 -0
  667. package/presets/opencode/php-hexagonal/agents/code-reviewer.md +16 -0
  668. package/presets/opencode/php-hexagonal/agents/codebase-analyzer.md +15 -0
  669. package/presets/opencode/php-hexagonal/agents/debugger.md +29 -0
  670. package/presets/opencode/php-hexagonal/agents/feature-developer.md +29 -0
  671. package/presets/opencode/php-hexagonal/agents/integration-test-generator.md +17 -0
  672. package/presets/opencode/php-hexagonal/agents/integration-test-healer.md +17 -0
  673. package/presets/opencode/php-hexagonal/agents/integration-test-planner.md +17 -0
  674. package/presets/opencode/php-hexagonal/agents/migration-specialist.md +15 -0
  675. package/presets/opencode/php-hexagonal/agents/openspec-author.md +15 -0
  676. package/presets/opencode/php-hexagonal/agents/performance-auditor.md +15 -0
  677. package/presets/opencode/php-hexagonal/agents/qa-tester.md +18 -0
  678. package/presets/opencode/php-hexagonal/agents/security-reviewer.md +15 -0
  679. package/presets/opencode/php-hexagonal/agents/solution-architect.md +15 -0
  680. package/presets/opencode/php-hexagonal/agents/task-analyst.md +15 -0
  681. package/presets/opencode/php-hexagonal/agents/task-router.md +15 -0
  682. package/presets/opencode/php-hexagonal/agents/tech-writer.md +15 -0
  683. package/presets/opencode/php-hexagonal/agents/unit-test-generator.md +16 -0
  684. package/presets/opencode/php-hexagonal/agents/unit-test-healer.md +16 -0
  685. package/presets/opencode/php-hexagonal/agents/unit-test-planner.md +16 -0
  686. package/presets/opencode/php-hexagonal/opencode.json +14 -0
  687. package/presets/opencode/php-hexagonal/rules/README.md +7 -2
  688. package/presets/opencode/php-laravel/OPENCODE.md +15 -1
  689. package/presets/opencode/php-laravel/adapter-map.json +1 -1
  690. package/presets/opencode/php-laravel/agents/api-contract-reviewer.md +18 -0
  691. package/presets/opencode/php-laravel/agents/build-verifier.md +17 -0
  692. package/presets/opencode/php-laravel/agents/ci-investigator.md +29 -0
  693. package/presets/opencode/php-laravel/agents/code-reviewer.md +16 -0
  694. package/presets/opencode/php-laravel/agents/codebase-analyzer.md +15 -0
  695. package/presets/opencode/php-laravel/agents/debugger.md +29 -0
  696. package/presets/opencode/php-laravel/agents/feature-developer.md +29 -0
  697. package/presets/opencode/php-laravel/agents/integration-test-generator.md +17 -0
  698. package/presets/opencode/php-laravel/agents/integration-test-healer.md +17 -0
  699. package/presets/opencode/php-laravel/agents/integration-test-planner.md +17 -0
  700. package/presets/opencode/php-laravel/agents/migration-specialist.md +15 -0
  701. package/presets/opencode/php-laravel/agents/openspec-author.md +15 -0
  702. package/presets/opencode/php-laravel/agents/performance-auditor.md +15 -0
  703. package/presets/opencode/php-laravel/agents/qa-tester.md +18 -0
  704. package/presets/opencode/php-laravel/agents/security-reviewer.md +15 -0
  705. package/presets/opencode/php-laravel/agents/solution-architect.md +15 -0
  706. package/presets/opencode/php-laravel/agents/task-analyst.md +15 -0
  707. package/presets/opencode/php-laravel/agents/task-router.md +15 -0
  708. package/presets/opencode/php-laravel/agents/tech-writer.md +15 -0
  709. package/presets/opencode/php-laravel/agents/unit-test-generator.md +16 -0
  710. package/presets/opencode/php-laravel/agents/unit-test-healer.md +16 -0
  711. package/presets/opencode/php-laravel/agents/unit-test-planner.md +16 -0
  712. package/presets/opencode/php-laravel/opencode.json +14 -0
  713. package/presets/opencode/php-laravel/rules/README.md +7 -2
  714. package/presets/opencode/svelte/OPENCODE.md +15 -1
  715. package/presets/opencode/svelte/adapter-map.json +1 -1
  716. package/presets/opencode/svelte/agents/accessibility-reviewer.md +17 -0
  717. package/presets/opencode/svelte/agents/api-contract-reviewer.md +19 -0
  718. package/presets/opencode/svelte/agents/build-verifier.md +17 -0
  719. package/presets/opencode/svelte/agents/ci-investigator.md +34 -0
  720. package/presets/opencode/svelte/agents/code-reviewer.md +18 -0
  721. package/presets/opencode/svelte/agents/codebase-analyzer.md +17 -0
  722. package/presets/opencode/svelte/agents/debugger.md +34 -0
  723. package/presets/opencode/svelte/agents/feature-developer.md +34 -0
  724. package/presets/opencode/svelte/agents/migration-specialist.md +17 -0
  725. package/presets/opencode/svelte/agents/mockup-reviewer.md +17 -0
  726. package/presets/opencode/svelte/agents/openspec-author.md +17 -0
  727. package/presets/opencode/svelte/agents/performance-auditor.md +17 -0
  728. package/presets/opencode/svelte/agents/playwright-test-generator.md +19 -0
  729. package/presets/opencode/svelte/agents/playwright-test-healer.md +19 -0
  730. package/presets/opencode/svelte/agents/playwright-test-planner.md +19 -0
  731. package/presets/opencode/svelte/agents/qa-tester.md +20 -0
  732. package/presets/opencode/svelte/agents/security-reviewer.md +17 -0
  733. package/presets/opencode/svelte/agents/solution-architect.md +17 -0
  734. package/presets/opencode/svelte/agents/task-analyst.md +17 -0
  735. package/presets/opencode/svelte/agents/task-router.md +17 -0
  736. package/presets/opencode/svelte/agents/tech-writer.md +17 -0
  737. package/presets/opencode/svelte/agents/unit-test-generator.md +18 -0
  738. package/presets/opencode/svelte/agents/unit-test-healer.md +18 -0
  739. package/presets/opencode/svelte/agents/unit-test-planner.md +18 -0
  740. package/presets/opencode/svelte/opencode.json +19 -0
  741. package/presets/opencode/svelte/rules/README.md +7 -2
  742. package/scripts/check-claude-agent-blocks.mjs +82 -0
  743. package/scripts/check-preset-structure.sh +9 -0
  744. package/scripts/fixtures/cli-golden/claude/next.json +26 -25
  745. package/scripts/fixtures/cli-golden/cursor/next.json +7 -0
  746. package/scripts/fixtures/cli-golden/mavis/android-kotlin.json +25 -25
  747. package/scripts/fixtures/cli-golden/mavis/go.json +23 -23
  748. package/scripts/fixtures/cli-golden/mavis/ios-swift.json +25 -25
  749. package/scripts/fixtures/cli-golden/mavis/java.json +23 -23
  750. package/scripts/fixtures/cli-golden/mavis/mcp-ts.json +7 -7
  751. package/scripts/fixtures/cli-golden/mavis/next.json +32 -25
  752. package/scripts/fixtures/cli-golden/mavis/nuxt.json +25 -25
  753. package/scripts/fixtures/cli-golden/mavis/php-hexagonal.json +23 -23
  754. package/scripts/fixtures/cli-golden/mavis/php-laravel.json +23 -23
  755. package/scripts/fixtures/cli-golden/mavis/svelte.json +25 -25
  756. package/scripts/fixtures/cli-golden/opencode/android-kotlin.json +27 -27
  757. package/scripts/fixtures/cli-golden/opencode/go.json +25 -25
  758. package/scripts/fixtures/cli-golden/opencode/ios-swift.json +27 -27
  759. package/scripts/fixtures/cli-golden/opencode/java.json +25 -25
  760. package/scripts/fixtures/cli-golden/opencode/mcp-ts.json +9 -9
  761. package/scripts/fixtures/cli-golden/opencode/next.json +34 -27
  762. package/scripts/fixtures/cli-golden/opencode/nuxt.json +27 -27
  763. package/scripts/fixtures/cli-golden/opencode/php-hexagonal.json +25 -25
  764. package/scripts/fixtures/cli-golden/opencode/php-laravel.json +25 -25
  765. package/scripts/fixtures/cli-golden/opencode/svelte.json +27 -27
  766. package/scripts/inject-claude-agent-rules-block.mjs +83 -0
  767. package/scripts/lib/generate-adapter-common.mjs +182 -0
  768. package/scripts/lib/generate-mavis-adapter.mjs +45 -9
  769. package/scripts/lib/generate-opencode-adapter.mjs +68 -11
  770. package/scripts/lib/stack-platform-profiles.mjs +321 -1
  771. package/scripts/sync-claude-harness-wiring.mjs +56 -0
  772. package/scripts/sync-claude-settings.mjs +56 -0
  773. package/scripts/test-cli-mcp-merge.mjs +54 -0
@@ -402,3 +402,185 @@ export function strongTierCell(profile) {
402
402
  }
403
403
  return base;
404
404
  }
405
+
406
+ /**
407
+ * Short glosses for the rule stems most commonly cited in subagent prompts.
408
+ * Glosses are stack-neutral; per-platform stems (e.g. `react-ui`) only appear in
409
+ * the stacks that ship them.
410
+ */
411
+ const RULE_GLOSS = {
412
+ 'architecture-boundaries': 'layer boundaries and allowed imports',
413
+ 'public-imports': '@/types, @/api barrels',
414
+ 'react-ui': 'UI component style (no FC, no spread, decomposition)',
415
+ 'store-rtk': 'Redux Toolkit patterns',
416
+ 'react-next-anti-hallucination': 'phantom import banlist',
417
+ 'feature-delivery-workflow': 'layer order, mockup gate, ux-design gate',
418
+ 'reference-features': 'analog files first',
419
+ 'anti-sycophancy-discipline': 'procedural anti-sycophancy rules',
420
+ 'post-change-lint': 'lint/type-check after code edits',
421
+ 'mcp-usage': 'when verifying third-party APIs (Context7)',
422
+ };
423
+
424
+ export const RULES_TO_LOAD_HEADING = '## Rules to load (subagent context)';
425
+
426
+ const RULES_TO_LOAD_CLOSING_PREFIX = 'Also read matching ';
427
+
428
+ /** Platform intro lines. One string per adapter so generators, the Claude codemod, and CI cannot drift. */
429
+ export const PLATFORM_RULES_INTRO = {
430
+ claude:
431
+ 'This subagent does **not** inherit the parent session context or `CLAUDE.md`. Read these rules explicitly before acting:',
432
+ opencode:
433
+ 'This subagent does **not** inherit `opencode.json` `instructions`. Read these rules explicitly before acting:',
434
+ mavis:
435
+ 'This subagent runs standalone (`mcode exec --file`) and inherits no global context. Read these rules explicitly before acting:',
436
+ };
437
+
438
+ /**
439
+ * Build the "## Rules to load (subagent context)" block injected into every
440
+ * generated agent. Subagents (OpenCode `Task`, Mavis `mcode exec --file`,
441
+ * Claude Code subagents) start blank and inherit no always-on context, so this
442
+ * block enumerates the rules the agent must Read explicitly before acting.
443
+ *
444
+ * Filtered to stems that exist for the stack (caller passes `availableStems`).
445
+ * Always-on rules are listed first, then zone rules. Bullet text is produced
446
+ * only here — callers use `expectedRulesToLoadBlock`.
447
+ *
448
+ * @param {{
449
+ * rulesPath: string, // flat rules dir, e.g. '.opencode/rules' or '.mavis/rules'.
450
+ * // Ignored when `pathForStem` is provided.
451
+ * alwaysOn: string[],
452
+ * zoneRules: string[],
453
+ * availableStems: Set<string>,
454
+ * intro: string, // platform-specific single-sentence intro line
455
+ * pathForStem?: (stem: string) => string | undefined, // Claude uses nested layout
456
+ * }} params
457
+ */
458
+ export function buildRulesToLoadBlock({
459
+ rulesPath,
460
+ alwaysOn,
461
+ zoneRules,
462
+ availableStems,
463
+ intro,
464
+ pathForStem,
465
+ }) {
466
+ const seen = new Set();
467
+ const ordered = [];
468
+ for (const stem of [...(alwaysOn || []), ...(zoneRules || [])]) {
469
+ if (seen.has(stem)) continue;
470
+ if (!availableStems.has(stem)) continue;
471
+ seen.add(stem);
472
+ ordered.push(stem);
473
+ }
474
+ const bullets = ordered
475
+ .map((stem) => {
476
+ const gloss = RULE_GLOSS[stem];
477
+ const resolved = typeof pathForStem === 'function' ? pathForStem(stem) : undefined;
478
+ const ref = resolved || `${rulesPath}/${stem}.md`;
479
+ return gloss ? `- \`${ref}\` — ${gloss}` : `- \`${ref}\``;
480
+ })
481
+ .join('\n');
482
+ return [
483
+ RULES_TO_LOAD_HEADING,
484
+ '',
485
+ intro,
486
+ '',
487
+ bullets,
488
+ '',
489
+ 'Also read matching `.ai.local/rules/*.md` (local overlay) for the active zone, and the project strict rules if present.',
490
+ ].join('\n');
491
+ }
492
+
493
+ /**
494
+ * Expected «Rules to load» block for one agent. Generators, the Claude inject
495
+ * codemod, and `check-claude-agent-blocks` all call this so bullet text cannot
496
+ * fork. `zoneRules` is the already-resolved list (profile zones, or
497
+ * `getZoneRulesForAgent` once roles apply).
498
+ */
499
+ export function expectedRulesToLoadBlock(params) {
500
+ return buildRulesToLoadBlock(params);
501
+ }
502
+
503
+ const CLAUDE_MAPPING_ROW = /^\|\s*`([^`]+?\.mdc)`\s*\|\s*`([^`]+?\.md)`\s*\|/;
504
+
505
+ /**
506
+ * Cursor stem → Claude topic path, from `rules/README.md` «Cursor → Claude mapping».
507
+ * Filename stems are not enough: twins such as `code-quality.md` keep the
508
+ * Cursor stem `code-quality-and-refactoring`. A row counts only when the file exists.
509
+ */
510
+ export function indexClaudeRuleStems(claudeRulesDir) {
511
+ const stemToRelPath = new Map();
512
+ const availableStems = new Set();
513
+ const readmePath = path.join(claudeRulesDir, 'README.md');
514
+ if (fs.existsSync(readmePath)) {
515
+ let section = fs.readFileSync(readmePath, 'utf8');
516
+ const marker = '## Cursor → Claude mapping';
517
+ const markerAt = section.indexOf(marker);
518
+ if (markerAt >= 0) {
519
+ section = section.slice(markerAt);
520
+ const nextHeading = section.slice(marker.length).search(/\n## (?!#)/);
521
+ if (nextHeading >= 0) {
522
+ section = section.slice(0, marker.length + nextHeading);
523
+ }
524
+ }
525
+ for (const line of section.split('\n')) {
526
+ const match = line.match(CLAUDE_MAPPING_ROW);
527
+ if (!match) continue;
528
+ const stem = match[1].slice(0, -'.mdc'.length);
529
+ const relPath = match[2];
530
+ if (!fs.existsSync(path.join(claudeRulesDir, relPath))) continue;
531
+ if (!stemToRelPath.has(stem)) {
532
+ stemToRelPath.set(stem, relPath);
533
+ availableStems.add(stem);
534
+ }
535
+ }
536
+ }
537
+ const pathForStem = (stem) => {
538
+ const rel = stemToRelPath.get(stem);
539
+ return rel ? `.claude/rules/${rel}` : undefined;
540
+ };
541
+ return { availableStems, pathForStem };
542
+ }
543
+
544
+ /** Section from the heading through the closing "Also read matching" line, or ''. */
545
+ export function extractRulesToLoadBlock(text) {
546
+ const start = text.indexOf(RULES_TO_LOAD_HEADING);
547
+ if (start < 0) return '';
548
+ const lines = text.slice(start).split('\n');
549
+ const end = lines.findIndex((line) => line.startsWith(RULES_TO_LOAD_CLOSING_PREFIX));
550
+ if (end < 0) return '';
551
+ return lines.slice(0, end + 1).join('\n');
552
+ }
553
+
554
+ /**
555
+ * Insert or replace the rules block immediately after YAML frontmatter.
556
+ * Returns null when the opening `---` is missing. Repairs a missing closer
557
+ * when a previous insert left the heading inside the frontmatter.
558
+ * Does not rewrite the agent body.
559
+ */
560
+ export function upsertRulesToLoadBlock(markdown, block) {
561
+ if (!markdown.startsWith('---\n')) return null;
562
+ const rest = markdown.slice(4);
563
+ const headingAt = rest.indexOf(`\n${RULES_TO_LOAD_HEADING}`);
564
+ const closeAt = rest.indexOf('\n---\n');
565
+ let frontmatter;
566
+ let body;
567
+ if (closeAt >= 0 && (headingAt < 0 || closeAt < headingAt)) {
568
+ frontmatter = rest.slice(0, closeAt).replace(/\s+$/, '');
569
+ body = rest.slice(closeAt + '\n---\n'.length).replace(/^\n/, '');
570
+ } else if (headingAt >= 0) {
571
+ frontmatter = rest.slice(0, headingAt).replace(/\s+$/, '');
572
+ body = rest.slice(headingAt + 1);
573
+ } else {
574
+ return null;
575
+ }
576
+ const existing = extractRulesToLoadBlock(body);
577
+ if (existing) {
578
+ const at = body.indexOf(existing);
579
+ const before = body.slice(0, at).replace(/\s+$/, '');
580
+ const after = body.slice(at + existing.length).replace(/^\n+/, '');
581
+ body = `${before ? `${before}\n\n` : ''}${block}\n\n${after}`;
582
+ } else {
583
+ body = `${block}\n\n${body.replace(/^\n+/, '')}`;
584
+ }
585
+ return `---\n${frontmatter}\n---\n\n${body}`.replace(/\s+$/, '\n');
586
+ }
@@ -5,6 +5,8 @@ import fs from 'node:fs';
5
5
  import path from 'node:path';
6
6
  import { fileURLToPath } from 'node:url';
7
7
  import {
8
+ expectedRulesToLoadBlock,
9
+ PLATFORM_RULES_INTRO,
8
10
  countAgentRoleFiles,
9
11
  deriveAdapterStack,
10
12
  dropLeadingHeading,
@@ -25,7 +27,7 @@ import {
25
27
  stripFrontmatter,
26
28
  stripInstallSection,
27
29
  } from './generate-adapter-common.mjs';
28
- import { getStackProfile, parseStackArg } from './stack-platform-profiles.mjs';
30
+ import { getStackProfile, getZoneRulesForAgent, parseStackArg } from './stack-platform-profiles.mjs';
29
31
 
30
32
  const libDirectory = path.dirname(fileURLToPath(import.meta.url));
31
33
  const packageRoot = path.join(libDirectory, '..', '..');
@@ -173,6 +175,19 @@ ${essential}
173
175
 
174
176
  See \`.mavis/rules/README.md\` for the full catalog and loading strategy.
175
177
 
178
+ ## Harness wiring
179
+
180
+ - **Subagent rules** are re-declared inside every \`.mavis/agents/*.md\` via
181
+ the \`## Rules to load (subagent context)\` block (always-on + zone rules
182
+ filtered to stems that exist for this stack). Subagents run via
183
+ \`mcode exec --file\` and inherit no global context, so the block is the
184
+ authoritative mechanism.
185
+ - **MiniMax Code has no permission/instructions config schema** (no analog
186
+ of OpenCode's \`opencode.json\` \`permission.bash\` or Claude Code's
187
+ \`.claude/settings.json\`). Universal \`git commit/push deny\` and
188
+ package-manager guards live in the agent prompt bodies; harness-level
189
+ enforcement is intentionally omitted.
190
+
176
191
  **Platform docs:** published with the \`@bonesofspring/ai-rules\` package
177
192
  (\`docs/MAVIS.md\`, \`docs/MAVIS-COMPATIBILITY.md\`) — **not** copied into
178
193
  the consumer repo. Source: https://github.com/bonesofspring/ai-rules
@@ -345,6 +360,16 @@ export function generateMavisStack(stack, { root = packageRoot } = {}) {
345
360
  const alwaysOn = new Set(profile.alwaysOn);
346
361
  const rewriteProse = (text) => finalizeMavisProse(text, stack);
347
362
 
363
+ const cursorRulesDir = path.join(root, 'presets', 'cursor', stack, 'rules');
364
+ const availableStems = new Set();
365
+ if (fs.existsSync(cursorRulesDir)) {
366
+ for (const entry of fs.readdirSync(cursorRulesDir)) {
367
+ if (entry.endsWith('.mdc')) {
368
+ availableStems.add(entry.slice(0, -'.mdc'.length));
369
+ }
370
+ }
371
+ }
372
+
348
373
  return deriveAdapterStack({
349
374
  platform: 'mavis',
350
375
  stack,
@@ -400,14 +425,25 @@ export function generateMavisStack(stack, { root = packageRoot } = {}) {
400
425
  },
401
426
  {
402
427
  match: (source) => source.startsWith('agents/') && source.endsWith('.md'),
403
- map: ({ source, sourceText }) => ({
404
- target: source,
405
- content: transformMarkdown(sourceText, stack, { allowEmbedEntry: false }),
406
- category: 'agents',
407
- disposition: 'transform',
408
- loadMode: 'manual',
409
- reason: 'Native workspace agent discovery is unknown; attach with mcode exec --file',
410
- }),
428
+ map: ({ source, sourceText }) => {
429
+ const body = transformMarkdown(sourceText, stack, { allowEmbedEntry: false });
430
+ const stem = path.basename(source, '.md');
431
+ const rulesBlock = expectedRulesToLoadBlock({
432
+ rulesPath: '.mavis/rules',
433
+ alwaysOn: profile.alwaysOn,
434
+ zoneRules: getZoneRulesForAgent(stack, stem),
435
+ availableStems,
436
+ intro: PLATFORM_RULES_INTRO.mavis,
437
+ });
438
+ return {
439
+ target: source,
440
+ content: `${rulesBlock}\n\n${body}`,
441
+ category: 'agents',
442
+ disposition: 'transform',
443
+ loadMode: 'manual',
444
+ reason: 'Native workspace agent discovery is unknown; attach with mcode exec --file',
445
+ };
446
+ },
411
447
  },
412
448
  {
413
449
  match: (source) => source.startsWith('skills/') && source.endsWith('/SKILL.md'),
@@ -5,6 +5,8 @@ import fs from 'node:fs';
5
5
  import path from 'node:path';
6
6
  import { fileURLToPath } from 'node:url';
7
7
  import {
8
+ expectedRulesToLoadBlock,
9
+ PLATFORM_RULES_INTRO,
8
10
  countAgentRoleFiles,
9
11
  deriveAdapterStack,
10
12
  dropLeadingHeading,
@@ -27,6 +29,7 @@ import {
27
29
  } from './generate-adapter-common.mjs';
28
30
  import {
29
31
  AGENT_WRITE_SCOPES,
32
+ getZoneRulesForAgent,
30
33
  getStackProfile,
31
34
  parseStackArg,
32
35
  REVIEW_AGENTS,
@@ -131,7 +134,7 @@ function yamlEditPermission(canEditProduction, extraScopes) {
131
134
  return `permission:\n edit:\n "*": deny\n${globLines}`;
132
135
  }
133
136
 
134
- function transformAgent(source, sourceText, stack, developerAgents) {
137
+ function transformAgent(source, sourceText, stack, developerAgents, profile, availableStems) {
135
138
  const { frontmatter, body } = stripFrontmatter(sourceText);
136
139
  const fields = parseFrontmatterFields(frontmatter);
137
140
  const stem = path.basename(source, '.md');
@@ -141,7 +144,14 @@ function transformAgent(source, sourceText, stack, developerAgents) {
141
144
  const description = fields.description || stem;
142
145
  const header = `---\nname: ${stem}\ndescription: ${yamlString(description)}\nmode: subagent\n${permission}\n---\n\n`;
143
146
  const transformed = finalizeOpencodeProse(body, stack);
144
- let withNote = transformed;
147
+ const rulesBlock = expectedRulesToLoadBlock({
148
+ rulesPath: '.opencode/rules',
149
+ alwaysOn: profile?.alwaysOn ?? [],
150
+ zoneRules: getZoneRulesForAgent(stack, stem),
151
+ availableStems: availableStems ?? new Set(),
152
+ intro: PLATFORM_RULES_INTRO.opencode,
153
+ });
154
+ let withNote = `${rulesBlock}\n\n${transformed}`;
145
155
  if (!canEditProduction) {
146
156
  let leadIn;
147
157
  if (extraScopes.length > 0) {
@@ -152,7 +162,7 @@ function transformAgent(source, sourceText, stack, developerAgents) {
152
162
  } else {
153
163
  leadIn = 'Write only team artifacts under `.ai.local/team/**`. Do not edit production code.';
154
164
  }
155
- withNote = `${leadIn}\n\n${transformed}`;
165
+ withNote = `${leadIn}\n\n${rulesBlock}\n\n${transformed}`;
156
166
  }
157
167
  return `${header}${withNote.endsWith('\n') ? withNote : `${withNote}\n`}`;
158
168
  }
@@ -188,7 +198,7 @@ function transformCommand(sourceText, stack) {
188
198
  return `${header}${next.endsWith('\n') ? next : `${next}\n`}`;
189
199
  }
190
200
 
191
- function cursorMcpToOpencode(sourceText) {
201
+ function cursorMcpToOpencode(sourceText, profile, availableStems) {
192
202
  const parsed = JSON.parse(sourceText);
193
203
  const mcp = {};
194
204
  for (const [id, server] of Object.entries(parsed.mcpServers || {})) {
@@ -208,7 +218,25 @@ function cursorMcpToOpencode(sourceText) {
208
218
  mcp[id] = mapped;
209
219
  }
210
220
  }
211
- return `${JSON.stringify({ $schema: 'https://opencode.ai/config.json', mcp }, null, 2)}\n`;
221
+ // Compact instructions: always-on rule paths + .opencode/AGENTS.md (root
222
+ // AGENTS.md is auto-loaded natively). Filter to stems that exist for the
223
+ // stack so consumers don't see phantom references. Permission.bash enforces
224
+ // the harness-level "no commit/push" and JS-stack package-manager rules.
225
+ // mergeOpencodeConfig unions preset instruction paths and fills missing
226
+ // bash keys on re-init; consumer extras and same-key overrides win.
227
+ const instructions = [
228
+ '.opencode/AGENTS.md',
229
+ ...(profile?.alwaysOn ?? [])
230
+ .filter((stem) => availableStems?.has(stem))
231
+ .map((stem) => `.opencode/rules/${stem}.md`),
232
+ ];
233
+ const out = {
234
+ $schema: 'https://opencode.ai/config.json',
235
+ instructions,
236
+ permission: { bash: profile?.bashPermission ?? {} },
237
+ mcp,
238
+ };
239
+ return `${JSON.stringify(out, null, 2)}\n`;
212
240
  }
213
241
 
214
242
  function opencodeEntryTitle(sourceText) {
@@ -253,6 +281,19 @@ ${essential}
253
281
 
254
282
  See \`.opencode/rules/README.md\` for the full catalog and loading strategy.
255
283
 
284
+ ## Harness wiring
285
+
286
+ - \`opencode.json\` carries a compact \`instructions\` list (always-on rule
287
+ paths + \`.opencode/AGENTS.md\`) and a harness-level \`permission.bash\`
288
+ block. On re-init, \`mergeOpencodeConfig\` unions preset instruction paths
289
+ into the consumer list and fills missing bash keys. Extra paths and
290
+ same-key overrides stay.
291
+ - **Subagent rules** are re-declared inside every \`.opencode/agents/*.md\`
292
+ via the \`## Rules to load (subagent context)\` block (always-on + zone
293
+ rules filtered to stems that exist for this stack). \`Task\`-launched
294
+ subagents do not inherit the parent's \`instructions\`, so this block
295
+ is the authoritative mechanism.
296
+
256
297
  **Platform docs:** published with the \`@bonesofspring/ai-rules\` package
257
298
  (\`docs/OPENCODE.md\`, \`docs/OPENCODE-COMPATIBILITY.md\`) — **not** copied into
258
299
  the consumer repo. Source: https://github.com/bonesofspring/ai-rules
@@ -267,7 +308,8 @@ npx @bonesofspring/ai-rules init opencode --preset ${stack}
267
308
 
268
309
  Copies rules, commands, agents, hooks, skills, \`OPENCODE.md\` →
269
310
  \`.opencode/AGENTS.md\`, \`MCP.md\`, \`opencode.json\` → project \`opencode.json\`
270
- (\`mcp\` merge), plus \`REPO_AGENTS.md\` → root \`AGENTS.md\`. Seeds \`.ai.local/team/\`.
311
+ (\`mcp\` merge, instruction-path union, missing bash keys), plus
312
+ \`REPO_AGENTS.md\` → root \`AGENTS.md\`. Seeds \`.ai.local/team/\`.
271
313
  `;
272
314
  }
273
315
 
@@ -377,8 +419,13 @@ Plain Markdown. OpenCode does **not** auto-load these files. Root \`AGENTS.md\`
377
419
  and \`.opencode/AGENTS.md\` list four essential paths to Read immediately; the
378
420
  rest are lazy-loaded when the task matches.
379
421
 
380
- Do not put this catalog into \`opencode.json\` \`instructions\` as the only
381
- always-on path (V2 may ignore that field).
422
+ Subagent tasks (\`Task\`/\`@name\`) start blank and never read these rule files;
423
+ the **authoritative** mechanism is the \`## Rules to load (subagent context)\`
424
+ block injected into every \`.opencode/agents/*.md\`. The preset also adds a
425
+ compact \`opencode.json\` \`instructions\` list (alwaysOn paths +
426
+ \`.opencode/AGENTS.md\`) as a hedge for the parent context, with
427
+ \`bin/opencode-install.js\` filling-if-absent on re-init; do **not** treat
428
+ \`instructions\` as the only always-on path (V2 may ignore the field).
382
429
 
383
430
  ## Essential (entry-critical)
384
431
 
@@ -427,6 +474,16 @@ export function generateOpencodeStack(stack, { root = packageRoot } = {}) {
427
474
  const developerAgents = new Set(profile.developerAgents);
428
475
  const rewriteProse = (text) => finalizeOpencodeProse(text, stack);
429
476
 
477
+ const cursorRulesDir = path.join(root, 'presets', 'cursor', stack, 'rules');
478
+ const availableStems = new Set();
479
+ if (fs.existsSync(cursorRulesDir)) {
480
+ for (const entry of fs.readdirSync(cursorRulesDir)) {
481
+ if (entry.endsWith('.mdc')) {
482
+ availableStems.add(entry.slice(0, -'.mdc'.length));
483
+ }
484
+ }
485
+ }
486
+
430
487
  return deriveAdapterStack({
431
488
  platform: 'opencode',
432
489
  stack,
@@ -484,7 +541,7 @@ export function generateOpencodeStack(stack, { root = packageRoot } = {}) {
484
541
  match: (source) => source.startsWith('agents/') && source.endsWith('.md'),
485
542
  map: ({ source, sourceText }) => ({
486
543
  target: source,
487
- content: transformAgent(source, sourceText, stack, developerAgents),
544
+ content: transformAgent(source, sourceText, stack, developerAgents, profile, availableStems),
488
545
  category: 'agents',
489
546
  disposition: 'transform',
490
547
  loadMode: 'native-team',
@@ -534,11 +591,11 @@ export function generateOpencodeStack(stack, { root = packageRoot } = {}) {
534
591
  match: (source) => source === 'mcp.json',
535
592
  map: ({ sourceText }) => ({
536
593
  target: 'opencode.json',
537
- content: cursorMcpToOpencode(sourceText),
594
+ content: cursorMcpToOpencode(sourceText, profile, availableStems),
538
595
  category: 'mcp',
539
596
  disposition: 'transform',
540
597
  loadMode: 'manual',
541
- reason: 'Cursor mcp.json → opencode.json mcp (local/remote types)',
598
+ reason: 'Cursor mcp.json → opencode.json mcp (local/remote types); emits permission.bash + compact instructions',
542
599
  }),
543
600
  },
544
601
  {