@zigrivers/scaffold 3.15.0 → 3.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/README.md +47 -12
  2. package/content/knowledge/backend/backend-fintech-broker-integration.md +244 -0
  3. package/content/knowledge/backend/backend-fintech-compliance.md +181 -0
  4. package/content/knowledge/backend/backend-fintech-data-modeling.md +210 -0
  5. package/content/knowledge/backend/backend-fintech-ledger.md +226 -0
  6. package/content/knowledge/backend/backend-fintech-observability.md +151 -0
  7. package/content/knowledge/backend/backend-fintech-order-lifecycle.md +213 -0
  8. package/content/knowledge/backend/backend-fintech-risk-management.md +150 -0
  9. package/content/knowledge/backend/backend-fintech-testing.md +197 -0
  10. package/content/knowledge/core/automated-review-tooling.md +31 -26
  11. package/content/knowledge/core/multi-model-review-dispatch.md +30 -55
  12. package/content/knowledge/core/multi-service-api-contracts.md +634 -0
  13. package/content/knowledge/core/multi-service-architecture.md +492 -0
  14. package/content/knowledge/core/multi-service-auth.md +706 -0
  15. package/content/knowledge/core/multi-service-data-ownership.md +539 -0
  16. package/content/knowledge/core/multi-service-observability.md +545 -0
  17. package/content/knowledge/core/multi-service-resilience.md +710 -0
  18. package/content/knowledge/core/multi-service-task-decomposition.md +615 -0
  19. package/content/knowledge/core/multi-service-testing.md +728 -0
  20. package/content/methodology/backend-fintech.yml +46 -0
  21. package/content/methodology/custom-defaults.yml +6 -0
  22. package/content/methodology/deep.yml +6 -0
  23. package/content/methodology/multi-service-overlay.yml +103 -0
  24. package/content/methodology/mvp.yml +6 -0
  25. package/content/pipeline/architecture/service-ownership-map.md +83 -0
  26. package/content/pipeline/quality/cross-service-auth.md +96 -0
  27. package/content/pipeline/quality/cross-service-observability.md +104 -0
  28. package/content/pipeline/quality/integration-test-plan.md +106 -0
  29. package/content/pipeline/specification/inter-service-contracts.md +95 -0
  30. package/content/tools/post-implementation-review.md +36 -7
  31. package/content/tools/review-code.md +33 -8
  32. package/content/tools/review-pr.md +79 -95
  33. package/dist/cli/commands/adopt.cli-flags.test.js +20 -0
  34. package/dist/cli/commands/adopt.cli-flags.test.js.map +1 -1
  35. package/dist/cli/commands/adopt.d.ts.map +1 -1
  36. package/dist/cli/commands/adopt.js +11 -3
  37. package/dist/cli/commands/adopt.js.map +1 -1
  38. package/dist/cli/commands/complete.d.ts +1 -0
  39. package/dist/cli/commands/complete.d.ts.map +1 -1
  40. package/dist/cli/commands/complete.js +26 -8
  41. package/dist/cli/commands/complete.js.map +1 -1
  42. package/dist/cli/commands/dashboard.d.ts +1 -0
  43. package/dist/cli/commands/dashboard.d.ts.map +1 -1
  44. package/dist/cli/commands/dashboard.js +19 -6
  45. package/dist/cli/commands/dashboard.js.map +1 -1
  46. package/dist/cli/commands/decisions.d.ts +1 -0
  47. package/dist/cli/commands/decisions.d.ts.map +1 -1
  48. package/dist/cli/commands/decisions.js +18 -4
  49. package/dist/cli/commands/decisions.js.map +1 -1
  50. package/dist/cli/commands/info.d.ts +1 -0
  51. package/dist/cli/commands/info.d.ts.map +1 -1
  52. package/dist/cli/commands/info.js +25 -3
  53. package/dist/cli/commands/info.js.map +1 -1
  54. package/dist/cli/commands/init-from.test.d.ts +2 -0
  55. package/dist/cli/commands/init-from.test.d.ts.map +1 -0
  56. package/dist/cli/commands/init-from.test.js +315 -0
  57. package/dist/cli/commands/init-from.test.js.map +1 -0
  58. package/dist/cli/commands/init.d.ts +3 -0
  59. package/dist/cli/commands/init.d.ts.map +1 -1
  60. package/dist/cli/commands/init.js +239 -129
  61. package/dist/cli/commands/init.js.map +1 -1
  62. package/dist/cli/commands/init.test.js +20 -0
  63. package/dist/cli/commands/init.test.js.map +1 -1
  64. package/dist/cli/commands/next.d.ts +1 -0
  65. package/dist/cli/commands/next.d.ts.map +1 -1
  66. package/dist/cli/commands/next.js +40 -4
  67. package/dist/cli/commands/next.js.map +1 -1
  68. package/dist/cli/commands/next.test.js +151 -0
  69. package/dist/cli/commands/next.test.js.map +1 -1
  70. package/dist/cli/commands/reset.d.ts +1 -0
  71. package/dist/cli/commands/reset.d.ts.map +1 -1
  72. package/dist/cli/commands/reset.js +77 -29
  73. package/dist/cli/commands/reset.js.map +1 -1
  74. package/dist/cli/commands/rework.d.ts +1 -0
  75. package/dist/cli/commands/rework.d.ts.map +1 -1
  76. package/dist/cli/commands/rework.js +16 -2
  77. package/dist/cli/commands/rework.js.map +1 -1
  78. package/dist/cli/commands/run.d.ts +1 -0
  79. package/dist/cli/commands/run.d.ts.map +1 -1
  80. package/dist/cli/commands/run.js +65 -13
  81. package/dist/cli/commands/run.js.map +1 -1
  82. package/dist/cli/commands/run.test.js +192 -3
  83. package/dist/cli/commands/run.test.js.map +1 -1
  84. package/dist/cli/commands/skip.d.ts +1 -0
  85. package/dist/cli/commands/skip.d.ts.map +1 -1
  86. package/dist/cli/commands/skip.js +24 -7
  87. package/dist/cli/commands/skip.js.map +1 -1
  88. package/dist/cli/commands/status.d.ts +1 -0
  89. package/dist/cli/commands/status.d.ts.map +1 -1
  90. package/dist/cli/commands/status.js +51 -4
  91. package/dist/cli/commands/status.js.map +1 -1
  92. package/dist/cli/commands/status.test.js +128 -0
  93. package/dist/cli/commands/status.test.js.map +1 -1
  94. package/dist/cli/guards-coverage.test.d.ts +2 -0
  95. package/dist/cli/guards-coverage.test.d.ts.map +1 -0
  96. package/dist/cli/guards-coverage.test.js +26 -0
  97. package/dist/cli/guards-coverage.test.js.map +1 -0
  98. package/dist/cli/guards-integration.test.d.ts +2 -0
  99. package/dist/cli/guards-integration.test.d.ts.map +1 -0
  100. package/dist/cli/guards-integration.test.js +178 -0
  101. package/dist/cli/guards-integration.test.js.map +1 -0
  102. package/dist/cli/guards.d.ts +13 -0
  103. package/dist/cli/guards.d.ts.map +1 -0
  104. package/dist/cli/guards.js +70 -0
  105. package/dist/cli/guards.js.map +1 -0
  106. package/dist/cli/guards.test.d.ts +2 -0
  107. package/dist/cli/guards.test.d.ts.map +1 -0
  108. package/dist/cli/guards.test.js +136 -0
  109. package/dist/cli/guards.test.js.map +1 -0
  110. package/dist/cli/init-flag-families.d.ts +1 -1
  111. package/dist/cli/init-flag-families.d.ts.map +1 -1
  112. package/dist/cli/init-flag-families.js +4 -1
  113. package/dist/cli/init-flag-families.js.map +1 -1
  114. package/dist/cli/init-flag-families.test.js +10 -0
  115. package/dist/cli/init-flag-families.test.js.map +1 -1
  116. package/dist/cli/shutdown.d.ts +2 -3
  117. package/dist/cli/shutdown.d.ts.map +1 -1
  118. package/dist/cli/shutdown.js +14 -11
  119. package/dist/cli/shutdown.js.map +1 -1
  120. package/dist/cli/shutdown.test.js +2 -4
  121. package/dist/cli/shutdown.test.js.map +1 -1
  122. package/dist/config/schema.d.ts +12122 -288
  123. package/dist/config/schema.d.ts.map +1 -1
  124. package/dist/config/schema.js +74 -79
  125. package/dist/config/schema.js.map +1 -1
  126. package/dist/config/schema.test.js +230 -1
  127. package/dist/config/schema.test.js.map +1 -1
  128. package/dist/config/validators/backend.d.ts +4 -0
  129. package/dist/config/validators/backend.d.ts.map +1 -0
  130. package/dist/config/validators/backend.js +14 -0
  131. package/dist/config/validators/backend.js.map +1 -0
  132. package/dist/config/validators/browser-extension.d.ts +4 -0
  133. package/dist/config/validators/browser-extension.d.ts.map +1 -0
  134. package/dist/config/validators/browser-extension.js +24 -0
  135. package/dist/config/validators/browser-extension.js.map +1 -0
  136. package/dist/config/validators/cli.d.ts +4 -0
  137. package/dist/config/validators/cli.d.ts.map +1 -0
  138. package/dist/config/validators/cli.js +14 -0
  139. package/dist/config/validators/cli.js.map +1 -0
  140. package/dist/config/validators/data-pipeline.d.ts +4 -0
  141. package/dist/config/validators/data-pipeline.d.ts.map +1 -0
  142. package/dist/config/validators/data-pipeline.js +14 -0
  143. package/dist/config/validators/data-pipeline.js.map +1 -0
  144. package/dist/config/validators/game.d.ts +4 -0
  145. package/dist/config/validators/game.d.ts.map +1 -0
  146. package/dist/config/validators/game.js +14 -0
  147. package/dist/config/validators/game.js.map +1 -0
  148. package/dist/config/validators/index.d.ts +7 -0
  149. package/dist/config/validators/index.d.ts.map +1 -0
  150. package/dist/config/validators/index.js +27 -0
  151. package/dist/config/validators/index.js.map +1 -0
  152. package/dist/config/validators/library.d.ts +4 -0
  153. package/dist/config/validators/library.d.ts.map +1 -0
  154. package/dist/config/validators/library.js +25 -0
  155. package/dist/config/validators/library.js.map +1 -0
  156. package/dist/config/validators/ml.d.ts +4 -0
  157. package/dist/config/validators/ml.d.ts.map +1 -0
  158. package/dist/config/validators/ml.js +31 -0
  159. package/dist/config/validators/ml.js.map +1 -0
  160. package/dist/config/validators/mobile-app.d.ts +4 -0
  161. package/dist/config/validators/mobile-app.d.ts.map +1 -0
  162. package/dist/config/validators/mobile-app.js +14 -0
  163. package/dist/config/validators/mobile-app.js.map +1 -0
  164. package/dist/config/validators/registry.test.d.ts +2 -0
  165. package/dist/config/validators/registry.test.d.ts.map +1 -0
  166. package/dist/config/validators/registry.test.js +26 -0
  167. package/dist/config/validators/registry.test.js.map +1 -0
  168. package/dist/config/validators/research.d.ts +4 -0
  169. package/dist/config/validators/research.d.ts.map +1 -0
  170. package/dist/config/validators/research.js +24 -0
  171. package/dist/config/validators/research.js.map +1 -0
  172. package/dist/config/validators/research.test.d.ts +2 -0
  173. package/dist/config/validators/research.test.d.ts.map +1 -0
  174. package/dist/config/validators/research.test.js +44 -0
  175. package/dist/config/validators/research.test.js.map +1 -0
  176. package/dist/config/validators/types.d.ts +19 -0
  177. package/dist/config/validators/types.d.ts.map +1 -0
  178. package/dist/config/validators/types.js +2 -0
  179. package/dist/config/validators/types.js.map +1 -0
  180. package/dist/config/validators/validators.test.d.ts +2 -0
  181. package/dist/config/validators/validators.test.d.ts.map +1 -0
  182. package/dist/config/validators/validators.test.js +25 -0
  183. package/dist/config/validators/validators.test.js.map +1 -0
  184. package/dist/config/validators/web-app.d.ts +4 -0
  185. package/dist/config/validators/web-app.d.ts.map +1 -0
  186. package/dist/config/validators/web-app.js +31 -0
  187. package/dist/config/validators/web-app.js.map +1 -0
  188. package/dist/core/assembly/context-gatherer.d.ts.map +1 -1
  189. package/dist/core/assembly/context-gatherer.js +4 -2
  190. package/dist/core/assembly/context-gatherer.js.map +1 -1
  191. package/dist/core/assembly/cross-reads.d.ts +58 -0
  192. package/dist/core/assembly/cross-reads.d.ts.map +1 -0
  193. package/dist/core/assembly/cross-reads.js +185 -0
  194. package/dist/core/assembly/cross-reads.js.map +1 -0
  195. package/dist/core/assembly/cross-reads.test.d.ts +2 -0
  196. package/dist/core/assembly/cross-reads.test.d.ts.map +1 -0
  197. package/dist/core/assembly/cross-reads.test.js +383 -0
  198. package/dist/core/assembly/cross-reads.test.js.map +1 -0
  199. package/dist/core/assembly/overlay-loader-structural.test.d.ts +2 -0
  200. package/dist/core/assembly/overlay-loader-structural.test.d.ts.map +1 -0
  201. package/dist/core/assembly/overlay-loader-structural.test.js +114 -0
  202. package/dist/core/assembly/overlay-loader-structural.test.js.map +1 -0
  203. package/dist/core/assembly/overlay-loader.d.ts +17 -3
  204. package/dist/core/assembly/overlay-loader.d.ts.map +1 -1
  205. package/dist/core/assembly/overlay-loader.js +75 -0
  206. package/dist/core/assembly/overlay-loader.js.map +1 -1
  207. package/dist/core/assembly/overlay-resolver.d.ts +2 -2
  208. package/dist/core/assembly/overlay-resolver.d.ts.map +1 -1
  209. package/dist/core/assembly/overlay-resolver.js.map +1 -1
  210. package/dist/core/assembly/overlay-resolver.test.js.map +1 -1
  211. package/dist/core/assembly/overlay-state-resolver.d.ts +5 -0
  212. package/dist/core/assembly/overlay-state-resolver.d.ts.map +1 -1
  213. package/dist/core/assembly/overlay-state-resolver.js +41 -1
  214. package/dist/core/assembly/overlay-state-resolver.js.map +1 -1
  215. package/dist/core/assembly/overlay-state-resolver.test.js +262 -0
  216. package/dist/core/assembly/overlay-state-resolver.test.js.map +1 -1
  217. package/dist/core/assembly/update-mode.d.ts +1 -0
  218. package/dist/core/assembly/update-mode.d.ts.map +1 -1
  219. package/dist/core/assembly/update-mode.js +17 -9
  220. package/dist/core/assembly/update-mode.js.map +1 -1
  221. package/dist/core/dependency/eligibility.d.ts +10 -1
  222. package/dist/core/dependency/eligibility.d.ts.map +1 -1
  223. package/dist/core/dependency/eligibility.js +19 -1
  224. package/dist/core/dependency/eligibility.js.map +1 -1
  225. package/dist/core/dependency/eligibility.test.js +82 -0
  226. package/dist/core/dependency/eligibility.test.js.map +1 -1
  227. package/dist/core/dependency/graph.d.ts +4 -1
  228. package/dist/core/dependency/graph.d.ts.map +1 -1
  229. package/dist/core/dependency/graph.js +7 -1
  230. package/dist/core/dependency/graph.js.map +1 -1
  231. package/dist/core/dependency/graph.test.js +29 -0
  232. package/dist/core/dependency/graph.test.js.map +1 -1
  233. package/dist/core/pipeline/global-steps.d.ts +7 -0
  234. package/dist/core/pipeline/global-steps.d.ts.map +1 -0
  235. package/dist/core/pipeline/global-steps.js +18 -0
  236. package/dist/core/pipeline/global-steps.js.map +1 -0
  237. package/dist/core/pipeline/resolver.d.ts +1 -0
  238. package/dist/core/pipeline/resolver.d.ts.map +1 -1
  239. package/dist/core/pipeline/resolver.js +51 -6
  240. package/dist/core/pipeline/resolver.js.map +1 -1
  241. package/dist/core/pipeline/types.d.ts +5 -1
  242. package/dist/core/pipeline/types.d.ts.map +1 -1
  243. package/dist/e2e/cross-service-references.test.d.ts +22 -0
  244. package/dist/e2e/cross-service-references.test.d.ts.map +1 -0
  245. package/dist/e2e/cross-service-references.test.js +188 -0
  246. package/dist/e2e/cross-service-references.test.js.map +1 -0
  247. package/dist/e2e/multi-service-pipeline.test.d.ts +10 -0
  248. package/dist/e2e/multi-service-pipeline.test.d.ts.map +1 -0
  249. package/dist/e2e/multi-service-pipeline.test.js +185 -0
  250. package/dist/e2e/multi-service-pipeline.test.js.map +1 -0
  251. package/dist/e2e/project-type-overlays.test.js +68 -0
  252. package/dist/e2e/project-type-overlays.test.js.map +1 -1
  253. package/dist/e2e/service-execution.test.d.ts +15 -0
  254. package/dist/e2e/service-execution.test.d.ts.map +1 -0
  255. package/dist/e2e/service-execution.test.js +219 -0
  256. package/dist/e2e/service-execution.test.js.map +1 -0
  257. package/dist/e2e/service-manifest.test.d.ts +19 -0
  258. package/dist/e2e/service-manifest.test.d.ts.map +1 -0
  259. package/dist/e2e/service-manifest.test.js +166 -0
  260. package/dist/e2e/service-manifest.test.js.map +1 -0
  261. package/dist/project/__frozen-schemas__/schema-v3.9.2.d.ts +224 -224
  262. package/dist/project/frontmatter.d.ts.map +1 -1
  263. package/dist/project/frontmatter.js +11 -0
  264. package/dist/project/frontmatter.js.map +1 -1
  265. package/dist/project/frontmatter.test.js +71 -0
  266. package/dist/project/frontmatter.test.js.map +1 -1
  267. package/dist/state/completion.d.ts +1 -1
  268. package/dist/state/completion.d.ts.map +1 -1
  269. package/dist/state/completion.js +10 -8
  270. package/dist/state/completion.js.map +1 -1
  271. package/dist/state/decision-logger.d.ts +3 -2
  272. package/dist/state/decision-logger.d.ts.map +1 -1
  273. package/dist/state/decision-logger.js +12 -11
  274. package/dist/state/decision-logger.js.map +1 -1
  275. package/dist/state/ensure-v3-migration.d.ts +9 -0
  276. package/dist/state/ensure-v3-migration.d.ts.map +1 -0
  277. package/dist/state/ensure-v3-migration.js +35 -0
  278. package/dist/state/ensure-v3-migration.js.map +1 -0
  279. package/dist/state/lock-manager.d.ts +5 -4
  280. package/dist/state/lock-manager.d.ts.map +1 -1
  281. package/dist/state/lock-manager.js +11 -11
  282. package/dist/state/lock-manager.js.map +1 -1
  283. package/dist/state/rework-manager.d.ts +1 -2
  284. package/dist/state/rework-manager.d.ts.map +1 -1
  285. package/dist/state/rework-manager.js +4 -5
  286. package/dist/state/rework-manager.js.map +1 -1
  287. package/dist/state/state-manager.d.ts +25 -1
  288. package/dist/state/state-manager.d.ts.map +1 -1
  289. package/dist/state/state-manager.js +86 -12
  290. package/dist/state/state-manager.js.map +1 -1
  291. package/dist/state/state-manager.test.js +278 -0
  292. package/dist/state/state-manager.test.js.map +1 -1
  293. package/dist/state/state-migration-v3.d.ts +22 -0
  294. package/dist/state/state-migration-v3.d.ts.map +1 -0
  295. package/dist/state/state-migration-v3.js +82 -0
  296. package/dist/state/state-migration-v3.js.map +1 -0
  297. package/dist/state/state-migration-v3.test.d.ts +2 -0
  298. package/dist/state/state-migration-v3.test.d.ts.map +1 -0
  299. package/dist/state/state-migration-v3.test.js +196 -0
  300. package/dist/state/state-migration-v3.test.js.map +1 -0
  301. package/dist/state/state-migration.d.ts.map +1 -1
  302. package/dist/state/state-migration.js +11 -6
  303. package/dist/state/state-migration.js.map +1 -1
  304. package/dist/state/state-migration.test.js +47 -2
  305. package/dist/state/state-migration.test.js.map +1 -1
  306. package/dist/state/state-path-resolver.d.ts +23 -0
  307. package/dist/state/state-path-resolver.d.ts.map +1 -0
  308. package/dist/state/state-path-resolver.js +36 -0
  309. package/dist/state/state-path-resolver.js.map +1 -0
  310. package/dist/state/state-path-resolver.test.d.ts +2 -0
  311. package/dist/state/state-path-resolver.test.d.ts.map +1 -0
  312. package/dist/state/state-path-resolver.test.js +78 -0
  313. package/dist/state/state-path-resolver.test.js.map +1 -0
  314. package/dist/state/state-version-dispatch.d.ts +17 -0
  315. package/dist/state/state-version-dispatch.d.ts.map +1 -0
  316. package/dist/state/state-version-dispatch.js +27 -0
  317. package/dist/state/state-version-dispatch.js.map +1 -0
  318. package/dist/state/state-version-dispatch.test.d.ts +2 -0
  319. package/dist/state/state-version-dispatch.test.d.ts.map +1 -0
  320. package/dist/state/state-version-dispatch.test.js +40 -0
  321. package/dist/state/state-version-dispatch.test.js.map +1 -0
  322. package/dist/types/config.d.ts +25 -3
  323. package/dist/types/config.d.ts.map +1 -1
  324. package/dist/types/config.test.js +13 -1
  325. package/dist/types/config.test.js.map +1 -1
  326. package/dist/types/dependency.d.ts +5 -0
  327. package/dist/types/dependency.d.ts.map +1 -1
  328. package/dist/types/frontmatter.d.ts +5 -0
  329. package/dist/types/frontmatter.d.ts.map +1 -1
  330. package/dist/types/lock.d.ts +1 -1
  331. package/dist/types/lock.d.ts.map +1 -1
  332. package/dist/types/state.d.ts +1 -1
  333. package/dist/types/state.d.ts.map +1 -1
  334. package/dist/utils/artifact-path.d.ts +19 -0
  335. package/dist/utils/artifact-path.d.ts.map +1 -0
  336. package/dist/utils/artifact-path.js +95 -0
  337. package/dist/utils/artifact-path.js.map +1 -0
  338. package/dist/utils/artifact-path.test.d.ts +2 -0
  339. package/dist/utils/artifact-path.test.d.ts.map +1 -0
  340. package/dist/utils/artifact-path.test.js +138 -0
  341. package/dist/utils/artifact-path.test.js.map +1 -0
  342. package/dist/utils/errors.d.ts +1 -1
  343. package/dist/utils/errors.d.ts.map +1 -1
  344. package/dist/utils/errors.js +5 -2
  345. package/dist/utils/errors.js.map +1 -1
  346. package/dist/utils/user-errors.d.ts +46 -0
  347. package/dist/utils/user-errors.d.ts.map +1 -0
  348. package/dist/utils/user-errors.js +76 -0
  349. package/dist/utils/user-errors.js.map +1 -0
  350. package/dist/utils/user-errors.test.d.ts +2 -0
  351. package/dist/utils/user-errors.test.d.ts.map +1 -0
  352. package/dist/utils/user-errors.test.js +74 -0
  353. package/dist/utils/user-errors.test.js.map +1 -0
  354. package/dist/validation/index.d.ts.map +1 -1
  355. package/dist/validation/index.js +16 -0
  356. package/dist/validation/index.js.map +1 -1
  357. package/dist/validation/index.test.js +48 -0
  358. package/dist/validation/index.test.js.map +1 -1
  359. package/dist/validation/state-validator.d.ts +5 -2
  360. package/dist/validation/state-validator.d.ts.map +1 -1
  361. package/dist/validation/state-validator.js +18 -20
  362. package/dist/validation/state-validator.js.map +1 -1
  363. package/dist/validation/state-validator.test.js +31 -2
  364. package/dist/validation/state-validator.test.js.map +1 -1
  365. package/dist/wizard/copy/backend.d.ts.map +1 -1
  366. package/dist/wizard/copy/backend.js +12 -0
  367. package/dist/wizard/copy/backend.js.map +1 -1
  368. package/dist/wizard/flags.d.ts +1 -0
  369. package/dist/wizard/flags.d.ts.map +1 -1
  370. package/dist/wizard/questions.d.ts.map +1 -1
  371. package/dist/wizard/questions.js +5 -1
  372. package/dist/wizard/questions.js.map +1 -1
  373. package/dist/wizard/questions.test.js +45 -2
  374. package/dist/wizard/questions.test.js.map +1 -1
  375. package/dist/wizard/wizard.d.ts +23 -0
  376. package/dist/wizard/wizard.d.ts.map +1 -1
  377. package/dist/wizard/wizard.js +85 -47
  378. package/dist/wizard/wizard.js.map +1 -1
  379. package/dist/wizard/wizard.test.js +186 -1
  380. package/dist/wizard/wizard.test.js.map +1 -1
  381. package/package.json +1 -1
