@bonesofspring/ai-rules 0.2.26 → 0.2.27

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 (874) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1 -1
  4. package/bin/cli.js +262 -44
  5. package/bin/lib/safe-path.js +93 -0
  6. package/bin/lib/seed-ai-local-team.js +5 -0
  7. package/bin/mavis-install.js +35 -8
  8. package/bin/opencode-install.js +34 -11
  9. package/docs/LOCAL-OVERLAY.md +186 -0
  10. package/docs/MAVIS-COMPATIBILITY.md +174 -0
  11. package/docs/MAVIS.md +120 -0
  12. package/docs/OPENCODE-COMPATIBILITY.md +54 -0
  13. package/docs/OPENCODE.md +123 -0
  14. package/docs/PRESET-CONTRIBUTION.md +431 -0
  15. package/docs/PRESET-ENGLISH-STYLE.md +91 -0
  16. package/docs/specs/INDEX.md +9 -0
  17. package/docs/specs/_templates/feature.md +32 -0
  18. package/docs/specs/_templates/page.md +47 -0
  19. package/package.json +6 -1
  20. package/presets/_shared/core/meta/preset-layering.md +1 -1
  21. package/presets/_shared/core/meta/preset-pr-checklist.md +1 -1
  22. package/presets/_shared/core/meta/preset-token-budget.md +10 -10
  23. package/presets/_shared/core/quality/code-quality-and-refactoring.md +6 -0
  24. package/presets/claude/android-kotlin/agents/build-verifier.md +2 -2
  25. package/presets/claude/android-kotlin/commands/task.md +1 -1
  26. package/presets/claude/android-kotlin/hooks/chain-team-phases.sh +32 -3
  27. package/presets/claude/android-kotlin/hooks/examples/README.md +5 -3
  28. package/presets/claude/android-kotlin/hooks/examples/test-on-save.example.sh +6 -4
  29. package/presets/claude/android-kotlin/rules/README.md +1 -1
  30. package/presets/claude/android-kotlin/rules/tooling-and-review/code-quality.md +6 -0
  31. package/presets/claude/android-kotlin/rules/tooling-and-review/mcp-usage.md +1 -1
  32. package/presets/claude/android-kotlin/rules/tooling-and-review/preset-layering.md +2 -2
  33. package/presets/claude/android-kotlin/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
  34. package/presets/claude/android-kotlin/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  35. package/presets/claude/android-kotlin/rules/tooling-and-review/preset-token-budget.md +11 -11
  36. package/presets/claude/android-kotlin/rules/tooling-and-review/preset-twin-sync.md +1 -1
  37. package/presets/claude/android-kotlin/rules/ui-and-accessibility/compose.md +2 -0
  38. package/presets/claude/go/CLAUDE.md +1 -1
  39. package/presets/claude/go/agents/build-verifier.md +1 -1
  40. package/presets/claude/go/commands/task.md +1 -1
  41. package/presets/claude/go/hooks/chain-team-phases.sh +32 -3
  42. package/presets/claude/go/hooks/examples/README.md +5 -3
  43. package/presets/claude/go/rules/README.md +1 -1
  44. package/presets/claude/go/rules/api-and-data/adapters-driven.md +3 -3
  45. package/presets/claude/go/rules/api-and-data/adapters-driving.md +2 -2
  46. package/presets/claude/go/rules/api-and-data/api-grpc.md +2 -2
  47. package/presets/claude/go/rules/api-and-data/api-http.md +3 -3
  48. package/presets/claude/go/rules/api-and-data/messaging-adapters.md +1 -1
  49. package/presets/claude/go/rules/api-and-data/persistence-adapters.md +2 -2
  50. package/presets/claude/go/rules/architecture/application-usecases.md +1 -1
  51. package/presets/claude/go/rules/architecture/domain-layer.md +1 -1
  52. package/presets/claude/go/rules/architecture/feature-delivery.md +1 -1
  53. package/presets/claude/go/rules/architecture/ports-interfaces.md +2 -2
  54. package/presets/claude/go/rules/stack/go-conventions.md +1 -1
  55. package/presets/claude/go/rules/testing/e2e.md +2 -2
  56. package/presets/claude/go/rules/testing/integration.md +2 -2
  57. package/presets/claude/go/rules/testing/unit.md +1 -1
  58. package/presets/claude/go/rules/tooling-and-review/agent-team-intake.md +1 -1
  59. package/presets/claude/go/rules/tooling-and-review/agent-team-orchestrator.md +1 -1
  60. package/presets/claude/go/rules/tooling-and-review/code-quality.md +6 -0
  61. package/presets/claude/go/rules/tooling-and-review/code-review.md +1 -1
  62. package/presets/claude/go/rules/tooling-and-review/go-tooling.md +1 -1
  63. package/presets/claude/go/rules/tooling-and-review/mcp-usage.md +1 -1
  64. package/presets/claude/go/rules/tooling-and-review/post-change-test.md +1 -1
  65. package/presets/claude/go/rules/tooling-and-review/preset-layering.md +1 -1
  66. package/presets/claude/go/rules/tooling-and-review/preset-pr-checklist.md +1 -1
  67. package/presets/claude/go/rules/tooling-and-review/preset-token-budget.md +10 -10
  68. package/presets/claude/go/rules/tooling-and-review/security-go.md +3 -3
  69. package/presets/claude/go/rules/tooling-and-review/technical-retro.md +1 -1
  70. package/presets/claude/ios-swift/agents/build-verifier.md +3 -3
  71. package/presets/claude/ios-swift/commands/task.md +1 -1
  72. package/presets/claude/ios-swift/hooks/chain-team-phases.sh +32 -3
  73. package/presets/claude/ios-swift/hooks/examples/README.md +5 -3
  74. package/presets/claude/ios-swift/rules/README.md +1 -1
  75. package/presets/claude/ios-swift/rules/architecture/feature-delivery.md +3 -3
  76. package/presets/claude/ios-swift/rules/architecture/reference-features.md +1 -1
  77. package/presets/claude/ios-swift/rules/tooling-and-review/code-quality.md +6 -0
  78. package/presets/claude/ios-swift/rules/tooling-and-review/mcp-usage.md +1 -1
  79. package/presets/claude/ios-swift/rules/tooling-and-review/post-change-build.md +2 -2
  80. package/presets/claude/ios-swift/rules/tooling-and-review/preset-layering.md +2 -2
  81. package/presets/claude/ios-swift/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
  82. package/presets/claude/ios-swift/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  83. package/presets/claude/ios-swift/rules/tooling-and-review/preset-token-budget.md +11 -11
  84. package/presets/claude/ios-swift/rules/tooling-and-review/preset-twin-sync.md +1 -1
  85. package/presets/claude/ios-swift/rules/ui-and-accessibility/swiftui.md +7 -0
  86. package/presets/claude/java/CLAUDE.md +2 -2
  87. package/presets/claude/java/agents/build-verifier.md +1 -1
  88. package/presets/claude/java/commands/task.md +1 -1
  89. package/presets/claude/java/hooks/chain-team-phases.sh +32 -3
  90. package/presets/claude/java/hooks/examples/README.md +5 -3
  91. package/presets/claude/java/rules/README.md +1 -1
  92. package/presets/claude/java/rules/tooling-and-review/agent-team-orchestrator.md +1 -1
  93. package/presets/claude/java/rules/tooling-and-review/code-quality.md +6 -0
  94. package/presets/claude/java/rules/tooling-and-review/mcp-usage.md +1 -1
  95. package/presets/claude/java/rules/tooling-and-review/preset-layering.md +1 -1
  96. package/presets/claude/java/rules/tooling-and-review/preset-pr-checklist.md +1 -1
  97. package/presets/claude/java/rules/tooling-and-review/preset-token-budget.md +10 -10
  98. package/presets/claude/mcp-ts/CLAUDE.md +1 -1
  99. package/presets/claude/mcp-ts/agents/build-verifier.md +1 -1
  100. package/presets/claude/mcp-ts/commands/task.md +1 -1
  101. package/presets/claude/mcp-ts/hooks/chain-team-phases.sh +32 -3
  102. package/presets/claude/mcp-ts/rules/README.md +1 -1
  103. package/presets/claude/mcp-ts/rules/api-and-data/mcp-auth-secrets.md +4 -4
  104. package/presets/claude/mcp-ts/rules/api-and-data/mcp-contract-testing.md +2 -2
  105. package/presets/claude/mcp-ts/rules/api-and-data/mcp-tool-design.md +1 -1
  106. package/presets/claude/mcp-ts/rules/api-and-data/mcp-transport-packaging.md +2 -2
  107. package/presets/claude/mcp-ts/rules/architecture/mcp-server-boundaries.md +1 -1
  108. package/presets/claude/mcp-ts/rules/testing/unit.md +2 -2
  109. package/presets/claude/mcp-ts/rules/tooling-and-review/anti-sycophancy-discipline.md +2 -2
  110. package/presets/claude/mcp-ts/rules/tooling-and-review/code-quality.md +6 -0
  111. package/presets/claude/mcp-ts/rules/tooling-and-review/mcp-ts-tooling.md +3 -3
  112. package/presets/claude/mcp-ts/rules/tooling-and-review/post-change-test.md +1 -1
  113. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-layering.md +1 -1
  114. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-pr-checklist.md +1 -1
  115. package/presets/claude/mcp-ts/rules/tooling-and-review/preset-token-budget.md +10 -10
  116. package/presets/claude/mcp-ts/rules/tooling-and-review/security-mcp.md +1 -1
  117. package/presets/claude/next/README.md +1 -1
  118. package/presets/claude/next/agents/build-verifier.md +2 -2
  119. package/presets/claude/next/commands/task.md +1 -1
  120. package/presets/claude/next/hooks/chain-team-phases.sh +32 -3
  121. package/presets/claude/next/hooks/examples/README.md +5 -3
  122. package/presets/claude/next/rules/README.md +1 -1
  123. package/presets/claude/next/rules/api-and-data/api-services.md +6 -4
  124. package/presets/claude/next/rules/api-and-data/store-rtk.md +6 -5
  125. package/presets/claude/next/rules/architecture/feature-delivery-workflow.md +4 -0
  126. package/presets/claude/next/rules/architecture/reference-features.md +1 -1
  127. package/presets/claude/next/rules/stack/next-app-core.md +2 -1
  128. package/presets/claude/next/rules/testing/tests-unit.md +1 -0
  129. package/presets/claude/next/rules/tooling-and-review/code-quality.md +6 -0
  130. package/presets/claude/next/rules/tooling-and-review/preset-layering.md +2 -2
  131. package/presets/claude/next/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
  132. package/presets/claude/next/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  133. package/presets/claude/next/rules/tooling-and-review/preset-token-budget.md +11 -11
  134. package/presets/claude/next/rules/tooling-and-review/preset-twin-sync.md +1 -1
  135. package/presets/claude/next/rules/ui-and-accessibility/react-ui.md +37 -1
  136. package/presets/claude/next/team/fixtures/metrics-scenarios/tasks/human-gate/metrics.json +69 -0
  137. package/presets/claude/next/team/fixtures/metrics-scenarios/tasks/missing-ledger/status.json +5 -0
  138. package/presets/claude/next/team/fixtures/metrics-scenarios/tasks/parallel-receipts/metrics.json +79 -0
  139. package/presets/claude/next/team/fixtures/metrics-scenarios/tasks/serial-retry/metrics.json +124 -0
  140. package/presets/claude/next/team/fixtures/metrics-scenarios/tasks/validation-failed/metrics.json +124 -0
  141. package/presets/claude/next/team/fixtures/metrics.example.json +54 -0
  142. package/presets/claude/nuxt/agents/build-verifier.md +2 -2
  143. package/presets/claude/nuxt/commands/task.md +1 -1
  144. package/presets/claude/nuxt/hooks/chain-team-phases.sh +32 -3
  145. package/presets/claude/nuxt/hooks/examples/README.md +5 -3
  146. package/presets/claude/nuxt/hooks/examples/format-edited.example.sh +8 -7
  147. package/presets/claude/nuxt/hooks/examples/test-on-save.example.sh +8 -3
  148. package/presets/claude/nuxt/rules/README.md +1 -1
  149. package/presets/claude/nuxt/rules/architecture/layer-barrel-exports.md +1 -1
  150. package/presets/claude/nuxt/rules/architecture/reference-features.md +1 -1
  151. package/presets/claude/nuxt/rules/tooling-and-review/code-quality.md +6 -0
  152. package/presets/claude/nuxt/rules/tooling-and-review/preset-layering.md +2 -2
  153. package/presets/claude/nuxt/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
  154. package/presets/claude/nuxt/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  155. package/presets/claude/nuxt/rules/tooling-and-review/preset-token-budget.md +11 -11
  156. package/presets/claude/nuxt/rules/tooling-and-review/preset-twin-sync.md +1 -1
  157. package/presets/claude/nuxt/rules/ui-and-accessibility/vue-ui.md +7 -0
  158. package/presets/claude/nuxt/team/fixtures/metrics-scenarios/tasks/human-gate/metrics.json +69 -0
  159. package/presets/claude/nuxt/team/fixtures/metrics-scenarios/tasks/missing-ledger/status.json +5 -0
  160. package/presets/claude/nuxt/team/fixtures/metrics-scenarios/tasks/parallel-receipts/metrics.json +79 -0
  161. package/presets/claude/nuxt/team/fixtures/metrics-scenarios/tasks/serial-retry/metrics.json +124 -0
  162. package/presets/claude/nuxt/team/fixtures/metrics-scenarios/tasks/validation-failed/metrics.json +124 -0
  163. package/presets/claude/nuxt/team/fixtures/metrics.example.json +54 -0
  164. package/presets/claude/php-hexagonal/CLAUDE.md +2 -2
  165. package/presets/claude/php-hexagonal/agents/build-verifier.md +1 -1
  166. package/presets/claude/php-hexagonal/commands/task.md +1 -1
  167. package/presets/claude/php-hexagonal/hooks/chain-team-phases.sh +32 -3
  168. package/presets/claude/php-hexagonal/hooks/examples/README.md +5 -3
  169. package/presets/claude/php-hexagonal/rules/README.md +1 -1
  170. package/presets/claude/php-hexagonal/rules/tooling-and-review/agent-team-orchestrator.md +1 -1
  171. package/presets/claude/php-hexagonal/rules/tooling-and-review/code-quality.md +6 -0
  172. package/presets/claude/php-hexagonal/rules/tooling-and-review/mcp-usage.md +1 -1
  173. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-layering.md +1 -1
  174. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-pr-checklist.md +1 -1
  175. package/presets/claude/php-hexagonal/rules/tooling-and-review/preset-token-budget.md +10 -10
  176. package/presets/claude/php-laravel/agents/build-verifier.md +1 -1
  177. package/presets/claude/php-laravel/commands/task.md +1 -1
  178. package/presets/claude/php-laravel/hooks/chain-team-phases.sh +32 -3
  179. package/presets/claude/php-laravel/hooks/examples/README.md +5 -3
  180. package/presets/claude/php-laravel/rules/README.md +1 -1
  181. package/presets/claude/php-laravel/rules/tooling-and-review/agent-team-orchestrator.md +1 -1
  182. package/presets/claude/php-laravel/rules/tooling-and-review/code-quality.md +6 -0
  183. package/presets/claude/php-laravel/rules/tooling-and-review/mcp-usage.md +1 -1
  184. package/presets/claude/php-laravel/rules/tooling-and-review/preset-layering.md +1 -1
  185. package/presets/claude/php-laravel/rules/tooling-and-review/preset-pr-checklist.md +1 -1
  186. package/presets/claude/php-laravel/rules/tooling-and-review/preset-token-budget.md +10 -10
  187. package/presets/claude/svelte/agents/build-verifier.md +2 -2
  188. package/presets/claude/svelte/commands/task.md +1 -1
  189. package/presets/claude/svelte/hooks/chain-team-phases.sh +32 -3
  190. package/presets/claude/svelte/hooks/examples/README.md +5 -3
  191. package/presets/claude/svelte/rules/README.md +1 -1
  192. package/presets/claude/svelte/rules/api-and-data/store-svelte.md +1 -1
  193. package/presets/claude/svelte/rules/architecture/layer-barrel-exports.md +1 -1
  194. package/presets/claude/svelte/rules/architecture/reference-features.md +1 -1
  195. package/presets/claude/svelte/rules/tooling-and-review/code-quality.md +6 -0
  196. package/presets/claude/svelte/rules/tooling-and-review/mcp-usage.md +1 -1
  197. package/presets/claude/svelte/rules/tooling-and-review/preset-layering.md +2 -2
  198. package/presets/claude/svelte/rules/tooling-and-review/preset-no-cross-stack-leakage.md +1 -1
  199. package/presets/claude/svelte/rules/tooling-and-review/preset-pr-checklist.md +2 -2
  200. package/presets/claude/svelte/rules/tooling-and-review/preset-token-budget.md +11 -11
  201. package/presets/claude/svelte/rules/tooling-and-review/preset-twin-sync.md +1 -1
  202. package/presets/claude/svelte/rules/ui-and-accessibility/no-rest-props-spread.md +1 -1
  203. package/presets/claude/svelte/rules/ui-and-accessibility/svelte-ui.md +7 -0
  204. package/presets/claude/svelte/team/fixtures/metrics-scenarios/tasks/human-gate/metrics.json +69 -0
  205. package/presets/claude/svelte/team/fixtures/metrics-scenarios/tasks/missing-ledger/status.json +5 -0
  206. package/presets/claude/svelte/team/fixtures/metrics-scenarios/tasks/parallel-receipts/metrics.json +79 -0
  207. package/presets/claude/svelte/team/fixtures/metrics-scenarios/tasks/serial-retry/metrics.json +124 -0
  208. package/presets/claude/svelte/team/fixtures/metrics-scenarios/tasks/validation-failed/metrics.json +124 -0
  209. package/presets/claude/svelte/team/fixtures/metrics.example.json +54 -0
  210. package/presets/cursor/android-kotlin/agents/build-verifier.md +2 -2
  211. package/presets/cursor/android-kotlin/commands/task.md +1 -1
  212. package/presets/cursor/android-kotlin/hooks/chain-team-phases.sh +32 -3
  213. package/presets/cursor/android-kotlin/hooks/examples/test-on-save.example.sh +6 -4
  214. package/presets/cursor/android-kotlin/rules/README.md +1 -1
  215. package/presets/cursor/android-kotlin/rules/code-quality-and-refactoring.mdc +6 -0
  216. package/presets/cursor/android-kotlin/rules/compose-ui.mdc +2 -0
  217. package/presets/cursor/android-kotlin/rules/preset-layering.mdc +2 -2
  218. package/presets/cursor/android-kotlin/rules/preset-no-cross-stack-leakage.mdc +1 -1
  219. package/presets/cursor/android-kotlin/rules/preset-pr-checklist.mdc +2 -2
  220. package/presets/cursor/android-kotlin/rules/preset-token-budget.mdc +11 -11
  221. package/presets/cursor/android-kotlin/rules/preset-twin-sync.mdc +1 -1
  222. package/presets/cursor/go/README.md +1 -1
  223. package/presets/cursor/go/agents/build-verifier.md +1 -1
  224. package/presets/cursor/go/commands/task.md +1 -1
  225. package/presets/cursor/go/hooks/chain-team-phases.sh +32 -3
  226. package/presets/cursor/go/rules/README.md +2 -2
  227. package/presets/cursor/go/rules/code-quality-and-refactoring.mdc +6 -0
  228. package/presets/cursor/go/rules/preset-layering.mdc +1 -1
  229. package/presets/cursor/go/rules/preset-pr-checklist.mdc +1 -1
  230. package/presets/cursor/go/rules/preset-token-budget.mdc +10 -10
  231. package/presets/cursor/ios-swift/README.md +1 -1
  232. package/presets/cursor/ios-swift/agents/build-verifier.md +3 -3
  233. package/presets/cursor/ios-swift/commands/task.md +1 -1
  234. package/presets/cursor/ios-swift/hooks/chain-team-phases.sh +32 -3
  235. package/presets/cursor/ios-swift/rules/README.md +2 -2
  236. package/presets/cursor/ios-swift/rules/code-quality-and-refactoring.mdc +6 -0
  237. package/presets/cursor/ios-swift/rules/preset-layering.mdc +2 -2
  238. package/presets/cursor/ios-swift/rules/preset-no-cross-stack-leakage.mdc +1 -1
  239. package/presets/cursor/ios-swift/rules/preset-pr-checklist.mdc +2 -2
  240. package/presets/cursor/ios-swift/rules/preset-token-budget.mdc +11 -11
  241. package/presets/cursor/ios-swift/rules/preset-twin-sync.mdc +1 -1
  242. package/presets/cursor/ios-swift/rules/reference-features.mdc +1 -1
  243. package/presets/cursor/ios-swift/rules/swiftui-ui.mdc +7 -0
  244. package/presets/cursor/java/AGENTS.md +1 -1
  245. package/presets/cursor/java/agents/build-verifier.md +1 -1
  246. package/presets/cursor/java/commands/task.md +1 -1
  247. package/presets/cursor/java/hooks/chain-team-phases.sh +32 -3
  248. package/presets/cursor/java/rules/README.md +2 -2
  249. package/presets/cursor/java/rules/agent-team-orchestrator.mdc +1 -1
  250. package/presets/cursor/java/rules/code-quality-and-refactoring.mdc +6 -0
  251. package/presets/cursor/java/rules/preset-layering.mdc +1 -1
  252. package/presets/cursor/java/rules/preset-pr-checklist.mdc +1 -1
  253. package/presets/cursor/java/rules/preset-token-budget.mdc +10 -10
  254. package/presets/cursor/mcp-ts/agents/build-verifier.md +1 -1
  255. package/presets/cursor/mcp-ts/commands/task.md +1 -1
  256. package/presets/cursor/mcp-ts/hooks/chain-team-phases.sh +32 -3
  257. package/presets/cursor/mcp-ts/rules/README.md +2 -2
  258. package/presets/cursor/mcp-ts/rules/anti-sycophancy-discipline.mdc +2 -2
  259. package/presets/cursor/mcp-ts/rules/code-quality-and-refactoring.mdc +6 -0
  260. package/presets/cursor/mcp-ts/rules/mcp-auth-secrets.mdc +4 -4
  261. package/presets/cursor/mcp-ts/rules/mcp-contract-testing.mdc +2 -2
  262. package/presets/cursor/mcp-ts/rules/mcp-server-boundaries.mdc +1 -1
  263. package/presets/cursor/mcp-ts/rules/mcp-tool-design.mdc +1 -1
  264. package/presets/cursor/mcp-ts/rules/mcp-transport-packaging.mdc +2 -2
  265. package/presets/cursor/mcp-ts/rules/mcp-ts-tooling.mdc +3 -3
  266. package/presets/cursor/mcp-ts/rules/preset-layering.mdc +1 -1
  267. package/presets/cursor/mcp-ts/rules/preset-pr-checklist.mdc +1 -1
  268. package/presets/cursor/mcp-ts/rules/preset-token-budget.mdc +10 -10
  269. package/presets/cursor/mcp-ts/rules/security-mcp.mdc +1 -1
  270. package/presets/cursor/mcp-ts/rules/tests-unit.mdc +2 -2
  271. package/presets/cursor/next/README.md +2 -2
  272. package/presets/cursor/next/agents/build-verifier.md +2 -2
  273. package/presets/cursor/next/commands/task.md +1 -1
  274. package/presets/cursor/next/hooks/chain-team-phases.sh +32 -3
  275. package/presets/cursor/next/rules/README.md +1 -1
  276. package/presets/cursor/next/rules/api-services.mdc +6 -4
  277. package/presets/cursor/next/rules/code-quality-and-refactoring.mdc +6 -0
  278. package/presets/cursor/next/rules/feature-delivery-workflow.mdc +4 -0
  279. package/presets/cursor/next/rules/next-app-core.mdc +2 -1
  280. package/presets/cursor/next/rules/preset-layering.mdc +2 -2
  281. package/presets/cursor/next/rules/preset-no-cross-stack-leakage.mdc +1 -1
  282. package/presets/cursor/next/rules/preset-pr-checklist.mdc +2 -2
  283. package/presets/cursor/next/rules/preset-token-budget.mdc +11 -11
  284. package/presets/cursor/next/rules/preset-twin-sync.mdc +1 -1
  285. package/presets/cursor/next/rules/react-ui.mdc +37 -1
  286. package/presets/cursor/next/rules/reference-features.mdc +1 -1
  287. package/presets/cursor/next/rules/store-rtk.mdc +6 -5
  288. package/presets/cursor/next/rules/tests-unit.mdc +1 -0
  289. package/presets/cursor/nuxt/README.md +1 -1
  290. package/presets/cursor/nuxt/agents/build-verifier.md +2 -2
  291. package/presets/cursor/nuxt/commands/task.md +1 -1
  292. package/presets/cursor/nuxt/hooks/chain-team-phases.sh +32 -3
  293. package/presets/cursor/nuxt/hooks/examples/format-edited.example.sh +8 -7
  294. package/presets/cursor/nuxt/hooks/examples/test-on-save.example.sh +8 -3
  295. package/presets/cursor/nuxt/rules/anti-sycophancy-discipline.mdc +1 -1
  296. package/presets/cursor/nuxt/rules/code-quality-and-refactoring.mdc +6 -0
  297. package/presets/cursor/nuxt/rules/design-guidance.mdc +1 -1
  298. package/presets/cursor/nuxt/rules/layer-barrel-exports.mdc +1 -1
  299. package/presets/cursor/nuxt/rules/preset-layering.mdc +2 -2
  300. package/presets/cursor/nuxt/rules/preset-no-cross-stack-leakage.mdc +1 -1
  301. package/presets/cursor/nuxt/rules/preset-pr-checklist.mdc +2 -2
  302. package/presets/cursor/nuxt/rules/preset-token-budget.mdc +11 -11
  303. package/presets/cursor/nuxt/rules/preset-twin-sync.mdc +1 -1
  304. package/presets/cursor/nuxt/rules/reference-features.mdc +1 -1
  305. package/presets/cursor/nuxt/rules/vue-ui.mdc +7 -0
  306. package/presets/cursor/php-hexagonal/AGENTS.md +1 -1
  307. package/presets/cursor/php-hexagonal/agents/build-verifier.md +1 -1
  308. package/presets/cursor/php-hexagonal/commands/task.md +1 -1
  309. package/presets/cursor/php-hexagonal/hooks/chain-team-phases.sh +32 -3
  310. package/presets/cursor/php-hexagonal/rules/README.md +2 -2
  311. package/presets/cursor/php-hexagonal/rules/agent-team-orchestrator.mdc +1 -1
  312. package/presets/cursor/php-hexagonal/rules/code-quality-and-refactoring.mdc +6 -0
  313. package/presets/cursor/php-hexagonal/rules/preset-layering.mdc +1 -1
  314. package/presets/cursor/php-hexagonal/rules/preset-pr-checklist.mdc +1 -1
  315. package/presets/cursor/php-hexagonal/rules/preset-token-budget.mdc +10 -10
  316. package/presets/cursor/php-laravel/AGENTS.md +1 -1
  317. package/presets/cursor/php-laravel/agents/build-verifier.md +1 -1
  318. package/presets/cursor/php-laravel/commands/task.md +1 -1
  319. package/presets/cursor/php-laravel/hooks/chain-team-phases.sh +32 -3
  320. package/presets/cursor/php-laravel/rules/README.md +2 -2
  321. package/presets/cursor/php-laravel/rules/agent-team-orchestrator.mdc +1 -1
  322. package/presets/cursor/php-laravel/rules/code-quality-and-refactoring.mdc +6 -0
  323. package/presets/cursor/php-laravel/rules/preset-layering.mdc +1 -1
  324. package/presets/cursor/php-laravel/rules/preset-pr-checklist.mdc +1 -1
  325. package/presets/cursor/php-laravel/rules/preset-token-budget.mdc +10 -10
  326. package/presets/cursor/svelte/README.md +1 -1
  327. package/presets/cursor/svelte/agents/build-verifier.md +2 -2
  328. package/presets/cursor/svelte/commands/task.md +1 -1
  329. package/presets/cursor/svelte/hooks/chain-team-phases.sh +32 -3
  330. package/presets/cursor/svelte/rules/code-quality-and-refactoring.mdc +6 -0
  331. package/presets/cursor/svelte/rules/layer-barrel-exports.mdc +1 -1
  332. package/presets/cursor/svelte/rules/preset-layering.mdc +2 -2
  333. package/presets/cursor/svelte/rules/preset-no-cross-stack-leakage.mdc +1 -1
  334. package/presets/cursor/svelte/rules/preset-pr-checklist.mdc +2 -2
  335. package/presets/cursor/svelte/rules/preset-token-budget.mdc +11 -11
  336. package/presets/cursor/svelte/rules/preset-twin-sync.mdc +1 -1
  337. package/presets/cursor/svelte/rules/reference-features.mdc +1 -1
  338. package/presets/cursor/svelte/rules/svelte-ui.mdc +7 -0
  339. package/presets/mavis/android-kotlin/adapter-map.json +1 -1
  340. package/presets/mavis/android-kotlin/agents/build-verifier.md +2 -2
  341. package/presets/mavis/android-kotlin/commands/spec-start.md +2 -2
  342. package/presets/mavis/android-kotlin/commands/task.md +6 -6
  343. package/presets/mavis/android-kotlin/hooks/chain-team-phases.sh +32 -3
  344. package/presets/mavis/android-kotlin/rules/code-quality-and-refactoring.md +14 -0
  345. package/presets/mavis/android-kotlin/rules/code-review-mr.md +39 -0
  346. package/presets/mavis/android-kotlin/rules/compose-ui.md +2 -0
  347. package/presets/mavis/android-kotlin/rules/design-guidance.md +5 -0
  348. package/presets/mavis/android-kotlin/rules/mcp-usage.md +8 -0
  349. package/presets/mavis/android-kotlin/rules/mockup-review.md +4 -0
  350. package/presets/mavis/android-kotlin/rules/preset-layering.md +1 -1
  351. package/presets/mavis/android-kotlin/rules/preset-no-cross-stack-leakage.md +4 -0
  352. package/presets/mavis/android-kotlin/rules/preset-pr-checklist.md +1 -1
  353. package/presets/mavis/android-kotlin/rules/preset-token-budget.md +10 -10
  354. package/presets/mavis/android-kotlin/rules/product-specs-authoring.md +6 -0
  355. package/presets/mavis/android-kotlin/rules/product-specs.md +5 -0
  356. package/presets/mavis/android-kotlin/rules/ux-design.md +4 -0
  357. package/presets/mavis/android-kotlin/skills/debug-investigation/SKILL.md +39 -0
  358. package/presets/mavis/go/adapter-map.json +1 -1
  359. package/presets/mavis/go/agents/build-verifier.md +1 -1
  360. package/presets/mavis/go/commands/spec-start.md +2 -2
  361. package/presets/mavis/go/commands/task.md +6 -6
  362. package/presets/mavis/go/hooks/chain-team-phases.sh +32 -3
  363. package/presets/mavis/go/rules/agent-team-intake.md +4 -0
  364. package/presets/mavis/go/rules/code-quality-and-refactoring.md +15 -0
  365. package/presets/mavis/go/rules/code-review-mr.md +7 -0
  366. package/presets/mavis/go/rules/design-guidance.md +5 -0
  367. package/presets/mavis/go/rules/mcp-usage.md +7 -0
  368. package/presets/mavis/go/rules/preset-layering.md +1 -1
  369. package/presets/mavis/go/rules/preset-pr-checklist.md +1 -1
  370. package/presets/mavis/go/rules/preset-token-budget.md +10 -10
  371. package/presets/mavis/go/rules/product-specs-authoring.md +6 -0
  372. package/presets/mavis/go/rules/product-specs.md +6 -0
  373. package/presets/mavis/go/skills/debug-investigation/SKILL.md +20 -0
  374. package/presets/mavis/ios-swift/adapter-map.json +1 -1
  375. package/presets/mavis/ios-swift/agents/build-verifier.md +3 -3
  376. package/presets/mavis/ios-swift/commands/spec-start.md +2 -2
  377. package/presets/mavis/ios-swift/commands/task.md +6 -6
  378. package/presets/mavis/ios-swift/hooks/chain-team-phases.sh +32 -3
  379. package/presets/mavis/ios-swift/rules/code-quality-and-refactoring.md +14 -0
  380. package/presets/mavis/ios-swift/rules/code-review-mr.md +39 -0
  381. package/presets/mavis/ios-swift/rules/design-guidance.md +5 -0
  382. package/presets/mavis/ios-swift/rules/feature-delivery-workflow.md +66 -0
  383. package/presets/mavis/ios-swift/rules/mcp-usage.md +8 -0
  384. package/presets/mavis/ios-swift/rules/mockup-review.md +4 -0
  385. package/presets/mavis/ios-swift/rules/preset-layering.md +1 -1
  386. package/presets/mavis/ios-swift/rules/preset-pr-checklist.md +1 -1
  387. package/presets/mavis/ios-swift/rules/preset-token-budget.md +10 -10
  388. package/presets/mavis/ios-swift/rules/product-specs-authoring.md +6 -0
  389. package/presets/mavis/ios-swift/rules/product-specs.md +5 -0
  390. package/presets/mavis/ios-swift/rules/reference-features.md +49 -0
  391. package/presets/mavis/ios-swift/rules/swiftui-ui.md +7 -0
  392. package/presets/mavis/ios-swift/rules/ux-design.md +4 -0
  393. package/presets/mavis/ios-swift/skills/debug-investigation/SKILL.md +39 -0
  394. package/presets/mavis/java/adapter-map.json +1 -1
  395. package/presets/mavis/java/agents/build-verifier.md +1 -1
  396. package/presets/mavis/java/commands/spec-start.md +2 -2
  397. package/presets/mavis/java/commands/task.md +6 -6
  398. package/presets/mavis/java/hooks/chain-team-phases.sh +32 -3
  399. package/presets/mavis/java/rules/agent-team-intake.md +4 -0
  400. package/presets/mavis/java/rules/code-quality-and-refactoring.md +15 -0
  401. package/presets/mavis/java/rules/code-review-mr.md +9 -0
  402. package/presets/mavis/java/rules/design-guidance.md +6 -0
  403. package/presets/mavis/java/rules/mcp-usage.md +6 -0
  404. package/presets/mavis/java/rules/preset-layering.md +1 -1
  405. package/presets/mavis/java/rules/preset-pr-checklist.md +1 -1
  406. package/presets/mavis/java/rules/preset-token-budget.md +10 -10
  407. package/presets/mavis/java/rules/product-specs-authoring.md +6 -0
  408. package/presets/mavis/java/rules/product-specs.md +6 -0
  409. package/presets/mavis/java/skills/debug-investigation/SKILL.md +20 -0
  410. package/presets/mavis/mcp-ts/adapter-map.json +1 -1
  411. package/presets/mavis/mcp-ts/agents/build-verifier.md +1 -1
  412. package/presets/mavis/mcp-ts/commands/spec-start.md +2 -2
  413. package/presets/mavis/mcp-ts/commands/task.md +6 -6
  414. package/presets/mavis/mcp-ts/hooks/chain-team-phases.sh +32 -3
  415. package/presets/mavis/mcp-ts/rules/agent-team-intake.md +5 -0
  416. package/presets/mavis/mcp-ts/rules/anti-sycophancy-discipline.md +4 -0
  417. package/presets/mavis/mcp-ts/rules/code-quality-and-refactoring.md +15 -0
  418. package/presets/mavis/mcp-ts/rules/code-review-mr.md +6 -0
  419. package/presets/mavis/mcp-ts/rules/design-guidance.md +5 -0
  420. package/presets/mavis/mcp-ts/rules/mcp-usage.md +7 -0
  421. package/presets/mavis/mcp-ts/rules/preset-layering.md +1 -1
  422. package/presets/mavis/mcp-ts/rules/preset-pr-checklist.md +1 -1
  423. package/presets/mavis/mcp-ts/rules/preset-token-budget.md +10 -10
  424. package/presets/mavis/mcp-ts/rules/product-specs-authoring.md +6 -0
  425. package/presets/mavis/mcp-ts/rules/product-specs.md +6 -0
  426. package/presets/mavis/mcp-ts/skills/debug-investigation/SKILL.md +15 -0
  427. package/presets/mavis/next/adapter-map.json +1 -1
  428. package/presets/mavis/next/agents/build-verifier.md +2 -2
  429. package/presets/mavis/next/commands/spec-start.md +2 -2
  430. package/presets/mavis/next/commands/task.md +6 -6
  431. package/presets/mavis/next/hooks/chain-team-phases.sh +32 -3
  432. package/presets/mavis/next/rules/api-services.md +6 -4
  433. package/presets/mavis/next/rules/code-quality-and-refactoring.md +13 -0
  434. package/presets/mavis/next/rules/code-review-mr.md +13 -0
  435. package/presets/mavis/next/rules/design-guidance.md +5 -0
  436. package/presets/mavis/next/rules/feature-delivery-workflow.md +85 -0
  437. package/presets/mavis/next/rules/mcp-usage.md +9 -0
  438. package/presets/mavis/next/rules/mockup-review.md +4 -0
  439. package/presets/mavis/next/rules/next-app-core.md +2 -1
  440. package/presets/mavis/next/rules/preset-layering.md +1 -1
  441. package/presets/mavis/next/rules/preset-pr-checklist.md +1 -1
  442. package/presets/mavis/next/rules/preset-token-budget.md +10 -10
  443. package/presets/mavis/next/rules/product-specs-authoring.md +6 -0
  444. package/presets/mavis/next/rules/product-specs.md +6 -0
  445. package/presets/mavis/next/rules/react-ui.md +37 -1
  446. package/presets/mavis/next/rules/reference-features.md +36 -0
  447. package/presets/mavis/next/rules/store-rtk.md +6 -5
  448. package/presets/mavis/next/rules/tests-e2e-structure.md +15 -0
  449. package/presets/mavis/next/rules/tests-unit.md +33 -0
  450. package/presets/mavis/next/rules/ux-design.md +4 -0
  451. package/presets/mavis/next/skills/debug-investigation/SKILL.md +28 -0
  452. package/presets/mavis/nuxt/adapter-map.json +1 -1
  453. package/presets/mavis/nuxt/agents/build-verifier.md +2 -2
  454. package/presets/mavis/nuxt/commands/spec-start.md +2 -2
  455. package/presets/mavis/nuxt/commands/task.md +6 -6
  456. package/presets/mavis/nuxt/hooks/chain-team-phases.sh +32 -3
  457. package/presets/mavis/nuxt/rules/code-quality-and-refactoring.md +13 -0
  458. package/presets/mavis/nuxt/rules/code-review-mr.md +13 -0
  459. package/presets/mavis/nuxt/rules/design-guidance.md +5 -0
  460. package/presets/mavis/nuxt/rules/feature-delivery-workflow.md +82 -0
  461. package/presets/mavis/nuxt/rules/mcp-usage.md +9 -0
  462. package/presets/mavis/nuxt/rules/mockup-review.md +4 -0
  463. package/presets/mavis/nuxt/rules/preset-layering.md +1 -1
  464. package/presets/mavis/nuxt/rules/preset-pr-checklist.md +1 -1
  465. package/presets/mavis/nuxt/rules/preset-token-budget.md +10 -10
  466. package/presets/mavis/nuxt/rules/product-specs-authoring.md +6 -0
  467. package/presets/mavis/nuxt/rules/product-specs.md +5 -0
  468. package/presets/mavis/nuxt/rules/reference-features.md +36 -0
  469. package/presets/mavis/nuxt/rules/tests-e2e-structure.md +16 -0
  470. package/presets/mavis/nuxt/rules/tests-unit.md +11 -0
  471. package/presets/mavis/nuxt/rules/ux-design.md +4 -0
  472. package/presets/mavis/nuxt/rules/vue-ui.md +7 -0
  473. package/presets/mavis/nuxt/skills/debug-investigation/SKILL.md +30 -0
  474. package/presets/mavis/php-hexagonal/adapter-map.json +1 -1
  475. package/presets/mavis/php-hexagonal/agents/build-verifier.md +1 -1
  476. package/presets/mavis/php-hexagonal/commands/spec-start.md +2 -2
  477. package/presets/mavis/php-hexagonal/commands/task.md +6 -6
  478. package/presets/mavis/php-hexagonal/hooks/chain-team-phases.sh +32 -3
  479. package/presets/mavis/php-hexagonal/rules/agent-team-intake.md +4 -0
  480. package/presets/mavis/php-hexagonal/rules/code-quality-and-refactoring.md +15 -0
  481. package/presets/mavis/php-hexagonal/rules/code-review-mr.md +9 -0
  482. package/presets/mavis/php-hexagonal/rules/design-guidance.md +6 -0
  483. package/presets/mavis/php-hexagonal/rules/mcp-usage.md +6 -0
  484. package/presets/mavis/php-hexagonal/rules/preset-layering.md +1 -1
  485. package/presets/mavis/php-hexagonal/rules/preset-pr-checklist.md +1 -1
  486. package/presets/mavis/php-hexagonal/rules/preset-token-budget.md +10 -10
  487. package/presets/mavis/php-hexagonal/rules/product-specs-authoring.md +6 -0
  488. package/presets/mavis/php-hexagonal/rules/product-specs.md +6 -0
  489. package/presets/mavis/php-hexagonal/skills/debug-investigation/SKILL.md +20 -0
  490. package/presets/mavis/php-laravel/adapter-map.json +1 -1
  491. package/presets/mavis/php-laravel/agents/build-verifier.md +1 -1
  492. package/presets/mavis/php-laravel/commands/spec-start.md +2 -2
  493. package/presets/mavis/php-laravel/commands/task.md +6 -6
  494. package/presets/mavis/php-laravel/hooks/chain-team-phases.sh +32 -3
  495. package/presets/mavis/php-laravel/rules/agent-team-intake.md +4 -0
  496. package/presets/mavis/php-laravel/rules/code-quality-and-refactoring.md +15 -0
  497. package/presets/mavis/php-laravel/rules/code-review-mr.md +10 -0
  498. package/presets/mavis/php-laravel/rules/design-guidance.md +6 -0
  499. package/presets/mavis/php-laravel/rules/mcp-usage.md +6 -0
  500. package/presets/mavis/php-laravel/rules/preset-layering.md +1 -1
  501. package/presets/mavis/php-laravel/rules/preset-pr-checklist.md +1 -1
  502. package/presets/mavis/php-laravel/rules/preset-token-budget.md +10 -10
  503. package/presets/mavis/php-laravel/rules/product-specs-authoring.md +6 -0
  504. package/presets/mavis/php-laravel/rules/product-specs.md +6 -0
  505. package/presets/mavis/php-laravel/skills/debug-investigation/SKILL.md +20 -0
  506. package/presets/mavis/svelte/adapter-map.json +1 -1
  507. package/presets/mavis/svelte/agents/build-verifier.md +2 -2
  508. package/presets/mavis/svelte/commands/spec-start.md +2 -2
  509. package/presets/mavis/svelte/commands/task.md +6 -6
  510. package/presets/mavis/svelte/hooks/chain-team-phases.sh +32 -3
  511. package/presets/mavis/svelte/rules/code-quality-and-refactoring.md +13 -0
  512. package/presets/mavis/svelte/rules/code-review-mr.md +13 -0
  513. package/presets/mavis/svelte/rules/design-guidance.md +5 -0
  514. package/presets/mavis/svelte/rules/feature-delivery-workflow.md +54 -0
  515. package/presets/mavis/svelte/rules/mcp-usage.md +9 -0
  516. package/presets/mavis/svelte/rules/mockup-review.md +4 -0
  517. package/presets/mavis/svelte/rules/preset-layering.md +1 -1
  518. package/presets/mavis/svelte/rules/preset-pr-checklist.md +1 -1
  519. package/presets/mavis/svelte/rules/preset-token-budget.md +10 -10
  520. package/presets/mavis/svelte/rules/product-specs-authoring.md +6 -0
  521. package/presets/mavis/svelte/rules/product-specs.md +5 -0
  522. package/presets/mavis/svelte/rules/reference-features.md +37 -0
  523. package/presets/mavis/svelte/rules/svelte-ui.md +7 -0
  524. package/presets/mavis/svelte/rules/tests-e2e-structure.md +16 -0
  525. package/presets/mavis/svelte/rules/tests-unit.md +11 -0
  526. package/presets/mavis/svelte/rules/ux-design.md +4 -0
  527. package/presets/mavis/svelte/skills/debug-investigation/SKILL.md +30 -0
  528. package/presets/opencode/android-kotlin/adapter-map.json +1 -1
  529. package/presets/opencode/android-kotlin/agents/build-verifier.md +2 -2
  530. package/presets/opencode/android-kotlin/commands/spec-start.md +1 -1
  531. package/presets/opencode/android-kotlin/commands/task-continue.md +1 -1
  532. package/presets/opencode/android-kotlin/commands/task.md +1 -1
  533. package/presets/opencode/android-kotlin/commands/technical-retro.md +1 -1
  534. package/presets/opencode/android-kotlin/hooks/chain-team-phases.sh +32 -3
  535. package/presets/opencode/android-kotlin/rules/code-quality-and-refactoring.md +14 -0
  536. package/presets/opencode/android-kotlin/rules/code-review-mr.md +39 -0
  537. package/presets/opencode/android-kotlin/rules/compose-ui.md +2 -0
  538. package/presets/opencode/android-kotlin/rules/design-guidance.md +5 -0
  539. package/presets/opencode/android-kotlin/rules/mcp-usage.md +8 -0
  540. package/presets/opencode/android-kotlin/rules/mockup-review.md +4 -0
  541. package/presets/opencode/android-kotlin/rules/preset-layering.md +1 -1
  542. package/presets/opencode/android-kotlin/rules/preset-no-cross-stack-leakage.md +4 -0
  543. package/presets/opencode/android-kotlin/rules/preset-pr-checklist.md +1 -1
  544. package/presets/opencode/android-kotlin/rules/preset-token-budget.md +10 -10
  545. package/presets/opencode/android-kotlin/rules/product-specs-authoring.md +6 -0
  546. package/presets/opencode/android-kotlin/rules/product-specs.md +5 -0
  547. package/presets/opencode/android-kotlin/rules/ux-design.md +4 -0
  548. package/presets/opencode/android-kotlin/skills/ci-investigation/SKILL.md +1 -1
  549. package/presets/opencode/android-kotlin/skills/code-review/SKILL.md +1 -1
  550. package/presets/opencode/android-kotlin/skills/debug-investigation/SKILL.md +1 -1
  551. package/presets/opencode/android-kotlin/skills/feature-delivery/SKILL.md +1 -1
  552. package/presets/opencode/android-kotlin/skills/instrumentation-ui-e2e/SKILL.md +1 -1
  553. package/presets/opencode/android-kotlin/skills/mockup-review/SKILL.md +1 -1
  554. package/presets/opencode/android-kotlin/skills/spec-authoring/SKILL.md +1 -1
  555. package/presets/opencode/android-kotlin/skills/spec-discovery/SKILL.md +1 -1
  556. package/presets/opencode/android-kotlin/skills/technical-retro/SKILL.md +1 -1
  557. package/presets/opencode/android-kotlin/skills/unit-testing/SKILL.md +1 -1
  558. package/presets/opencode/android-kotlin/skills/ux-design/SKILL.md +1 -1
  559. package/presets/opencode/android-kotlin/skills/write-adr/SKILL.md +1 -1
  560. package/presets/opencode/go/adapter-map.json +1 -1
  561. package/presets/opencode/go/agents/build-verifier.md +1 -1
  562. package/presets/opencode/go/commands/spec-start.md +1 -1
  563. package/presets/opencode/go/commands/task-continue.md +1 -1
  564. package/presets/opencode/go/commands/task.md +1 -1
  565. package/presets/opencode/go/commands/technical-retro.md +1 -1
  566. package/presets/opencode/go/hooks/chain-team-phases.sh +32 -3
  567. package/presets/opencode/go/rules/agent-team-intake.md +4 -0
  568. package/presets/opencode/go/rules/code-quality-and-refactoring.md +15 -0
  569. package/presets/opencode/go/rules/code-review-mr.md +7 -0
  570. package/presets/opencode/go/rules/design-guidance.md +5 -0
  571. package/presets/opencode/go/rules/mcp-usage.md +7 -0
  572. package/presets/opencode/go/rules/preset-layering.md +1 -1
  573. package/presets/opencode/go/rules/preset-pr-checklist.md +1 -1
  574. package/presets/opencode/go/rules/preset-token-budget.md +10 -10
  575. package/presets/opencode/go/rules/product-specs-authoring.md +6 -0
  576. package/presets/opencode/go/rules/product-specs.md +6 -0
  577. package/presets/opencode/go/skills/ci-investigation/SKILL.md +1 -1
  578. package/presets/opencode/go/skills/code-review/SKILL.md +1 -1
  579. package/presets/opencode/go/skills/debug-investigation/SKILL.md +1 -1
  580. package/presets/opencode/go/skills/feature-delivery/SKILL.md +1 -1
  581. package/presets/opencode/go/skills/integration-testing/SKILL.md +1 -1
  582. package/presets/opencode/go/skills/spec-authoring/SKILL.md +1 -1
  583. package/presets/opencode/go/skills/spec-discovery/SKILL.md +1 -1
  584. package/presets/opencode/go/skills/technical-retro/SKILL.md +1 -1
  585. package/presets/opencode/go/skills/unit-testing/SKILL.md +1 -1
  586. package/presets/opencode/go/skills/write-adr/SKILL.md +1 -1
  587. package/presets/opencode/ios-swift/adapter-map.json +1 -1
  588. package/presets/opencode/ios-swift/agents/build-verifier.md +3 -3
  589. package/presets/opencode/ios-swift/commands/spec-start.md +1 -1
  590. package/presets/opencode/ios-swift/commands/task-continue.md +1 -1
  591. package/presets/opencode/ios-swift/commands/task.md +1 -1
  592. package/presets/opencode/ios-swift/commands/technical-retro.md +1 -1
  593. package/presets/opencode/ios-swift/hooks/chain-team-phases.sh +32 -3
  594. package/presets/opencode/ios-swift/rules/code-quality-and-refactoring.md +14 -0
  595. package/presets/opencode/ios-swift/rules/code-review-mr.md +39 -0
  596. package/presets/opencode/ios-swift/rules/design-guidance.md +5 -0
  597. package/presets/opencode/ios-swift/rules/feature-delivery-workflow.md +66 -0
  598. package/presets/opencode/ios-swift/rules/mcp-usage.md +8 -0
  599. package/presets/opencode/ios-swift/rules/mockup-review.md +4 -0
  600. package/presets/opencode/ios-swift/rules/preset-layering.md +1 -1
  601. package/presets/opencode/ios-swift/rules/preset-pr-checklist.md +1 -1
  602. package/presets/opencode/ios-swift/rules/preset-token-budget.md +10 -10
  603. package/presets/opencode/ios-swift/rules/product-specs-authoring.md +6 -0
  604. package/presets/opencode/ios-swift/rules/product-specs.md +5 -0
  605. package/presets/opencode/ios-swift/rules/reference-features.md +49 -0
  606. package/presets/opencode/ios-swift/rules/swiftui-ui.md +7 -0
  607. package/presets/opencode/ios-swift/rules/ux-design.md +4 -0
  608. package/presets/opencode/ios-swift/skills/ci-investigation/SKILL.md +1 -1
  609. package/presets/opencode/ios-swift/skills/code-review/SKILL.md +1 -1
  610. package/presets/opencode/ios-swift/skills/debug-investigation/SKILL.md +1 -1
  611. package/presets/opencode/ios-swift/skills/feature-delivery/SKILL.md +1 -1
  612. package/presets/opencode/ios-swift/skills/mockup-review/SKILL.md +1 -1
  613. package/presets/opencode/ios-swift/skills/spec-authoring/SKILL.md +1 -1
  614. package/presets/opencode/ios-swift/skills/spec-discovery/SKILL.md +1 -1
  615. package/presets/opencode/ios-swift/skills/technical-retro/SKILL.md +1 -1
  616. package/presets/opencode/ios-swift/skills/unit-testing/SKILL.md +1 -1
  617. package/presets/opencode/ios-swift/skills/ux-design/SKILL.md +1 -1
  618. package/presets/opencode/ios-swift/skills/write-adr/SKILL.md +1 -1
  619. package/presets/opencode/ios-swift/skills/xcuitest-e2e/SKILL.md +1 -1
  620. package/presets/opencode/java/adapter-map.json +1 -1
  621. package/presets/opencode/java/agents/build-verifier.md +1 -1
  622. package/presets/opencode/java/commands/spec-start.md +1 -1
  623. package/presets/opencode/java/commands/task-continue.md +1 -1
  624. package/presets/opencode/java/commands/task.md +1 -1
  625. package/presets/opencode/java/commands/technical-retro.md +1 -1
  626. package/presets/opencode/java/hooks/chain-team-phases.sh +32 -3
  627. package/presets/opencode/java/rules/agent-team-intake.md +4 -0
  628. package/presets/opencode/java/rules/code-quality-and-refactoring.md +15 -0
  629. package/presets/opencode/java/rules/code-review-mr.md +9 -0
  630. package/presets/opencode/java/rules/design-guidance.md +6 -0
  631. package/presets/opencode/java/rules/mcp-usage.md +6 -0
  632. package/presets/opencode/java/rules/preset-layering.md +1 -1
  633. package/presets/opencode/java/rules/preset-pr-checklist.md +1 -1
  634. package/presets/opencode/java/rules/preset-token-budget.md +10 -10
  635. package/presets/opencode/java/rules/product-specs-authoring.md +6 -0
  636. package/presets/opencode/java/rules/product-specs.md +6 -0
  637. package/presets/opencode/java/skills/ci-investigation/SKILL.md +1 -1
  638. package/presets/opencode/java/skills/code-review/SKILL.md +1 -1
  639. package/presets/opencode/java/skills/debug-investigation/SKILL.md +1 -1
  640. package/presets/opencode/java/skills/feature-delivery/SKILL.md +1 -1
  641. package/presets/opencode/java/skills/integration-testing/SKILL.md +1 -1
  642. package/presets/opencode/java/skills/spec-authoring/SKILL.md +1 -1
  643. package/presets/opencode/java/skills/spec-discovery/SKILL.md +1 -1
  644. package/presets/opencode/java/skills/technical-retro/SKILL.md +1 -1
  645. package/presets/opencode/java/skills/unit-testing/SKILL.md +1 -1
  646. package/presets/opencode/java/skills/write-adr/SKILL.md +1 -1
  647. package/presets/opencode/mcp-ts/adapter-map.json +1 -1
  648. package/presets/opencode/mcp-ts/agents/build-verifier.md +1 -1
  649. package/presets/opencode/mcp-ts/commands/spec-start.md +1 -1
  650. package/presets/opencode/mcp-ts/commands/task-continue.md +1 -1
  651. package/presets/opencode/mcp-ts/commands/task.md +1 -1
  652. package/presets/opencode/mcp-ts/commands/technical-retro.md +1 -1
  653. package/presets/opencode/mcp-ts/hooks/chain-team-phases.sh +32 -3
  654. package/presets/opencode/mcp-ts/rules/agent-team-intake.md +5 -0
  655. package/presets/opencode/mcp-ts/rules/anti-sycophancy-discipline.md +4 -0
  656. package/presets/opencode/mcp-ts/rules/code-quality-and-refactoring.md +15 -0
  657. package/presets/opencode/mcp-ts/rules/code-review-mr.md +6 -0
  658. package/presets/opencode/mcp-ts/rules/design-guidance.md +5 -0
  659. package/presets/opencode/mcp-ts/rules/mcp-usage.md +7 -0
  660. package/presets/opencode/mcp-ts/rules/preset-layering.md +1 -1
  661. package/presets/opencode/mcp-ts/rules/preset-pr-checklist.md +1 -1
  662. package/presets/opencode/mcp-ts/rules/preset-token-budget.md +10 -10
  663. package/presets/opencode/mcp-ts/rules/product-specs-authoring.md +6 -0
  664. package/presets/opencode/mcp-ts/rules/product-specs.md +6 -0
  665. package/presets/opencode/mcp-ts/skills/code-review/SKILL.md +1 -1
  666. package/presets/opencode/mcp-ts/skills/debug-investigation/SKILL.md +1 -1
  667. package/presets/opencode/mcp-ts/skills/feature-delivery/SKILL.md +1 -1
  668. package/presets/opencode/mcp-ts/skills/spec-authoring/SKILL.md +1 -1
  669. package/presets/opencode/mcp-ts/skills/spec-discovery/SKILL.md +1 -1
  670. package/presets/opencode/mcp-ts/skills/unit-testing/SKILL.md +1 -1
  671. package/presets/opencode/next/adapter-map.json +1 -1
  672. package/presets/opencode/next/agents/build-verifier.md +2 -2
  673. package/presets/opencode/next/commands/spec-start.md +1 -1
  674. package/presets/opencode/next/commands/task-continue.md +1 -1
  675. package/presets/opencode/next/commands/task.md +1 -1
  676. package/presets/opencode/next/commands/technical-retro.md +1 -1
  677. package/presets/opencode/next/hooks/chain-team-phases.sh +32 -3
  678. package/presets/opencode/next/rules/api-services.md +6 -4
  679. package/presets/opencode/next/rules/code-quality-and-refactoring.md +13 -0
  680. package/presets/opencode/next/rules/code-review-mr.md +13 -0
  681. package/presets/opencode/next/rules/design-guidance.md +5 -0
  682. package/presets/opencode/next/rules/feature-delivery-workflow.md +85 -0
  683. package/presets/opencode/next/rules/mcp-usage.md +9 -0
  684. package/presets/opencode/next/rules/mockup-review.md +4 -0
  685. package/presets/opencode/next/rules/next-app-core.md +2 -1
  686. package/presets/opencode/next/rules/preset-layering.md +1 -1
  687. package/presets/opencode/next/rules/preset-pr-checklist.md +1 -1
  688. package/presets/opencode/next/rules/preset-token-budget.md +10 -10
  689. package/presets/opencode/next/rules/product-specs-authoring.md +6 -0
  690. package/presets/opencode/next/rules/product-specs.md +6 -0
  691. package/presets/opencode/next/rules/react-ui.md +37 -1
  692. package/presets/opencode/next/rules/reference-features.md +36 -0
  693. package/presets/opencode/next/rules/store-rtk.md +6 -5
  694. package/presets/opencode/next/rules/tests-e2e-structure.md +15 -0
  695. package/presets/opencode/next/rules/tests-unit.md +33 -0
  696. package/presets/opencode/next/rules/ux-design.md +4 -0
  697. package/presets/opencode/next/skills/ci-investigation/SKILL.md +1 -1
  698. package/presets/opencode/next/skills/code-review/SKILL.md +1 -1
  699. package/presets/opencode/next/skills/debug-investigation/SKILL.md +1 -1
  700. package/presets/opencode/next/skills/feature-delivery/SKILL.md +1 -1
  701. package/presets/opencode/next/skills/mockup-review/SKILL.md +1 -1
  702. package/presets/opencode/next/skills/playwright-e2e/SKILL.md +1 -1
  703. package/presets/opencode/next/skills/react-performance/SKILL.md +1 -1
  704. package/presets/opencode/next/skills/spec-authoring/SKILL.md +1 -1
  705. package/presets/opencode/next/skills/spec-discovery/SKILL.md +1 -1
  706. package/presets/opencode/next/skills/technical-retro/SKILL.md +1 -1
  707. package/presets/opencode/next/skills/unit-testing/SKILL.md +1 -1
  708. package/presets/opencode/next/skills/ux-design/SKILL.md +1 -1
  709. package/presets/opencode/next/skills/write-adr/SKILL.md +1 -1
  710. package/presets/opencode/nuxt/adapter-map.json +1 -1
  711. package/presets/opencode/nuxt/agents/build-verifier.md +2 -2
  712. package/presets/opencode/nuxt/commands/spec-start.md +1 -1
  713. package/presets/opencode/nuxt/commands/task-continue.md +1 -1
  714. package/presets/opencode/nuxt/commands/task.md +1 -1
  715. package/presets/opencode/nuxt/commands/technical-retro.md +1 -1
  716. package/presets/opencode/nuxt/hooks/chain-team-phases.sh +32 -3
  717. package/presets/opencode/nuxt/rules/code-quality-and-refactoring.md +13 -0
  718. package/presets/opencode/nuxt/rules/code-review-mr.md +13 -0
  719. package/presets/opencode/nuxt/rules/design-guidance.md +5 -0
  720. package/presets/opencode/nuxt/rules/feature-delivery-workflow.md +82 -0
  721. package/presets/opencode/nuxt/rules/mcp-usage.md +9 -0
  722. package/presets/opencode/nuxt/rules/mockup-review.md +4 -0
  723. package/presets/opencode/nuxt/rules/preset-layering.md +1 -1
  724. package/presets/opencode/nuxt/rules/preset-pr-checklist.md +1 -1
  725. package/presets/opencode/nuxt/rules/preset-token-budget.md +10 -10
  726. package/presets/opencode/nuxt/rules/product-specs-authoring.md +6 -0
  727. package/presets/opencode/nuxt/rules/product-specs.md +5 -0
  728. package/presets/opencode/nuxt/rules/reference-features.md +36 -0
  729. package/presets/opencode/nuxt/rules/tests-e2e-structure.md +16 -0
  730. package/presets/opencode/nuxt/rules/tests-unit.md +11 -0
  731. package/presets/opencode/nuxt/rules/ux-design.md +4 -0
  732. package/presets/opencode/nuxt/rules/vue-ui.md +7 -0
  733. package/presets/opencode/nuxt/skills/ci-investigation/SKILL.md +1 -1
  734. package/presets/opencode/nuxt/skills/code-review/SKILL.md +1 -1
  735. package/presets/opencode/nuxt/skills/debug-investigation/SKILL.md +1 -1
  736. package/presets/opencode/nuxt/skills/feature-delivery/SKILL.md +1 -1
  737. package/presets/opencode/nuxt/skills/mockup-review/SKILL.md +1 -1
  738. package/presets/opencode/nuxt/skills/playwright-e2e/SKILL.md +1 -1
  739. package/presets/opencode/nuxt/skills/spec-authoring/SKILL.md +1 -1
  740. package/presets/opencode/nuxt/skills/spec-discovery/SKILL.md +1 -1
  741. package/presets/opencode/nuxt/skills/technical-retro/SKILL.md +1 -1
  742. package/presets/opencode/nuxt/skills/unit-testing/SKILL.md +1 -1
  743. package/presets/opencode/nuxt/skills/ux-design/SKILL.md +1 -1
  744. package/presets/opencode/nuxt/skills/vue-performance/SKILL.md +1 -1
  745. package/presets/opencode/nuxt/skills/write-adr/SKILL.md +1 -1
  746. package/presets/opencode/php-hexagonal/adapter-map.json +1 -1
  747. package/presets/opencode/php-hexagonal/agents/build-verifier.md +1 -1
  748. package/presets/opencode/php-hexagonal/commands/spec-start.md +1 -1
  749. package/presets/opencode/php-hexagonal/commands/task-continue.md +1 -1
  750. package/presets/opencode/php-hexagonal/commands/task.md +1 -1
  751. package/presets/opencode/php-hexagonal/commands/technical-retro.md +1 -1
  752. package/presets/opencode/php-hexagonal/hooks/chain-team-phases.sh +32 -3
  753. package/presets/opencode/php-hexagonal/rules/agent-team-intake.md +4 -0
  754. package/presets/opencode/php-hexagonal/rules/code-quality-and-refactoring.md +15 -0
  755. package/presets/opencode/php-hexagonal/rules/code-review-mr.md +9 -0
  756. package/presets/opencode/php-hexagonal/rules/design-guidance.md +6 -0
  757. package/presets/opencode/php-hexagonal/rules/mcp-usage.md +6 -0
  758. package/presets/opencode/php-hexagonal/rules/preset-layering.md +1 -1
  759. package/presets/opencode/php-hexagonal/rules/preset-pr-checklist.md +1 -1
  760. package/presets/opencode/php-hexagonal/rules/preset-token-budget.md +10 -10
  761. package/presets/opencode/php-hexagonal/rules/product-specs-authoring.md +6 -0
  762. package/presets/opencode/php-hexagonal/rules/product-specs.md +6 -0
  763. package/presets/opencode/php-hexagonal/skills/ci-investigation/SKILL.md +1 -1
  764. package/presets/opencode/php-hexagonal/skills/code-review/SKILL.md +1 -1
  765. package/presets/opencode/php-hexagonal/skills/debug-investigation/SKILL.md +1 -1
  766. package/presets/opencode/php-hexagonal/skills/feature-delivery/SKILL.md +1 -1
  767. package/presets/opencode/php-hexagonal/skills/integration-testing/SKILL.md +1 -1
  768. package/presets/opencode/php-hexagonal/skills/spec-authoring/SKILL.md +1 -1
  769. package/presets/opencode/php-hexagonal/skills/spec-discovery/SKILL.md +1 -1
  770. package/presets/opencode/php-hexagonal/skills/technical-retro/SKILL.md +1 -1
  771. package/presets/opencode/php-hexagonal/skills/unit-testing/SKILL.md +1 -1
  772. package/presets/opencode/php-hexagonal/skills/write-adr/SKILL.md +1 -1
  773. package/presets/opencode/php-laravel/adapter-map.json +1 -1
  774. package/presets/opencode/php-laravel/agents/build-verifier.md +1 -1
  775. package/presets/opencode/php-laravel/commands/spec-start.md +1 -1
  776. package/presets/opencode/php-laravel/commands/task-continue.md +1 -1
  777. package/presets/opencode/php-laravel/commands/task.md +1 -1
  778. package/presets/opencode/php-laravel/commands/technical-retro.md +1 -1
  779. package/presets/opencode/php-laravel/hooks/chain-team-phases.sh +32 -3
  780. package/presets/opencode/php-laravel/rules/agent-team-intake.md +4 -0
  781. package/presets/opencode/php-laravel/rules/code-quality-and-refactoring.md +15 -0
  782. package/presets/opencode/php-laravel/rules/code-review-mr.md +10 -0
  783. package/presets/opencode/php-laravel/rules/design-guidance.md +6 -0
  784. package/presets/opencode/php-laravel/rules/mcp-usage.md +6 -0
  785. package/presets/opencode/php-laravel/rules/preset-layering.md +1 -1
  786. package/presets/opencode/php-laravel/rules/preset-pr-checklist.md +1 -1
  787. package/presets/opencode/php-laravel/rules/preset-token-budget.md +10 -10
  788. package/presets/opencode/php-laravel/rules/product-specs-authoring.md +6 -0
  789. package/presets/opencode/php-laravel/rules/product-specs.md +6 -0
  790. package/presets/opencode/php-laravel/skills/ci-investigation/SKILL.md +1 -1
  791. package/presets/opencode/php-laravel/skills/code-review/SKILL.md +1 -1
  792. package/presets/opencode/php-laravel/skills/debug-investigation/SKILL.md +1 -1
  793. package/presets/opencode/php-laravel/skills/feature-delivery/SKILL.md +1 -1
  794. package/presets/opencode/php-laravel/skills/integration-testing/SKILL.md +1 -1
  795. package/presets/opencode/php-laravel/skills/spec-authoring/SKILL.md +1 -1
  796. package/presets/opencode/php-laravel/skills/spec-discovery/SKILL.md +1 -1
  797. package/presets/opencode/php-laravel/skills/technical-retro/SKILL.md +1 -1
  798. package/presets/opencode/php-laravel/skills/unit-testing/SKILL.md +1 -1
  799. package/presets/opencode/php-laravel/skills/write-adr/SKILL.md +1 -1
  800. package/presets/opencode/svelte/adapter-map.json +1 -1
  801. package/presets/opencode/svelte/agents/build-verifier.md +2 -2
  802. package/presets/opencode/svelte/commands/spec-start.md +1 -1
  803. package/presets/opencode/svelte/commands/task-continue.md +1 -1
  804. package/presets/opencode/svelte/commands/task.md +1 -1
  805. package/presets/opencode/svelte/commands/technical-retro.md +1 -1
  806. package/presets/opencode/svelte/hooks/chain-team-phases.sh +32 -3
  807. package/presets/opencode/svelte/rules/code-quality-and-refactoring.md +13 -0
  808. package/presets/opencode/svelte/rules/code-review-mr.md +13 -0
  809. package/presets/opencode/svelte/rules/design-guidance.md +5 -0
  810. package/presets/opencode/svelte/rules/feature-delivery-workflow.md +54 -0
  811. package/presets/opencode/svelte/rules/mcp-usage.md +9 -0
  812. package/presets/opencode/svelte/rules/mockup-review.md +4 -0
  813. package/presets/opencode/svelte/rules/preset-layering.md +1 -1
  814. package/presets/opencode/svelte/rules/preset-pr-checklist.md +1 -1
  815. package/presets/opencode/svelte/rules/preset-token-budget.md +10 -10
  816. package/presets/opencode/svelte/rules/product-specs-authoring.md +6 -0
  817. package/presets/opencode/svelte/rules/product-specs.md +5 -0
  818. package/presets/opencode/svelte/rules/reference-features.md +37 -0
  819. package/presets/opencode/svelte/rules/svelte-ui.md +7 -0
  820. package/presets/opencode/svelte/rules/tests-e2e-structure.md +16 -0
  821. package/presets/opencode/svelte/rules/tests-unit.md +11 -0
  822. package/presets/opencode/svelte/rules/ux-design.md +4 -0
  823. package/presets/opencode/svelte/skills/ci-investigation/SKILL.md +1 -1
  824. package/presets/opencode/svelte/skills/code-review/SKILL.md +1 -1
  825. package/presets/opencode/svelte/skills/debug-investigation/SKILL.md +1 -1
  826. package/presets/opencode/svelte/skills/feature-delivery/SKILL.md +1 -1
  827. package/presets/opencode/svelte/skills/mockup-review/SKILL.md +1 -1
  828. package/presets/opencode/svelte/skills/playwright-e2e/SKILL.md +1 -1
  829. package/presets/opencode/svelte/skills/spec-authoring/SKILL.md +1 -1
  830. package/presets/opencode/svelte/skills/spec-discovery/SKILL.md +1 -1
  831. package/presets/opencode/svelte/skills/svelte-performance/SKILL.md +1 -1
  832. package/presets/opencode/svelte/skills/technical-retro/SKILL.md +1 -1
  833. package/presets/opencode/svelte/skills/unit-testing/SKILL.md +1 -1
  834. package/presets/opencode/svelte/skills/ux-design/SKILL.md +1 -1
  835. package/presets/opencode/svelte/skills/write-adr/SKILL.md +1 -1
  836. package/scripts/capture-cli-golden.mjs +8 -5
  837. package/scripts/check-frontmatter.mjs +83 -0
  838. package/scripts/check-generated-drift.mjs +106 -0
  839. package/scripts/check-mavis-token-budget.mjs +1 -1
  840. package/scripts/check-opencode-token-budget.mjs +1 -1
  841. package/scripts/check-preset-structure.sh +27 -0
  842. package/scripts/check-preset-token-budget.sh +16 -17
  843. package/scripts/check-shared-core-drift.sh +10 -5
  844. package/scripts/close-agent-task-human-gate.mjs +6 -4
  845. package/scripts/fixtures/cli-golden/claude/next.json +24 -18
  846. package/scripts/fixtures/cli-golden/cursor/next.json +17 -17
  847. package/scripts/fixtures/cli-golden/mavis/android-kotlin.json +18 -18
  848. package/scripts/fixtures/cli-golden/mavis/go.json +15 -15
  849. package/scripts/fixtures/cli-golden/mavis/ios-swift.json +19 -19
  850. package/scripts/fixtures/cli-golden/mavis/java.json +15 -15
  851. package/scripts/fixtures/cli-golden/mavis/mcp-ts.json +16 -16
  852. package/scripts/fixtures/cli-golden/mavis/next.json +24 -24
  853. package/scripts/fixtures/cli-golden/mavis/nuxt.json +21 -21
  854. package/scripts/fixtures/cli-golden/mavis/php-hexagonal.json +15 -15
  855. package/scripts/fixtures/cli-golden/mavis/php-laravel.json +15 -15
  856. package/scripts/fixtures/cli-golden/mavis/svelte.json +21 -21
  857. package/scripts/fixtures/cli-golden/opencode/android-kotlin.json +31 -31
  858. package/scripts/fixtures/cli-golden/opencode/go.json +26 -26
  859. package/scripts/fixtures/cli-golden/opencode/ios-swift.json +32 -32
  860. package/scripts/fixtures/cli-golden/opencode/java.json +26 -26
  861. package/scripts/fixtures/cli-golden/opencode/mcp-ts.json +23 -23
  862. package/scripts/fixtures/cli-golden/opencode/next.json +38 -38
  863. package/scripts/fixtures/cli-golden/opencode/nuxt.json +35 -35
  864. package/scripts/fixtures/cli-golden/opencode/php-hexagonal.json +26 -26
  865. package/scripts/fixtures/cli-golden/opencode/php-laravel.json +26 -26
  866. package/scripts/fixtures/cli-golden/opencode/svelte.json +35 -35
  867. package/scripts/lib/generate-adapter-common.mjs +11 -0
  868. package/scripts/lib/generate-mavis-adapter.mjs +20 -10
  869. package/scripts/lib/generate-opencode-adapter.mjs +19 -4
  870. package/scripts/test-agent-task-metrics-hooks.mjs +5 -5
  871. package/scripts/test-chain-team-phases-coverage.mjs +176 -1
  872. package/scripts/test-cli-init-clean.mjs +165 -34
  873. package/scripts/test-mavis-context-budget.mjs +1 -1
  874. package/scripts/test-opencode-context-budget.mjs +1 -1
@@ -13,7 +13,7 @@
13
13
  ".opencode/MCP.md": "f3fbf0631ca5cb25bbd8bc6a98ac31ff1d49f23f23c09aa29ef8ccefb69b1159",
14
14
  ".opencode/agents/README.md": "515e1d6731eb792b1ff88703bf0b34a0e651416f32ec8ee7c5ccd2f4e3cd7905",
15
15
  ".opencode/agents/api-contract-reviewer.md": "9f5b49107d40d7f886bdfa20f31d8732dda21605fb4e007364722943bbeb8883",
16
- ".opencode/agents/build-verifier.md": "4d25a83a9f14136f43f581f9736fe8acd3367af3ef07c5148466d5a0e171b1e2",
16
+ ".opencode/agents/build-verifier.md": "c1c81a50c9d8fb3b1be0fc0074a4c4acc0cbfc8fda3cdafa0179b164c8e39dfd",
17
17
  ".opencode/agents/ci-investigator.md": "5f8242be6b0cfb7a4be2e030f3a04cd2877686e0479891482f15909a2f3e957b",
18
18
  ".opencode/agents/code-reviewer.md": "a103783c4c06c272a676828cbda6c7bff40a8e6cc2fb974f5bcd0727ad7a190e",
19
19
  ".opencode/agents/codebase-analyzer.md": "c07a6ab250b11e0814055673402240e6b14576809f74f8db49dfde5335fc32ca",