@@ -26,7 +26,7 @@ comprehensive quality check before releasing or handing off the project.
26
26
  The three channels are:
27
27
  1. **Codex CLI** — Implementation correctness, security, API contracts
28
28
  2. **Gemini CLI** — Design reasoning, architectural patterns, broad context
29
- 3. **Superpowers code-reviewer** — Plan alignment, code quality, testing
29
+ 3. **Claude CLI** — Plan alignment, code quality, testing
30
30
 
31
31
  ## Inputs
32
32
 
@@ -191,6 +191,7 @@ Return ALL findings as valid JSON:
191
191
  {
192
192
  "severity": "P0|P1|P2|P3",
193
193
  "category": "architecture-alignment|security|error-handling|test-coverage|complexity|dependencies",
194
+ "location": "relative/path/to/file.ts:42",
194
195
  "file": "relative/path/to/file.ts",
195
196
  "line": 42,
196
197
  "description": "Specific description of the issue",
@@ -226,7 +227,7 @@ If not installed: queue a compensating pass (implementation correctness, securit
226
227
  codex login status 2>/dev/null && echo "codex authenticated" || echo "codex NOT authenticated"
227
228
  ```
228
229
 
229
- If not authenticated: tell the user "Codex auth expired. Run: `! codex login`". Do NOT silently skip. Wait for re-auth and retry once. If auth cannot be recovered (auth_timeout or user declines): queue a compensating pass (implementation correctness, security, API contracts, labeled `[compensating: Codex-equivalent]`).
230
+ If not authenticated: tell the user "Codex auth expired. Run: `! codex login`". Do NOT silently skip. Wait for re-auth and retry once. If auth cannot be recovered (timeout or user declines): queue a compensating pass (implementation correctness, security, API contracts, labeled `[compensating: Codex-equivalent]`).
230
231
 
231
232
  If Codex fails during execution (non-zero exit, malformed output, timeout): queue a compensating pass with the same focus and label.
232
233
 
@@ -254,7 +255,7 @@ If not installed: queue a compensating pass (architectural patterns, design reas
254
255
  NO_BROWSER=true gemini -p "respond with ok" -o json 2>&1
255
256
  ```
256
257
 
257
- If exit code is 41: tell the user "Gemini auth expired. Run: `! gemini -p \"hello\"`". Do NOT silently skip. Wait for re-auth and retry once. If auth cannot be recovered (auth_timeout or user declines): queue a compensating pass (architectural patterns, design reasoning, broad context, labeled `[compensating: Gemini-equivalent]`).
258
+ If exit code is 41: tell the user "Gemini auth expired. Run: `! gemini -p \"hello\"`". Do NOT silently skip. Wait for re-auth and retry once. If auth cannot be recovered (timeout or user declines): queue a compensating pass (architectural patterns, design reasoning, broad context, labeled `[compensating: Gemini-equivalent]`).
258
259
 
259
260
  If Gemini fails during execution (non-zero exit, malformed output, timeout): queue a compensating pass with the same focus and label.
260
261
 
@@ -291,6 +292,7 @@ surfaces to this format before returning):
291
292
  {
292
293
  "severity": "P0|P1|P2|P3",
293
294
  "category": "architecture-alignment|security|error-handling|test-coverage|complexity|dependencies",
295
+ "location": "relative/path/to/file.ts:42",
294
296
  "file": "relative/path/to/file.ts",
295
297
  "line": 42,
296
298
  "description": "Specific description of the issue",
@@ -300,6 +302,10 @@ surfaces to this format before returning):
300
302
  }
301
303
  ```
302
304
 
305
+ **MMR compatibility:** The `location` field (`file:line` format) is required for
306
+ `mmr reconcile` injection. The `file` and `line` fields are retained for backward
307
+ compatibility with direct channel consumers.
308
+
303
309
  Store as `SUPERPOWERS_PHASE1_FINDINGS`.
304
310
 
305
311
  ### Step 5: Run Phase 2 — Parallel User Story Review
@@ -441,8 +447,8 @@ before returning. Then return all three channels' findings plus channel status:
441
447
  {
442
448
  "story": "[STORY_TITLE]",
443
449
  "channel_status": {
444
- "codex": { "root_cause": "null|not_installed|auth_failed|auth_timeout|failed", "coverage_status": "full|compensating" },
445
- "gemini": { "root_cause": "null|not_installed|auth_failed|auth_timeout|failed", "coverage_status": "full|compensating" },
450
+ "codex": { "root_cause": "null|not_installed|auth_failed|timeout|failed", "coverage_status": "full|compensating" },
451
+ "gemini": { "root_cause": "null|not_installed|auth_failed|timeout|failed", "coverage_status": "full|compensating" },
446
452
  "superpowers": { "root_cause": null, "coverage_status": "full" }
447
453
  },
448
454
  "codex": { "findings": [...] },
@@ -453,6 +459,29 @@ before returning. Then return all three channels' findings plus channel status:
453
459
 
454
460
  Collect findings from all subagents. Store as `PHASE2_FINDINGS`.
455
461
 
462
+ ### Step 5e: Optional — Inject Findings into MMR for Unified Reconciliation
463
+
464
+ If an MMR job exists (e.g., from a prior `mmr review` run on the same branch), the
465
+ agent can inject its post-implementation review findings into MMR for unified
466
+ reconciliation across all channels:
467
+
468
+ ```bash
469
+ # Inject Phase 1 and Phase 2 findings into an existing MMR job
470
+ # Write agent findings to a temp file for mmr reconcile
471
+ echo "$AGENT_FINDINGS" > /tmp/agent-findings.json
472
+ mmr reconcile "$JOB_ID" --channel superpowers --input /tmp/agent-findings.json
473
+ ```
474
+
475
+ All findings injected via `mmr reconcile` must use MMR-compatible schema: each
476
+ finding needs `severity` (P0-P3), `location` (file:line), and `description`
477
+ (`suggestion` is optional). The strict validator will reject findings with
478
+ missing or invalid required fields.
479
+
480
+ This step is optional — post-implementation review is a full-codebase review (not
481
+ diff-only), so it operates independently of `mmr review`. Use `mmr reconcile` only
482
+ when you want to merge post-implementation findings into an existing MMR job for a
483
+ single unified verdict.
484
+
456
485
  ### Step 6: Consolidate Findings
457
486
 
458
487
  Merge all findings from Phase 1 (`CODEX_PHASE1_FINDINGS`, `GEMINI_PHASE1_FINDINGS`,
@@ -656,9 +685,9 @@ the user they require manual attention before the project is ready to release.
656
685
  | Codex not installed (`command -v` fails) | Queue compensating pass (implementation correctness, security, API contracts, labeled `[compensating: Codex-equivalent]`); document as "not_installed" in report |
657
686
  | Gemini not installed (`command -v` fails) | Queue compensating pass (architectural patterns, design reasoning, broad context, labeled `[compensating: Gemini-equivalent]`); document as "not_installed" in report |
658
687
  | Codex auth expired — user recovers | Re-run auth check; proceed with full Codex channel |
659
- | Codex auth expired — user declines or auth_timeout | Queue compensating pass (implementation correctness, security, API contracts, labeled `[compensating: Codex-equivalent]`); document as "auth_failed" or "auth_timeout" in report |
688
+ | Codex auth expired — user declines or timeout | Queue compensating pass (implementation correctness, security, API contracts, labeled `[compensating: Codex-equivalent]`); document as "auth_failed" or "timeout" in report |
660
689
  | Gemini auth expired (exit 41) — user recovers | Re-run auth check; proceed with full Gemini channel |
661
- | Gemini auth expired — user declines or auth_timeout | Queue compensating pass (architectural patterns, design reasoning, broad context, labeled `[compensating: Gemini-equivalent]`); document as "auth_failed" or "auth_timeout" in report |
690
+ | Gemini auth expired — user declines or timeout | Queue compensating pass (architectural patterns, design reasoning, broad context, labeled `[compensating: Gemini-equivalent]`); document as "auth_failed" or "timeout" in report |
662
691
  | Channel fails during execution (non-zero exit, malformed output, timeout) | Queue compensating pass for that channel with same focus and label; document root cause in report |
663
692
  | Both external CLIs unavailable (any combination of not_installed / auth failure) | Run all compensating passes plus Superpowers code-reviewer; report coverage as "degraded-coverage"; warn user that review coverage is reduced |
664
693
  | Superpowers unavailable | Document as "unavailable" in report; proceed with remaining channels; Superpowers is a Claude subagent and should always be available |
@@ -23,7 +23,7 @@ anything leaves the machine.
23
23
  The three channels are:
24
24
  1. **Codex CLI** — implementation correctness, security, API contracts
25
25
  2. **Gemini CLI** — architectural patterns, broad-context reasoning
26
- 3. **Superpowers code-reviewer** — Claude subagent review of code quality, tests, and plan alignment
26
+ 3. **Claude CLI** — Claude subagent review of code quality, tests, and plan alignment
27
27
 
28
28
  ## Inputs
29
29
 
@@ -46,6 +46,31 @@ The three channels are:
46
46
 
47
47
  ## Instructions
48
48
 
49
+ ### Primary: MMR CLI + Agent Reconcile
50
+
51
+ When the MMR CLI is installed, use it as the primary entry point:
52
+
53
+ ```bash
54
+ # Staged changes
55
+ mmr review --staged --sync --format json
56
+
57
+ # Branch diff against main
58
+ mmr review --base main --sync --format json
59
+ ```
60
+
61
+ After the CLI review completes, dispatch the agent's code-reviewer skill (4th channel) and inject findings into the MMR job for unified reconciliation:
62
+
63
+ ```bash
64
+ # job_id is captured from mmr review --sync --format json output
65
+ # Write agent findings to a temp file for mmr reconcile
66
+ echo "$AGENT_FINDINGS" > /tmp/agent-findings.json
67
+ mmr reconcile "$JOB_ID" --channel superpowers --input /tmp/agent-findings.json
68
+ ```
69
+
70
+ The agent's review output must use MMR-compatible finding schema: each finding needs `severity` (P0-P3), `location` (file:line), and `description` (`suggestion` is optional).
71
+
72
+ If `mmr` is not installed (`command -v mmr` fails), fall back to the manual multi-channel flow below.
73
+
49
74
  ### Step 1: Detect Mode
50
75
 
51
76
  Parse `$ARGUMENTS` and set:
@@ -173,7 +198,7 @@ codex login status 2>/dev/null
173
198
  - If `codex` is not installed: skip this channel and record root-cause `not_installed`
174
199
  - If auth fails: tell the user to run `! codex login`, retry after recovery, and if recovery is not possible, record root-cause `auth_failed` and continue with the remaining channels
175
200
 
176
- If auth cannot be recovered, or if Codex is not installed, queue a compensating Claude self-review pass focused on implementation correctness, security, and API contracts. Label findings as `[compensating: Codex-equivalent]`. If auth check times out (~5s), retry once; if still failing, record `auth timeout` and queue compensating pass. This pass runs after all channel dispatch attempts complete.
201
+ If auth cannot be recovered, or if Codex is not installed, queue a compensating Claude self-review pass focused on implementation correctness, security, and API contracts. Label findings as `[compensating: Codex-equivalent]`. If auth check times out (~5s), retry once; if still failing, record `timeout` and queue compensating pass. This pass runs after all channel dispatch attempts complete.
177
202
 
178
203
  Build the prompt in a temporary file and pass it over stdin:
179
204
 
@@ -209,9 +234,9 @@ NO_BROWSER=true gemini -p "$(cat "$PROMPT_FILE")" --output-format json --approva
209
234
 
210
235
  If the CLI exits with a non-zero code, produces malformed/unparseable output, or is killed by the tool runner timeout, record root-cause `failed` and queue a compensating pass for that channel.
211
236
 
212
- #### Channel 3: Superpowers code-reviewer
237
+ #### Channel 3: Claude CLI
213
238
 
214
- Dispatch the `superpowers:code-reviewer` subagent.
239
+ Dispatch via `claude -p` with the review prompt.
215
240
 
216
241
  - If explicit refs are being reviewed, provide `BASE_SHA` and `HEAD_SHA`
217
242
  - Otherwise provide:
@@ -297,7 +322,7 @@ Otherwise:
297
322
  3. Repeat for up to 3 fix rounds
298
323
  4. If any finding remains unresolved after 3 rounds, stop with verdict `needs-user-decision`
299
324
 
300
- **Fix cycle channel rule:** Re-run only channels that originally completed or ran as compensating passes. Never retry a channel marked `not installed`, `auth failed`, or `auth timeout` during fix rounds — its availability does not change within a session.
325
+ **Fix cycle channel rule:** Re-run only channels that originally completed or ran as compensating passes. Never retry a channel marked `not_installed`, `auth_failed`, or `timeout` during fix rounds — its availability does not change within a session.
301
326
 
302
327
  ### Step 8: Final Verdict
303
328
 
@@ -321,9 +346,9 @@ Output a concise summary in this format:
321
346
  [scope label]
322
347
 
323
348
  ### Channels Executed
324
- - Codex CLI — root cause: [completed / not installed / auth failed / auth timeout / failed], coverage: [full / compensating (Codex-equivalent)]
325
- - Gemini CLI — root cause: [completed / not installed / auth failed / auth timeout / failed], coverage: [full / compensating (Gemini-equivalent)]
326
- - Superpowers code-reviewer — [completed / failed]
349
+ - Codex CLI — root cause: [completed / not_installed / auth_failed / timeout / failed], coverage: [full / compensating (Codex-equivalent)]
350
+ - Gemini CLI — root cause: [completed / not_installed / auth_failed / timeout / failed], coverage: [full / compensating (Gemini-equivalent)]
351
+ - Claude CLIroot cause: [completed / not_installed / auth_failed / timeout / failed], coverage: [full / compensating]
327
352
 
328
353
  ### Findings
329
354
  [consensus findings first, then single-source findings]
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: review-pr
3
- description: Run all configured code review channels on a PR (Codex CLI, Gemini CLI, Superpowers code-reviewer)
3
+ description: Run all configured code review channels on a PR (Codex CLI, Gemini CLI, Claude CLI)
4
4
  phase: null
5
5
  order: null
6
6
  dependencies: []
@@ -21,15 +21,16 @@ of remembering three separate review invocations.
21
21
  The three channels are:
22
22
  1. **Codex CLI** — OpenAI's code analysis (implementation correctness, security, API contracts)
23
23
  2. **Gemini CLI** — Google's design reasoning (architectural patterns, broad context)
24
- 3. **Superpowers code-reviewer** — Claude subagent review (plan alignment, code quality, testing)
24
+ 3. **Claude CLI** — Anthropic's code review (plan alignment, code quality, testing)
25
25
 
26
26
  ## Inputs
27
27
 
28
28
  - $ARGUMENTS — PR number (optional; auto-detected from current branch if omitted)
29
- - docs/review-standards.md (optional) severity definitions and review criteria
30
- - docs/coding-standards.md (required) — coding conventions for review context
31
- - docs/tdd-standards.md (optional) test coverage expectations
32
- - AGENTS.md (optional) reviewer instructions with project-specific rules
29
+ - `.mmr.yaml`MMR CLI configuration (channels, review_criteria, defaults)
30
+
31
+ The CLI handles review context via config (`review_criteria` in `.mmr.yaml`).
32
+ Project-specific standards (coding-standards, review-standards) are referenced
33
+ in the review criteria config rather than read at dispatch time.
33
34
 
34
35
  ## Expected Outputs
35
36
 
@@ -48,119 +49,98 @@ PR_NUMBER="${ARGUMENTS:-$(gh pr view --json number -q .number 2>/dev/null)}"
48
49
 
49
50
  If no PR is found, stop and tell the user to create a PR first.
50
51
 
51
- ### Step 2: Gather Review Context
52
+ ### Step 2: Run MMR Review
52
53
 
53
- Collect the PR diff and project standards for review prompts:
54
+ Use the MMR CLI as the primary entry point for automated dispatch, reconciliation, and verdict:
54
55
 
55
56
  ```bash