@@ -35,16 +35,16 @@
35
35
  ".opencode/agents/unit-test-healer.md": "3f85a3efa08f36ffb0267970761e2b1bb74f7466bbaba056b7fcc0ad0d0e7bd7",
36
36
  ".opencode/agents/unit-test-planner.md": "c1ea42fe9b48b5ddd5d9733947bd747df71a5e67aa9b4ec82bee2777190ac7d2",
37
37
  ".opencode/commands/README.md": "4808ae81073033610f243e9c641a489acd0b5b3c260b7a386a7e95d403fdd98c",
38
- ".opencode/commands/spec-start.md": "bdb14263199adfdbeba07308f2aaaf16b0cb923b324b4567668ea40d11c456d4",
39
- ".opencode/commands/task-continue.md": "97961d44caaf3d61c9e8bbfd6edab5db02d49e2c8c10be398b32819c2c48c9ba",
40
- ".opencode/commands/task.md": "7012338ae671e5873d98682e94fd09ad50b0b6098e8877c6777105907c1e74d0",
41
- ".opencode/commands/technical-retro.md": "558cc5ef682bc673dcba9532dc73729dfff1fa705f6c0a9854390e58978a7397",
38
+ ".opencode/commands/spec-start.md": "0e7f610784a24c9feca8ecce14934d85233821265258fe09abab2892b9f81e0b",
39
+ ".opencode/commands/task-continue.md": "59e00f4b39adcd20a5dfe95c40df3d35f96923290918ae6eca25b17083ce1f3b",
40
+ ".opencode/commands/task.md": "816d47ffd1fd073c1397c5d48f025229814a5dedaff92d079fdc6d1d5294dd9b",
41
+ ".opencode/commands/technical-retro.md": "519f2d5333e035234e7d09e4060a65ef50c4b5953c784766b8d9c7737e17be38",
42
42
  ".opencode/hooks/README.md": "535fc0c1f2400822f10adc0dca6a75f0860098c12868576397b0c7c0db4a471b",