56
- PR_DIFF=$(gh pr diff "$PR_NUMBER")
57
+ MMR_RESULT=$(mmr review --pr "$PR_NUMBER" --sync --format json)
58
+ # Extract job_id from JSON output for use in mmr reconcile
59
+ JOB_ID=$(echo "$MMR_RESULT" | grep -o '"job_id": "[^"]*"' | head -1 | cut -d'"' -f4)
57
60
  ```
58
61
 
59
- Read these files for review context (skip any that don't exist):
60
- - `docs/coding-standards.md`
61
- - `docs/tdd-standards.md`
62
- - `docs/review-standards.md`
63
- - `AGENTS.md`
62
+ The CLI handles:
63
+ - Installation and auth checks for each channel (codex, gemini, claude)
64
+ - Compensating passes when channels are unavailable (dispatched via `claude -p`)
65
+ - Output parsing and finding reconciliation
66
+ - Verdict derivation (pass/degraded-pass/blocked/needs-user-decision)
67
+ - Exit codes: 0=pass/degraded-pass, 2=blocked, 3=needs-user-decision
64
68
 
65
- ### Step 3: Run All Three Review Channels
69
+ The CLI supports multiple input modes:
70
+ - `--pr <number>` — review a GitHub PR (fetches diff via `gh pr diff`)
71
+ - `--diff <file>` — review a diff file
72
+ - `--staged` — review staged changes (`git diff --cached`)
73
+ - `--base <ref> --head <ref>` — review diff between two refs
66
74
 
67
- Run all three channels. Track which ones complete successfully.
75
+ **Manual fallback** (when MMR CLI is not installed):
68
76
 
69
- **Foreground only:** Always run Codex and Gemini CLI commands as foreground Bash calls. Never use `run_in_background`, `&`, or `nohup`. Background execution produces empty output.
77
+ Run Codex, Gemini, and Claude CLI commands individually as foreground Bash calls.
78
+ Never use `run_in_background`, `&`, or `nohup`.
70
79
 
71
80
  #### Channel 1: Codex CLI
72
81
 
73
- **Installation check:**
74
- ```bash
75
- command -v codex >/dev/null 2>&1
76
- ```
77
- - If `codex` is not installed: queue a compensating Claude self-review pass focused on implementation correctness, security, and API contracts. Record root-cause `not_installed`. Skip to next channel.
78
-
79
- **Auth check first** (auth tokens expire — always re-verify):
80
-
81
- ```bash
82
- codex login status 2>/dev/null && echo "codex authenticated" || echo "codex NOT authenticated"
83
- ```
84
-
85
- If auth fails, tell the user: "Codex auth expired. Run: `! codex login`" — do NOT
86
- silently fall back. After the user re-authenticates, retry.
87
-
88
- If auth cannot be recovered, queue a compensating pass (same focus as above). Record root-cause `auth_failed`.
89
- If auth check times out (~5s), retry once. If still failing, record root-cause `auth_timeout` and queue compensating pass.
90
-
91
- **Run the review:**
92
-
93
82
  ```bash
83
+ command -v codex >/dev/null 2>&1 || echo "Codex not installed"
84
+ codex login status 2>/dev/null
94
85
  codex exec --skip-git-repo-check -s read-only --ephemeral "REVIEW_PROMPT" 2>/dev/null
95
86
  ```
96
87
 
97
- The review prompt must include:
98
- - The PR diff
99
- - Coding standards from docs/coding-standards.md
100
- - Review standards from docs/review-standards.md (if exists)
101
- - Instruction to report P0/P1/P2 findings as JSON with severity, location (file:line), description, and suggestion
102
-
103
- If the CLI exits with a non-zero code, produces malformed/unparseable output, or is killed by the tool runner timeout, record root-cause `failed` and queue a compensating pass for that channel.
88
+ If not installed or auth fails, queue a compensating pass focused on implementation
89
+ correctness, security, and API contracts. Auth failure recovery: `! codex login`.
104
90
 
105
91
  #### Channel 2: Gemini CLI
106
92
 
107
- **Installation check:**
108
93
  ```bash
109
- command -v gemini >/dev/null 2>&1
94
+ command -v gemini >/dev/null 2>&1 || echo "Gemini not installed"
95
+ NO_BROWSER=true gemini -p "respond with ok" -o json 2>&1
96
+ NO_BROWSER=true gemini -p "REVIEW_PROMPT" --output-format json --approval-mode yolo 2>/dev/null
110
97
  ```
111
- - If `gemini` is not installed: queue a compensating Claude self-review pass focused on architectural patterns, design reasoning, and broad context. Record root-cause `not_installed`. Label findings as `[compensating: Gemini-equivalent]`. Skip to next channel.
112
98
 
113
- **Auth check first:**
99
+ If not installed or auth fails, queue a compensating pass focused on architectural
100
+ patterns, design reasoning, and broad context. Auth failure recovery: `! gemini -p "hello"`.
101
+
102
+ #### Channel 3: Claude CLI
114
103
 
115
104
  ```bash