43
- ".opencode/hooks/chain-team-phases.sh": "fee2537466f6ca268c0db07600266c890c36307da182cc1e446a30ffc6e0eb73",
43
+ ".opencode/hooks/chain-team-phases.sh": "e33a1100db57882a8257eb129a2c37021a54437f774e4fd63bb4d6d26f372b6f",
44
44
  ".opencode/rules/README.md": "ac09f4d1c43f70aead4d6f37b37d575aff05f6f8476f56f84551805d62fe50e2",
45
45
  ".opencode/rules/adapters-driven.md": "0e1665f87b27406bced1045d66ae617143d7dbea125dfdd421657b77386b890e",
46
46
  ".opencode/rules/adapters-driving.md": "7f7965704b72ede90b7a83b45751f698796724a68d1bbf0fb1ed3f4f9c6ff61a",
47
- ".opencode/rules/agent-team-intake.md": "6804fda59160de1f3720d7832c7227a8e5c9b8e4c2b9e60fd9a648edd59c2414",
47
+ ".opencode/rules/agent-team-intake.md": "47c85423f7a556c964b7cd895bdf01ca277474716adc7610a492c05bdbc7c2f0",
48
48
  ".opencode/rules/agent-team-orchestrator.md": "c4d84f79b02422d25e94005cc79d25926f918c0500701def393293690c927a97",
49
49
  ".opencode/rules/ai-local-overlay.md": "5a5f8d29d15bfb76a8e6cc631abb729599cea347f6ebb8221195758a5eab87a1",
50
50
  ".opencode/rules/anti-sycophancy-discipline.md": "653231c835a98f944e2c125fe5f8cf818b56c0f3602e469488dac1b2267da023",
@@ -52,13 +52,13 @@
52
52
  ".opencode/rules/api-http.md": "d05ccec89434551fb8e4fea5505869a4278d28da4b8225d41d3f21d4bc003446",
53
53
  ".opencode/rules/application-usecases.md": "11069b22eef297553d7591dab15468d59659507b78bd62b73121336e3ffd175d",
54
54
  ".opencode/rules/architecture-boundaries.md": "c06686f8ff1ed82e3d00ce02b84b55c6d406f9d7eca570a53dff2315dae74f07",
55
- ".opencode/rules/code-quality-and-refactoring.md": "39ec66508361abc36d9a650ccd74a0b801ee19846e12cbb95964db1a6fb20422",
56
- ".opencode/rules/code-review-mr.md": "214a6537c97726c1033a12b9a08ff34c324a705ffbd640bb66c3fedaa1a4177e",
55
+ ".opencode/rules/code-quality-and-refactoring.md": "17890ba0938ae2b1aff2b3111acd3a273942c804ac689c3537eab2d35a319558",
56
+ ".opencode/rules/code-review-mr.md": "ca56abdb4e31b65b6c1a29faef4fdb22be3a4876acf722c0aafef0265a22da0a",
57
57
  ".opencode/rules/composition-root.md": "6276d52734470483f2c05b39393a7eb33bebb0655283c57bc64024aad28bf16e",
58
- ".opencode/rules/design-guidance.md": "d10fcbc478391039f24ab440ae433edb8c90dd3c9bb11de050bc28df92dafea0",
58
+ ".opencode/rules/design-guidance.md": "74b3daadd1b37b4732dbf43797b0a5dc247990c35b134ffdfd06e82debaa1a80",
59
59
  ".opencode/rules/domain-layer.md": "bede7ac25c4bbc5bf3dac661ac89ac055aee5b975a5fa368a5db82d44949220c",
60
60
  ".opencode/rules/feature-delivery-workflow.md": "62418cc3ead5e132a6b2a7986e83149d3bfc7947df3973750f925733b8ed20f3",
61
- ".opencode/rules/mcp-usage.md": "1f439ff370b2570e3f086f7c184d5f65201a76dcd556be22e632e2b2ea7f2313",
61
+ ".opencode/rules/mcp-usage.md": "796092d4eb373c1622a16d5d20ab9af276352ca6f7a5ef00892d883436e77af1",
62
62
  ".opencode/rules/messaging-adapters.md": "04ab9eeae298c0a5757c88fac1aa1a25d9429a07c471c4528d80ed51aa08a551",
63
63
  ".opencode/rules/module-public-api.md": "24f8434707f75ecdf63940aaae4d55ed090b12628d8a78d1acdc534be708dab9",
64
64
  ".opencode/rules/persistence-adapters.md": "25c6fad4e1297d5db8a95db9a701a1e71cdefa128cdfacf6f01fa47f8e72004d",
@@ -67,13 +67,13 @@
67
67
  ".opencode/rules/php-tooling.md": "fed714666951243d1e2ae244b47a15e0a6e7731a8e7776c268ef7243b33fb89e",
68
68
  ".opencode/rules/ports-interfaces.md": "fdc49ca7e8e4a760b9a41b81878a740bc021f350edd414a00781c14a7a26264b",
69
69
  ".opencode/rules/post-change-test.md": "f327605a74be5218fdb46f0075182bcd45e6ed25f2287981c4d4c2c76d600018",