116
- GEMINI_AUTH_CHECK=$(NO_BROWSER=true gemini -p "respond with ok" -o json 2>&1)
117
- GEMINI_EXIT=$?
118
- if [ "$GEMINI_EXIT" -eq 0 ]; then
119
- echo "gemini authenticated"
120
- elif [ "$GEMINI_EXIT" -eq 41 ]; then
121
- echo "gemini NOT authenticated (exit 41: auth error)"
122
- fi
105
+ claude -p "REVIEW_PROMPT" --output-format json 2>/dev/null
123
106
  ```
124
107
 
125
- If auth fails (exit 41), tell the user: "Gemini auth expired. Run: `! gemini -p \"hello\"`" — do NOT silently fall back. After the user re-authenticates, retry.
108
+ Claude CLI handles its own auth. Focus: plan alignment, code quality, testing.
126
109
 
127
- If auth cannot be recovered, queue a compensating pass focused on architectural patterns, design reasoning, and broad context. Record root-cause `auth_failed`. Label findings as `[compensating: Gemini-equivalent]`.
128
- If auth check times out (~5s), retry once. If still failing, record root-cause `auth_timeout` and queue compensating pass labeled `[compensating: Gemini-equivalent]`.
110
+ **After all channels:** Run any queued compensating passes as additional `claude -p`
111
+ dispatches with focused prompts. Label findings as `[compensating: Codex-equivalent]`
112
+ or `[compensating: Gemini-equivalent]`.
129
113
 
130
- **Run the review:**
114
+ ### Step 3: Run Agent Code Review (4th channel)
131
115
 
132
- ```bash
133
- NO_BROWSER=true gemini -p "REVIEW_PROMPT" --output-format json --approval-mode yolo 2>/dev/null
134
- ```
116
+ Dispatch your platform's code-reviewer skill for a complementary review:
117
+ - **Claude Code:** dispatch `superpowers:code-reviewer` subagent with the PR diff and review criteria
118
+ - **Other platforms:** use your platform's equivalent agent review skill
135
119
 
136
- Same review prompt content as Codex. Do NOT share one model's output with the other
137
- each reviews independently.
120
+ The agent skill runs inside your agent's context it has access to conversation history, project knowledge, and plan context that external CLIs lack.
138
121
 
139
- If the CLI exits with a non-zero code, produces malformed/unparseable output, or is killed by the tool runner timeout, record root-cause `failed` and queue a compensating pass for that channel.
122
+ **Important:** The agent's review output must use MMR-compatible finding schema: each finding needs `severity` (P0-P3), `location` (file:line), and `description` (`suggestion` is optional). The strict validator in `mmr reconcile` will reject findings with missing or invalid required fields.
140
123
 
141
- #### Channel 3: Superpowers Code-Reviewer Subagent
124
+ ### Step 4: Inject Agent Review into MMR
142
125
 
143
- Dispatch the `superpowers:code-reviewer` subagent. This channel always runs (it uses
144
- Claude, which is always available).
126
+ Feed the agent review findings into MMR for unified reconciliation:
145
127
 
146
128
  ```bash
147
- BASE_SHA=$(gh pr view "$PR_NUMBER" --json baseRefOid -q .baseRefOid)
148
- HEAD_SHA=$(gh pr view "$PR_NUMBER" --json headRefOid -q .headRefOid)
129
+ # job_id is captured from mmr review --sync --format json output
130
+ # Write agent findings to a temp file for mmr reconcile
131
+ echo "$AGENT_FINDINGS" > /tmp/agent-findings.json
132
+ mmr reconcile "$JOB_ID" --channel superpowers --input /tmp/agent-findings.json
149
133
  ```
150
134
 
151
- Dispatch with the Agent tool using `superpowers:code-reviewer` as the subagent type,
152
- providing:
153
- - `WHAT_WAS_IMPLEMENTED` PR title and description
154
- - `PLAN_OR_REQUIREMENTS` coding standards and review standards
155
- - `BASE_SHA` — base commit
156
- - `HEAD_SHA` — head commit
157
- - `DESCRIPTION` — PR summary
135
+ The `reconcile` command:
136
+ - Adds the agent's findings as a new channel in the job
137
+ - Re-runs reconciliation across ALL channels (CLI + agent)
138
+ - Outputs the unified verdict with all sources included
158
139
 
159
- **After all channels:** Run any queued compensating passes as foreground Claude self-review passes. Each uses the same review prompt as the missing channel, focused on that channel's strength area. Label findings as `[compensating: Codex-equivalent]` or `[compensating: Gemini-equivalent]`.
140
+ ### Step 5: Reconcile Findings
160
141
 
161
- ### Step 4: Reconcile Findings
162
-
163
- After all channels complete, reconcile findings:
142
+ When using `mmr review --sync`, reconciliation is automatic. For manual fallback,
143
+ reconcile findings after all channels complete:
164
144
 
165
145
  | Scenario | Confidence | Action |
166
146
  |----------|-----------|--------|
@@ -171,7 +151,7 @@ After all channels complete, reconcile findings:
171
151
  | Channels contradict each other | **Low** | Present to user for adjudication |
172
152
  | Compensating-pass P0/P1/P2 finding | **Single-source** | Fix per normal thresholds, label as compensating |
173
153
 
174
- ### Step 5: Report Results
154
+ ### Step 6: Report Results
175
155
 
176
156
  Output a review summary in this format:
177
157
 
@@ -179,9 +159,10 @@ Output a review summary in this format:
179
159
  ## Code Review Summary — PR #[number]
180
160
 
181
161
  ### Channels Executed
182
- - [ ] Codex CLI — root cause: [completed / not installed / auth failed / auth timeout / failed], coverage: [full / compensating (Codex-equivalent)]
183
- - [ ] Gemini CLI — root cause: [completed / not installed / auth failed / auth timeout / failed], coverage: [full / compensating (Gemini-equivalent)]
184
- - [ ] Superpowers code-reviewer — [completed / failed]
162
+ - [ ] Codex CLI — root cause: [completed / not installed / auth failed / timeout / failed], coverage: [full / compensating (Codex-equivalent)]
163
+ - [ ] Gemini CLI — root cause: [completed / not installed / auth failed / timeout / failed], coverage: [full / compensating (Gemini-equivalent)]
164
+ - [ ] Claude CLIroot cause: [completed / not_installed / auth_failed / timeout / failed], coverage: [full / compensating]
165
+ - [ ] Agent review — [completed / skipped], injected via mmr reconcile
185
166
 
186
167
  ### Consensus Findings (High Confidence)
187
168
  [Findings flagged by 2+ channels]
@@ -196,7 +177,7 @@ Output a review summary in this format:
196
177
  [pass / degraded-pass / blocked / needs-user-decision]