70
- ".opencode/rules/preset-layering.md": "ec06e398c493d7a77319c144fc387d4b1250505aa1408197393c4779ba06d11c",
70
+ ".opencode/rules/preset-layering.md": "c63d6b6aa921b70c6c9b531e9d9bcb8b3d81b6a6354da9e4109b5149f5cb8a73",
71
71
  ".opencode/rules/preset-no-cross-stack-leakage.md": "8933a929a78af3585c7b546736dc8d068bf9ff2f925c9fccbbdcf82d624d20a0",
72
- ".opencode/rules/preset-pr-checklist.md": "ec4ab94550eb50ea9c4456f55bcc770eee0557da159977bd48ca6c1e92527228",
73
- ".opencode/rules/preset-token-budget.md": "93013d0519a3af6e89a76d6b21461193d3d8897abd72d2b8c311754f5f421658",
72
+ ".opencode/rules/preset-pr-checklist.md": "6dcfb78d2cf68c11944243e3e4e10f6be210a4dad1497986f4aa439d1c04543f",
73
+ ".opencode/rules/preset-token-budget.md": "d539545f8ab0dc6117f87c76c044fce9a01256d8cdea8a63b69ff48ccb8b7ac0",
74
74
  ".opencode/rules/preset-twin-sync.md": "b3061cbb09ff75ecb47e98b7f7fa351240866ee8962a1d128b7c15206ef89dee",
75
- ".opencode/rules/product-specs-authoring.md": "506cfabda75512651e9578a83d8627dc8b26d8585cf9733e80949f5007eb52b0",
76
- ".opencode/rules/product-specs.md": "76a716f804929491f690b63b9a5e24f5fa90d26aa1f4ca61d5eeeb3d4da5e846",
75
+ ".opencode/rules/product-specs-authoring.md": "6b7b7bb5b04ba12d93c63908304dc5342803728eb79e386ea018a7d51e501079",
76
+ ".opencode/rules/product-specs.md": "b694ec5b7622c2dfa1239cb80ceac87019959dc7f23778e96d06af7b1a233ddc",
77
77
  ".opencode/rules/reference-features.md": "693cf6f08dd69cd358ba4c47cccc1231868c9db32f28c9a7e3ad8c85ffa9984a",
78
78
  ".opencode/rules/security-php.md": "9b61ed76f0cb0948b52550de8ed7301bd0b172f2fc2521985781e020e6cfc3b8",
79
79
  ".opencode/rules/technical-retro.md": "5f9ed6b3b86035866e26d153a60805da08c4670f3d46581bde1839469861b179",
@@ -81,16 +81,16 @@
81
81
  ".opencode/rules/tests-integration.md": "1c12ad81f574c826c00b29a1d88a3f2d09ca52515d3fc4f4d26627c193895828",
82
82
  ".opencode/rules/tests-unit.md": "10ca2c55cfeec77753173b249ae09064007998c5dd9bed44497aa227fc63fed0",
83
83
  ".opencode/skills/README.md": "a865635b916dd5e26284f0bc54e405a5d2edccf51f0f711a1b54fa3ba694b578",
84
- ".opencode/skills/ci-investigation/SKILL.md": "252c156c65aed5ef173617a6cda15a45c85ed4d3221236d90231becc1df95883",
85
- ".opencode/skills/code-review/SKILL.md": "cc9c747f3816ce3fe3a2c716ed80855907fb5439a53c24ef834240b036b5aee1",
86
- ".opencode/skills/debug-investigation/SKILL.md": "9996957a93eb8f52732c2fc7a9c9ae52ba050c86546088a0806b0bef73123539",
87
- ".opencode/skills/feature-delivery/SKILL.md": "2305b7bca18bba3814d33d1db88a0d4b0bdf5f16218a6637a78a8d034982257f",
88
- ".opencode/skills/integration-testing/SKILL.md": "31574ddca62366155d2b6ba495dbc0d64444b8f861593add56025742f9a8a933",
89
- ".opencode/skills/spec-authoring/SKILL.md": "37fcaf06088daee07de6b620a522143823d831579aa9c824bc1d7040f1d25e9d",
90
- ".opencode/skills/spec-discovery/SKILL.md": "bce9d01acab4d24015eda8c268c0c13d3893c1b258c2689b36ae25014ac47d91",
91
- ".opencode/skills/technical-retro/SKILL.md": "c3367928b1b6d5b60f2824b5edef3a3fee20e658c1d872c18b07ec21d189d644",
92
- ".opencode/skills/unit-testing/SKILL.md": "3b40818a0b1faa0f1df9e8f9e73a6d8e09bffae2286f3efd921ee82abfbf6427",
93
- ".opencode/skills/write-adr/SKILL.md": "607d70eff78d6a7b67b783237721fdc42eaa5170cb6175882e7e2a4adf132242",
84
+ ".opencode/skills/ci-investigation/SKILL.md": "7dd0ab37db805a431745f7d6efedd3d1e5ae2d1040c855e674f3e1d99583931e",
85
+ ".opencode/skills/code-review/SKILL.md": "547dfc7a5282b0a888ef4e3e0f46e0ff788618e404e1667533088ecfb35ef15f",
86
+ ".opencode/skills/debug-investigation/SKILL.md": "57e38e4ec614b8c39d8f23591394e91cb8ba2a6ce0034a178a80bf8a1cfdc6bd",
87
+ ".opencode/skills/feature-delivery/SKILL.md": "5504bf391ccf2bc0b3e18a487c76ebb943fb2df1cead4e82225e7981a40ccb2d",
88
+ ".opencode/skills/integration-testing/SKILL.md": "99127ba8f89f3c1047df3f0f32a7081f5bf38abd8222b7c1a1d9ef0da5a1626a",
89
+ ".opencode/skills/spec-authoring/SKILL.md": "2a5515d07ea57f34da982d5ebd5ed5814f0bcb5e919f87da9937fc81127fa908",
90
+ ".opencode/skills/spec-discovery/SKILL.md": "997886528456bfdfa29c492a5c578b8c2a085742b700047171ce0c876879e2cf",
91
+ ".opencode/skills/technical-retro/SKILL.md": "562fd8e92da2b00b42f6ed64210c973e8bea9f41cd30a29b3b36df50fe4f26e1",
92
+ ".opencode/skills/unit-testing/SKILL.md": "72b023f8126cc488e473eea296b41124336a3adf5816ba0b5aca5af404bce529",
93
+ ".opencode/skills/write-adr/SKILL.md": "3daf61c8d97a7e868e5fe5323f1cfa76dd5b298ea5cb110a9da83884d8d602da",
94
94
  "AGENTS.md": "d2256a4628b983c5419111dd338c02bcbb1520eae77fb2ef1b1a9d1a02bb47e8",
95
95
  "docs/specs/INDEX.md": "cab59f2093e6aaa376246a56d53e4268cb59070a6b10e87a94895192c35f422d",
96
96
  "docs/specs/_templates/feature.md": "83c47b90334c555fb5144749837e2ddfe1cae5bb89031f885ba98671075d59e7",
@@ -13,7 +13,7 @@
13
13
  ".opencode/MCP.md": "82420d33d4b50e9f082b2a65c62657592f6eb541034771811c13015f9bd36660",
14
14
  ".opencode/agents/README.md": "b49bff590381deb0841766c785c4124a590315080b363f373416f445a630153c",
15
15
  ".opencode/agents/api-contract-reviewer.md": "42c131441739ae28b303ba660c67d495ab1e352c24a752cf234f56dc66eb3a14",
16
- ".opencode/agents/build-verifier.md": "b260c19024e9e6ede3d51591a53196fd226ad497bc0d56dec648013edf85bfce",
16
+ ".opencode/agents/build-verifier.md": "57789ac7b34478380c23e6a238fd770d756cdd2ba0eded27dc09761962e2d423",
17
17
  ".opencode/agents/ci-investigator.md": "5f8242be6b0cfb7a4be2e030f3a04cd2877686e0479891482f15909a2f3e957b",
18
18
  ".opencode/agents/code-reviewer.md": "ab3c98bda198e9888edd1f0b1ebeff55076be2629b50653745825b93284e5390",
19
19
  ".opencode/agents/codebase-analyzer.md": "31f3c56b32d714c8e0606b21def235ecb8b27204a340cf57e75af2b97412ff25",
@@ -35,22 +35,22 @@
35
35
  ".opencode/agents/unit-test-healer.md": "3f85a3efa08f36ffb0267970761e2b1bb74f7466bbaba056b7fcc0ad0d0e7bd7",
36
36
  ".opencode/agents/unit-test-planner.md": "6cd58e5d36556b0ca3ff749aafb4f04500ac4c8b7db991db1d69cf9c8cfd291e",
37
37
  ".opencode/commands/README.md": "e180dd39014986042e77b0f385fd03175019329ef3dda4a8bc4e227d190b2d58",
38
- ".opencode/commands/spec-start.md": "bdb14263199adfdbeba07308f2aaaf16b0cb923b324b4567668ea40d11c456d4",
39
- ".opencode/commands/task-continue.md": "818f1ae69f254165bf034cb9518d7999609c55cdf121262cd66a3610727cb261",
40
- ".opencode/commands/task.md": "7a60bb43c650d70a46588a2527257198ef29cebe963e42c2001f45cb906ff917",
41
- ".opencode/commands/technical-retro.md": "d1017ae9314499a6dc62533092b02fc8b9c39ba5420c90b1e80aab0ea6ff46f2",
38
+ ".opencode/commands/spec-start.md": "0e7f610784a24c9feca8ecce14934d85233821265258fe09abab2892b9f81e0b",
39
+ ".opencode/commands/task-continue.md": "074f7a4ac31b360ea5b3346d52346738a7e27e2f4b45bea56544370c4a3e007d",
40
+ ".opencode/commands/task.md": "0d9ff91a124eb09fdf6efeee9d03144af93b26d5cfb9f74180312b7d9f3d7e29",
41
+ ".opencode/commands/technical-retro.md": "fd6e514dfe935f590d8f546f0cb55a12da543b84c606bda321eacf73099e7d72",
42
42
  ".opencode/hooks/README.md": "535fc0c1f2400822f10adc0dca6a75f0860098c12868576397b0c7c0db4a471b",
43
- ".opencode/hooks/chain-team-phases.sh": "14b32a66272f8132891a11eecc7d6173827f80e40a1043c867598b962ce64f7f",
43
+ ".opencode/hooks/chain-team-phases.sh": "379c52ca5e4cc785081585696a16efd63e882b18ad49b7bf7fbe5125a6bdae23",
44
44
  ".opencode/rules/README.md": "41440f0aef4da07400be7f014b52e63f248e74b97e993ec88cbaf134c1384388",
45
45
  ".opencode/rules/actions-services.md": "173a4aab9256ac8f3526a395d00cd62ef22acadd76c67f9ab176fd6058b6f9db",
46
- ".opencode/rules/agent-team-intake.md": "6804fda59160de1f3720d7832c7227a8e5c9b8e4c2b9e60fd9a648edd59c2414",
46
+ ".opencode/rules/agent-team-intake.md": "12a7d81ccb2b6f504b92cd08a4f8da52d65595750a8ad457649fe44f135adf01",
47
47
  ".opencode/rules/agent-team-orchestrator.md": "c4d84f79b02422d25e94005cc79d25926f918c0500701def393293690c927a97",
48
48
  ".opencode/rules/ai-local-overlay.md": "5a5f8d29d15bfb76a8e6cc631abb729599cea347f6ebb8221195758a5eab87a1",
49
49
  ".opencode/rules/anti-sycophancy-discipline.md": "653231c835a98f944e2c125fe5f8cf818b56c0f3602e469488dac1b2267da023",
50
50
  ".opencode/rules/architecture-boundaries.md": "1b8d164445df36bbe2dd4db46ec2cfa187774e745112216661281e728b39ac0e",
51
- ".opencode/rules/code-quality-and-refactoring.md": "39ec66508361abc36d9a650ccd74a0b801ee19846e12cbb95964db1a6fb20422",
52
- ".opencode/rules/code-review-mr.md": "214a6537c97726c1033a12b9a08ff34c324a705ffbd640bb66c3fedaa1a4177e",
53
- ".opencode/rules/design-guidance.md": "d10fcbc478391039f24ab440ae433edb8c90dd3c9bb11de050bc28df92dafea0",
51
+ ".opencode/rules/code-quality-and-refactoring.md": "cd884355b50b6bc5a769c235ca1178c22e850721257f3d6923a847c2ada1ab1e",
52
+ ".opencode/rules/code-review-mr.md": "4a7ed7c34301b231e1c04e1c83afb00e3735b475f2261fe80d0126a843896f74",
53
+ ".opencode/rules/design-guidance.md": "320aa9db3c014e5189130f24e81bfde59d065ac670d1361b1f3c4d3bbd9a35ee",
54
54
  ".opencode/rules/domain-layer.md": "41d8cdcdf2f7abd7035bec4bf498f1f945e2bc3041bbb1be8dffd466e5afba68",
55
55
  ".opencode/rules/eloquent-persistence.md": "1231d0c8b02c5e7011a037cbf5046505587ed15b23e2c3f921e9811376ef11cd",
56
56
  ".opencode/rules/events-listeners.md": "a5d4a2a3b5cff7367f48c908d8540dd711d52c1e0be9a2bda6f1012ff75b7be7",
@@ -60,18 +60,18 @@
60
60
  ".opencode/rules/jobs-queues.md": "4ecd3708440706d2abc0e88345e54b337aab38dd1457a40fd6593915205a5306",
61
61
  ".opencode/rules/laravel-app-core.md": "f87bcbef5f45cd3abf7ebee77f7c84cc4f17f038d6b831d244ad5f31ca9b6a10",
62
62
  ".opencode/rules/laravel-conventions.md": "47dbee005a10c6f289ff72c14d301af41ead886b4e4b18b990e5daf9ae837375",
63
- ".opencode/rules/mcp-usage.md": "1f439ff370b2570e3f086f7c184d5f65201a76dcd556be22e632e2b2ea7f2313",
63
+ ".opencode/rules/mcp-usage.md": "796092d4eb373c1622a16d5d20ab9af276352ca6f7a5ef00892d883436e77af1",
64
64
  ".opencode/rules/module-public-api.md": "83be094e688be4daf7e1462302d6fee23a53c367b4cc2b72155eb51b8e8e448e",
65
65
  ".opencode/rules/php-tooling.md": "3afc1d389f0cfaa05f71e9837b84814193d5f0e67d779784f9b943f67917ccfd",
66
66
  ".opencode/rules/policies-authorization.md": "e2b751858093a26573acd9c23a5f67a68edb0dfa445f50a800c8620318134421",
67
67
  ".opencode/rules/post-change-test.md": "8a64e8949ac6982f928e021df593c5e9f2cbb726686f2fb9c3030ea4a321caab",
68
- ".opencode/rules/preset-layering.md": "ec06e398c493d7a77319c144fc387d4b1250505aa1408197393c4779ba06d11c",
68
+ ".opencode/rules/preset-layering.md": "c63d6b6aa921b70c6c9b531e9d9bcb8b3d81b6a6354da9e4109b5149f5cb8a73",
69
69
  ".opencode/rules/preset-no-cross-stack-leakage.md": "8933a929a78af3585c7b546736dc8d068bf9ff2f925c9fccbbdcf82d624d20a0",
70
- ".opencode/rules/preset-pr-checklist.md": "ec4ab94550eb50ea9c4456f55bcc770eee0557da159977bd48ca6c1e92527228",
71
- ".opencode/rules/preset-token-budget.md": "93013d0519a3af6e89a76d6b21461193d3d8897abd72d2b8c311754f5f421658",
70
+ ".opencode/rules/preset-pr-checklist.md": "6dcfb78d2cf68c11944243e3e4e10f6be210a4dad1497986f4aa439d1c04543f",
71
+ ".opencode/rules/preset-token-budget.md": "d539545f8ab0dc6117f87c76c044fce9a01256d8cdea8a63b69ff48ccb8b7ac0",
72
72
  ".opencode/rules/preset-twin-sync.md": "b3061cbb09ff75ecb47e98b7f7fa351240866ee8962a1d128b7c15206ef89dee",
73
- ".opencode/rules/product-specs-authoring.md": "506cfabda75512651e9578a83d8627dc8b26d8585cf9733e80949f5007eb52b0",
74
- ".opencode/rules/product-specs.md": "76a716f804929491f690b63b9a5e24f5fa90d26aa1f4ca61d5eeeb3d4da5e846",
73
+ ".opencode/rules/product-specs-authoring.md": "4bb81868e2619b8d562237cf8aa59c0e87c04e8302094dd1e0b3e1e36064808c",
74
+ ".opencode/rules/product-specs.md": "e6e3e9c69d34cbe08bc61b78163ef83be64dab7f0258bec2c6fc810d1b2eb04c",
75
75
  ".opencode/rules/reference-features.md": "693cf6f08dd69cd358ba4c47cccc1231868c9db32f28c9a7e3ad8c85ffa9984a",
76
76
  ".opencode/rules/routes-api.md": "fa2c697644294bdbe7ea8124b4bf2d4b93826e55e80b7e55da866b07b20fae62",
77
77
  ".opencode/rules/security-php.md": "64227580db97941cc512be9e67c1ec0ff31be668057427472ba934189107fd49",
@@ -81,16 +81,16 @@
81
81
  ".opencode/rules/tests-integration.md": "eb05756f6320942f10f0a250a82602c61e329ebc11c97b998e50210a53920ef1",
82
82
  ".opencode/rules/tests-unit.md": "254e0b9dc129149cc6b2288cdc3ebf52c9b9b17c01af9f2fa20325016ed4b879",
83
83
  ".opencode/skills/README.md": "2aed6080f909ddc89370ff8e176cfe84c15158712ad412eee0ecd7d0af9eaeb6",
84
- ".opencode/skills/ci-investigation/SKILL.md": "252c156c65aed5ef173617a6cda15a45c85ed4d3221236d90231becc1df95883",
85
- ".opencode/skills/code-review/SKILL.md": "39e86941e8867b82c8ee8ec1389d5e2712576085f1cad8d69e256137d85e0a7b",
86
- ".opencode/skills/debug-investigation/SKILL.md": "9996957a93eb8f52732c2fc7a9c9ae52ba050c86546088a0806b0bef73123539",
87
- ".opencode/skills/feature-delivery/SKILL.md": "93665cbcdd88d0d6b99291d797654a8cfabcfad6cf5158b7ca416ea32a834961",
88
- ".opencode/skills/integration-testing/SKILL.md": "ac0d367d7987a0b05fe871f70f515e805e2dc78a0bcb6e235cf083a027b7bdbf",
89
- ".opencode/skills/spec-authoring/SKILL.md": "37fcaf06088daee07de6b620a522143823d831579aa9c824bc1d7040f1d25e9d",
90
- ".opencode/skills/spec-discovery/SKILL.md": "bce9d01acab4d24015eda8c268c0c13d3893c1b258c2689b36ae25014ac47d91",
91
- ".opencode/skills/technical-retro/SKILL.md": "c3367928b1b6d5b60f2824b5edef3a3fee20e658c1d872c18b07ec21d189d644",
92
- ".opencode/skills/unit-testing/SKILL.md": "cbeec0b36fc06cbb77e6c60155d1d0dcc46057d4efebdf6a04678fa083c32159",
93
- ".opencode/skills/write-adr/SKILL.md": "607d70eff78d6a7b67b783237721fdc42eaa5170cb6175882e7e2a4adf132242",
84
+ ".opencode/skills/ci-investigation/SKILL.md": "7dd0ab37db805a431745f7d6efedd3d1e5ae2d1040c855e674f3e1d99583931e",
85
+ ".opencode/skills/code-review/SKILL.md": "4da9459c1a42bd04532df5106f231315d785609d12a2dd2e3b7572621de7ee4c",
86
+ ".opencode/skills/debug-investigation/SKILL.md": "57e38e4ec614b8c39d8f23591394e91cb8ba2a6ce0034a178a80bf8a1cfdc6bd",
87
+ ".opencode/skills/feature-delivery/SKILL.md": "e0139a36a96c18373efb42b9e884905d85ac95551dfe28f2c311f602bb7db5aa",
88
+ ".opencode/skills/integration-testing/SKILL.md": "9c26e6cb7c5d1579bd7dea68e938f062fb882c39a6a0a7ef7f1d489dc611009c",
89
+ ".opencode/skills/spec-authoring/SKILL.md": "2a5515d07ea57f34da982d5ebd5ed5814f0bcb5e919f87da9937fc81127fa908",
90
+ ".opencode/skills/spec-discovery/SKILL.md": "997886528456bfdfa29c492a5c578b8c2a085742b700047171ce0c876879e2cf",
91
+ ".opencode/skills/technical-retro/SKILL.md": "562fd8e92da2b00b42f6ed64210c973e8bea9f41cd30a29b3b36df50fe4f26e1",
92
+ ".opencode/skills/unit-testing/SKILL.md": "340ea9325aa9a4bf3de6f5d12ae5a398bd322a7966dd1dcf9ef9fb067aa30131",
93
+ ".opencode/skills/write-adr/SKILL.md": "3daf61c8d97a7e868e5fe5323f1cfa76dd5b298ea5cb110a9da83884d8d602da",
94
94
  "AGENTS.md": "c30b6d08e70957b1c465f503171d4228a1b08214c993e32ed8943ac0351c3b8e",
95
95
  "docs/specs/INDEX.md": "cab59f2093e6aaa376246a56d53e4268cb59070a6b10e87a94895192c35f422d",
96
96
  "docs/specs/_templates/feature.md": "83c47b90334c555fb5144749837e2ddfe1cae5bb89031f885ba98671075d59e7",
@@ -27,7 +27,7 @@
27
27
  ".opencode/agents/README.md": "8a9a4307b5326db65490cd73ff1e309d9bc8a678477d51b358b86dbc388d9b61",
28
28
  ".opencode/agents/accessibility-reviewer.md": "ffa3a5a5846ce336567c746c818dfcf0c9ba7e9f31779ce9d2357a7a5556b5f3",
29
29
  ".opencode/agents/api-contract-reviewer.md": "8b46924e253e9ef499b32a3f4339e7b2ed6e39fd822d70f7bc8f9981a184a069",
30
- ".opencode/agents/build-verifier.md": "1b3b4941c358a1f715d72b242c3c7771b5450e7e7d4313c5b119e7741e22828f",
30
+ ".opencode/agents/build-verifier.md": "c20de51817d1771a521bcbaa8d20d8e9c609f34af9c6f8200a9f2bf0499b7cf7",
31
31
  ".opencode/agents/ci-investigator.md": "97cff7985f946e99f0ad18cfc21019672327b5d2c1485605a506af8a6bdccc82",
32
32
  ".opencode/agents/code-reviewer.md": "91e74ec3851d4cb5dca663734784463b0915d96c909e033c545b1c08c4f56f6c",
33
33
  ".opencode/agents/codebase-analyzer.md": "1d12d4af8ac0919e5241bb56aad2664cee35549a8143f4fbaa384ddfe9b9f1b4",
@@ -50,12 +50,12 @@
50
50
  ".opencode/agents/unit-test-healer.md": "ec2fc4858fcc61fe488c8b2f2fb25be72b942999b43eb32a98759ddc591d26c7",
51
51
  ".opencode/agents/unit-test-planner.md": "cb1ecb79a7a050525c40e666b5d933966a68c6b2fb6a442343d61f09c7cf5687",
52
52
  ".opencode/commands/README.md": "ea7561075abfa64140ecd467ed0107f0d9242b8194035f108826361157ab04c8",
53
- ".opencode/commands/spec-start.md": "bdb14263199adfdbeba07308f2aaaf16b0cb923b324b4567668ea40d11c456d4",
54
- ".opencode/commands/task-continue.md": "f3ff03f5babff2f9ca90c89dc891c9c1e5fa2ec5a10ec7b4680b2746d9abc17d",
55
- ".opencode/commands/task.md": "c0a8862996c72d9567fa91c4935f298f5a2041a2fd2aceaf0f802a1f9d839b7b",
56
- ".opencode/commands/technical-retro.md": "82856e799a4bbcd6efc667e2c01cee1eed6a26acdb5fc0c189e234d94fd213b4",
53
+ ".opencode/commands/spec-start.md": "0e7f610784a24c9feca8ecce14934d85233821265258fe09abab2892b9f81e0b",
54
+ ".opencode/commands/task-continue.md": "f73926dd94b27dd34cbb99646bedb45fe8ad7f42623591e0760d4074941ecb4d",
55
+ ".opencode/commands/task.md": "50af26f008107d98b387c86511ffbb0e4d321d795ca5797b261910fe224a75df",
56
+ ".opencode/commands/technical-retro.md": "6a5771b459714bd8e52bd84aca94d5bb8261d6121d909b411ea6909c344cb285",
57
57
  ".opencode/hooks/README.md": "535fc0c1f2400822f10adc0dca6a75f0860098c12868576397b0c7c0db4a471b",
58
- ".opencode/hooks/chain-team-phases.sh": "cdcde2396a7481c87d7f8c7553b919eb01bf71865e8c65296016c80b3b3fb1fb",
58
+ ".opencode/hooks/chain-team-phases.sh": "f4d2b6ba2765065d8cde93d6f9d8eb3f7866509cf5c473b76c12117aa6114448",
59
59
  ".opencode/rules/README.md": "19817eb632391073e074b532ee93351f45436a4d6b34cf334cdb64df020bef13",
60
60
  ".opencode/rules/agent-team-intake.md": "6804fda59160de1f3720d7832c7227a8e5c9b8e4c2b9e60fd9a648edd59c2414",
61
61
  ".opencode/rules/agent-team-orchestrator.md": "c4d84f79b02422d25e94005cc79d25926f918c0500701def393293690c927a97",
@@ -64,15 +64,15 @@
64
64
  ".opencode/rules/api-services.md": "f9fb6e35114a54d3c41a2ae7098c5d2b3e548a64da28891a8596077860809365",
65
65
  ".opencode/rules/architecture-boundaries-ui.md": "42f07eb22802fd92204f2a3b155316a167a7382b6d818c961ae4656e47c9c790",
66
66
  ".opencode/rules/architecture-boundaries.md": "c35db8b3ad042d8569f6b99850e8bc3049856a0e66377d8be4b5657495b5e763",
67
- ".opencode/rules/code-quality-and-refactoring.md": "39ec66508361abc36d9a650ccd74a0b801ee19846e12cbb95964db1a6fb20422",
68
- ".opencode/rules/code-review-mr.md": "214a6537c97726c1033a12b9a08ff34c324a705ffbd640bb66c3fedaa1a4177e",
67
+ ".opencode/rules/code-quality-and-refactoring.md": "221426208f3bd19b3f97ed9e764e682f6ad56029daba0694a34b2c3bdf9ffd2f",
68
+ ".opencode/rules/code-review-mr.md": "81667a8477e49d9d3d307306821241048d04ae6c24b5a9e447961fa2c86453d6",
69
69
  ".opencode/rules/css-property-order-stylelint.md": "d1de016aad731818bf3cf4705d42ca4a60d44663ada0cdf3c8f911dd76e500d3",
70
- ".opencode/rules/design-guidance.md": "d10fcbc478391039f24ab440ae433edb8c90dd3c9bb11de050bc28df92dafea0",
71
- ".opencode/rules/feature-delivery-workflow.md": "62418cc3ead5e132a6b2a7986e83149d3bfc7947df3973750f925733b8ed20f3",
70
+ ".opencode/rules/design-guidance.md": "0a5eaa999f5d5e930e0a54859c7f634968d8b3c7379b60a7cb7968c438d5e59e",
71
+ ".opencode/rules/feature-delivery-workflow.md": "520b09613dd36b82a9ffc90fec661cfcc9e8d53aa99830e7a27e54722899b0d1",
72
72
  ".opencode/rules/http-client.md": "19bc5fbb0070d000e3b0c6ffb1c4d818c8d7fc8e614595b1038433ae11760b0b",
73
73
  ".opencode/rules/layer-barrel-exports.md": "e0f6d1e6e10f84867660bdeb88799d9ffd4bfd778029fafde86a349d912573ec",
74
- ".opencode/rules/mcp-usage.md": "1f439ff370b2570e3f086f7c184d5f65201a76dcd556be22e632e2b2ea7f2313",
75
- ".opencode/rules/mockup-review.md": "1edbefa09aa2b95901f5db916890f4a480073185f79853980a289eb7e0da5b6f",
74
+ ".opencode/rules/mcp-usage.md": "0726fa82721b16e0eeca6f32493f0e4411cf8e9ddc60f687c5d4a0357d8660eb",
75
+ ".opencode/rules/mockup-review.md": "0910adcd6e93efe06d8a668a05df2448202747d790fc99e6ee9194ec56696a1d",
76
76
  ".opencode/rules/navigation-router-stack.md": "7b33606bfb15d47ddbd56b67dd0628825e13318dba57aa4d0d6897dd606d2b18",
77
77
  ".opencode/rules/navigation-router-ui.md": "2ad0b6f067cd9524b0f0ce62322e169afc2908b33beab15a3929ebd28eea86b4",
78
78
  ".opencode/rules/no-rest-props-spread.md": "f89ad709c93de1e5e1306adcbcac23a73667f1ddb43514ff550743413bbc64ce",
@@ -80,42 +80,42 @@
80
80
  ".opencode/rules/package-manager.md": "5ce0bcfafaeb368538d504a26146809e52c2f0340ac2807ea2453c1dadc41d3d",
81
81
  ".opencode/rules/playwright-agents.md": "6d165030dd1f8f98d9db307d6dfc83c6ad8506d6cc674362f345ce2d50b2bef1",
82
82
  ".opencode/rules/post-change-lint.md": "3781dff4d33b8e9d6c34e0f027450c3d5f8c25a69a67a2e002552ab452bdbd69",
83
- ".opencode/rules/preset-layering.md": "ec06e398c493d7a77319c144fc387d4b1250505aa1408197393c4779ba06d11c",
83
+ ".opencode/rules/preset-layering.md": "c63d6b6aa921b70c6c9b531e9d9bcb8b3d81b6a6354da9e4109b5149f5cb8a73",
84
84
  ".opencode/rules/preset-no-cross-stack-leakage.md": "8933a929a78af3585c7b546736dc8d068bf9ff2f925c9fccbbdcf82d624d20a0",
85
- ".opencode/rules/preset-pr-checklist.md": "ec4ab94550eb50ea9c4456f55bcc770eee0557da159977bd48ca6c1e92527228",
86
- ".opencode/rules/preset-token-budget.md": "93013d0519a3af6e89a76d6b21461193d3d8897abd72d2b8c311754f5f421658",
85
+ ".opencode/rules/preset-pr-checklist.md": "6dcfb78d2cf68c11944243e3e4e10f6be210a4dad1497986f4aa439d1c04543f",
86
+ ".opencode/rules/preset-token-budget.md": "d539545f8ab0dc6117f87c76c044fce9a01256d8cdea8a63b69ff48ccb8b7ac0",
87
87
  ".opencode/rules/preset-twin-sync.md": "b3061cbb09ff75ecb47e98b7f7fa351240866ee8962a1d128b7c15206ef89dee",
88
- ".opencode/rules/product-specs-authoring.md": "506cfabda75512651e9578a83d8627dc8b26d8585cf9733e80949f5007eb52b0",
89
- ".opencode/rules/product-specs.md": "76a716f804929491f690b63b9a5e24f5fa90d26aa1f4ca61d5eeeb3d4da5e846",
88
+ ".opencode/rules/product-specs-authoring.md": "e355387117e689cd957ec02a0c7c306014f7a21cdcaf0e85f57858c12ad0911e",
89
+ ".opencode/rules/product-specs.md": "e1210aa455b65adcedef6c9d79b55273de989c459fc9a3564bfc167b61e481d8",
90
90
  ".opencode/rules/public-imports.md": "c6ec89498e372307f59472d640512f7ab7c7ad73a32b430fafe1eb7fcf1b3fec",
91
- ".opencode/rules/reference-features.md": "693cf6f08dd69cd358ba4c47cccc1231868c9db32f28c9a7e3ad8c85ffa9984a",
91
+ ".opencode/rules/reference-features.md": "6520de27ceb87b03088d2557ee7bdf18c47ee71a5e63632f3c80c2593ae89785",
92
92
  ".opencode/rules/security-sveltekit.md": "d22fa9ad9ff3199b9932dab782ba0619d3827aabbfa0149537754f525c9e218d",
93
93
  ".opencode/rules/store-svelte.md": "e677453db5afb848775062061aeaaffe75b4c55ed162254da9e0f269c26ddd7b",
94
94
  ".opencode/rules/svelte-a11y-coding.md": "f27bb73f047f5ace9ec28e37bd94c42bc436bdfc5f62d5c0e4b84996ef5c53bb",
95
95
  ".opencode/rules/svelte-app-core.md": "5cb14698c4add8b3490ef28c37f98e2804e27652c81e445042a824b745acf6d2",
96
96
  ".opencode/rules/svelte-script-conventions.md": "7ed6c8ab4d7b2fdf3f7c03b5331b4062cc306aa5f3dfd216098968d2a0dc34e8",