197
178
  ```
198
179
 
199
- ### Step 5a: Final Verdict
180
+ ### Step 6a: Final Verdict
200
181
 
201
182
  Return exactly one verdict:
202
183
 
@@ -209,17 +190,19 @@ Verdict precedence: `needs-user-decision` > `blocked` > `degraded-pass` > `pass`
209
190
 
210
191
  When compensating passes ran, maximum achievable verdict is `degraded-pass`. When both external channels were compensated, note "All findings are single-model."
211
192
 
212
- ### Step 6: Fix P0/P1/P2 Findings
193
+ ### Step 7: Fix P0/P1/P2 Findings
213
194
 
214
195
  If any P0, P1, or P2 findings exist:
215
196
  1. Fix them in the code
216
197
  2. Push the fixes: `git push`
217
- 3. Re-run the channels that produced findings to verify fixes
198
+ 3. Re-run the review to verify fixes: `mmr review --pr "$PR_NUMBER" --sync --format json`
218
199
  4. After 3 fix rounds with unresolved P0/P1/P2 findings, stop and ask the user for direction — do NOT merge automatically. Document remaining findings and let the user decide whether to continue fixing, create follow-up issues, or override.
219
200
 
220
- **Fix cycle channel rule:** Re-run only channels that originally completed or ran as compensating passes. Never retry a channel marked `not installed`, `auth failed`, or `auth timeout` during fix rounds — its availability does not change within a session.
201
+ **Note:** Fix cycles are an orchestration concern the caller (agent or human) handles the fix loop. The CLI provides the review and verdict; the caller decides whether to fix and re-run.
202
+
203
+ **Fix cycle channel rule:** Re-run only channels that originally completed or ran as compensating passes. Never retry a channel marked `not_installed`, `auth_failed`, or `timeout` during fix rounds — its availability does not change within a session.
221
204
 
222
- ### Step 7: Confirm Completion
205
+ ### Step 8: Confirm Completion
223
206
 
224
207
  After all findings are resolved (or 3 rounds complete), output:
225
208
 
@@ -236,21 +219,22 @@ Do NOT proceed to the next task or merge until this confirmation is output.
236
219
  | Channel not installed | Queue compensating pass, report root-cause `not_installed` |
237
220
  | Auth expired, user recovers | Retry dispatch |
238
221
  | Auth expired, user declines | Queue compensating pass, report root-cause `auth_failed` |
239
- | Auth check timeout (after retry) | Queue compensating pass, report root-cause `auth_timeout` |
222
+ | Auth check timeout (after retry) | Queue compensating pass, report root-cause `timeout` |
240
223
  | Channel fails during execution | Queue compensating pass, report root-cause `failed` |
241
224
  | Both external channels unavailable | Two compensating passes, max verdict: `degraded-pass`, note "All findings single-model" |
242
- | Superpowers unavailable | Run available CLIs, warn user (Superpowers is always-available Claude — no compensating pass) |
243
225
 
244
226
  ## Process Rules
245
227
 
246
- 1. **Foreground only** — Always run Codex and Gemini CLI commands as foreground Bash calls. Never use `run_in_background`, `&`, or `nohup`.
247
- 2. **All three channels are mandatory** — skip only when a tool is genuinely not installed, never by choice.
228
+ 1. **Foreground only** — Always run Codex, Gemini, and Claude CLI commands as foreground Bash calls. Never use `run_in_background`, `&`, or `nohup`.
229
+ 2. **All three channels are mandatory** — Codex CLI, Gemini CLI, and Claude CLI. Skip only when a tool is genuinely not installed, never by choice.
248
230
  3. **Auth failures are not silent** — always surface to the user with the exact recovery command.
249
231
  4. **Independence** — never share one channel's output with another. Each reviews the diff independently.
250
232
  5. **Fix before proceeding** — P0/P1/P2 findings must be resolved before moving to the next task.
251
233
  6. **3-round limit** — never attempt more than 3 fix rounds. Surface unresolved findings to the user.
252
234
  7. **Document everything** — the review summary must show which channels ran and which were skipped, with reasons.
253
- 8. **Dispatch pattern** follows `multi-model-review-dispatch` knowledge entry. When modifying channel dispatch in this file, verify consistency with `review-code.md` and `post-implementation-review.md`.
235
+ 8. **CLI-first** use `mmr review --sync` as the primary entry point. Manual dispatch is a fallback only.
236
+ 9. **Job storage** — the CLI stores job data at `~/.mmr/jobs/{job-id}/results.json`. Review results are available via `mmr results <job-id>`.
237
+ 10. **Dispatch pattern** follows `multi-model-review-dispatch` knowledge entry. When modifying channel dispatch in this file, verify consistency with `review-code.md` and `post-implementation-review.md`.
254
238
 
255
239
  ---
256
240
 
@@ -161,5 +161,25 @@ describe('adopt CLI flag integration', () => {
161
161
  expect(result.projectType).toBe('backend');
162
162
  expect(result.detectedConfig?.config?.apiStyle).toBe('graphql');
163
163
  });
164
+ it('--backend-domain fintech with --project-type backend sets domain', async () => {
165
+ const dir = tracked(makeTmpProject({}));
166
+ const overrides = buildFlagOverrides({
167
+ 'backend-api-style': 'rest',
168
+ 'backend-domain': 'fintech',
169
+ });
170
+ const result = await runAdoption({
171
+ projectRoot: dir,
172
+ metaPromptDir: path.join(dir, '.scaffold'),
173
+ methodology: 'deep',
174
+ dryRun: true,
175
+ auto: true,
176
+ force: true,
177
+ verbose: false,
178
+ explicitProjectType: 'backend',
179
+ flagOverrides: overrides,
180
+ });
181
+ expect(result.projectType).toBe('backend');
182
+ expect(result.detectedConfig?.config?.domain).toBe('fintech');
183
+ });
164
184
  });
165
185
  //# sourceMappingURL=adopt.cli-flags.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adopt.cli-flags.test.js","sourceRoot":"","sources":["../../../src/cli/commands/adopt.cli-flags.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACxE,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,8EAA8E;AAC9E,yEAAyE;AACzE,wEAAwE;AACxE,8EAA8E;AAE9E,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,EAAE;QACX,qBAAqB,EAAE,MAAM;QAC7B,eAAe,EAAE,EAAE;KACpB,CAAC,CAAC;CACJ,CAAC,CAAC,CAAA;AAEH,EAAE,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,mBAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;CAC5C,CAAC,CAAC,CAAA;AAEH,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AAExF,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,cAAc,CAAC,KAA6B;IACnD,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAA;IAClE,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAChC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACrD,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAI,OAAiB,CAAA;IAErB,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAChD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,SAAS,OAAO,CAAC,GAAW;QAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjB,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,4EAA4E;IAC5E,4CAA4C;IAC5C,4EAA4E;IAE5E,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,CAAA;QACxE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IACtF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAA;QAChE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAC3F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QACzD,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAA;QAChE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;IAC3F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAA;QAClE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC1C,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAA;QAC7D,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QACjD,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACvF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,WAAW,EAAE,CAAC,CAAA;QAC5E,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC7C,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;IAC/F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAA;QACpE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IACvF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,CAAA;QACvE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;IAEF,4EAA4E;IAC5E,0DAA0D;IAC1D,4EAA4E;IAE5E,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,IAAI,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAA;QACpE,MAAM,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAC3E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,IAAI,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,CAAA;QAClE,MAAM,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAA;IACxG,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,IAAI,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAA;QACvE,MAAM,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAA;IAC5G,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,IAAI,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;QACvD,MAAM,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAA;IACpG,CAAC,CAAC,CAAA;IAEF,4EAA4E;IAC5E,0CAA0C;IAC1C,4EAA4E;IAE5E,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;YACjC,iBAAiB,EAAE,EAAE;SACtB,CAAC,CAAC,CAAA;QACH,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QACzD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;YAC/B,WAAW,EAAE,GAAG;YAChB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC;YAC1C,WAAW,EAAE,MAAM;YACnB,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,KAAK;YACd,mBAAmB,EAAE,MAAM;YAC3B,aAAa,EAAE,SAAS;SACzB,CAAC,CAAA;QACF,oEAAoE;QACpE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,CAAE,MAAM,CAAC,cAAc,EAAE,MAAkC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;QACvC,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,CAAA;QACxE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;YAC/B,WAAW,EAAE,GAAG;YAChB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC;YAC1C,WAAW,EAAE,MAAM;YACnB,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,KAAK;YACd,mBAAmB,EAAE,SAAS;YAC9B,aAAa,EAAE,SAAS;SACzB,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1C,MAAM,CAAE,MAAM,CAAC,cAAc,EAAE,MAAkC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9F,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"adopt.cli-flags.test.js","sourceRoot":"","sources":["../../../src/cli/commands/adopt.cli-flags.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"adopt.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/adopt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAQ,MAAM,OAAO,CAAA;AAYhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAa5D,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAYD,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,GACrB,IAAI,CAgDN;AAmDD,QAAA,MAAM,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAqanE,CAAA;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"adopt.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/adopt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAQ,MAAM,OAAO,CAAA;AAYhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAa5D,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAYD,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,GACrB,IAAI,CAgDN;AAsDD,QAAA,MAAM,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CA0anE,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -77,7 +77,10 @@ function writeOrUpdateState(projectRoot, result, methodology, metaPromptDir) {
77
77
  slug,
78
78
  produces: mp.frontmatter.outputs ?? [],
79
79
  }));
80
- const stateManager = new StateManager(projectRoot, () => []);
80
+ // Wave 3a: adopt writes a fresh single-service state.json — no services[]
81
+ // available here, so pass `() => undefined` for the configProvider and
82
+ // omit the optional `config` param (schema-version stays 1).
83
+ const stateManager = new StateManager(projectRoot, () => [], () => undefined);
81
84
  stateManager.initializeState({
82
85
  enabledSteps: allSteps,
83
86
  scaffoldVersion: '2.0.0',
@@ -91,7 +94,7 @@ function writeOrUpdateState(projectRoot, result, methodology, metaPromptDir) {
91
94
  }
92
95
  else {
93
96
  // Update existing state — mark stepsCompleted
94
- const stateManager = new StateManager(projectRoot, () => []);
97
+ const stateManager = new StateManager(projectRoot, () => [], () => undefined);
95
98
  const state = stateManager.loadState();
96
99
  const now = new Date().toISOString();
97
100
  for (const slug of result.stepsCompleted) {
@@ -174,6 +177,11 @@ const adoptCommand = {
174
177
  type: 'string',
175
178
  describe: 'Deploy target',
176
179
  choices: ['serverless', 'container', 'long-running'],
180
+ })
181
+ .option('backend-domain', {
182
+ type: 'string',
183
+ describe: 'Backend domain (none | fintech)',
184
+ choices: ['none', 'fintech'],
177
185
  })
178
186
  // CLI Configuration
179
187
  .option('cli-interactivity', {
@@ -396,7 +404,7 @@ const adoptCommand = {
396
404
  .group(['project-type'], 'Configuration:')
397
405
  .group(['web-rendering', 'web-deploy-target', 'web-realtime', 'web-auth-flow'], 'Web-App Configuration:')
398
406
  .group(['backend-api-style', 'backend-data-store', 'backend-auth',
399
- 'backend-messaging', 'backend-deploy-target'], 'Backend Configuration:')
407
+ 'backend-messaging', 'backend-deploy-target', 'backend-domain'], 'Backend Configuration:')
400
408
  .group(['cli-interactivity', 'cli-distribution', 'cli-structured-output'], 'CLI Configuration:')
401
409
  .group([...LIB_FLAGS], 'Library Configuration:')
402
410
  .group([...MOBILE_FLAGS], 'Mobile-App Configuration:')