97
97
  ".opencode/rules/svelte-sveltekit-anti-hallucination.md": "abb04e4608ff85d3341e392e670c2f59ef0185ed361c57e14f8315d459f1a9ef",
98
- ".opencode/rules/svelte-ui.md": "121ed696154fa4d9afd3297bb22f767be7d79eb2908d6552587eb07eccd0e301",
98
+ ".opencode/rules/svelte-ui.md": "806656b8a77a17523808608a1cb2e463ad0fc56a95b7bc877ec9ec0e94cb8805",
99
99
  ".opencode/rules/sveltekit-routing.md": "376e1b079e27abc9cbdcb4cc7038185db54a86e018653a07d055cd8ff23decc8",
100
100
  ".opencode/rules/technical-retro.md": "5f9ed6b3b86035866e26d153a60805da08c4670f3d46581bde1839469861b179",
101
- ".opencode/rules/tests-e2e-structure.md": "8259282a6a7db2e5df72acdb76a07e92233bbc3022578b2dd3a54ee9bfecf604",
102
- ".opencode/rules/tests-unit.md": "8259282a6a7db2e5df72acdb76a07e92233bbc3022578b2dd3a54ee9bfecf604",
101
+ ".opencode/rules/tests-e2e-structure.md": "0a97610749432e1866bc81ab49bb8d6da22b944dd1b44bb52e84e42745fe5251",
102
+ ".opencode/rules/tests-unit.md": "508506fd752f1641537b71361c34ffee2577b67888dccae5e16242e0a1a310ab",
103
103
  ".opencode/rules/types-jsdoc.md": "5827aeb0fba00ab115d37607b621eb8d562d12b8d404c9994ee17a5f4445ea5f",
104
- ".opencode/rules/ux-design.md": "794af95526c01b6e95f512b5c62cb86d52c7887e9054248b44ff31a25f8d7139",
104
+ ".opencode/rules/ux-design.md": "a62ef0c176f0615c4a27ff3c5859eb858be5a8e28de430a41be4504f5f2fd960",
105
105
  ".opencode/skills/README.md": "445c3dd9fcee3a800eb17cfb046779296ec8352bd9c61ec5031419051c970604",
106
- ".opencode/skills/ci-investigation/SKILL.md": "c1032da3f028e60f57ec081ab75d403cd46bbc37db40e8ac2755b1712f4c065f",
107
- ".opencode/skills/code-review/SKILL.md": "0ca54328d3db56bfb4018aab54076835ca0bebe78a4aa9fe0df916e40c9565e7",
108
- ".opencode/skills/debug-investigation/SKILL.md": "673e3cebd9c7b4db44ca9f889f5619001432c6b17c6b3269fd2f193c2acd0892",
109
- ".opencode/skills/feature-delivery/SKILL.md": "2d4a7e48d775558bbf7b35995e448386097590939552c21dbb09f4a8c66bc8b6",
110
- ".opencode/skills/mockup-review/SKILL.md": "d94afc1e0de13769c12a8a3d0659ade310208cdd8bff47353f30761ec1ce180d",
111
- ".opencode/skills/playwright-e2e/SKILL.md": "7e1ab08c237329717d2567d8c4e6628b5477fcfc429ce2af637620bc86675300",
112
- ".opencode/skills/spec-authoring/SKILL.md": "37fcaf06088daee07de6b620a522143823d831579aa9c824bc1d7040f1d25e9d",
113
- ".opencode/skills/spec-discovery/SKILL.md": "bce9d01acab4d24015eda8c268c0c13d3893c1b258c2689b36ae25014ac47d91",
114
- ".opencode/skills/svelte-performance/SKILL.md": "f1e9333ef67ba74c444a0b609ff10e895392e4486b25618b40ac66ec09271181",
115
- ".opencode/skills/technical-retro/SKILL.md": "1a5ac4a01007e8292673e6bf484b190a29c71575afa90ee117440e054a08d7a5",
116
- ".opencode/skills/unit-testing/SKILL.md": "753689512c68043a6fd95bea25d7f37f2b554191e229c257c59d55bc05b15ba1",
117
- ".opencode/skills/ux-design/SKILL.md": "74b70875ba3d41ffb8401c42bc8c9e442e73b36c6a6b0d8d9d2aae0a6017479c",
118
- ".opencode/skills/write-adr/SKILL.md": "607d70eff78d6a7b67b783237721fdc42eaa5170cb6175882e7e2a4adf132242",
106
+ ".opencode/skills/ci-investigation/SKILL.md": "084635771a35c11babc602657642a52074619dcdbbd6213924bb7f286cca6619",
107
+ ".opencode/skills/code-review/SKILL.md": "d49162d8f05d8749f0fa3e055695d33c953a1aa276b04560ae47e58ec00d5968",
108
+ ".opencode/skills/debug-investigation/SKILL.md": "b071049a6e9cd910f363a122f710546c196cb6dca0e4c8861943496090928258",
109
+ ".opencode/skills/feature-delivery/SKILL.md": "8feb39f3c92da493cbc755f5476062bc5fed2db020651a8207463c3b98c53ba3",
110
+ ".opencode/skills/mockup-review/SKILL.md": "e00b45d5e7118e52b1c884b317f55f02215a4da72783c3755e28a2200c49dbb2",
111
+ ".opencode/skills/playwright-e2e/SKILL.md": "df49047f3a47f3e02c0ebe7d3d3a80eb859aa21d7312e6cb23098d7cf30d73a8",
112
+ ".opencode/skills/spec-authoring/SKILL.md": "2a5515d07ea57f34da982d5ebd5ed5814f0bcb5e919f87da9937fc81127fa908",
113
+ ".opencode/skills/spec-discovery/SKILL.md": "997886528456bfdfa29c492a5c578b8c2a085742b700047171ce0c876879e2cf",
114
+ ".opencode/skills/svelte-performance/SKILL.md": "4d9d8c87db0274f1a7031c5f51201960c8f76ad0951e6fbf667272c559b2e2ef",
115
+ ".opencode/skills/technical-retro/SKILL.md": "2867ce26e96717ab61b5035545c374629783295eb022914f342ed384b6a6caba",
116
+ ".opencode/skills/unit-testing/SKILL.md": "c70f54921d0d90bd4d0f5305317e80dd3517a60b05f3fbc31dc8527eaf75d19d",
117
+ ".opencode/skills/ux-design/SKILL.md": "dcfd7714f6e203eba18b14b334baa872696141ca257c87a72e8a7a45c4f4c91a",
118
+ ".opencode/skills/write-adr/SKILL.md": "3daf61c8d97a7e868e5fe5323f1cfa76dd5b298ea5cb110a9da83884d8d602da",
119
119
  "AGENTS.md": "16e16975c1054cd20df6aae7780d879f7477c6dc4144ed8f12dab9249ee3f580",
120
120
  "docs/specs/INDEX.md": "cab59f2093e6aaa376246a56d53e4268cb59070a6b10e87a94895192c35f422d",
121
121
  "docs/specs/_templates/feature.md": "83c47b90334c555fb5144749837e2ddfe1cae5bb89031f885ba98671075d59e7",
@@ -54,6 +54,17 @@ export function sharedCoreStem(text) {
54
54
  return match ? match[1] : undefined;
55
55
  }
56
56
 
57
+ /**
58
+ * Adapter-local prose after the shared-core body: everything from the first
59
+ * `## Stack notes` heading to the end. Mirrors `sync-shared-core-embeds.sh`, which
60
+ * preserves this section when propagating core bodies into Cursor/Claude.
61
+ * Returns `''` when the body has no `## Stack notes` section.
62
+ */
63
+ export function extractStackNotesSection(body) {
64
+ const match = body.match(/(^|\n)(## Stack notes[^\n]*\n[\s\S]*)$/);
65
+ return match ? match[2].trimEnd() : '';
66
+ }
67
+
57
68
  export function isEmbedEntryBody(body) {
58
69
  const first = body
59
70
  .split('\n')
@@ -9,6 +9,7 @@ import {
9
9
  deriveAdapterStack,
10
10
  dropLeadingHeading,
11
11
  extractSkillsFragment,
12
+ extractStackNotesSection,
12
13
  isEmbedEntryBody,
13
14
  readSiblingReadme,
14
15
  replaceCursorFrontmatterReadonlyBlock,
@@ -89,7 +90,11 @@ function stripEmbeddedCatalogLine(body) {
89
90
  );
90
91
  }
91
92
 
92
- function transformMarkdown(sourceText, stack, { command = false, allowEmbedEntry = true } = {}) {
93
+ function transformMarkdown(
94
+ sourceText,
95
+ stack,
96
+ { command = false, allowEmbedEntry = true, preserveStackNotes = true } = {},
97
+ ) {
93
98
  const rewriteProse = (text) => finalizeMavisProse(text, stack);
94
99
  const { body } = stripFrontmatter(sourceText);
95
100
  const stem =
@@ -103,19 +108,20 @@ function transformMarkdown(sourceText, stack, { command = false, allowEmbedEntry
103
108
  }
104
109
  const coreBody = fs.readFileSync(corePath, 'utf8').trimEnd();
105
110
  const marker = `<!-- shared-core: ${stem} -->`;
111
+ // Preserve the Cursor adapter's `## Stack notes` (stack-specific paths, runners,
112
+ // selectors) instead of replacing the whole body with the generic core.
113
+ const stackNotes = preserveStackNotes ? extractStackNotesSection(body) : '';
106
114
  next = `${marker}\n\n${coreBody}\n`;
115
+ if (stackNotes) {
116
+ next += `\n${stackNotes}\n`;
117
+ }
107
118
  next = rewriteConsumerPaths(next);
108
119
  } else {
109
120
  next = rewriteProse(body);
110
121
  }
111
- if (command) {
112
- next = next
113
- .replaceAll('`/task-continue <slug>`', 'continue `<slug>` using `.mavis/commands/task-continue.md`')
114
- .replaceAll('`/task-continue`', 'the task-continue procedure in `.mavis/commands/task-continue.md`')
115
- .replaceAll('`/technical-retro`', 'the technical-retro procedure in `.mavis/commands/technical-retro.md`')
116
- .replaceAll('`/spec-start`', 'the spec-start procedure in `.mavis/commands/spec-start.md`')
117
- .replaceAll('`/task`', 'the task procedure in `.mavis/commands/task.md`');
118
- }
122
+ // Slash-command references (`/task`, `/task-continue`, …) are kept verbatim, matching
123
+ // the OpenCode adapter. Rewriting them into prose mangled the generated docs.
124
+ void command;
119
125
  return next.endsWith('\n') ? next : `${next}\n`;
120
126
  }
121
127
 
@@ -372,7 +378,11 @@ export function generateMavisStack(stack, { root = packageRoot } = {}) {
372
378
  match: (source) => source.startsWith('rules/') && source.endsWith('.mdc'),
373
379
  map: ({ source, sourceText }) => {
374
380
  const stem = path.basename(source, '.mdc');
375
- let markdown = transformMarkdown(sourceText, stack);
381
+ // The orchestrator Stack notes carry Cursor-only model pins / packaging;
382
+ // transformOrchestrator injects a platform-neutral note instead.
383
+ let markdown = transformMarkdown(sourceText, stack, {
384
+ preserveStackNotes: stem !== 'agent-team-orchestrator',
385
+ });
376
386
  if (stem === 'agent-team-orchestrator') {
377
387
  markdown = transformOrchestrator(markdown);
378
388
  }
@@ -8,6 +8,7 @@ import {
8
8
  countAgentRoleFiles,
9
9
  deriveAdapterStack,
10
10
  dropLeadingHeading,
11
+ extractStackNotesSection,
11
12
  isEmbedEntryBody,
12
13
  parseFrontmatterFields,
13
14
  readSiblingReadme,
@@ -85,7 +86,11 @@ function stripEmbeddedCatalogLine(body) {
85
86
  );
86
87
  }
87
88
 
88
- function transformMarkdown(sourceText, stack, { allowEmbedEntry = true } = {}) {
89
+ function transformMarkdown(
90
+ sourceText,
91
+ stack,
92
+ { allowEmbedEntry = true, preserveStackNotes = true } = {},
93
+ ) {
89
94
  const rewriteProse = (text) => finalizeOpencodeProse(text, stack);
90
95
  const { body } = stripFrontmatter(sourceText);
91
96
  const stem =
@@ -99,7 +104,13 @@ function transformMarkdown(sourceText, stack, { allowEmbedEntry = true } = {}) {
99
104
  }
100
105
  const coreBody = fs.readFileSync(corePath, 'utf8').trimEnd();
101
106
  const marker = `<!-- shared-core: ${stem} -->`;
107
+ // Preserve the Cursor adapter's `## Stack notes` (stack-specific paths, runners,
108
+ // selectors) instead of replacing the whole body with the generic core.
109
+ const stackNotes = preserveStackNotes ? extractStackNotesSection(body) : '';
102
110
  next = `${marker}\n\n${coreBody}\n`;
111
+ if (stackNotes) {
112
+ next += `\n${stackNotes}\n`;
113
+ }
103
114
  next = rewriteConsumerPaths(next);
104
115
  } else {
105
116
  next = rewriteProse(body);
@@ -160,7 +171,7 @@ function transformSkill(sourceText, stack) {
160
171
  const fields = parseFrontmatterFields(frontmatter);
161
172
  const name = fields.name || '';
162
173
  const description = fields.description || '';
163
- const header = `---\nname: ${name}\ndescription: ${description}\n---\n\n`;
174
+ const header = `---\nname: ${name}\ndescription: ${yamlString(description)}\n---\n\n`;
164
175
  const transformed = finalizeOpencodeProse(body, stack);
165
176
  return `${header}${transformed.endsWith('\n') ? transformed : `${transformed}\n`}`;
166
177
  }
@@ -173,7 +184,7 @@ function transformCommand(sourceText, stack) {
173
184
  if (!next.includes('$ARGUMENTS')) {
174
185
  next = `## Invocation arguments\n\n$ARGUMENTS\n\n${next}`;
175
186
  }
176
- const header = `---\ndescription: ${description}\n---\n\n`;
187
+ const header = `---\ndescription: ${yamlString(description)}\n---\n\n`;
177
188
  return `${header}${next.endsWith('\n') ? next : `${next}\n`}`;
178
189
  }
179
190
 
@@ -449,7 +460,11 @@ export function generateOpencodeStack(stack, { root = packageRoot } = {}) {
449
460
  match: (source) => source.startsWith('rules/') && source.endsWith('.mdc'),
450
461
  map: ({ source, sourceText }) => {
451
462
  const stem = path.basename(source, '.mdc');
452
- let markdown = transformMarkdown(sourceText, stack);
463
+ // The orchestrator Stack notes carry Cursor-only model pins / packaging;
464
+ // transformOrchestrator injects a platform-neutral note instead.
465
+ let markdown = transformMarkdown(sourceText, stack, {
466
+ preserveStackNotes: stem !== 'agent-team-orchestrator',
467
+ });
453
468
  if (stem === 'agent-team-orchestrator') {
454
469
  markdown = transformOrchestrator(markdown);
455
470
  }
@@ -994,12 +994,12 @@ for (const hook of hooks) {
994
994
  const elapsed = Date.now() - releaseAt;
995
995
  assert.equal(exitCode, 0, `${hook}: hook did not exit 0 after lock release (stderr=${stderr.slice(0, 400)})`);
996
996
 
997
- // The hook's waitForMetricsLock busy-waits on EEXIST in 10 ms slices; with a
998
- // 60 ms hold the child should have been blocked for >= holdMs and run to
999
- // completion in well under the 2 s ceiling. Both assertions guard against
1000
- // regressions to the fake Atomics.wait impl (which never blocked).
997
+ // The hook's waitForMetricsLock busy-waits on EEXIST in 10 ms slices. The
998
+ // "still alive while held" assertion above proves the lock actually blocked;
999
+ // this bound only catches a permanently stuck implementation. It is generous
1000
+ // on purpose: bash + node startup under loaded CI regularly exceeds 1.5 s.
1001
1001
  assert.ok(elapsed >= 1, `${hook}: hook finished suspiciously fast after lock release (${elapsed} ms)`);
1002
- assert.ok(elapsed < 1500, `${hook}: hook took ${elapsed} ms after lock release — lock impl may be stuck`);
1002
+ assert.ok(elapsed < 10000, `${hook}: hook took ${elapsed} ms after lock release — lock impl may be stuck`);
1003
1003
  const ledger = readJson(metricsPath);
1004
1004
  const finished = ledger.events.find(
1005
1005
  (event) => event.type === 'attempt_finished' && event.attemptId === attemptId,